Bases de Données Relationnelles

Slides:



Advertisements
Présentations similaires
Mais vous comprenez qu’il s’agit d’une « tromperie ».
Advertisements

Le Nom L’adjectif Le verbe Objectif: Orthogram
ORTHOGRAM PM 3 ou 4 Ecrire: « a » ou « à » Référentiel page 6
LES NOMBRES PREMIERS ET COMPOSÉS
Licence pro MPCQ : Cours
Distance inter-locuteur
Un modèle conceptuel Le modèle Entité-Association Frédéric Gava (MCF)
Les numéros
Les identités remarquables
Modèle Entités-Associations
Modélisation d’une base de données
Bases de Données Relationnelles Modélisation Conceptuelle (Chapitre 3) Validation et transformations.
Le Modèle Relationnel (Chapitre 4)
Le Modèle Logique de Données
LES TRIANGLES 1. Définitions 2. Constructions 3. Propriétés.
Gestion de la persistance des objets
Programme Introduction aux BD et aux SGBD Le modèle relationnel
1 7 Langues niveaux débutant à avancé. 2 Allemand.
Le Concours de Conaissance II Francais I decembre 2012.
SERABEC Simulation sauvetage aérien avec un Hercule C130. Départ de St-Honoré le 4 octobre Durée de vol 3 heures. Premier vol en Hercule pour les.
PARTIE 3 : Le SYSTEME D’INFORMATION FUTUR
La méthodologie………………………………………………………….. p3 Les résultats
Initiation au système d’information et aux bases de données
Développement d’applications web
Interagir avec un objet mixte Propriétés physiques et numériques Céline Coutrix, Laurence Nigay Équipe Ingénierie de lInteraction Homme-Machine (IIHM)
le profil UML en temps réel MARTE
Le soccer & les turbans Sondage mené par lAssociation détudes canadiennes 14 juin 2013.
Initiation à la conception de systèmes d'information
1 Guide de lenseignant-concepteur Vincent Riff 27 mai 2003.
GRAM 1 CE2 Je sais transformer une phrase affirmative en phrase négative.
Initiation à la conception des systèmes d'informations
Modélisation E/R des Données
Introduction à la conception de Bases de Données Relationnelles
Le drapeau canadien comme symbole de fierté nationale : une question de valeurs partagées Jack Jedwab Association détudes canadiennes 28 novembre 2012.
Modélisation des bases de données avec UML
Transformation du diagramme de classe en modèle relationnel
Session 7 1 IST/VIH/SIDA.
Le Concours de Conaissance Francais I novembre 2012.
Conception des données
Modèle Logique de Données
Projet poker 1/56. Introduction Présentation de léquipe Cadre du projet Enjeux Choix du sujet 2.
LES NOMBRES PREMIERS ET COMPOSÉS
SYSTEMES D’INFORMATION
Comment rendre une femme heureuse…
MODELE RELATIONNEL concept mathématique de relation
RACINES CARREES Définition Développer avec la distributivité Produit 1
Représentation des systèmes dynamiques dans l’espace d’état
Représentation des systèmes dynamiques dans l’espace d’état
DUMP GAUCHE INTERFERENCES AVEC BOITIERS IFS D.G. – Le – 1/56.
1 Licence dinformatique Algorithmique des graphes Problèmes dordonnancement. Utilisation de ce document strictement réservée aux étudiants de l IFSIC dans.
Année universitaire Réalisé par: Dr. Aymen Ayari Cours Réseaux étendus LATRI 3 1.
MAGIE Réalisé par Mons. RITTER J-P Le 24 octobre 2004.
1 INETOP
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.
Sensibilisation a la modelisation
Comment rendre une femme heureuse…
P.A. MARQUES S.A.S Z.I. de la Moussière F DROUE Tél.: + 33 (0) Fax + 33 (0)
MAGIE Réalisé par Mons. RITTER J-P Le 24 octobre 2004.
1/65 微距摄影 美丽的微距摄影 Encore une belle leçon de Macrophotographies venant du Soleil Levant Louis.
Bases de données   J-L Hainaut Partie 1 - Comprendre les bases de données Partie 2 - Utiliser les bases de données Partie 3 - Développer une base.
Nom:____________ Prénom: ___________
Bases de données.
Commission paritaire de suivi des opérations de reclassement repositionnement dans le cadre du droit d’option Statistiques novembre 2010.
Nouvelles Technologies Internet & Mobile
INTRODUCTION AUX BASES DE DONNEES Modèle entités-relations
Initiation aux bases de données et à la programmation événementielle
Les bases de données Séance 3 Construction du Modèle Conceptuel de Données.
Schéma de base de données Présentation. Conception du schéma logique  Transformation du schéma conceptuel en structures de données supportées par les.
Transcription de la présentation:

Bases de Données Relationnelles Stefano Spaccapietra 30/03/2017 Bases de Données Relationnelles Modélisation Conceptuelle (Chapitre 2) Partie 1: Concepts généraux Cours Bases de données relationnelles

Modélisation des données et schémas La modélisation est l’activité d’élaboration d’une représentation structurée de la réalité Une BD est une représentation de la partie du monde réel qui intéresse les utilisateurs / les applications. La modélisation des données est l’élaboration des structures de données pour les données qui seront enregistrées dans une BD. La définition de ces structures est consignée dans le schéma de la base de données.

Modélisation conceptuelle Objectif: représenter la réalité telle qu'elle est perçue par les utilisateurs Le processus de modélisation et la définition de son résultat sous forme d'un schéma conceptuel est appelé conception de la base de données La qualité de la conception de la BD est un facteur critique de réussite

Modélisation conceptuelle: avantages Attention 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

Autres avantages Spécifications formelles, non ambiguës, proches de la vision utilisateur 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

Modèle de données (rappel) 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

Respectent la trilogie de base Modèles conceptuels Respectent la trilogie de base objets liens propriétés Permettent des représentations multiples

Conception d’une BD : analyse Stefano Spaccapietra 30/03/2017 Conception d’une BD : analyse reconnaissance structuration Monde réel perception Une BD est une représentation de la partie de la réalité qui nous intéresse. L ’utilisateur a une perception du monde réel accès sur son appli. Description de données pour ses besoins... A partir de là, reconnaissance et structuration... Cours Bases de données relationnelles

Conception d’une BD : description Stefano Spaccapietra 30/03/2017 Conception d’une BD : description description Jean est un homme jeune aux cheveux bruns. Il est marié avec Arlette, et est propriétaire d'une Honda CRV. Cours Bases de données relationnelles

Conception d’une BD : phases Stefano Spaccapietra 30/03/2017 Conception d’une BD : phases analyse de la réalité partielle subjective infidèle représentation (modèle) contenu structure règles dynamique description (langage de définition des données - LDD) par rapport à la réalité, un schéma est une représentation - incomplète: il ne représente que les informations qui sont intéressantes pour l'application - partiale: il représente le point de vue du concepteur - infidèle: il ne représente pas la réalité telle qu'elle est, mais telle qu'elle intéresse le concepteur Cours Bases de données relationnelles

Structure perçue du monde réel Jean possède une Honda CRV grise Arlette, sa femme, est avec lui

Observations "Jean" , "Arlette’’ "Honda CRV’’ désignent des objets reconnus comme des Personnes "Honda CRV’’  nom utilisé pour désigner une Voiture "Jean" Possède "Honda CRV" : exprime un lien entre une personne et une voiture ... est marié avec ... : exprime un lien entre une personne et une autre personne "grise": valeur pour la propriété couleur de la voiture "Jean": valeur pour la propriété prénom de la personne

Abstraction De la réalité perçue à la représentation: Stefano Spaccapietra 30/03/2017 Abstraction De la réalité perçue à la représentation: Faire abstraction des particularités permet de passer des objets aux types d'objets Lisa Fred Dylan ... Zoë CLASSE = ensemble des objets perçus comme ayant des caractéristiques similaires Ils auront le même type. Lisa, Zoe, Dylan … sont regroupés dans la classe Personne. Ils forment la population de la classe. + propriétés: - nom - prénom - âge - taille - couleur des yeux + liens - Zoe MARIEE avec Dylan Zoe FEMME de Dylan et inverse... type d’objet: Personne propriétés: - nom, - âge, ... Cours Bases de données relationnelles

Définition du schéma Un schéma est une collection de types La bases de données contiendra les valeurs représentant les instances de ces types Personne Voiture Possède Est-marié-avec

Qualités pour modèles conceptuels Stefano Spaccapietra 30/03/2017 Qualités pour modèles conceptuels Complétude Description de tous phénomènes courants Fiabilité formellement défini Orientation utilisateur compréhensible, clair, lisible Orthogonalité indépendance des concepts Implémentabilité traduisible en SGBD existant Complètement opérationnel capacités de manipulation des données Cours Bases de données relationnelles

Quels modèles conceptuels ? Stefano Spaccapietra 30/03/2017 Quels modèles conceptuels ? Idéalement: tous les concepts utiles Pratiquement: un nombre limité Base: objets + liens + propriétés + multi-représentation + contraintes d’intégrité Quels modèles choisir? On veut des modèles qui proposent les concepts suivants... Cours Bases de données relationnelles

Modèles conceptuels Entité-Association – EA (ER: Entity-Relationship) Stefano Spaccapietra 30/03/2017 Modèles conceptuels Entité-Association – EA (ER: Entity-Relationship) UML autres NB: les modèle relationnel et certains modèles orienté objets sont des modèles logique (objectif: implémentation) Quels modèles choisir? On veut des modèles qui proposent les concepts suivants... Cours Bases de données relationnelles

Quelques termes Diagramme SCHEMA Base de données Stefano Spaccapietra 30/03/2017 Quelques termes Une perception du monde réel Abstraction / Description Diagramme Classe d'objets similaires Etudiant étudiants SCHEMA Base de données Type d'objet Étudiant: -nom -prénoms -date de naissance -section -année Récapitulatif des notions de base... INSTANCES ou OCCURRENCES TYPE POPULATION Cours Bases de données relationnelles

Bases de Données Relationnelles Stefano Spaccapietra 30/03/2017 Bases de Données Relationnelles Modélisation Conceptuelle (Chapitre 2) Partie 2: Le modèle Entité-Association Cours Bases de données relationnelles

Modèle de type conceptuel Stefano Spaccapietra 30/03/2017 Modèle de type conceptuel But: permettre la description conceptuelle des structures de données d'une application Les concepts de base (correspondent aux concepts d’abstraction de la réalité): objet <=> entité lien <=> association (relationship) propriété <=> attribut  + la représentation multiple EA: actuellement limité à la description statique but = permettre la description conceptuelle des structures de données d'une appli. L'idée fondamentale du modèle EA : concepts de base pour la représentation = concepts génériques du processus d'abstraction qui permettent la description à partir de l'observation de la réalité => correspondance entre les 3 concepts génériques et la terminologie du modèle EA OBJET=ENTITE LIEN=ASSOCIATION PROPRIETE=ATTRIBUT Suppose que la perception d'une situation observée se fait naturellement en identifiant les objets présents, de liens entre ces objets (une personne conduit une voiture) et de propriétés observables (la taille d'une personne, la couleur d'une voiture, ...). Concepts renommés => pour distinguer facilement le discours sur la réalité (en termes d'objets, liens et propriétés) du discours sur la représentation de la réalité (fait en utilisant les termes du modèle). Cours Bases de données relationnelles

Entités et types d’entités Stefano Spaccapietra 30/03/2017 Entités et types d’entités Entité: représentation d’un objet du monde réel ayant une existence propre Type d'entité (TE): représentation d'un ensemble d'entités perçues comme similaires et ayant les mêmes caractéristiques Lisa Fred Dylan ... Zoë Personne ENTITE représentation d'un objet du monde réel (concret ou abstrait), - perçu par le concepteur comme ayant une existence propre, et - à propos duquel on veut enregistrer des informations. Une entité existe indépendamment du fait qu'elle puisse être liée à d'autres entités de la BD. Ex: Mme Dupont, Mr. Durand, le service Comptabilité, … Type d'entité (TE) représentation d'un ensemble d'entités perçues comme similaires et ayant les mêmes caractéristiques. Exemples: Personne, Employé (représentation de l'ensemble des employés), Article, Service, ... Cours Bases de données relationnelles

Associations et types d’associations Stefano Spaccapietra 30/03/2017 Associations et types d’associations Association: représentation d'un lien non orienté entre plusieurs entités (qui jouent un rôle déterminé) Type d'association (TA): représentation d'un ensemble d'associations ayant la même sémantique et décrites par les mêmes caractéristiques achète Personne Maison Association Ex: les liens d’achat entre Mr. Durand et la MaisonX peut être représenté par des associations entre les entités correspondantes : Mr Durand achete la maison X Type d'association (TA) représentation d'un ensemble d'associations ayant la même sémantique et décrites par les mêmes caractéristiques (liant des entités de même type, et possédant les mêmes propriétés). Exemples: le TA achete lie le TE Personne au TE Maison, chaque association de ce TA exprimant le fait qu'un personne donnée achete une maison donnée; travaille lie le TE Employé au TE Service pour exprimer que tel employé travaille dans tel service; est marié avec lie le TE Personne avec lui-même pour exprimer que telle personne, l'époux, est mariée à telle autre personne, l'épouse. ’achète ’ = < 1 personne, 1 maison > Cours Bases de données relationnelles

Population d'un TA achète Personne Maison

Rôles ’achète’ = < 1 personne, 1 maison > ACHETEUR ACHETÉ Stefano Spaccapietra Rôles 30/03/2017 ’achète’ = < 1 personne, 1 maison > achète Personne Maison ACHETEUR ACHETÉ Association binaire: deux rôles en général, une association a toujours 2 rôles Mr. Durand achete une maison (rôle: achète) La Maison des arts est achetée par Mr Durand Dans l’ex, le rôle: maison …acheté par personne pas forcément intéressant. A moins qu’il s ’agisse d ’une agence immobilière (veut connaitre l ’acheteur). Dépendant du point de vue du user… Peut vouloir dire que le lien n ’est pas necessaire un attribut pourrait suffire?? Cours Bases de données relationnelles

Associations Ternaires Stefano Spaccapietra 30/03/2017 Associations Ternaires 3 rôles achète Client Produit Fournisseur ’achète’ = < 1 client, 1 produit, 1 fournisseur > Cours Bases de données relationnelles

Associations Cycliques Stefano Spaccapietra 30/03/2017 Associations Cycliques 2 rôles (au moins) lient le même type d'entité Marié à Personne ’marié à ’ = < 1 personne, 1 personne > Problème: comment savoir dans un couple qui est le mari et qui est la femme ? < Dupont Dominique, Dupont Dominique > Si l'association lie 2 (ou +ieurs) entités du même type, elle est dite "cyclique”. !!! spécification du rôle de chaque entité indispensable pour supprimer les ambiguïtés possibles. ? Cours Bases de données relationnelles

Associations Cycliques: rôles nommés Stefano Spaccapietra 30/03/2017 Associations Cycliques: rôles nommés ? Solution: spécifier le rôle de chaque entité pour supprimer les ambiguïtés FEMME Marié à Personne MARI ’marié à’ = < 1 personne/FEMME, 1 personne/MARI > Si l'association lie 2 (ou +ieurs) entités du même type, elle est dite "cyclique”. !!! spécification du rôle de chaque entité indispensable pour supprimer les ambiguïtés possibles. < Dupont Dominique / femme, Dupont Dominique / mari > Cours Bases de données relationnelles

Associations Cycliques Stefano Spaccapietra 30/03/2017 Associations Cycliques Ternaires: Emprunteur Personne Emprunt Banque Garant Symétriques: L’AUTRE L'UN Personne Ami de Cours Bases de données relationnelles

Cardinalité des rôles Possède Personne Voiture Stefano Spaccapietra 30/03/2017 Cardinalité des rôles Possède Personne Voiture Combien de voitures (minimum) une personne peut-elle avoir? Combien de voitures (maximum) une personne peut-elle avoir? Min : Max Personne Possède Erreur MAX dans le slide !!! Cours Bases de données relationnelles

Contraintes de cardinalité Stefano Spaccapietra 30/03/2017 Contraintes de cardinalité Une personne peut ne pas avoir de voiture, en avoir 1, 2, … n (pas de contrainte) 0 : n Personne Possède Une voiture a un et un seul propiétaire 0 : n 1 : 1 Personne Voiture Possède Contraintes sur les cardinalités Cours Bases de données relationnelles

Population d'un TA achète 0:n 1:1 Personne Maison

Valeurs et notations des cardinalités Stefano Spaccapietra 30/03/2017 Valeurs et notations des cardinalités Minimum Maximum 0 1 1 1 0 n 1 n n m Possède Personne Voiture La représentation graphique des rôles et des attributs varie en fonction des cardinalités associées au rôle ou à l'attribut Notation ou représentation graphique... 1 : 1 0 : n Cours Bases de données relationnelles

Attributs Décrivent l’information (les propriétés) à conserver sur: Stefano Spaccapietra 30/03/2017 Attributs Décrivent l’information (les propriétés) à conserver sur: un objet une association un attribut FEMME Marié à Personne MARI Attribut = représentation d'une propriété associée à un TE, ou à un TA, ou participant à la composition d'un autre attribut. L'ensemble des attributs d'un TE (ou TA) représente l'ensemble des informations inhérentes qu'on veut conserver sur les entités (ou associations) du TE (ou TA). Exs: nom, prénoms, salaire = attributs du TE Employé date-de-mariage = attribut du TA est-marié-avec jour, mois, année = attributs composant un attribut date, … Domaine de valeurs de l’attribut: entier, réel, caractère... Peut etre restreint Ex: jour 1…31 Date_mariage nom prénom salaire jour mois année Domaine [1,31] Cours Bases de données relationnelles

Attributs simples simple (atomique): non décomposable Stefano Spaccapietra 30/03/2017 Attributs simples simple (atomique): non décomposable Exemples: jour, prénom Feuilles de l’arbre des attributs: seuls les attributs simples portent des valeur Le domaine de valeurs est constitué de valeurs atomiques Ex.: jour - domaine de valeurs: {1, 2, …., 31} Domaines prédéfinis standard, intervalles, énumérés Terminologie: on appelle: attribut simple: attribut non décomposé en d'autres attributs: valeurs atomiques. Un domaine associé. Exemple: salaire, téléphones attribut complexe: attribut décomposé en d'autres attributs: ses valeurs sont des valeurs composées. Exemple: adresse, composé de: rue, ville, code postal attribut monovalué: attribut qui ne peut prendre qu'une seule valeur par occurrence (cardinalité max=1). Exemple: nom, date de naissance attribut multivalué: attribut qui peut prendre plusieurs valeurs par occurrence (cardinalité max>1). Exemple: prénoms, téléphones attribut obligatoire: attribut qui doit prendre une valeur au moins par occurrence (cardinalité min=1). Exemple: nom, prénoms attribut facultatif: attribut qui peut ne pas prendre de valeur dans une occurrence (cardinalité min=0). Cours Bases de données relationnelles

Attributs complexes complexe: décomposé en d'autres attributs Stefano Spaccapietra 30/03/2017 Attributs complexes complexe: décomposé en d'autres attributs Exemples: date (jour, mois, année), adresse (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. Terminologie: on appelle: attribut simple: attribut non décomposé en d'autres attributs: valeurs atomiques. Un domaine associé. Exemple: salaire, téléphones attribut complexe: attribut décomposé en d'autres attributs: ses valeurs sont des valeurs composées. Exemple: adresse, composé de: rue, ville, code postal attribut monovalué: attribut qui ne peut prendre qu'une seule valeur par occurrence (cardinalité max=1). Exemple: nom, date de naissance attribut multivalué: attribut qui peut prendre plusieurs valeurs par occurrence (cardinalité max>1). Exemple: prénoms, téléphones attribut obligatoire: attribut qui doit prendre une valeur au moins par occurrence (cardinalité min=1). Exemple: nom, prénoms attribut facultatif: attribut qui peut ne pas prendre de valeur dans une occurrence (cardinalité min=0). Cours Bases de données relationnelles

Attributs mono- ou multivalués Stefano Spaccapietra 30/03/2017 Attributs mono- ou multivalués monovalué: une seule valeur par occurrence (cardinalité max=1) Exemples: date de naissance, numéro AVS multivalué: plusieurs valeurs par occurence (cardinalité max>1). Exemples: prénoms, téléphones Une valeur d'attribut multivalué est un ensemble (ou liste ou multi-ensemble) de valeurs, prises chacune dans le domaine de valeurs associé à l'attribut. Terminologie: on appelle: attribut simple: attribut non décomposé en d'autres attributs: valeurs atomiques. Un domaine associé. Exemple: salaire, téléphones attribut complexe: attribut décomposé en d'autres attributs: ses valeurs sont des valeurs composées. Exemple: adresse, composé de: rue, ville, code postal attribut monovalué: attribut qui ne peut prendre qu'une seule valeur par occurrence (cardinalité max=1). Exemple: nom, date de naissance attribut multivalué: attribut qui peut prendre plusieurs valeurs par occurrence (cardinalité max>1). Exemple: prénoms, téléphones attribut obligatoire: attribut qui doit prendre une valeur au moins par occurrence (cardinalité min=1). Exemple: nom, prénoms attribut facultatif: attribut qui peut ne pas prendre de valeur dans une occurrence (cardinalité min=0). Cours Bases de données relationnelles

Attributs obligatoires ou facultatifs Stefano Spaccapietra 30/03/2017 Attributs obligatoires ou facultatifs obligatoire: une valeur au moins par occurrence (cardinalité min>=1). Exemples: nom, prénoms facultatif: peut ne pas prendre de valeur (cardinalité min=0). Exemples: salaire, téléphones Le caractère obligatoire ou facultatif est déterminé par les besoins de l'application: Si l'on accepte d'enregistrer une personne sans connaître sa date de naissance, alors l'attribut date-de-naissance sera facultatif; sinon, il sera obligatoire Terminologie: on appelle: attribut simple: attribut non décomposé en d'autres attributs: valeurs atomiques. Un domaine associé. Exemple: salaire, téléphones attribut complexe: attribut décomposé en d'autres attributs: ses valeurs sont des valeurs composées. Exemple: adresse, composé de: rue, ville, code postal attribut monovalué: attribut qui ne peut prendre qu'une seule valeur par occurrence (cardinalité max=1). Exemple: nom, date de naissance attribut multivalué: attribut qui peut prendre plusieurs valeurs par occurrence (cardinalité max>1). Exemple: prénoms, téléphones attribut obligatoire: attribut qui doit prendre une valeur au moins par occurrence (cardinalité min=1). Exemple: nom, prénoms attribut facultatif: attribut qui peut ne pas prendre de valeur dans une occurrence (cardinalité min=0). Cours Bases de données relationnelles

Attributs: exemple Employé liste No-emp nom prénoms CV postes Stefano Spaccapietra 30/03/2017 Attributs: exemple Employé 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 TE Employé 2 attributs simples, monovalués et obligatoires (n°E et nom), 1 attribut simple, multivalué et obligatoire (prénoms) 2 attributs complexes et multivalués (CV et postes), dont CV facultatif et postes obligatoire. NB: la définition d'un attribut (ou d'un rôle) comme étant obligatoire induit une contrainte sur la création des occurrences correspondantes. La création d'une occurrence ne peut être acceptée que si tous les attributs (rôles) obligatoires reçoivent une valeur dès sa création. année mois simple, obligatoire, multivalué de type liste Cours Bases de données relationnelles

Identifiants de TE et TA Necessité 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

Identifiants du TE Employé Stefano Spaccapietra 30/03/2017 Identifiants du TE Employé Deux identifiants de Employé: No-emp, nom+prénoms Employé No-emp nom prénoms CV postes Il n'a a pas deux employés qui ont le même numéro Il n'a 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 TE Employé 2 attributs simples, monovalués et obligatoires (n°E et nom), 1 attribut simple, multivalué et obligatoire (prénoms) 2 attributs complexes et multivalués (CV et postes), dont CV facultatif et postes obligatoire. NB: la définition d'un attribut (ou d'un rôle) comme étant obligatoire induit une contrainte sur la création des occurrences correspondantes. La création d'une occurrence ne peut être acceptée que si tous les attributs (rôles) obligatoires reçoivent une valeur dès sa création. année mois Cours Bases de données relationnelles

Identifiant d'un TA: rôles multivalués Cas fréquent: id.TA = ensemble des identifiants des TE liés Contrôle Etudiant Cours No-carte nom note No-cours intitulé Identifiant de Contrôle: Etudiant.No-carte + Cours.No-cours

Identifiant d'un TA: attribut propre id.TA = attribut du TA Client Produit Commande No-client nom No-commande date quantité No-produit nom Deux identifiants pour Commande: 1) No-commande 2) Client.No-client + Produit.No-produit (il n’existe qu’une seule commande d’un client donné pour un produit donné)

Identifiant d'un TA: id.TE +attribut propre Un client peut commander le même produit plusieurs fois à des dates différentes Commande Client Produit No-client nom date quantité No-produit nom Identifiant de Commande: Client.No-client + Produit.No-produit + Commande.date

Identifiant d'un TA: rôle monovalué Règle: Tout rôle monovalué induit un identifiant du TA (l’identifiant du TE lié est aussi identifiant du TA) No-AVS No-imm. Personne Voiture Assure Compagnie Ass. Nom Identifiant de Assure: Voiture.No-imm.

Identifiant d'un TA cyclique Comme pour les autres TA FEMME Marié à Personne MARI Date_mariage nom prénom salaire jour mois année Deux rôles monovalués: deux identifiants pour Marié à: 1) Personne/Femme.nom 2) Personne/Mari.nom

Identifiant de TE faible Stefano Spaccapietra 30/03/2017 Identifiant de TE faible Un TE qui ne peut être identifié par ses seuls attributs propres est appelé TE faible Livre Exemplaire Existe No-ISBN titre date-achât No-exemp. état TE faible si aucun sous-ensemble de ses attributs ne constitue un identifiant (il n'a pas d'identifiant qui lui soit interne) et si un identifiant peut être défini en intégrant un identifiant d'un autre TE' qui lui est lié par un TA binaire de cardinalité (1,1). Le TE dépend de TE'. Exemplaire (d'un livre) = TE faible dépendant du TE Livre. CAR du fait des cardinalités, pas possible de créer une occurrence de Exemplaire sans la rattacher à une occurrence existante de Livre. = dépendance d'existence L'identifiant d'un TE faible (= celui du TA) est constitué de l'identifiant du TE dont il dépend + d'un (ou plusieurs) attribut du TE faible. L'identifiant de Exemplaire (et du TA "est un") est: LivreISBN + N°ex ISBN = "international standard book number" C'est un numéro qui identifie tout nouveau livre édité Identifiant d'un TE sous-type Soit E un TE sous-type du TE E', alors tout identifiant de E' est aussi identifiant de E. E n'a pas nécessairement d'identifiant qui lui soit propre. Dans l'exemple de l'hypermarché, Article alimentaire, Article habillement et Article Hi-Fi ont tous les trois pour identifiant celui de Article (n°code). Identifiant de Exemplaire: (Livre.No-ISBN + No-exemp.) Identifiant de Existe: (Livre.No-ISBN + No-exemp.) Cours Bases de données relationnelles

Exemple de schéma EA Gestion d'un hypermarché Chef de Employé Stefano Spaccapietra 30/03/2017 Exemple de schéma EA Gestion d'un hypermarché chef Chef de Employé Fournisseur subord. nom salaire NomF adresse Affecté Livré par quantité Vend Rayon Article NomR étage quantité NomA type Cours Bases de données relationnelles

Représentation multiple Stefano Spaccapietra 30/03/2017 Représentation multiple Un objet peut avoir plusieurs représentations Articles Alimentaire Habillement Hi-Fi Produit laitiers Viandes Fruits Légumes Un TE = classe d'objets du monde réel perçus comme similaires et ayant les mêmes caractéristiques. OR un même ensemble d'objets peut être perçu d'un certain point de vue comme une seule classe, mais en même temps perçu d'un autre point de vue comme plusieurs classes, différentes malgré l'existence de caractéristiques communes. => intérêt à séparer les articles en plusieurs classes (alimentation, habillement, Hi-Fi, hygiène, ...). Exs - la gestion des ventes promotionnelles diffère suivant la catégorie: - les articles d'alimentation sont retirés des rayons si la date limite de vente est dépassée. Chaque classe peut avoir des caractéristiques propres => attributs spécifiques - date limite de vente (alimentation), - taille et couleur (habillement) Raffinement par sous-typage… - Tous les produits laitiers sont des articles alimentaires - Les articles alimentaires sont des articles Plusieurs points de vues: un article un article alimentaire un produit laitier Cours Bases de données relationnelles

Lien de Généralisation / Spécialisation Stefano Spaccapietra 30/03/2017 Lien de Généralisation / Spécialisation Article Article alimentaire Un article alimentaire Est un article Lien IS_A Article Hi-Fi Article habillement Produit laitier Fruits et legumes Viande => décrire, en plus du TE générique Article, des TE plus spécialisés, représentant les sous-classes "intéressantes" MAIS => situation atypique: les mêmes objets sont représentés par 2 TE (le TE générique et l'un des TE spécialisés), alors que normalement les populations de 2 TE représentent des classes d'objets disjointes. => dans les modèles de données récents, concept de généralisation/spécialisation: lien, orienté, d'un TE spécialisé (ou spécifique) vers un TE générique. A toute occurrence du TE spécifique correspond une occurrence du TE générique. Inversement, à toute occurrence du TE générique correspond 0 ou 1 occurrence par TE spécifique. Les liens appelés "est-un" (IS A); on dit que "Article alimentaire est-un Article". TE spécifique sous-type du TE générique, sur-type du TE spécifique. Convention: attributs communs sur TE générique. MAIS implicitement inclus dans les attributs des TE spécifiques: ils "héritent" des attributs du TE générique. DE PLUS: les TE spécifiques peuvent avoir des attributs propres. Raffinement de classification Cours Bases de données relationnelles

Hiérarchie de Généralisation/Spécialisation Stefano Spaccapietra 30/03/2017 Hiérarchie de Généralisation/Spécialisation TE générique TE spécifiques Spécialisation Généralisation Article Lien IS_A Article alimentaire Article habillement Article Hi-Fi => décrire, en plus du TE générique Article, des TE plus spécialisés, représentant les sous-classes "intéressantes" MAIS => situation atypique: les mêmes objets sont représentés par 2 TE (le TE générique et l'un des TE spécialisés), alors que normalement les populations de 2 TE représentent des classes d'objets disjointes. => dans les modèles de données récents, concept de généralisation/spécialisation: lien, orienté, d'un TE spécialisé (ou spécifique) vers un TE générique. A toute occurrence du TE spécifique correspond une occurrence du TE générique. Inversement, à toute occurrence du TE générique correspond 0 ou 1 occurrence par TE spécifique. Les liens appelés "est-un" (IS A); on dit que "Article alimentaire est-un Article". TE spécifique sous-type du TE générique, sur-type du TE spécifique. Convention: attributs communs sur TE générique. MAIS implicitement inclus dans les attributs des TE spécifiques: ils "héritent" des attributs du TE générique. DE PLUS: les TE spécifiques peuvent avoir des attributs propres. X Est un Y X sous-type de Y Y sur-type de X Y Inclusion de populations: tout X est un Y X Cours Bases de données relationnelles

Contraintes d'intégrité sur Is-a Stefano Spaccapietra 30/03/2017 Contraintes d'intégrité sur Is-a Article Lien IS_A Article alimentaire Article habillement Article Hi-Fi 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 => décrire, en plus du TE générique Article, des TE plus spécialisés, représentant les sous-classes "intéressantes" MAIS => situation atypique: les mêmes objets sont représentés par 2 TE (le TE générique et l'un des TE spécialisés), alors que normalement les populations de 2 TE représentent des classes d'objets disjointes. => dans les modèles de données récents, concept de généralisation/spécialisation: lien, orienté, d'un TE spécialisé (ou spécifique) vers un TE générique. A toute occurrence du TE spécifique correspond une occurrence du TE générique. Inversement, à toute occurrence du TE générique correspond 0 ou 1 occurrence par TE spécifique. Les liens appelés "est-un" (IS A); on dit que "Article alimentaire est-un Article". TE spécifique sous-type du TE générique, sur-type du TE spécifique. Convention: attributs communs sur TE générique. MAIS implicitement inclus dans les attributs des TE spécifiques: ils "héritent" des attributs du TE générique. DE PLUS: les TE spécifiques peuvent avoir des attributs propres. Cours Bases de données relationnelles

Clusters de spécialisation Etudiant Et.garçon Et.fille Et.info Et.ssc Et.3ème Et.4ème critère: sexe critère: section critère: année

Généralisation multiple Stefano Spaccapietra 30/03/2017 Généralisation multiple Doctorant Professeur Assistant Etudiant Enseignant ……. assistants doctorants assitants-doctorants généralisation multiple un TE est sous-type de plusieurs autres TE. C'est le cas dans l'exemple du campus universitaire pour Dans l’exemple: le TE Assistant-doctorant, qui regroupe la population des personnes qui sont à la fois Assistant et Doctorant. La généralisation multiple pose des problèmes liés à l'héritage: - éviter d'hériter deux fois d'un ancêtre commun (dans l'exemple, Assistant-doctorant doit hériter une seule fois de Personne, soit via Doctorant-Etudiant, soit via Assistant-Enseignant-Employé), - éviter d'avoir des conflits d'héritage (par exemple, lorsque deux attributs portant le même nom se trouvent dans deux TE génériques différents dont on hérite). Pour résoudre ces conflits d'héritage, soit le concepteur spécifie explicitement une préférence d'héritage, soit le système applique une règle implicite déterministe. Assistant-Doctorant Cours Bases de données relationnelles

Héritage Article alimentaire Hi-Fi habillement Vente Reparation Stefano Spaccapietra 30/03/2017 Héritage Article alimentaire Hi-Fi habillement Vente nom marque type date limite tailles couleurs puissance Reparation Service après vente La description des sous-types ne porte que sur les informations additionnelles propres au sous-type ...description et l'héritage des attributs s'applique AUSSI aux TA. Exemple: le TE "Article Hi-Fi", et autres TE spécifiques, est implicitement lié par les TA Vente et Livraison, hérités du TE Article. Peut, en plus, être lié par un TA Réparation à un TE Service après-vente : tel type d'articles Hi-Fi est réparé par tel Service après-vente (TA défini pour les articles Hi-Fi uniquement) Ensemble des TE spécifiques peut etre different du TE générique. exemple: les articles d'hygiène, de bricolage, ... uniquement représentés par le TE Article. les TE spécifiques d'un même TE générique ne représentent pas nécessairement des populations disjointes Ex: personnes travaillant ou étudiant dans un campus universitaire. un TE générique peut à son tour être sous-type d'un autre TE: hiérarchie de généralisations. Cours Bases de données relationnelles

Héritage et inclusion CI: a=b mauvais BD LPOO Carré Rectangle Stefano Spaccapietra 30/03/2017 Héritage et inclusion Carré a Rectangle b BD LPOO mauvais Rectangle b Carré a Carré b Rectangle a CI: a=b ...description et l'héritage des attributs s'applique AUSSI aux TA. Exemple: le TE "Article Hi-Fi", et autres TE spécifiques, est implicitement lié par les TA Vente et Livraison, hérités du TE Article. Peut, en plus, être lié par un TA Réparation à un TE Service après-vente : tel type d'articles Hi-Fi est réparé par tel Service après-vente (TA défini pour les articles Hi-Fi uniquement) Ensemble des TE spécifiques peut etre different du TE générique. exemple: les articles d'hygiène, de bricolage, ... uniquement représentés par le TE Article. les TE spécifiques d'un même TE générique ne représentent pas nécessairement des populations disjointes Ex: personnes travaillant ou étudiant dans un campus universitaire. un TE générique peut à son tour être sous-type d'un autre TE: hiérarchie de généralisations. Cours Bases de données relationnelles

DESCRIPTION D’UN SCHÉMA EA Stefano Spaccapietra 30/03/2017 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} ) Cours Bases de données relationnelles

Description d'un TE nom du type d'entité; Stefano Spaccapietra 30/03/2017 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 Exemple: description du TE "Employé" de la base de données hypermarché: -nom : Employé; -sur-types: / ; -définition: "toute personne salariée par l'entreprise en ce moment"; -attributs: nom, salaire (avec leur description); -identifiants: nom. Remarques: - 2 TE différents ne peuvent avoir le même nom; - la définition libre est une partie très importante de la description d'un TE. permet de définir exactement, de façon non ambiguë, la population du TE. inclut notamment la spécification temporelle qui permet de savoir si le contexte modélisé couvre uniquement la situation actuelle ou aussi l'historique (situations antérieures) et/ou la prospective (situations à venir). Cours Bases de données relationnelles

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 Stefano Spaccapietra 30/03/2017 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 Cours Bases de données relationnelles

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) ….

Exemple: TA "Affecté" (BD hypermarché) Stefano Spaccapietra 30/03/2017 nom: Affecté définition: "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: / identifiant: Employé.nom contraintes d'intégrité: / Les cardinalités possibles pour un rôle (ici, E de Emploi) et leur signification sont les suivantes: min=0 :un employé peut ne travailler dans aucun rayon min=1:un employé doit travailler dans au moins un rayon max=1:un employé ne peut travailler dans plus d'un rayon max=n:un employé peut travailler dans plusieurs rayons Cours Bases de données relationnelles

Description d'un attribut Stefano Spaccapietra 30/03/2017 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 Cours Bases de données relationnelles

Domaine de valeurs d’un attribut simple Stefano Spaccapietra 30/03/2017 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 Cours Bases de données relationnelles

Contraintes d'intégrité (CI) Stefano Spaccapietra 30/03/2017 Contraintes d'intégrité (CI) 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. concepts d'entité, association, attribut et sous-type insuffisants pour décrire tout ce qui caractérise les données d'un schéma EA. Exemple: pour le TA Mariage, une règle connue mais non exprimée par ce diagramme est: si une Personne participe à l'association Mariage, alors son état civil doit être "marié". => CI: règles, définissant les états (ou transitions d'état) possibles de la BD et qui ne peuvent pas être décrites avec les concepts du modèle Si les valeurs de la BD ne satisfont pas ces contraintes, il y a une "erreur"; on dit que la BD est incohérente. En l'état actuel des SGBD, la plupart de ces règles ne peuvent être vérifiées que par des programmes ad hoc, établis lors de la programmation des applications. Cours Bases de données relationnelles

CI sur les attributs Restrictions de domaine fixes : Stefano Spaccapietra 30/03/2017 CI 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 Les CI les plus fréquentes limitent les valeurs possibles d'un attribut à certaines valeurs du domaine sous-jacent. ex: age entre [0,130]. = limitation définissant de façon fixe une même fourchette pour toutes les valeurs de l'attribut. disparaissent si le modèle permet une définition précise des domaines de valeurs, au lieu des définitions ne faisant appel qu'à des domaines généraux prédéfinis (entier, réel, chaîne de caractères, booléen, ...). Les limites peuvent être définies en fonction du contexte (valeur d'un autre attribut, participation à une association, ...). Exemples: - nombre de jours par mois variable selon le mois de l ’année - si une Personne participe à l'association Mariage, alors son état civil doit être "marié". - une personne peut conduire une voiture uniquement si elle a plus de 18 ans - le statut militaire est valable seulement pour les hommes de plus de 18 ans Cours Bases de données relationnelles

Attributs dérivés nombre d'enfants = Stefano Spaccapietra 30/03/2017 Attributs dérivés 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 D'autres types de CI limitent les cardinalités des TE, des TA, ou des valeurs des attributs. Exemple... Cours Bases de données relationnelles