Slide 1 : INTRODUCTIONaux
Bases de Données
II ème Partie Badreddine Belhamissi UNIVERSITE de POITIERS
Le modèle relationnel -5- : Le modèle relationnel -5- Une relation (souvent notée R) peut aussi être considérée comme un sous-ensemble d’un produit cartésien de domaines Badreddine Belhamissi UNIVERSITE de POITIERS Pour une relation on distingue le degré d’une relation qui peut être défini comme le nombre de facteurs de ce produit cartésien Exemples de relations ETUDIANT et STAGE:
ETUDIANT ? D_Num_securite_sociale x D_Nom x D_Prenom x D_Code_postal x D_Telephone
STAGE ? D_Num_securite_sociale x D_type_stage x D_Titre
LIVRE ? D_Code_livre x D_Date_parution_ x D_Auteur x D_Titre Ces relations peuvent aussi être représentées sous forme de n-uplets:
ETUDIANT (Num_securite_sociale, Nom , Prenom , Code_postal, Telephone)
STAGE ( Num_securite_sociale , type_stage , Titre )
LIVRE(Code_livre, Date_parution, Auteur, Titre)
La relation Etudiant est de degré 5 , la relation livre est de degré 4 et la relation Stage est de degré 3
Modèle Entité/Relation : Modèle Entité/Relation Badreddine Belhamissi UNIVERSITE de POITIERS ENTITE Exemple 2 Relation Attribut
Notion d’entité : Notion d’entité Entité :
« Chose concrète ou abstraite de la réalité perçue à propos de laquelle on veut conserver des informations ».
« Être ou objet qui existe et peut être distingué d’un autre objet »
Entité faible
Entité dont l’existence dépend d’une autre entité.
Par exemple
le chien Fossette : insuffisant
le chien de M. Duchemin qu’il appelle Fossette
Entité régulière ou forte Badreddine Belhamissi UNIVERSITE de POITIERS
Entité : Entité Le terme entité est générique c’est à dire qu’en fait il désigne un ensemble d’éléments qui sont structurés de façon identique Badreddine Belhamissi UNIVERSITE de POITIERS Le choix des attribut décrivant la structure d’une entité dépend de l’objectif visé par la modélisation Pour distinguer l’entité générique d’un élément de l’ensemble qu’elle représente on utilise le terme ENTITE
On utilise le terme OCCURRENCE d’ENTITE pour désigner un élément de cet ensemble ENTITE Occurrence d’ENTITE
Entité-Occurrences : Entité-Occurrences Badreddine Belhamissi UNIVERSITE de POITIERS Exemples d’occurrences
Entité faible : Entité faible Une entité est faible lorsqu’elle n’a pas d’identifiant propre
Identification par le rôle assumé par d’autres entités qui participent à la même association.
Ou identification par une combinaison d’attributs de l’entité et du rôle assumé par d’autres entités qui participent à la même association.
Dans la pratique : l’identifiant de l’entité faible sera formé par une combinaison d’attributs propres et par un des identifiants des autres entités qui participent à la même association.
La cardinalité du rôle de l’entité faible au sein de l ’association identifiante est « un à un » Badreddine Belhamissi UNIVERSITE de POITIERS
Composantes de l’entité : Composantes de l’entité Badreddine Belhamissi UNIVERSITE de POITIERS Attribut : propriété attachée à une entité
Numero d’Identification Nationale (INE), nom, prénom, code, auteur, titre, date de parution...
Valeur :
symbole utilisé pour représenter un fait élémentaire
Domaine : ensemble de valeurs que peut prendre un attribut
Texte = chaîne de caractères,
Date= jj/mm/aaaa
N° de téléphone: 0x xx xx xx xx où x ?{0,1,2,3,4,5,6,7,8,9}
Couleur = {rouge, bleu, vert, noir},
Sexe = {M,F}
Code = entier long positif (0 > x > 4294967295)
Exemple d’entité faible : Exemple d’entité faible Badreddine Belhamissi UNIVERSITE de POITIERS Un chien est identifié par son nom et par le rôle « est propriétaire de : PERSONNE » via l’association PROPRIETAIRE.
Attribut et valeur : Attribut et valeur Les attributs peuvent être :
Atomiques :
Nom, prénom
Composés :
Date de naissance = {jour, mois, année}
Adresse={n°, rue, ville, code postal, pays}
Monovalués : une seule valeur possible pour une entité donnée
INE, nom, date de naissance
Multivalués : plusieurs valeurs pour une entité donnée.
Prénoms Badreddine Belhamissi UNIVERSITE de POITIERS
Slide 11 : Badreddine Belhamissi UNIVERSITE de POITIERS Exemples d’entité Entité étudiant
Écriture graphique de l’entité : Écriture graphique de l’entité Badreddine Belhamissi UNIVERSITE de POITIERS Entité Entité faible Attribut Attribut clé Attribut multivalué Attribut composé
Notion de clés : Notion de clés Clé ou identifiant : attribut ou ensemble d’attributs dont les valeurs identifient de manière unique une entité.
Num_securite_sociale identifie de manière unique une instance de ETUDIANT
{nom, prénom} ne distingue pas les homonymes
code identifie de manière unique une instance de LIVRE
{auteur, titre, date de parution} identifie une instance de LIVRE Badreddine Belhamissi UNIVERSITE de POITIERS
Notion de clé : Notion de clé Une entité peut admettre plusieurs clés
Surclés : ensemble d’attribut clé non minimal
L’ensemble de tous les attributs est une surclé
Clés candidates : ensemble minimal d’attributs clés
Clé primaire ou identifiant : une entité admet une seule clé primaire choisie parmi les clés candidates Badreddine Belhamissi UNIVERSITE de POITIERS
Choix de la clé : Choix de la clé Clés réelles
Attribut seul (de préférence) ou composition d’attributs
Doit toujours être renseigné
Contrainte sur les tables (NOT NULL sous SQL)
Existe souvent dans les tables administratives
N°sécurité sociale, numen, immatriculation…
Clés artificielles
Ajout d’un attribut clé
Si aucune clé candidate n’est pratique à utiliser
Si les clés candidates ne représentent pas intuitivement l’entité Badreddine Belhamissi UNIVERSITE de POITIERS
Exemple de diagramme d’association : Exemple de diagramme d’association Badreddine Belhamissi UNIVERSITE de POITIERS
Notion de cardinalité : Notion de cardinalité Différentes catégories de relation
Relation 1 à 1 ? notée (1,1)
Un conducteur possède un seul permis de conduire
Chaque permis de conduire est associé à un seul conducteur
Relation 1 à plusieurs ? notée (1,n)
Chaque conducteur possède un ou plusieurs véhicules
Chaque véhicule admet un seul propriétaire
Relation plusieurs à plusieurs ? notée (n,m)
Chaque conducteur est assuré pour un ou plusieurs véhicule
Chaque véhicule est assuré pour un ou plusieurs conducteur Badreddine Belhamissi UNIVERSITE de POITIERS
Exemple de cardinalité : Exemple de cardinalité Étudiants et livres
Un étudiant peut emprunter plusieurs livres
Un étudiant peut emprunter un seul livre
Un étudiant peut ne pas emprunter de livre
Un livre n’est emprunté que par un seul étudiant (à la fois)ou pas emprunté du tout Badreddine Belhamissi UNIVERSITE de POITIERS L’étudiant 5 n’emprunte aucun livre
L’étudiant 1 emprunte 2 livres
Les étudiants 2, 3 et empruntent 1 seul livre
Le livre 2 n’a pas été emprunté
Calcul des cardinalités : Calcul des cardinalités Soit (x,y) la cardinalité d’un couple Entité-Association A :
x et y représentent les nombres minimum et maximum de relations de classe A pouvant exister pour une occurrence d’objet O donnée.
Pour trouver x, on se met côté ETUDIANT, on se pose la question:
Un étudiant peut emprunter simultanément combien de livres ?
entre aucun (x=0) et un nombre supérieur à 1 non défini et (y=n )
n est ici une notation mise pour signifier nombre supérieur à 1 indéterminé
donc (x,y) est égale ici à (0,n) qu’on met sur la branche qui va de l’entité ETUDIANT à l’association Emprunter
Pour trouver y, on se met côté livre, on se pose la question
Un livre peut être emprunté simultanément par combien d’étudiants
entre aucun (0) et un seul (1), donc on met (0,1) sur la branche qui va de l’entité LIVRE à l’association Emprunter Badreddine Belhamissi UNIVERSITE de POITIERS Emprunter ETUDIANT LIVRE INEnom_étudiant code
date_parution
auteur
titre Depuis_le (0,n) (0,1)
2 ème Exemple de calcul de cardinalité : 2 ème Exemple de calcul de cardinalité Badreddine Belhamissi UNIVERSITE de POITIERS Chaque auteur doit avoir écrit au moins un article ? (1,n)
Chaque article a été écrit par un et un seul auteur ? (1,1) (1,n) AUTEUR ARTICLE ECRITURE nom prénom date de naissance adresse année mois jour titre a écrit est écrit par (1,1) Considérons les entités AUTEUR et ARTICLE liée par la relation Ecriture
3ème exemple de cardinalité : 3ème exemple de cardinalité Badreddine Belhamissi UNIVERSITE de POITIERS Elle peut en avoir plusieurs ? composante n de 1,n 1,n 0,n 0,n 1,n 1,n Le professeur fait au moins un enseignement ? composante 1 de Il peut en faire plusieurs? composante n de Une matière peut ne pas être enseignée? composante 0 de Elle peut l’être plusieurs fois ? composante n de Une classe a au moins un enseignement ? composante 1 de
Définitions : « Constituants » : Définitions : « Constituants » Badreddine Belhamissi UNIVERSITE de POITIERS On appelle constituant (ou colonne ou attribut) d’une relation (ou table)
le nom donné à une colonne de la table
On note R+ l’ensemble des constituants de R. Exemples : les constituants d’une relation
ETUDIANT+ = {Num_securite_sociale, Nom , Prenom , Code_postal, Telephone }
STAGE + = { Num_securite_sociale , type_stage , Titre } ETUDIANT (Num_securite_sociale, Nom , Prenom , Code_postal, Telephone)
STAGE ( Num_securite_sociale , type_stage , Titre ) Ou plus simplement
Cardinalités (récapitulation) : Cardinalités (récapitulation) Badreddine Belhamissi UNIVERSITE de POITIERS 0,1 1,1 0,n 1,1 1,n 0,n
Définitions : « n-uplets » : Définitions : « n-uplets » Badreddine Belhamissi UNIVERSITE de POITIERS Un n-uplet - ou tuple (en anglais), ou instance, ou entité,
ou ligne - d ’une relation est un élément de cette relation Exemples : 2 relations
PERSONNE ? D_Num_securite_sociale x D_Nom x D_Prenom x D_Code_postal x D_Telephone
STAGE ? D_Num_securite_sociale x D_type_stage x D_Titre T
U
P
L
E T
U
P
L
E
Définitions : propriétés, constituants, n-uplets : Définitions : propriétés, constituants, n-uplets Badreddine Belhamissi UNIVERSITE de POITIERS Exemples : 2 relations
ETUDIANT Í D_Num_securite_sociale x D_Nom x D_Prenom x D_Code_postal x D_Telephone
STAGE Í D_Num_securite_sociale x D_type_stage x D_Titre Constituant propriété
Définitions : Schéma de relations : Définitions : Schéma de relations Badreddine Belhamissi UNIVERSITE de POITIERS Le schéma d ’une relation ou définition en intention de cette relation est constitué des éléments : Exemples :
ETUDIANT ( Num_securite_sociale : { n? [10 13 ; 3.10 13] } ,
Nom : { chaine de 30 caractères},
Prenom : { chaine de 20 caractères},
Code_postal : { chaine de 5 chiffres} ,
Telephone = { chaine de 10 chiffres} )
STAGE (Num_securite_sociale : { n ?[10 13 ; 3.10 13]} ,
type_stage : { operateur, Enquete, EDT, inge_adjoint, PFE},
titre : { chaine de 200 caractères} ) le nom de la relation
la liste des constituants et les domaines de chacun
les contraintes d ’intégrité à respecter
Définitions : Schéma de Base de données relationnelle : Définitions : Schéma de Base de données relationnelle Badreddine Belhamissi UNIVERSITE de POITIERS Le schéma d’une base de données est constituée par l’ensemble des schémas des relations qui la constituent. CLIENT ( Num_client : entier long ,
Nom : chaine de 30 caractères,
Prenom : chaine de 20 caractères,
Code_postal : chaine de 5 chiffres ,
Telephone : chaine de 10 chiffres ) Exemple COMMANDE ( Num_commande : entier long ,
date : date,
montant : monétaire
client : entier long ) ARTICLE ( Code_article : entier long,
Désignation : chaine de 50 caractères,
prix : monétaire ) LIGNECOMMANDE (code_article : entier long ,
Num_commande : entier long ,
quantité : entier)
Schéma …. qui peut aussi se représenter : Schéma …. qui peut aussi se représenter Badreddine Belhamissi UNIVERSITE de POITIERS CLIENT
Num_client : entier long ,
Nom : chaine de 30 caractères,
Prenom : chaine de 20 caractères,
Code_postal : chaine de 5 chiffres ,
Telephone : chaine de 10 chiffres COMMANDE
Num_commande : entier long ,
date : date,
montant : monétaire
client : entier long ARTICLE
Code_article : entier long,
Désignation: chaine de 50 caractères,
prix : monétaire LIGNECOMMANDE
code_article : entier long ,
Num_commande : entier long ,
quantité : entier
Relationnel : opérateurs ensemblistes : Relationnel : opérateurs ensemblistes Badreddine Belhamissi UNIVERSITE de POITIERS union T = (R1 ? R2)
ou T = Union (R1, R2)
différence T = (R1 - R2)
ou T = Minus (R1, R2)
intersection T = (R1 Ç R2)
ou T = inter (R1, R2) Soient R1 et R2 deux relations, on peut définir entre R1 et R2 un certain nombre d’opérations produit cartésien
T = (R1 * R2)
ou T = product (R1, R2)
jointure naturelle
T = (R1 >< R2) R1 et R2 ont même schéma Opérations entre relations de schéma distinct
Relationnel : opérations unaires sur une relation : Relationnel : opérations unaires sur une relation Badreddine Belhamissi UNIVERSITE de POITIERS projection de R sur les attributs Ai1, Ai2, Ai3, ... Aip avec p < n; i1 ,i2,…,ip ? {1,2,…,n} avec i1 ? i2, ? … ?,ip
C’est une relation R’ de schéma (Ai1, Ai2, Ai3, ... Aip )
dont les n-uplets sont obtenus par élimination des attributs de R n’appartenant pas à R ’ et par suppression des doublons.
On note T = P Ai1, Ai2, Ai3, ... Aip (R)
ou T = proj Ai1, Ai2, Ai3, ... Aip (R)
restriction (ou sélection) de la relation R par une qualification Q est une relation R ’ de même schéma que R dont les n-uplets sont ceux de R satisfaisant Q.
On note T = sQ (R) ou T = selectQ (R) Soit R une relation de schéma (A1, A2, A3, ... An )
Définitions : opérateurs exemples : Définitions : opérateurs exemples Badreddine Belhamissi UNIVERSITE de POITIERS union T = (R1 ? R2)
ou T = Union (R1, R2) Soient R1 et R2 deux relations de même schéma L’'union (R1 ? R2) de deux tables R1 et R2 ayant même schéma
c'est-à-dire les mêmes noms de colonnes, est une table T
contenant l'ensemble des lignes appartenant à R1 et des lignes appartenant à R2
les lignes doubles n’apparaissant qu’une fois
Définitions : opérateurs exemples : Définitions : opérateurs exemples Badreddine Belhamissi UNIVERSITE de POITIERS différence T = (R1 - R2)
ou T = Minus (R1, R2) Soient R1 et R2 deux relations de même schéma La différence (R1 – R2) de deux tables R1 et R2 de même schéma est une table T contenant les lignes de R1 n'appartenant pas à R2
Définitions : opérateurs exemples : Définitions : opérateurs exemples Badreddine Belhamissi UNIVERSITE de POITIERS intersection T = (R1 ? R2)
ou T = inter (R1, R2) Soient R1 et R2 deux relations de même schéma l'intersection (R1 ? R2) de deux tables R1 et R2 de même schéma
est une table T contenant les lignes communes à R1 et R2
Définitions : opérateurs exemples : Définitions : opérateurs exemples Badreddine Belhamissi UNIVERSITE de POITIERS Soient R1 et R2 deux relations de schémas distincts, produit cartésien
T = (R1 * R2)
ou T = product (R1, R2) On définit le produit cartésien
(T = R1 * R2) de deux tables R1 et R2
par la table T constituée par la concaténation
une par une de chaque ligne de R2 à chaque ligne de R
Définitions : opérateurs exemples : Définitions : opérateurs exemples Badreddine Belhamissi UNIVERSITE de POITIERS Soient R1 une relation, restriction (ou sélection) de la relation R1 par une qualification Q = (C<30).
T = s( C < 30) (R) projection de R1 sur les attributs A et B
T = P A, B, (R1) Attention à la suppression des doublons
Définitions : contraintes dans une BD : Définitions : contraintes dans une BD Badreddine Belhamissi UNIVERSITE de POITIERS L’intérêt de l’usage de Base de données est que la BD permet
la définition de « contraintes d’intégrité »
qui seront nécessairement vérifiées à tout instant par la base
ces contraintes permettent de garantir la « cohérence » de la base
Elles sont de trois types : 1) contrainte de clé
2) contrainte de type de données (date, intervalle, liste… entier)
3) contrainte d’intégrité référentielle
Définitions : contrainte d’intégrité référentielle : Définitions : contrainte d’intégrité référentielle Badreddine Belhamissi UNIVERSITE de POITIERS Permet de vérifier la présence de données référencées dans des tables différentes.
Une contrainte d ’intégrité référentielle peut s’utiliser dès qu’une clé primaire d’une table est utilisée comme référence dans une autre table.
On la nomme « clé étrangère » de la seconde table. CLIENT (Num_client : entier long ,
Nom : chaine de 30 caractères,
Prenom : chaine de 20 caractères,
Code_postal : chaine de 5 chiffres ,
Telephone : chaine de 10 chiffres ) LIGNECOMMANDE (code_article : entier long Num_commande: entier long ,quantité entier) COMMANDE (Num_commande : entier long ,
date : date,
montant : monétaire
client : entier long ) ARTICLE (Code_article : entier long,
Désignation : chaine de 50 caractères, prix : monétaire )
Définitions : Dépendance fonctionnelle : Définitions : Dépendance fonctionnelle Badreddine Belhamissi UNIVERSITE de POITIERS Cette notion permet de capturer l’idée de dépendance entre informations en visant à limiter la redondance. Soit R une relation et X et Y des groupes d’attributs de R,
il existe une dépendance fonctionnelle entre X et Y (on dit que X détermine Y) si dans R chaque valeur de X détermine une et une seule valeur de Y. Attention, cette propriété doit être vérifiée pour tous les n-uplets, y compris ceux à créer
Normalisation : Normalisation Processus récursif permettant d ’obtenir des tableaux qui seront sans problèmes lors de l ’utilisation
Les tableaux sont dits en 1ère, 2ème ou 3ème Forme Normale
Probablement l ’avantage majeur de l ’approche relationnelle Badreddine Belhamissi mardi 31 mai 2005
Définitions : 1ère Forme Normale : Définitions : 1ère Forme Normale Badreddine Belhamissi UNIVERSITE de POITIERS Une relation est en PREMIERE FORME NORMALE ssi
les valeurs de tous les attributs qui la composent sont atomiques
Ces valeurs doivent être élémentaires, non-décomposables
Les attributs à occurrence multiple sont interdits
les colonnes d'une table ne peuvent être multivaluées
la relation possède une « clé »
Définitions : 1ère Forme Normale : Définitions : 1ère Forme Normale Badreddine Belhamissi UNIVERSITE de POITIERS ETUDIANT
_________________________
NomEtudiant
AdresseEtudiant Cette entité n’est pas en 1ère forme Normale
-d’abord , il n’y a pas de clé
(NomEtudiant ne peut pas être pris pour clé car il peut y avoir plusieurs étudiants ayant le même nom
-de plus AdresseEtudiant consiste sans doute en la concaténation d’un nom de rue, d’un nom de ville et d’un code postal et par conséquent ne constitue pas une propriété élémentaire La clé, si elle est unique sera prise comme identifiant
S’il y a plusieurs clés on en choisira une comme identifiant Les étapes suivantes de normalisation des relations
vont consister en une décomposition des tables
de façon à respecter certaines règles de dépendances entre les colonnes clés et les colonnes non clés,
ce qui permettra d'éliminer les redondances de données et les problèmes de mise à jour
Définitions : 2ème Forme Normale : Définitions : 2ème Forme Normale Badreddine Belhamissi UNIVERSITE de POITIERS PRET (Num_etudiant, NumLivre, Nom_etud , Prenom_etud , NomLivre, Auteurs, date_emprunt) Une relation est en DEUXIEME FORME NORMALE ssi
elle est en première forme normale
tout attribut n ’appartenant pas à une clé ne dépend pas d ’une partie de cette clé
(Autrement dit:Toute propriété de l’entité doit dépendre de tout l’identifiant) Exemple N ’est pas en 2ème FN car « Nom_etud » ne dépend que de Num_etudiant, et de même « NomLivre », et « Auteurs » ne dépend que de NumLivre CLIENT
______________
Code-client
Nom
Rue
ville_ En revanche, l’entité Est en 2FN car Nom, Rue, et Ville dépendent de la clé Code-client par une dépendance fonctionnelle élémentaire
Définitions : 3ème Forme Normale : Définitions : 3ème Forme Normale Badreddine Belhamissi UNIVERSITE de POITIERS EMPLOYE (Num_securite_sociale, Nom , Prenom , Service, Adresse_service) Une relation est en TROISIEME FORME NORMALE (dite de Boyce Codd) ssi
elle est en deuxième forme normale
tout attribut n ’appartenant pas à une clé ne dépend pas d ’un autre attribut non clé Exemple Adresse_service dépend de service, la relation n ’est pas en 3eme FN. Pour respecter la 3ème Forme Normale il faudra décomposer cette relation en deux autres relations de façon à éliminer cette dépendance EMPLOYE (Num_securite_sociale, Nom , Prenom , Service,) Adresse_service (Num_securite_sociale, Adresse_service,) Par exemple
Les contraintes d'intégrité : Les contraintes d'intégrité Le modèle d'une base de données relationnelle implique un certain nombre de contraintes d'intégrité
qui traduisent les propriétés sémantiques des données Badreddine Belhamissi UNIVERSITE de POITIERS la contrainte de clé primaire d'une relation implique la non duplication des lignes
c'est-à-dire que chaque objet du monde réel peut être enregistré sans ambiguïté par une seule ligne, un seul "tuple" La contrainte de domaine restreint les valeurs possibles d'une colonne à un ensemble de valeurs prédéfinies On peut ajouter à une colonne la contrainte de non-nullité
qui implique que cette colonne ne peut pas avoir de valeur nulle, c'est-à-dire ne peut pas être indéfinie ou inutilisable la contrainte d'intégrité référentielle spécifie les liens qui doivent exister entre deux tables
par la correspondance d'une ou plusieurs colonnes communes à ces deux tables
cette ou ces colonnes constituant ce qui est appelée une clé étrangère