Modélisation et utilisation Aurélien Marion1 Aurélien Marion
Ensembles de tableaux (tables) de valeurs Objectifs : Stocker des (grandes masses de) données Structurer des données (Entity-Relationship Modeling) Permettre à un programme d’accéder à ces données : Valeurs Tri Recoupement Aurélien Marion2
Modèle logique : Entité A -Attribut 1 -Attribut 2 … Modèle physique : Instance 3 de A -Attribut 1 → valeur 1 -Attribut 2 → valeur 2 … Instance 2 de A -Attribut 1 → valeur 1 -Attribut 2 → valeur 2 … Instance 1 de A -Attribut 1 → valeur 1 -Attribut 2 → valeur 2 … Entités Instances A Attribut 1Attribut 2… Valeur 1Valeur 2… Valeur 1Valeur 2… Valeur 1Valeur 2… Entité Instance 1 Instance 2 Instance 3 Base de données : Table Aurélien Marion3
ID est un identifiant → identifie de manière unique l’instance Nom, Prénom, Promotion sont des descripteurs ID, Nom, Prénom, Promotion sont tous des attributs Étudiant IDNomPrénomPromotion 42MarionAurélien PoneyBob2001 … Étudiant -ID -Nom -Prénom -Promotion LogiqueBase de données Aurélien Marion4
Ou encore, avec un attribut de relation : Étudiant -ID -Nom -Prénom -Promotion Chambre -Numéro -… Étudiant -ID -Nom -Prénom -Promotion Chambre -Numéro -… Est occupée par Occupe date Aurélien Marion5
Combien d’instances d’une entité participent à une relation ? Représentation : (m,M) où : m = 0 ou 1 M = 1 ou n Exemple : Étudiant -ID -Nom -Prénom -Promotion Chambre -Numéro -… Est occupée par (0,1) (0,n) Aurélien Marion6
Modèle logique Modèle physique Entités 1 entité → 1 tableau 1 attribut → 1 colonne Cardinalités Relations simples Relation n/n Aurélien Marion7
Relations (.,1) ― (.,.) Logique Physique Étudiant -ID -Nom -Prénom -Promotion -N° chambre -Date d’arrivée Chambre -N° chambre -… Étudiant -ID -Nom -Prénom -Promotion Chambre -N° chambre -… Occupe Date d’arrivée (0,1)(0,n) Aurélien Marion8
Situation : Étudiant -ID Étudiant -Nom -Prénom -Promotion Professeur -ID Professeur -Nom -Prénom Enseigne Matière (0,n) Logique Physique Étudiant -ID Étudiant -Nom -Prénom -Promotion Professeur -ID Professeur -Nom -Prénom Étudiant-Professeur -ID Professeur -ID Étudiant -Matière Aurélien Marion9
Modèle logique Modèle physique AbstractionImplémentation Base de Données Application (site web, …) Utilisateur Aurélien Marion10
S.Q.L. = Structured Query Language Opérations de base : CREATE :crée une table SELECT :demande des données INSERT :ajoute des données (instances) DELETE :supprime des données UPDATE :modifie des données DROP :Supprime une table Aurélien Marion11
SELECT attribut_1, …, attribut_n FROM table_1, …, table_p WHERE attribut_1 >= ‘valeur1’ AND attribut_2 = attribut_7 INNER JOIN autre_table ON attribut_5 = autre_attribut_4 AND autre_attribut_2 = ‘valeur2’ ORDER BY attribut_8 DESC, attribut_2 optionnel Aurélien Marion12
SELECT * FROM Etudiant WHERE promotion <= 2015 Etudiant idnomprenompromotionn_chambre 42DugenouEvariste2017A PoneyBob2001D504 … SELECT id, promotion FROM Etudiant WHERE n_chambre = ‘A001’ ORDER BY nom, prenom Si il y a ambiguïté : table.attribut Aurélien Marion13
Étudiant -ID -Nom -Prénom -Promotion Association -ID -Nom Est dans fonction (0,n)(1,n) Logique Physique Étudiant -ID -Nom -Prénom -Promotion Étudiant-Association -ID_Assoce -ID_Étudiant -fonction Association -ID -Nom SELECT Etudiant.Nom, Etudiant.Prenom FROM Etudiant, Etudiant-Association, Association WHERE (fonction = ‘root’ OR fonction = ‘diff’) AND Association.Nom = ‘VIA’ AND Etudiant.ID = Etudiant-Association.ID_Etudiant AND Association.ID = Etudiant-Association.ID_Assoce Requête Aurélien Marion14