Le Modèle Relationnel (Chapitre 4)

Slides:



Advertisements
Présentations similaires
Chap. 4 Recherche en Table
Advertisements

Les Systèmes de Gestion de Bases de Données (SGBD) df - normalisation.
Rappels. Les Systèmes de Gestion de Bases de Données (SGBD) L'algèbre relationnelle.
Matière/Sources: Daniel Bardou, Julie Dugdale &
Bases de données : modèlisation et SGBD
Licence de Sciences et Techniques Unité denseignement BASES DE DONNEES Le modèle relationnel François Jacquenet Professeur d'Informatique Faculté des Sciences.
Le modèle logique des données relationnel MLD
Bases de Données Relationnelles Modélisation Conceptuelle (Chapitre 3) Validation et transformations.
Le Modèle Logique de Données
Algèbre relationnelle
Programme Introduction aux BD et aux SGBD Le modèle relationnel
Plus rapide chemin bicritère : un problème d’aménagement du territoire
1 Théorie des Graphes Cycle Eulérien. 2 Rappels de définitions On dit qu'une chaîne est un chemin passant par toutes les arêtes du graphe. On dit qu'un.
Initiation au système d’information et aux bases de données
Initiation au système d’information et aux bases de données
Développement d’applications web
SQL (1) Exercices - Enoncés
Des RRA à la diagnosticabilité
Contrôles d'accès aux données
Principes de la technologie orientée objets
Algèbre relationnelle
B.Shishedjiev - Modèle relationnel
Initiation à la conception de systèmes d'information
Modélisation E/R des Données
Introduction à la conception de Bases de Données Relationnelles
Les bases de données Cours assuré par: Mlle Smii imen
Chap 4 Les bases de données et le modèle relationnel
1.2 COMPOSANTES DES VECTEURS
La structuration et la représentation informatique de l'information
Conception d’une Base de Données Passage au Schéma Relationnel
L’utilisation des bases de données
Modèle Logique de Données
Cas pratique : Interim.
SYSTEMES D’INFORMATION
MODELE RELATIONNEL concept mathématique de relation
1.1 LES VECTEURS GÉOMÉTRIQUES
Cours de Base de Données & Langage SQL
Cours N°2 Base de Données & Langage SQL
Notre calendrier français MARS 2014
Management of Information Technology - e-business
Initiation aux bases de données et à la programmation événementielle
Modèle Logique de Données (MLD)
Initiation à la conception des systèmes d'informations
Michel Tollenaere SQL et relationnel ENSGI Cours MSI 2A Relationnel et SQL version 1.4 du 25 septembre 2007 (ajout jointures) 1 Modèle relationnel Historique.
Bases de données orientées objets SGBD relationnels-objets
Présentation de la méthode des Eléments Finis
ECOLE DES HAUTES ETUDES COMMERCIALES MARKETING FONDAMENTAL
Plan UE Introduction aux Bases de Données
LUNDI – MARDI – MERCREDI – JEUDI – VENDREDI – SAMEDI – DIMANCHE
ECOLE DES HAUTES ETUDES COMMERCIALES MARKETING FONDAMENTAL
Coupes efficaces pour la relaxation lagrangienne
ECOLE DES HAUTES ETUDES COMMERCIALES MARKETING FONDAMENTAL
ECOLE DES HAUTES ETUDES COMMERCIALES MARKETING FONDAMENTAL
1 Modèle pédagogique d’un système d’apprentissage (SA)
Introduction.
Modélisation des données Niveau conceptuel DON-2 V0-0.
CALENDRIER-PLAYBOY 2020.
LES PILES ET FILES.
Bases de données.
DOSSIER G10 – La base de données Relationnelle
Bases de données : modèlisation et SGBD
Sélection de colonnes (la projection)
Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio.
Le langage SQL.
Séance /10/2004 SGBD - Approches & Principes.
Initiation aux bases de données et à la programmation événementielle
INTRODUCTION AUX BASES DE DONNEES Base et métabase
Le modèle logique des données relationnel
Bases de données – Cours 2
Transcription de la présentation:

Le Modèle Relationnel (Chapitre 4) Bases de Données Relationnelles Le Modèle Relationnel (Chapitre 4)

Le modèle relationnel modèle de niveau logique, très simple défini par Ted Codd en 1970; prix Turing en 1986. Développé par IBM lab. aujourd'hui utilisé par beaucoup de SGBD commerciaux (Oracle, Informix, DB2, Ingres, Sybase, dBase, Access …) et GIS modèle à deux concepts: relation (table) attribut (colonne)  Objets et associations du monde réel représentés par un concept unique: la relation. Les relations sont des tableaux à 2D, appelés tables. + le concept d’attribut: monovalués et simples partiellement les mêmes notions comme EA mais ne pas toujours avec le même sens modèle utilisé dans beaucoup de SGBD commercials (Oracle, Informix, DB2, Ingres, Sybase, (dBase, Access, Approach) …)

Concepts de base Etudiant (N°Etud, nom, prénom, age) nom de la relation noms des attributs Etudiant schéma N°Etud nom prénom age population 136 Dupont Jean 19 253 Aubry Annie 20 tuple ou occurrence Cet exemple représente une relation (ou table) décrivant les étudiants. Etudiant = nom de la relation. Les entêtes des colonnes, N° Etud, Nom, Prénom et Age, = attributs de la relation. Chaque ligne de la table = une occurrence. Par exemple: <253, Aubry, Annie, 20> = tuple, qui décrit une occurrence (l'étudiante Annie Aubry). usuel de souligner l'attribut ou les attributs, qui constituent l'identifiant de la relation. 101 Duval André 21 147 Dupont Marc 21

Schéma relationnel une BD = ensemble de relations schéma d'une BD relationnelle = un ensemble de schémas de relation: R1, R2, …, Rx schéma d'une relation = un ensemble d'attributs Ri = (A1/d1, A2/d2, …, Ay/dy) ou, plus simplement, Ri = (A1, A2, …, Ay) Objets et associations du monde réel représentés par un concept unique: la relation. Les relations sont des tableaux à 2D, appelés tables. + le concept d’attribut: monovalués et simples partiellement les mêmes notions comme EA mais ne pas toujours avec le même sens modèle utilisé dans beaucoup de SGBD commercials (Oracle, Informix, DB2, Ingres, Sybase, (dBase, Access, Approach) …)

Règles de structuration attributs: simples et monovalués (domaine de valeurs atomiques) structure plate regulière tuple x x x x x x x x x x w w w w w w INTERDIT x: une et une seule valeur atomique par attribut

Valeurs nulles Un attribut peut ne pas être valué pour un tuple: on dit alors qu'il a une valeur nulle exemple: on ne connaît ni l'age d'Annie ni le prénom de Duval 136 Dupont Jean 19 253 Aubry Annie NIL 101 Duval NIL 21 147 Dupont Marc 21

Règles d'identification Toute relation possède un identifiant (clé) il ne peut y avoir deux tuples identiques dans la même relation L'identifiant n'admet pas de valeurs nulles Etudiant N°Etud nom prénom age 136 Dupont Jean 19 253 Aubry Annie 20 101 Duval André 21 147 Dupont Marc 21

Identifiant d'une relation Une relation peut avoir plusieurs identifiants EtudPrénoms2 (N°Etud, N°Prénom, Prénom) Définition: L'identifiant d'une relation est un ensemble minimum d'attributs de la relation, tel qu'il n'existe pas 2 tuples ayant même valeur pour cet identifiant. Règle: tous les attributs de tout identifiant doivent toujours avoir une valeur connue (non nulle). Définition : ensemble minimum d'attributs de la relation, tel qu'il n'existe pas 2 tuples ayant même valeur pour cet identifiant. = ensemble minimum d'attributs tel que tous les autres en dépendent fonctionnellement. Un identifiant peut-être composé d ’1 ou ieurs attributs. Une relation peut avoir 1 ou ieurs identifiants. Une relation a nécessairement un identifiant. Exemples Etudiant (N°Etud, nom, prénom, age) => pas 2 étudiants de même numéro. La relation EtudPrénoms2 a 2 identifiants: N°Etud, N°Prénom et N°Etud, Prénom. pas de valeur inconnue (notée "?") pour un identifiant (on entre obligatoirement un numéro d'étudiant). Si on entrait 2 tuples sans N°Etud, alors il existerait 2 étudiants avec la même valeur pour l'identifiant (valeur inconnue) impossible d'après la définition de l'identifiant => Règle: tous les attributs identifiant doivent toujours avoir une valeur connue. ¨ Exemple: Insérer dans Etudiant: < ?, Dupont, Jean, 19> est une instruction que le SGBD doit refuser.

Domaines de valeurs Un domaine est un ensemble de valeurs atomiques que peut prendre un attribut (cf. EA) Exemples de domaines: Dnom : chaînes de caractères de longueur maximale 30 Dnum : entiers compris entre 0 et 99999 Dcouleur : {"bleu", "vert", "jaune"} Dâge : entiers compris entre 16 et 65

Définition d'une relation Une relation est définie par : son nom sa liste de couples <nom d'attribut : domaine> son (ses) identifiant(s) la définition de sa sémantique (phrase en français) Exemple : Etudiant (N°Etud : Dnum, Nom : Dnom, Prénom : Dnom, Age : Dâge) Identifiant: N°Etud Définition: tout étudiant actuellement immatriculé à l'EPFL Les 3 premières infos: nom de la relation, liste des couples (attribut : domaine) et identifiant(s) constituent le schéma de la relation. La population d'une relation est constituée de l'ensemble des tuples de la relation. C'est un ensemble => pas de doubles, ni ordre (les nouveaux tuples sont rajoutés à la fin de la relation). On appelle schéma d'une BD relationnelle l'ensemble des schémas de ses relations. On appelle BD relationnelle, la population de toutes ses relations.

Contraintes de modélisation Les notions d'attribut multivalué ou complexe n'existent pas dans le modèle relationnel. Il faut donc les modéliser autrement. Pour un attribut complexe, il faut choisir entre le composé ou les composants Pour un attribut multivalué, il faut créer une autre relation (ceci pour chaque attribut multivalué)

Représentation d'attribut complexe Soit Adresse : nom rue , n° , ville, NPA Solution 1: un attribut par composant: nom rue , n° , ville, NPA "Rue de Bourg", "2", "Lausanne", "1003" il est éventuellement possible de définir par ailleurs une vue restituant la notion globale d'adresse Solution 2: un attribut Adresse, domaine: chaine de caractères "Rue de Bourg 2 Lausanne 1003"

Représentation d'attribut multivalué Exemple: mémoriser les différents prénoms des étudiants INCORRECTE: Plusieurs attributs : Prénom1, Prénom2,… CORRECTE: créer une relation supplémentaire: EtudPrénoms ( Num_Etud, Prénom ) 136 Jean 136 Marie 101 André 253 Annie 253 Claudine Ou liste ordonnée: EtudPrénoms2 (N°Etud, N°Prénom, Prénom)

Identifiant externe Cours (NomC, horaire, prof) Suit (N°Etud, NomC) BD Mercredi 15-17 Duval SE Mardi 16-19 Malin Suit (N°Etud, NomC) Suit traduit un TA entre Etudiant et Cours. Elle comporte les identifiants de Etudiant et de Cours. Suit.NomC est un identifiant externe sur Cours. 253 SE 136 BD 253 BD 101 SE

Identifiants externes Décrivent des liens entre relations Suit (N°Etud : Dnum, NomC : Dnom) N°Etud référence un Etudiant NomC référence un Cours Si la relation référencée possède plusieurs identifiants, il faut préciser: N°Etud référence un Etudiant.N°Etud Vérification de l’intégrité référentielle assurée par le SGBD: les identifiants externes désignent nécessairement des tuples existants. Certains attributs référencent des tuples d'une autre relation (ou parfois de la même) => leur valeur est nécessairement = à celle de l'identifiant d'un tuple existant dans l'autre relation. Exemple: la relation Suit (NomC, N°Etud) a un identifiant (NomC + N°Etud), et 2 identifiants externes : NomC et N°Etud. CAR NomC "référence" un Cours, <=> si une valeur NomC existe dans Suit, alors il doit nécessairement exister un cours de ce nom là dans la relation Cours. De même, N°Etud "référence" un Etudiant. Le schéma d'une relation comprend donc, en plus de la définition du nom de la relation et de ses attributs et domaines associés, la définition de son (ses) identifiant, et celle de ses identifiants externes, s'il en existe. Les identifiants externes sont déclarés de la façon suivante: Suit (N°Etud : Dnum, NomC : Dnom) Identifiants externes: N°Etud référence un Etudiant NomC référence un Cours SI la relation référencée a ieurs identifiants, préciser lequel: N°Etud référence un EtudiantN°Etud ¨ Vérification automatique assurée par le SGBD : une fois déclaré l'identifiant externe W de R2 sur R1, le SGBD vérifie toutes les insertions dans R2 (il vérifie que la valeur de W existe dans R1); il vérifie de la même façon les modifications de W. Il vérifie toutes les suppressions de tuples de R1 (il vérifie qu'il n'existe pas de tuple dans R2 référençant ce tuple à supprimer). Le SGBD assure ainsi, l'intégrité de référence (ou intégrité référentielle) de la base de données.

Récapitulatif Un schéma relationnel se compose: pour chaque relation de: nom de la relation définition attributs + domaines identifiant(s) éventuellement identifiant(s) externe(s) contraintes d'intégrité associées et des autres contraintes d'intégrité qui portent sur plusieurs relations.

Exemple de schéma relationnel (FormaPerm) Domaines: Dnom : chaînes de caractères de longueur inférieure à 30 Dch100 : chaînes de caractères de longueur inférieure à 100 Dannée : [1970 : 1990 ] Dnote : [0.0 : 20.0 ] Ddate : [1 :31 ] / [1 :12 ] / [1920 :1990 ]

Relation : PersonnePrénoms Attributs: n°P : entier sans nul nom : Dnom sans nul adr : Dch100 sans nul Identifiant: (n°P ) Définition: tout étudiant et tout enseignant de l'école (état actuel). Relation : PersonnePrénoms prénom : Dnom sans nul Identifiant: (n°P + prénom ) Identifiant externe: n°P référence une Personne Définition: prénoms des personnes

car possibilité d ’avoir plusieurs Relation : Etudiant Attributs: n°P : entier sans nul n°E : entier sans nul dateN : Ddate sans nul Identifiants: (n°E ) (n°P ) Identifiant externe : n°P référence une Personne Définition: tout individu qui est actuellement inscrit à l'école, ou qui a déjà passé avec succès un des cours de l'école Relation : EtudiantEtudes Attributs: n°E : entier sans nul année : Dannée sans nul diplôme : Dnom sans nul Identifiant: (n°E + diplôme ) Identifiant externe : n°E référence un Etudiant.n°E Définition: études antérieures des étudiants car possibilité d ’avoir plusieurs diplômes la même année

Relation : Enseignant Relation : Cours Attributs: n°P : entier sans nul tel: : entier sans nul statut : Dnom sans nul banque : Dnom sans nul agence : Dnom sans nul compte : entier sans nul Identifiant: (n°P ) Identifiant externe : n°P référence une Personne Définition: tout individu assurant actuellement un ou plusieurs cours à l'école Relation : Cours Attributs: nomC : Dnom sans nul cycle : entier sans nul n°Ens : entier sans nul Identifiant: (nomC ) Identifiant externe : n°Ens référence un Enseignant Définition: tout cours actuellement offert par l'école

Relation : Obtenu Relation : Inscrit Identifiant: (n°E + nomC ) Attributs: n°E : entier sans nul nomC : Dnom sans nul note : Dnote sans nul année : Dannée sans nul Identifiant: (n°E + nomC ) Identifiants externes : n°E référence un Etudiant.n°E nomC référence un Cours Définition: l'étudiant n°E a réussi le cours nomC telle année et a obtenu telle note Relation : Inscrit Identifiant: (n°E + nomC ) Définition: actuellement, l'étudiant n°E est inscrit au cours nomC

Relation : Prérequis Attributs: nomC : Dnom sans nul nomCprérequis : Dnom sans nul Identifiant: (nomC + nomCprérequis ) Identifiants externes : nomC référence un Cours nomCprérequis référence un Cours Définition: le cours nomCprérequis est un prérequis pour le cours nomC Contrainte d'intégrité: dans tout tuple, nomCprérequis doit être différent de nomC

Contraintes d'intégrité Pour tout tuple de Prérequis <nomC, nomCprérequis>, le cycle de nomCprérequis dans Cours doit être inférieur ou égal à celui de nomC: <x,y> in Prérequis => x.cycle  y.cycle Pour tout tuple de EtudiantEtudes <n°E , année, diplôme>, soit dateN la date de naissance des étudiants dans la relation Etudiant, alors: dateN < année: <x,y,z> in EtudiantEtudes, <a,x,d> in Etudiant => d < y

Contraintes d'intégrité Pour tout tuple de Etudiant: cette-année - dateN  18, où cette-année est une variable SGBD Pour tout tuple de Obtenu <n°E, nomC, note, année>, soit dateN la date de naissance de l'étudiant dans la relation Etudiant, alors: dateN + 18  année Pour tout tuple de Inscrit <n°E, nomC>, le n°E doit exister dans Obtenu associé à tous les cours existant dans Prérequis associés à nomC.