Modélisation d’une base de données François Jacquenet Professeur d'Informatique Faculté des Sciences Laboratoire Hubert Curien – UMR CNRS 5516 18 rue Benoit Lauras 42023 Saint-Etienne cedex 2 Tél : 04 77 91 58 07 e-mail : Francois.Jacquenet@univ-st-etienne.fr Web : http://eurise.univ-st-etienne.fr/~fj Licence de Sciences et Techniques Unité d’enseignement BASES DE DONNEES Modélisation d’une base de données
Qu’avons nous appris la semaine dernière ? Mais avant : Qu’avons nous appris la semaine dernière ?
Aujourd’hui nous verrons Cycle de vie d’une Base de Données Modèle conceptuel Modèle entité-association et plus particulièrement les notions de type d’entités type d’associations Attributs cardinalité identifiant contraintes d’intégrité
Cycle de vie d’une base de données Schéma conceptuel Personne Voiture Personne conduit Voiture Monde réel Concepteur Table Personne Table Voiture Table Conduit … BD Personne Dupont Durant Rochat … Voiture Ford KA Peugeot 106 Toyota yaris … Schéma logique Utilisateurs LMD
Ce qui nous intéresse aujourd’hui La modélisation conceptuelle Personne Voiture Monde réel Concepteur Personne Voiture conduit C’est-à-dire : la définition du schéma conceptuel de la base de données Schéma conceptuel
Culture générale Cycle de vie du logiciel (modèle en cascade) Analyse des besoins Spécification Conception générale Conception détaillée Codage Tests Distribution Maintenance
Modéliser les données Modèle de données = ensemble de concepts permettant la description et la manipulation des données du monde réel règles d’utilisation de ces concepts Ces concepts décrivent les aspects Statiques : structure des données Dynamiques : opérations sur les données + contraintes explicites Schéma = description de la BD obtenue en utilisant un modèle de données
Pourquoi la modélisation conceptuelle ? Objectif: représenter la réalité telle qu'elle est perçue par les utilisateurs Contrairement aux modèles logiques qui décrivent la réalité en fonction du modèle du SGBD Représentation à l’aide de la trilogie de base objets liens propriétés
Avantages de la modélisation conceptuelle L’attention est portée sur les applications Indépendante des technologies Portabilité Longévité Orientée utilisateur Compréhensibilité Support du dialogue concepteurs / utilisateurs Permet la collaboration et la validation par les utilisateurs
Avantages de la modélisation conceptuelle Spécifications formelles, non ambiguës, Puissance des concepts Support d’interfaces visuelles (lisibilité) Diagrammes de définition de données Manipulation de données Facilite les échanges d’informations entre SGBD différents
est un facteur critique TRES IMPORTANT La qualité de la conception de la BD est un facteur critique de réussite
Culture générale Importance des premières étapes dans le cycle de vie du logiciel Analyse des besoins Spécification Conception générale Conception détaillée Codage Tests Distribution Maintenance
Elaboration d’un schéma conceptuel Analyse du monde réel Identification des phénomènes à représenter dans la BD délimitation de l’univers du discours Représentation à l’aide des concepts du modèle contenu structure règles dynamique Représentation Partielle Infidèle et Subjective
Abstraction De la réalité perçue à la représentation: Faire abstraction des particularités permet de passer des objets aux types ou classes d'objets Marielle Fabien Claire ... Camille Type d’objet: Personne propriétés: - nom, - âge, ...
Définition d’un schéma Un schéma est une collection de types d’entité <-> objets d’association <-> liens La bases de données contiendra les valeurs représentant les instances de ces types Personne Voiture Possède Est-marié-avec
Divers types de modèles conceptuels Entité-Association (EA) - (ER: Entity-Relationship) UML (Unified Modelling Language - cf Master 1) MERISE (cf cours de Systèmes d’Information en L2) ...
Ensemble d’objets perçus comme similaires Vocabulaire Le monde réel Abstraction / Description Diagramme Ensemble d’objets perçus comme similaires Etudiant étudiants Base de données Schema Type d'objet Étudiant: -nom -prénoms -date de naissance -section -année Instances ou occurrences Population
(entity-relationship) ET MAINTENANT Le modèle Entité Association (entity-relationship)
Généralités C’est un modèle conceptuel Conçu par Chen en 1976
A quoi ressemble un schéma conceptuel ? chef Chef de Employé Fournisseur subord. nom salaire NomF adresse Livré par Affecté quantité Vend Rayon Article NomR étage quantité NomA type
On y voit des rectangles chef Chef de Employé Fournisseur subord. nom salaire NomF adresse Livré par Affecté quantité Vend Rayon Article NomR étage quantité NomA type
On y voit des losanges Chef de Employé Fournisseur subord. nom salaire NomF adresse Livré par Affecté quantité Vend Rayon Article NomR étage quantité NomA type
On y voit des traits étranges chef Chef de Employé Fournisseur subord. nom salaire NomF adresse Livré par Affecté quantité Vend Rayon Article NomR étage quantité NomA type
On y voit des mots reliés aux rectangles par des traits chef Chef de Employé Fournisseur subord. nom salaire NomF adresse Livré par Affecté quantité Vend Rayon Article NomR étage quantité NomA type
On y voit des mots reliés aux losanges par des traits chef Chef de Employé Fournisseur subord. nom salaire NomF adresse Livré par Affecté quantité Vend Rayon Article NomR étage quantité NomA type
Modèle de type conceptuel But : permettre la description conceptuelle des structures de données d'une application Les concepts de base (qui correspondent aux concepts d’abstraction de la réalité): objet <=> entité lien <=> association (relationship) propriété <=> attribut en plus : la représentation multiple
Entité et Type d’entités représentation d’un objet du monde réel ayant une existence propre Type d'entités (TE) : représentation d'un ensemble d'entités perçues comme similaires et ayant les mêmes caractéristiques Marielle Fabien Claire ... Camille Personne
Association et type d’associations Association : représentation d'un lien non orienté entre plusieurs entités (qui jouent un rôle déterminé) Type d'associations (TA) : représentation d'un ensemble d'associations ayant la même sémantique et décrites par les mêmes caractéristiques Personne Maison achète achète est une association entre une personne et une maison
Rôles d’une association achète Personne Maison ACHETEUR ACHETÉ Dans une association, chaque entité joue un rôle déterminé Association binaire deux rôles
Association cyclique Une association est cyclique lorsque deux rôles (au moins) lient le même type d’entité marié à est une association entre une personne et une autre personne problème : comment savoir, dans un couple, qui est le mari et qui est la femme ? exemple : <Dupont Dominique, Dupont Dominique> marié à Personne
Association cyclique, rôles nommés Solution : spécifier le rôle de chaque entité marié à est une association entre une personne qui est une femme et une autre personne qui est son mari exemple : <Dupont Dominique / femme, Dupont Dominique / mari> Personne marié à femme mari
Association ternaire achète Client Produit Fournisseur achète est une association (ternaire) entre un client, un fournisseur et un produit
Association ternaire cyclique Emprunteur Emprunt Personne Banque Garant
Population d’un TE et TA achète Personne Maison
Cardinalité des rôles Possède Combien de voitures minimum une personne peut-elle possèder ? Combien de voitures maximum une personne peut-elle possèder ? Personne Voiture Possède min:max Personne
Contraintes de cardinalités Une personne peut ne pas avoir de voiture, en avoir une, deux, ..., n Une voiture à un et un seul propriétaire Possède Personne 0:n Possède Personne 0:n 1:1 Voiture
Population d’un TE et TA achète Personne 0:n 1:1 Maison
Valeurs et notations des cardinalités Minimum Maximum 0 1 1 1 0 n 1 n n m Possède Personne Voiture
Autres notations possibles Pour les liens 0:1 1:1 0:n 1:n m:n
Association ternaire, cardinalité Plus difficiles à lire sur le schéma Nombre min et max d’occurrences du TA qui peuvent lier une occurrence donnée du TE Assure Personne Voiture N°secu N°imm. Compagnie Assurance Nom
Les attributs Ils décrivent les propriétés associées à: un type d’entité un type d’association un autre attribut femme Marié à Personne mari Date_mariage nom prénom salaire jour mois année Domaine [1,31]
Attributs simples simple (atomique) : non décomposable Exemples : jour, prénom Le domaine de valeurs est constitué de valeurs atomiques Exemple : jour domaine de valeurs = {1, 2, …., 31} Domaines prédéfinis standard, intervalles, énumérés
Attributs complexes Complexe : décomposé en d'autres attributs Exemples date qui se décompose en jour, mois, année adresse qui se décompose en rue, ville, code postal Un attribut complexe ne porte pas de valeur propre (pas de domaine directement associé) La valeur d'un attribut complexe est la composition des valeurs de ses attributs composants. Un composant d'attribut complexe peut être lui-même un attribut complexe.
Attributs obligatoires ou facultatifs Obligatoire : une valeur au moins par occurrence (cardinalité min1). Exemples : nom, prénoms Facultatif : peut ne pas prendre de valeur (cardinalité min=0). Exemples : salaire, téléphones
Attributs mono ou multi-valués monovalué : une seule valeur par occurrence (cardinalité max=1) Exemples: date de naissance, numéro sécu multivalué : plusieurs valeurs par occurence (cardinalité max>1). Exemples: prénoms, téléphones Une valeur d'attribut multivalué est un ensemble ou une liste ou un multi- ensemble de valeurs, prises chacune dans le domaine de valeurs associé à l'attribut.
Attributs, cardinalité min : caractère facultatif ou obligatoire de l’attribut max : caractère mono-valué ou multi-valué de l’attribut Même notation pour les attributs que pour les cardinalités des rôles Exemples nom d’une personne prenoms téléphone fixe téléphone mobile 1:1 1:n 0:1 0:n
Attributs, exemple Employé Rappel : 0:n m:n 0:1 1:n 1:1 liste No-emp nom prénoms CV postes diplôme année intitulé salaires date-début date-fin simple obligatoire monovalué complexe, facultatif, multivalué de type ensemble montant date année mois simple, obligatoire, multivalué de type liste Rappel : 0:n 0:1 m:n 1:n 1:1
Attributs, exemple ( technicien, (1500, 1997, 10) (1600, 1999, 10) (1700, 2000, 10) ’01/01/1997’, ’31/12/2001’ ), (analyste, (2500, 2000, 06) (2800, 2001, 06) ’01/01/2000’, ’31/12/2002’ ), (chef_de_projet, (3500, 2002, 10) ’01/01/2002’, ’31/12/2003’ ) /* intitulé /* salaires /* date début /* date fin postes intitulé salaires date-début date-fin montant date année mois
Autres notations existantes Pour les entités et leurs attributs Employé Employé nom salaire nom salaire Employé nom salaire
Identifiants de TE et TA Nécessité de pouvoir désigner une entité (une association) de façon univoque Identifiant: Ensemble minimal d'attributs tel qu'il n'existe pas deux instances du TE (TA) où ces attributs aient la même valeur
Exemple : Identifiants du TE employé liste N°emp nom prénoms CV postes Il n’y a pas deux employés qui ont le même numéro Il n’y a pas deux employés qui ont à la fois le même nom et les mêmes prénoms diplôme année intitulé salaires date-début date-fin montant date année mois Deux identifiants possible : N°emp ou nom+prénoms
Identifiant d’un TA 1ère possibilité : attribut(s) propre(s) Commande Client Produit N°client nom N°commande date quantité N°produit nom Identifiant du type d’associations commande = N°commande
Identifiant d’un TA 2ème possibilité : des identifiants de TE liés Inscrit Etudiant Cours N°carte nom note N°cours intitulé Identifiant du type d ’association Inscrit = Etudiant.N°carte + Cours.N°cours
Identifiant d’un TA 3ème possibilité : des identifiants de TE liés + attribut(s) propre(s) Commande Client Produit N°client nom date quantité N°produit nom (Un client peut commander le même produit plusieurs fois à des dates différentes) Identifiant du type d’association Commande = Client.N°client + Produit.N°produit + Commande.date
Identifiant d’un TA 4ème possibilité : Tout rôle monovalué induit un identifiant du TA (l’identifiant du TE lié est aussi identifiant du TA) Assure Personne Voiture N°secu N°imm Compagnie Assurance Nom Identifiant du TA Assure = Voiture.N°imm
Identifiant d’un TA cyclique Comme pour les autres Type d’Associations femme marié à Personne mari date_mariage nom prénom salaire jour mois année Deux rôles monovalués deux identifiants pour le TA marié à 1) Personne/femme.nom 2) Personne/mari.nom
Identifiant de TE faible Un TE qui ne peut être identifié par ses seuls attributs propres est appelé TE faible Existe Livre Exemplaire N°ISBN titre date-achat N°exemp état Identifiant du TE Exemplaire = Livre.N°ISBN + N°exemp Identifiant du TA Existe = Livre.N°ISBN + N°exemp
Exemple de conception Un client qui s'inscrit à la bibliothèque verse une caution. Suivant le montant de cette caution il aura le droit d'effectuer en même temps 10 emprunts au maximum. Les emprunts durent au maximum 15 jours Un livre est caractérisé par son numéro dans la bibliothèque (identifiant), son titre, son éditeur et son (ses) auteur(s). On veut pouvoir obtenir, pour chaque client les emprunts qu'il a effectués (nombre, numéro et titre du livre, date de l'emprunt). Toutes les semaines, on édite la liste des emprunteurs en retard : nom et adresse du client, date de l'emprunt, numéro(s) et titre du (des) livre(s) concerné(s). On veut enfin pouvoir connaître pour chaque livre sa date d'achat et son état.
Idée générale de la démarche Dans le texte, identifier les objets ayant une existence propre Parmi eux, trouver ceux ayant un intérêt pour au moins un traitement de l’application. Ce sont alors les types d’entités D’après le texte, trouver les attributs des types d’entités Découvrir les types d’associations permettant de lier les types d’entités
Objets ayant une existence propre Un client qui s'inscrit à la bibliothèque verse une caution. Suivant le montant de cette caution il aura le droit d'effectuer en même temps 10 emprunts au maximum. Les emprunts durent au maximum 15 jours Un livre est caractérisé par son numéro dans la bibliothèque (identifiant), son titre, son éditeur et son (ses) auteur(s). On veut pouvoir obtenir, pour chaque client les emprunts qu'il a effectués (nombre, numéro et titre du livre, date de l'emprunt). Toutes les semaines, on édite la liste des emprunteurs en retard : nom et adresse du client, date de l'emprunt, numéro(s) et titre du (des) livre(s) concerné(s). On veut enfin pouvoir connaître pour chaque livre sa date d'achat et son état.
Les types d’entités Objets ayant une existence propre et ayant un intérêt pour au moins un traitement de l’application Auteur Bibliothèque Livre ? Editeur Client
Objets ayant une existence propre Un client qui s'inscrit à la bibliothèque verse une caution. Suivant le montant de cette caution il aura le droit d'effectuer en même temps 10 emprunts au maximum. Les emprunts durent au maximum 15 jours Un livre est caractérisé par son numéro dans la bibliothèque (identifiant), son titre, son éditeur et son (ses) auteur(s). On veut pouvoir obtenir, pour chaque client les emprunts qu'il a effectués (nombre, numéro et titre du livre, date de l'emprunt). Toutes les semaines, on édite la liste des emprunteurs en retard : nom et adresse du client, date de l'emprunt, numéro(s) et titre du (des) livre(s) concerné(s). On veut enfin pouvoir connaître pour chaque livre sa date d'achat et son état.
Les types d’entités Objets ayant une existence propre et ayant un intérêt pour au moins un traitement de l’application Auteur Bibliothèque Livre ? Editeur Client
Objets ayant une existence propre Un client qui s'inscrit à la bibliothèque verse une caution. Suivant le montant de cette caution il aura le droit d'effectuer en même temps 10 emprunts au maximum. Les emprunts durent au maximum 15 jours Un livre est caractérisé par son numéro dans la bibliothèque (identifiant), son titre, son éditeur et son (ses) auteur(s). On veut pouvoir obtenir, pour chaque client les emprunts qu'il a effectués (nombre, numéro et titre du livre, date de l'emprunt). Toutes les semaines, on édite la liste des emprunteurs en retard : nom et adresse du client, date de l'emprunt, numéro(s) et titre du (des) livre(s) concerné(s). On veut enfin pouvoir connaître pour chaque livre sa date d'achat et son état.
Les types d’entités Objets ayant une existence propre et ayant un intérêt pour au moins un traitement de l’application Auteur Bibliothèque Livre Editeur Client ?
Objets ayant une existence propre Un client qui s'inscrit à la bibliothèque verse une caution. Suivant le montant de cette caution il aura le droit d'effectuer en même temps 10 emprunts au maximum. Les emprunts durent au maximum 15 jours Un livre est caractérisé par son numéro dans la bibliothèque (identifiant), son titre, son éditeur et son (ses) auteur(s). On veut pouvoir obtenir, pour chaque client les emprunts qu'il a effectués (nombre, numéro et titre du livre, date de l'emprunt). Toutes les semaines, on édite la liste des emprunteurs en retard : nom et adresse du client, date de l'emprunt, numéro(s) et titre du (des) livre(s) concerné(s). On veut enfin pouvoir connaître pour chaque livre sa date d'achat et son état.
Les types d’entités Objets ayant une existence propre et ayant un intérêt pour au moins un traitement de l’application Auteur Bibliothèque Livre ? Editeur Client
Objets ayant une existence propre Un client qui s'inscrit à la bibliothèque verse une caution. Suivant le montant de cette caution il aura le droit d'effectuer en même temps 10 emprunts au maximum. Les emprunts durent au maximum 15 jours Un livre est caractérisé par son numéro dans la bibliothèque (identifiant), son titre, son éditeur et son (ses) auteur(s). On veut pouvoir obtenir, pour chaque client les emprunts qu'il a effectués (nombre, numéro et titre du livre, date de l'emprunt). Toutes les semaines, on édite la liste des emprunteurs en retard : nom et adresse du client, date de l'emprunt, numéro(s) et titre du (des) livre(s) concerné(s). On veut enfin pouvoir connaître pour chaque livre sa date d'achat et son état.
Les types d’entités Objets ayant une existence propre et ayant un intérêt pour au moins un traitement de l’application Auteur Bibliothèque Livre Editeur Client ?
Objets ayant une existence propre Un client qui s'inscrit à la bibliothèque verse une caution. Suivant le montant de cette caution il aura le droit d'effectuer en même temps 10 emprunts au maximum. Les emprunts durent au maximum 15 jours Un livre est caractérisé par son numéro dans la bibliothèque (identifiant), son titre, son éditeur et son (ses) auteur(s). On veut pouvoir obtenir, pour chaque client les emprunts qu'il a effectués (nombre, numéro et titre du livre, date de l'emprunt). Toutes les semaines, on édite la liste des emprunteurs en retard : nom et adresse du client, date de l'emprunt, numéro(s) et titre du (des) livre(s) concerné(s). On veut enfin pouvoir connaître pour chaque livre sa date d'achat et son état.
Les types d’entités Objets ayant une existence propre et ayant un intérêt pour au moins un traitement de l’application Auteur Bibliothèque Livre Editeur Client
Les attributs du TE livre Un client qui s'inscrit à la bibliothèque verse une caution. Suivant le montant de cette caution il aura le droit d'effectuer en même temps 10 emprunts au maximum. Les emprunts durent au maximum 15 jours Un livre est caractérisé par son numéro dans la bibliothèque (identifiant), son titre, son éditeur et son (ses) auteur(s). On veut pouvoir obtenir, pour chaque client les emprunts qu'il a effectués (nombre, numéro et titre du livre, date de l'emprunt). Toutes les semaines, on édite la liste des emprunteurs en retard : nom et adresse du client, date de l'emprunt, numéro(s) et titre du (des) livre(s) concerné(s). On veut enfin pouvoir connaître pour chaque livre sa date d'achat et son état.
TE livre et ses attributs 1:1 titre Livre numéro liste auteurs 1:n état date-achat éditeur
Les attributs du TE client Un client qui s'inscrit à la bibliothèque verse une caution. Suivant le montant de cette caution il aura le droit d'effectuer en même temps 10 emprunts au maximum. Les emprunts durent au maximum 15 jours Un livre est caractérisé par son numéro dans la bibliothèque (identifiant), son titre, son éditeur et son (ses) auteur(s). On veut pouvoir obtenir, pour chaque client les emprunts qu'il a effectués (nombre, numéro et titre du livre, date de l'emprunt). Toutes les semaines, on édite la liste des emprunteurs en retard : nom et adresse du client, date de l'emprunt, numéro(s) et titre du (des) livre(s) concerné(s). On veut enfin pouvoir connaître pour chaque livre sa date d'achat et son état.
Le TE client et ses attributs numéro Client nom caution adresse n° rue ville
Les TE du schéma conceptuel 1:1 titre Livre numéro list auteurs 1:n numéro état date-achat éditeur Client nom caution adresse n° rue ville
Les types d’association Emprunte Livre Client emprunté emprunteur date-emprunt date-retour
Schéma conceptuel bibliothèque Emprunte emprunté emprunteur date-retour date-emprunt numéro titre Livre Client nom numéro caution auteurs état date-achat éditeur adresse n° rue ville
Contraintes d’intégrité Règles définissant les états (CI statiques) et les transitions d'état (CI dynamiques) possibles de la BD Doivent être décrites explicitement (avec un langage approprié) si elles ne peuvent pas être décrites avec les concepts du modèle de données Une BD est cohérente si toutes les CI définies sont respectées par les valeurs de la BD.
Exemple de CI sur des attributs Pour chaque occurrence d’Emprunte si la date-retour existe, alors elle doit être supérieure à la date-emprunt. Pour chaque occurrence de Livre, la date-achat doit être inférieure à la date-emprunt de toutes les occurrences d’Emprunt qui lui sont liées. titre Emprunte numéro Livre Client numéro nom auteurs emprunté emprunteur caution adresse état date-achat éditeur date-emprunt date-retour n° rue ville
Représentation multiple Un objet peut avoir plusieurs représentations Articles Alimentaire Habillement Hi-Fi Produit laitiers Viandes Fruits Légumes Plusieurs points de vues: un article un article alimentaire un produit laitier
Liens de généralisation/spécialisation Article Un article alimentaire Est un article Lien IS_A Article alimentaire Article habillement Article Hi-Fi Produit laitier Viande Fruits et legumes Raffinement de classification
Hiérarchie de généralisation/spécialisation TE générique Article Lien IS_A Spécialisation Généralisation TE spécifiques Article alimentaire Article habillement Article Hi-Fi X Est un Y X sous-type de Y Y sur-type de X Inclusion de populations: tout X est un Y Y X
Contraintes d’intégrité sur is-a Disjonction : les articles alimentaires et les articles d'habillement n'ont pas d'instances communes Couverture : tout article appartient à l'un des sous-types (alimentaires, d'habillement ou Hi-Fi) Partition : disjonction + couverture Article Lien IS_A Article alimentaire Article habillement Article Hi-Fi
Clusters de spécialisation Etudiant Etudiant garçon Etudiant fille Etudiant info Etudiant chimie Etudiant année 2 Etudiant année 3 critère: sexe critère: section critère: année
Généralisation multiple ……. ! problèmes liés à l'héritage Personne Employé Etudiant Salarié Allocataire salarié Etudiant salarié Étudiants salariés étudiants
Héritage Vente Article Article alimentaire Article habillement Article nom marque type Article Article alimentaire Article habillement Article Hi-Fi Date_limite tailles couleurs puissance Reparation La description des sous-types ne porte que sur les informations additionnelles propres au sous-type Service après vente
Héritage et inclusion CI: a=b mauvais BD LPOO Carré Rectangle Carré
Description d’un schéma EA Types d’entités Types d’association Attributs Liens is-a Types d’identifiant Domaines d’attribut Contraintes d'intégrité schéma conceptuel EA = ( {TE}, {TA}, {CI} )
Description d’un TE nom du type d'entité; nom du (ou des) type(s) d'entité sur-type de ce type d'entité, s'il en existe; une définition libre (commentaire) précisant la sémantique du TE caractérisation exacte de la population du type d'entité description des attributs du TE composition des identifiants du TE, s'il en existe contraintes d'intégrité propres au TE
Les entités dans le temps TE Client: qu'est qu'un client ??? Toute personne qui a une commande en cours Toute personne qui a fait une commande dans les six derniers mois Toute personne qui a fait une commande dans le passé ou qui est susceptible de faire une commande dans le futur ………
Description d’un TA nom du type d'association une définition libre (commentaire) précisant la sémantique du TA noms des TE participant au TA, avec le nom du rôle les associant au TA pour chaque rôle, sa cardinalité description des attributs du TA , s'il en existe composition des identifiants du TA, s'il en existe contraintes d'intégrité propres au TA
Les associations dans le temps TA Personne – Emprunte – Livre Quels emprunts veut-on dans la BD? Seulement les emprunts en cours Les emprunts des trois derniers mois Aussi les emprunts à venir (réservations) ….
Revenons à notre premier exemple chef Chef de Employé Fournisseur subord. nom salaire NomF adresse Livré par Affecté quantité Vend Rayon Article NomR étage quantité NomA type
Exemple : Le TA affecté Nom : affecté définition : TE participants: "lie un employé au rayon dans lequel cet employé travaille aujourd'hui” TE participants: <Employé, > , <Rayon, > cardinalités: Employé : min=0, max=1 Rayon : min=0, max=n attributs: aucun identifiant: Employé.nom contraintes d'intégrité: aucune
Description d’un attribut nom de l'attribut définition libre de sa sémantique cardinalités si attribut simple: domaine de valeurs si attribut complexe: description des attributs composants
Domaine de valeurs d’un attribut simple Le domaine de valeurs d’un attribut définit l'ensemble des valeurs permises pour cet attribut. Le domaine d’un attribut simple peut être un domaine de base: entiers, réels, string, booléen, date, … un domaine de base avec restriction: Entier [>=1,<=12] pour l'attribut mois un domaine énuméré: {janvier, février, …, décembre} un domaine de type défini par l’utilisateur
Contraintes d’intégrité sur les attributs Restrictions de domaine fixes : âge [0 : 130 ] Restrictions selon le contexte : SI mois {4, 6, 9, 11} ALORS jour [1:30] , SINON SI mois=2 ALORS jour [1:29], SINON jour [1:31] " x,y Personne, <x,y> Mariage => x.état-civil = "marié" & y.état-civil = "marié” " x Personne, " y Voiture, <x,y> Conduit => x.âge >=18 " x Personne, (x.sexe=F OR x.age<18) => x.statut_milit.=NUL
Attributs dérivés nombre d'enfants = Parent 2:2 Personne nom Enfant nom prénoms nombre d'enfants nom prénoms nombre d'enfants = nombre d'occurrences du TA “Parent” qui lient cette Personne
Comme promis RECAPITULONS
Revenons à notre premier exemple chef Chef de Employé Fournisseur subord. nom salaire NomF adresse Livré par Affecté quantité Vend Rayon Article NomR étage quantité NomA type
On y voit des entités Chef de Employé Fournisseur subord. nom salaire NomF adresse Livré par Affecté quantité Vend Rayon Article NomR étage quantité NomA type
On y voit des associations chef Chef de Employé Fournisseur subord. nom salaire NomF adresse Livré par Affecté quantité Vend Rayon Article NomR étage quantité NomA type
On y voit des cardinalités chef Chef de Employé Fournisseur subord. nom salaire NomF adresse Livré par Affecté quantité Vend Rayon Article NomR étage quantité NomA type
On y voit des attributs d’entités chef Chef de Employé Fournisseur subord. nom salaire NomF adresse Livré par Affecté quantité Vend Rayon Article NomR étage quantité NomA type
On y voit des attributs d’association chef Chef de Employé Fournisseur subord. nom salaire NomF adresse Livré par Affecté quantité Vend Rayon Article NomR étage quantité NomA type
Voilà pour aujourd’hui Il reste à : mettre au propre les notes de cours apprendre le cours en le relisant plusieurs fois faire encore des exercices implanter des BD (cf TP)