Bases de données
Plan du cours Base de données et SGBD Modèle Entité-Relation Modèle relationnel et algèbre relationnelle Langages d’interrogations pour bases de données relationnelles La normalisation des relations Application
Définitions Base de données (BD)(DB) : ensemble de données conservées à long terme sur un ordinateur Caractéristiques : grandes quantités / interrogation & modification aisées. Distinction entre schéma (plan) et instance (extension) un ensemble de données structurées et intercorrélées, enregistrées avec le minimum de redondance et pouvant être traitées par une ou plusieurs applications, de façon optimale. La BD contient également la description de ses données. Système de Gestion de Base de Données (SGBD) (DBMS): programme qui permet la définition, la mise en œuvre, et l’exploitation d’une BD (à un niveau plus abstrait que celui fournit par les OS usuels (gestion de fichiers)). un ensemble de logiciels permettant aux utilisateurs de définir, créer, maintenir, contrôler et accéder à la BD Schéma d’organisation de la BD; description du type et de l’organisation des données Instance (extension) : contenu réel de la BD à un moment donné L’extension d’une BD varie dans le temps mais pas son schéma. Par rapport à un système de gestion de fichiers, il offre en plus : - le support d’un modèle de données - le support de langages de haut niveau pour la définition de la structure des données, l’accès et la manipulation des données - la gestion de transactions : parallélisme des opérations sur la base de données - le contrôle d’accès : restrictions d’accès et vérification de la validité des données - la capacité de récupération en cas de panne
Les principales fonctions d’un SGBD Stockage de données persistantes, très grands volumes (plusieurs Go (109), Tera-o (1012)), avec des structures flexibles Langages de définition de données, d'interrogation et de manipulation Catalogue accessible aux utilisateurs Gestion des autorisations, des transactions et des accès concurrents Gestion de l'intégrité des données Outils divers programmation, développement, administration, communication, aide à la décision, … Les vrais SGBD sont rares Avancées significatives / systèmes de fichiers
Les principales composantes d'un SGBD Utilisateurs Utilisateur Utilisateurs Application Administrateur DDL (langage de description de données) Processeur de requêtes Gestionnaire de transactions Moteur d'exécution Journalisation Gestionnaire d'index, relations, tuples Gestion des accès concurrents Gestionnaire de stockage Métadonnées Données
Niveaux d’abstraction Essentiellement trois niveaux : Vue de l’utilisateur BD conceptuelle (indépendance logique) Organisation des données de la BD BD physique (indépendance physique) Sur disque, fichiers … Note : Indépendance si une modification à un niveau (par ex. améliorer l’efficacité) ne nécessite pas de modification du niveau supérieur
Modèle Entités-Relations Une BD est constituée d’un ensemble d’entités : ensembles d’objets de même structure de relations entre (certains de) ces ensembles, i.e., un sous-ensemble du produit cartésiens de (certains de) ces ensembles. L’extension de chaque relation contient un certain nombre d’éléments appelés k-tuples (k = degré de la relation).
I. Modèle Entités - Relations
2 - Modèle Entités - Relations Contenu Concepts de base Entités, attributs Relations Clés Multiplicités, cardinalités Concepts avancés Héritage Agrégation, Composition Entités faibles
Modèle Entités-Relations Un ensemble d’entités est décrit par un nom et un type (liste des attributs) De même une relation est décrite par un nom et un type (liste ordonnées des noms d’ensemble d’entités).
Rôle & Cardinalité La participation d’un ensemble d’entités à une relation est son rôle Pour chaque ensemble d’entités participant à une relation, i.e., pour chaque rôle d’un ensemble d’entités, on précise – par un intervalle (min,max) - dans combien de tuples de la relation, chaque entité peu apparaître. En général, min = 0 ou 1 max = 1 ou (noté N ou *) Remarque 1 : pour un rôle donné, si la cardinalité min > 0, la participation de l’ensemble d’entités à la relation est dite totale dans la relation. min = 0, la participation est dite partielle Remarque 2 : on utilise parfois des quotients de cardinalité, principalement : one-one (biunivoque), noté 1:1 (bijection) one-many, noté 1:N many-one (univoques), noté N:1 (fonction) many-many, noté N:N
Diagramme Entités-Relations Employés_Université Exemple 1 (0,N) enseignant Le but d’un diagramme entités-relations est de représenter le schéma de la BD (par opposition à son extension). Notation : Ensemble d’entités : nom dans un rectangle Relation : nom dans un losange ou un hexagone + liens vers les ensembles participants à la relation Lien : étiqueté par le nom du rôle correspondant et la cardinalité. Enseigne (1,1) cours enseigné Cours_Université
Objectif du modèle de données 2 - Modèle Entités - Relations Objectif du modèle de données Apporter une interprétation du contexte applicatif en soulignant les aspects fondamentaux en négligeant les détails Identifier les données gérées par la base de données et leur relations Produire un diagramme, suivant un formalisme, en vue de convertir le modèle de données en schéma de base relationnelle Modèle Entité-Relation Systèmes Relationnels RÉALITÉ modeling mapping
Entités et ensembles d'entités 2 - Modèle Entités - Relations Entités et ensembles d'entités Entité "une chose" qui existe et qui peut être distinguée de façon unique. Ex.: un étudiant, une voiture, une banque abstraite ou concrète Ensemble d'entités Une collection d'entités similaires, ayant les mêmes propriétés, identifiées par l’ "organisation" ("entreprise" en sens large) comme ayant une vie propre Ex.: les étudiants d'une université, les comptes d'une banque, les entreprises d'un pays, les voitures d'une société de location … Remarque: s'il n'y a pas d'ambiguïté, on utilise le terme "entité" pour indiquer un ensemble d'entités.
Représentation sous forme de diagramme 2 - Modèle Entités - Relations Attributs Attribut propriété d’une entité prend des valeurs simples, par exemple entiers ou chaînes de caractères (domaine d'attribut) Ensemble d'Entités Attributs Domaines Voitures n°série entier (12) marque chaîne de car. (8) type chaîne de car. (10) voitures n°série marque type Représentation sous forme de diagramme
Clé des ensembles d'entités 2 - Modèle Entités - Relations Clé des ensembles d'entités clé candidate: un ensemble minimal d’attributs qui identifie de façon unique une occurrence d’entité clé primaire: une clé candidate choisie pour identifier de façon unique chaque occurrence d’entité clé composée: une clé candidate composée de deux ou plusieurs attributs n°d nom_d type n°série marque département voitures Clés candidates K1 = n°d K2 = nom_d Clé primaire K = n°d Clé primaire K = n°série
Relations Une relation relie deux ou plusieurs ensembles d'entités 2 - Modèle Entités - Relations Relations Une relation relie deux ou plusieurs ensembles d'entités Ex.: Des universités délivrent des diplômes Des étudiants sont inscrits dans des universités nom_u n°d titre n°u délivre université diplôme inscription nom_e n°e étudiant prénom_e
2 - Modèle Entités - Relations Ensemble de relations La "valeur" d'une relation est l'ensemble des listes des entités réellement associées par la relation. Chaque liste est obtenue en correspondance des ensembles d'entités en relation. Exemple: valeur de la relation "délivre" - l'université identifiée par u1 délivre les diplômes identifiés par d2, d3 et d5, … l'université identifiée par u100 par d1 et d2 n°u n°d u1 d2 u1 d3 u1 d5 …. … u100 d1 u100 d2
Ensemble de relations (2) 2 - Modèle Entités - Relations Ensemble de relations (2) Soit r une relation entre k ensembles d'entités E1, E2, …, Ek. Un ensemble d'entités peut apparaître plus d'une fois dans la liste. Soit un k-uplet (e1, ... ek) Î r e1 Î E1, ... ek Î Ek sont associés par la relation r e1, ... ek est dit tuple de r k est le degré de la relation K = 1 : relation unaire (ou récursive, sur un même ensemble d'entités) K = 2 : relation binaire K = 3 : relation ternaire … K = n : relation n-aire
2 - Modèle Entités - Relations Relations n-aires Une relation connectant plus de 2 ensembles d'entités permet de restreindre les combinatoires entre les valeurs des entités en relation Ex.: des employés participent à des projets avec des rôles nom_p n°p n°p n°e n°r p1 e2 r1 p1 e3 r2 p1 e5 r3 … … … p2 e2 r2 p2 e3 r1 projet n°r descr_r participe rôle n°e employé prénom_e nom_e
Exercices Donner des exemples de relations de type (1), (2) et (3) r A 2 - Modèle Entités - Relations Exercices Donner des exemples de relations de type (1), (2) et (3) r A B r r A A B C (1) (2) (3)
Type des relations binaires 2 - Modèle Entités - Relations Type des relations binaires Soit r une relation binaire Le type de r est lié au nombre d’occurrences d’une entité qui peuvent être associées avec une occurrence de l'autre entité E1 r E2
2 - Modèle Entités - Relations Relations de type m-n Dans une relation "plusieurs à plusieurs" ("many-many", m-n), une entité de chaque ensemble peut être connectée à plusieurs entités de l'autre ensemble n°p titre n°e nom_e projets employés participe (n-m) employés projets
2 - Modèle Entités - Relations Relations de type 1-n Dans une relation "un à plusieurs" ("one-many", 1-n), une entité d'un ensemble peut être connectée à au plus une entité du second ensemble mais une entité du second ensemble peut ne pas être connecté à aucune entité du premier ensemble, ou être connectée à une ou plusieurs entité de cet ensemble nom_f type n°f n°série produit fabriquants voitures fabriquants voitures (1-n)
Relations de type 1-1 Dans une relation "un à un" ("one-one", 1-1), 2 - Modèle Entités - Relations Relations de type 1-1 Dans une relation "un à un" ("one-one", 1-1), une entité de chaque ensemble peut être connectée à au plus une entité de l'autre ensemble Exemple: une BD pour l'administration d'un pays une personne possède au plus un passeport et un passeport a un seul titulaire nom_p date_emission n°p n°pass possède personnes passeport personnes passeports (1-1)
Synthèse sur les types des relations 2 - Modèle Entités - Relations Synthèse sur les types des relations A B A B A B 1-n n-m 1-1
2 - Modèle Entités - Relations Exercice Trouver des exemples de relations de type 1-n, n-m, 1-1. Pour chaque exemple, spécifier les entités A et B, en indiquant leurs attributs et clés, ainsi que la relation r. r A B
2 - Modèle Entités - Relations Attributs de relation Propriétés dont la valeur dépend des tuples dans l'ensemble de relations. n°p nom_p n°c date_c produit commande concerne quantité
2 - Modèle Entités - Relations Exercice Trouver un exemple de relation binaire r: r associe les entités A et B, et est munie d'un attribut C. Comparer les diagrammes (3) et (4). r A B C (4)
Cardinalités Les BD sont conçues dans l'hypothèse du "monde fermé" 2 - Modèle Entités - Relations Cardinalités Les BD sont conçues dans l'hypothèse du "monde fermé" Les ensembles d'entités sont FINIS !! Cardinalités Couples (min, max) associés à chaque ensemble d'entité relié par une relation r Si r est binaire, entre E1 et E2: le min (resp. max) associé à Ei (i=1,2) représente le nombre minimum (resp. max) d'entités de Ej (j=2,1) associées à un élément quelconque de Ei. Si r est n-aire: le nombre d’occurrences possibles d’entités associées dans cette relation quand les autres (n-1) valeurs sont fixées Min Max 0 1 1 n
Exemples nom_f type n°f n°série 1,n produit 1,1 fabriquant voitures 2 - Modèle Entités - Relations Exemples nom_f type n°f n°série 1,n produit 1,1 fabriquant voitures (1-n) nom_e titre n°p n°e 0,n 1,n participe employé projet (n-m)
Exemples nom_p date_emission n°p n°pass 0,1 possède 1,1 personne 2 - Modèle Entités - Relations Exemples nom_p date_emission n°p n°pass 0,1 possède 1,1 personne passeport (1-1) est composée de n°pièce 0,n quantité nom_p pièce 0,n compose
Exemple nom_p n°p projet n°r descr_r 1,n participe rôle n°e 0,n 2 - Modèle Entités - Relations Exemple n°r descr_r n°p nom_p rôle n°e nom_e prénom_e participe projet employé 1,n 0,n
Diagramme E-R - Exercices Représenter un diagramme E-R d’une BD de personnes liées par des liens de paternité Modéliser le fait que des clients peuvent passer des commandes à une centrale d’achat (qui possède la BD). Cette dernière a des fournisseurs habituels pour les différents produits possibles et décide par quel fournisseur quel produit doit être livré.
ER vers R
Algèbre Relationnelle