39
Bases de données

Bases de données · L’accès à la base de données passe par un logiciel: le SGBD. Un Système de Gestion de Bases de Données (SGBD) est de haut niveau qui permet de …

  • Upload
    lehuong

  • View
    213

  • Download
    0

Embed Size (px)

Citation preview

Bases de données

I. Pourquoi une base de données?

Un exemple: la vidéothèque personnelle

◦ Je veux avoir une liste de tous mes films

titre du film

année

durée

Réalisateur (nom, prénom, pays)

I. Pourquoi une base de données?

titre annee duree nomreal prenreal paysreal

Les dents de la mer 1975 124 Spielberg Steven US

Le Grand Bleu 1988 132 Besson Luc Fr

Star Wars : Un nouvel espoir 1977 121 Lucas George US

Jurrasic Park 1993 127 Spielberg Steven US

Le diner de cons 1998 77 Veber Francis Fr

Le 5e élément 1997 127 Besson Luc Fr

Godzilla 1954 98 Honda Ishiro Japon

Titanic 1997 194 Cameron James US

Hot Fuzz 2007 120 Wright Edgar UK

I. Pourquoi une base de données?

C’est une très mauvaise solution !!

◦ Problème de redondance:

il y a plusieurs Titanic ou Godzilla!

◦ Problème de modification:

si on s’est trompé sur le nom ou la nationalité d’un

réalisateur, on doit le changer à chaque ligne

◦ Problème de suppression:

si on supprime un film, on ne veut pas supprimer les

informations sur le réalisateur

I. Pourquoi une base de données?

On crée une table pour les films

idfilm titre Annee duree

1 Les dents de la mer 1975 124

2 Le Grand Bleu 1988 132

3 Star Wars : Un nouvel espoir 1977 121

4 Jurassic Park 1993 127

5 Le diner de cons 1998 77

6 Le 5e élément 1997 127

7 Godzilla 1954 98

8 Titanic 1997 194

9 Hot Fuzz 2007 120

I. Pourquoi une base de données?

On crée une table pour les réalisateurs

puis on ajoute un attribut idreal dans la

table films

idreal nomreal prenreal paysreal

101 Spielberg Steven US

102 Besson Luc Fr

103 Lucas George US

104 Veber Francis Fr

105 Honda Ishiro Japon

106 Cameron James US

107 Wright Edgar UK

I. Pourquoi une base de données?

Une base de données n’est qu’une

représentation de la réalité, mais je

choisis l’organisation la plus pertinente

Les bases de données sont partout:

élèves, clients, patients, articles, livres,

inventaires….

Toute base de données non personnelle

passe par une déclaration à la CNIL

II. Schéma relationnel

Dans l’exemple précédent, les

informations relatives à ma vidéothèque

sont regroupées dans deux tables ou

relations.

L’ensemble des tables constituent un

modèle relationnel. ◦ (modélisation de la réalité et données structurées)

II. Schéma relationnel

Une base de données est un ensemble

volumineux d’informations structurées et

mémorisé sur un support permanent.

Quelles opérations?

◦ Création / insertion

◦ Modification / mise à jour

◦ Destruction

◦ Recherche

Sécurité ??

II. Schéma relationnel

L’accès à la base de données passe par un

logiciel: le SGBD.

Un Système de Gestion de Bases de

Données (SGBD) est de haut niveau qui

permet de manipuler les informations

stockées dans une base de données.

Un peu de jargon…

II. Schéma relationnel

idreal nomreal prenreal paysreal

101 Spielberg Steven US

102 Besson Luc Fr

103 Lucas George US

104 Veber Francis Fr

105 Honda Ishiro Japon

106 Cameron James US

107 Wright Edgar UK

Une colonne = un attribut

Type élémentaire

Le domaine

int, real, char…

Une table == une relation

II. Schéma relationnel

Un attribut est toujours associé à un

domaine

Un schéma de relation est une relation

munie de ses attributs et domaines.

Un schéma relationnel ou modèle

relationnel (ou encore par abus de

langage base de données) l’ensemble des

schémas de relation.

II. Schéma relationnel

Définitions et concepts intuitifs…

… formalisation compliquée…

… théorie des ensembles !

Schéma de relation

◦ R(A1 : D1, A2 : D2, ..,An : Dn)

◦ Chaque attribut Ai est associé à son domaine Di

◦ On note souvent R(S) où S=(A1 : D1, ... , An : Dn)

II. Schéma relationnel

Une relation R se définit

mathématiquement comme un sous-

ensemble fini du produit cartésien des

domaines des attributs de R

C’est un sous-ensemble fini de 𝐷1 × 𝐷2 × ⋯ × 𝐷𝑛

Une relation se représente sous forme de

table, car un élément = un tuple. On

confond souvent les deux termes

II. Schéma relationnel

Produit cartésien

A B

a b

c d

Y Z

u v

w x

y z

A B Y Z

a b u v

a b w x

a b y z

c d u v

c d w x

c d y z

× =

II. Schéma relationnel

L’ordre des lignes n’a pas d’importance (car pas d’ordre dans un ensemble)

On ne peut pas trouver deux fois la même ligne (car pas de redondance)

Il n’y a pas de case vide dans la table (on peut tricher…)

Mais il faut ajouter des attributs s’il on a des informations supplémentaires (nombre d’exemplaires, plusieurs réalisateurs…)

II. Schéma relationnel

La clé d’une relation est un sous-ensemble

de l’ensemble des attributs qui permet

d’identifier chaque ligne de manière

unique.

Mathématiquement, soit R une relation et

K un sous ensemble de l’ensemble des

attributs. On dit que K est une clé pour R

si et seulement si ∀ 𝑡1, 𝑡2 ∈ 𝑅 |𝑡1 𝐾 =𝑡2[𝐾] ⇒ 𝑡1 = 𝑡2

II. Schéma relationnel

Si K ne possède qu’un seul élément, donc

s’il existe un attribut A pouvant jouer le

rôle de K, on dit que A est une clé

primaire.

Pour la table film, titre est une clé

primaire (longue…)

mais c’est risqué: on peut avoir plusieurs

films ayant le même titre

II. Schéma relationnel

On peut prendre (titre,année) comme clé

Mais il peut y avoir deux films ayant le

même titre la même année

Le plus simple est d’ajouter un attribut

idfilm de domaine entier

Dans notre table film, idreal est une clé

étrangère

III. Algèbre relationnelle

Objectif: faire des requêtes dans la base de

données

◦ combien de films sont antérieurs à 1990?

◦ quels sont les titres des films japonais?

On a recours aux outils formels de la

théorie des ensembles

Langage relationnel plus adapté qu’un

langage de programmation

III. Algèbre relationnelle

Une requête est une expression

algébrique qui s’applique à un ensemble

de relations (la base de données) et

retourne une relation finale (le résultat de

la requête).

III. Algèbre relationnelle

Les 5 opérateurs « suffisants » de l’algèbre

relationnelle sont:

1. La sélection notée 𝜎

2. La projection notée 𝜋

3. Le produit cartésien notée ×

4. L’union notée ∪

5. La différence notée −

Opérateurs à un

argument:

« unaires »

Opérateurs

« binaires »

III. Algèbre relationnelle

Ces 5 opérateurs sont dits suffisants car il

suffisent pour reconstituer tous les autres

par composition…

On les utilise pour définir d’autres

opérateurs tels que:

◦ l’intersection

◦ la jointure

◦ la division

III. Algèbre relationnelle

La sélection 𝜎

Soit 𝑅(𝑆) un schéma de relation.

La sélection 𝜎𝐹(𝑅) s’applique à la relation 𝑅,

et extrait de la relation les tuples satisfaisant

un critère de sélection 𝐹.

𝜎𝐹(𝑅) = 𝑡 ∈ 𝑅 |t vérifie F

Exemple: 𝜎𝑝𝑎𝑦𝑠𝑟𝑒𝑎𝑙=′𝐹𝑟′(𝑅𝑒𝑎𝑙𝑖𝑠𝑎𝑡𝑒𝑢𝑟);

𝜎𝑑𝑢𝑟𝑒𝑒<120(𝐹𝑖𝑙𝑚)

III. Algèbre relationnelle

La projection 𝜋

Soit 𝑅(𝑆) un schéma de relation.

Soit 𝑋 un sous-ensemble d’attributs de 𝑆,

on définit la projection sur 𝑋 définie

par :

𝜋𝑋(𝑅) = 𝑡. 𝑋 |t 𝜖 𝑅

Exemple: 𝜋𝑡𝑖𝑡𝑟𝑒,𝑑𝑢𝑟𝑒𝑒(𝑓𝑖𝑙𝑚) renvoie les colonnes

titres et durées de la table film

III. Algèbre relationnelle

Le produit cartésien ×: déjà vu…

L’union ∪ et la différence −

Soit 𝑅1(𝑆) et 𝑅2(𝑆) deux schémas de

relation.

𝑅1(𝑆) ∪ 𝑅2(𝑆) est le schéma de relation

comprenant l’ensemble des valeurs comprises

dans 𝑅1(𝑆) ou dans 𝑅2(𝑆).

𝑅1 𝑆 − 𝑅2(𝑆) est le schéma de relation

comprenant l’ensemble des valeurs comprises

dans 𝑅1(𝑆) et pas dans 𝑅2(𝑆).

III. Algèbre relationnelle

Le renommage

Soit un schéma de relation R(S) où S=(A1 : D1, ... , An : Dn). Soit 𝑖 ∈ 1, 𝑛 et 𝐵 un nouvel attribut tel que 𝑑𝑜𝑚 𝐵 = 𝑑𝑜𝑚 𝐴𝑖 On note 𝜌𝐴𝑖→𝐵(𝑅) = (𝐴1: 𝐷1, ⋯ , 𝐴𝑖−1: 𝐷𝑖−1, 𝐵: 𝑑𝑜𝑚 𝐵 ,

𝐴𝑖+1: 𝐷𝑖+1, ⋯ , 𝐴𝑛: 𝐷𝑛)

III. Algèbre relationnelle

Exemple:

𝜌𝑝𝑎𝑦𝑠𝑟𝑒𝑎𝑙→𝑛𝑎𝑡𝑖𝑜𝑛𝑎𝑙𝑖𝑡é(𝑟é𝑎𝑙𝑖𝑠𝑎𝑡𝑒𝑢𝑟)

changera l’attribut paysreal en nationalité,

mais le contenu est inchangé!

III. Algèbre relationnelle

L’intersection ∩

Soit 𝑅1(𝑆) et 𝑅2(𝑆) deux schémas de

relation.

𝑅1(𝑆) ∩ 𝑅2(𝑆) est le schéma de relation

comprenant l’ensemble des valeurs comprises

dans 𝑅1(𝑆) et dans 𝑅2(𝑆).

III. Algèbre relationnelle

Opérateur de jointure

Quand on réalise le produit cartésien, il y

a un grand nombre de lignes qui ne

servent à rien.

La jointure permet de ne garder que les

lignes utiles (réalisant une condition)

III. Algèbre relationnelle

Opérateur jointure ⋈

Soit 𝑅1(𝑆) et 𝑅2(𝑆′) deux schémas de

relation. Soit 𝐴 (resp. 𝐴′) un attribut de 𝑆

(resp. 𝑆′) tels que 𝑑𝑜𝑚 𝐴 = 𝑑𝑜𝑚(𝐴′).

On définit 𝑅1 ⋈𝐴=𝐴′ 𝑅2 = 𝜎𝐴=𝐴′(𝑅1 × 𝑅2)

III. Algèbre relationnelle

Exemple

Film x Réalisateurs

idfilm titre Annee duree idreal nomreal prenreal paysreal

1 Les dents de la mer 1975 124 101 Spielberg Steven US

1 Les dents de la mer 1975 124 102 Besson Luc Fr

1 Les dents de la mer 1975 124 103 Lucas George US

1 Les dents de la mer 1975 124 104 Veber Francis Fr

1 Les dents de la mer 1975 124 105 Honda Ishiro Japon

1 Les dents de la mer 1975 124 106 Cameron James US

1 Les dents de la mer 1975 124 107 Wright Edgar UK

2 Le Grand Bleu 1988 132 101 Spielberg Steven US

2 Le Grand Bleu 1988 132 102 Besson Luc Fr

2 Le Grand Bleu 1988 132 103 Lucas George US

… … … … … … … …

III. Algèbre relationnelle

Il faut considérer l’attribut idreal de films

◦ il y a un attribut de même nom dans chaque

table => problème pour le produit cartésien!

◦ On les nomme différemment F.idreal et

R.idreal

La condition de jointure devient

F.idreal= R.idreal

III. Algèbre relationnelle

La division cartésienne ÷

Soit 𝑅(𝐴1, … , 𝐴𝑚, 𝐴𝑚+1, … , 𝐴𝑛) et

𝑅′(𝐴𝑚+1, … , 𝐴𝑛) deux schémas de

relation.

𝑅 ÷ 𝑅′ = 𝑡|∀𝑡′𝜖 𝑅′, (𝑡, 𝑡′) ∈ 𝑅

La division cartésienne existe pour de raisons de

cohérence et de complétude mais est le plus souvent

absente des langages de BD.

III. Algèbre relationnelle

Opérateurs d’agrégation

Une fonction d’agrégation f est une

fonction que l’on applique à un ou

plusieurs attributs d’une table.

Cinq opérateurs d’agrégation sont à

connaitre : AVG(moyenne), COUNT

(cardinal), SUM (somme), MAX

(maximum), MIN (minimum).

IV. Langage SQL

Structured Query Language

Créé en 1974, normalisé en 1986

Structure de base

SELECT attributs FROM relations WHERE conditions

On le découvrira en TP….

V. Architecture logicielle

Architecture Client-Serveur

Serveur

Clients

V. Architecture logicielle

Architecture trois-tiers

Serveur d’application Serveur base de données

V. Architecture logicielle

Gestion de vos notes de DS, colles…

Architecture client-Serveur:

◦ Chacun accède directement à la BD

Chaque utilisateur a les mêmes droits

Architecture trois-tiers:

◦ Accès par le logiciel Visiocolle

Sécurisation

Droits d’accès selon les besoins