Les bases de données Séance 4 Construction du Modèle Physique (la BDD)
Comment passer du MCD à la BDD L’objet TABLE Comment créer un objet TABLE Les contraintes : clé primaire clé étrangère Base de données IV Ce qui est abordé
Comment passer du MCD à la BDD L’objet TABLE Comment créer un objet TABLE Les contraintes : clé primaire clé étrangère Base de données IV Le MCD à partir d’un diagramme de classes
Modèle conceptuel de données (MCD) Diag. De Classe Modèle Logique de Données (MLD) Script de création des tables (BDD) On peut appliquer des règles de conversion Transcription en langage SQL Base de données IV Du MCD à la base de données
Règle 1 : Toute entité est représentée par une table. Règle 2 : Toute association qui associe plus de deux entités (ternaire et au- delà) est représentée par une table. Règle 3 : Toute association qui porte des données propres, c’est-à-dire indépendantes des entités devient une table. Base de données IV Les règles à appliquer
Règle 4 : Toute association binaire dont les cardinalités maximales sont n de chaque côté est une table (table dont les colonnes sont les attributs clefs des entités qu‘elle relie ainsi que les éventuels attributs propres à l’association). Règle 5 : Une association de type père/fils, cardinalité maximum à n d’un côté et à 1 de l’autre, n’est pas représentée par une table. On indique les attributs clefs de l’entité père (côté (.,n)) dans le fils (côté (.,1)). Base de données IV Les règles à appliquer 2
entité2 id2 propriété2 association entité1 id1 propriété1 1,1 ou 0,1 1,n ou 0,n entité1, id1, propriété1,#id2 entité2, id2, propriété2 Chaque entité devient une table Les identifiants de chaque table sont les clé primaires Les colonnes de chaque table sont les propriétés des entités L’association se traduit en rajoutant dans la table entite1 la colonne correspondant à la clé primaire de entité2 (id2) Id2 devient donc clé étrangère (la clé côté n devient clé étrangère côté 1) Modèle logique de données Base de données IV Exemple : « relation père-fils »
entité2 id2 propriété2 association entité1 id1 propriété1 1,n 0u 0,n 1,n Ou 0,n entité1, id1, propriété1 entité2, id2, propriété2 Chaque entité devient une table Les identifiants de chaque table sont les clé primaires Les colonnes de chaque table sont les propriétés des entités L’association se traduit en créant une table Tassociation dont la clé primaire est formée des identifiants de chaque entité participant à l’association- elles sont clés étrangères Modèle logique de données propriété association, #id1,#id2, propriété Base de données IV Exemple : « relation matricielle » ou n..n
Structure de données composée de : Colonnes Lignes appelées n-uplets ou enregistrements Chaque colonne doit être : Nommée Typée Exemple : table client, étudiant … Base de données IV Objet TABLE : Définition
Attribuer un nom à la table (le nom doit être unique dans la base de données) Attribuer des colonnes (de 1 à 254 colonnes) Le nom de la colonne est unique dans la table Attribuer un type à chaque colonne Définir des contraintes sur ces colonnes Spécifier des caractéristiques de stockage Spécifier une requête pour créer la table avec des données Base de données IV L’instruction CREATE TABLE
CREATE TABLE ( |,...) [ ] Base de données IV L’instruction CREATE TABLE : Syntaxe
CREATE TABLE personne( nom VARCHAR2(30), age INTEGER(3), salaire NUMBER(10,2) ); Base de données IV L’instruction CREATE TABLE : Exemple
Syntaxe générale de type : [( )] [( )] Type alphanumérique : CHAR(n) : chaîne à longueur fixe CHAR(n) : chaîne à longueur fixe VARCHAR2(n) : chaîne à longueur optimisée < 255 caractères VARCHAR2(n) : chaîne à longueur optimisée < 255 caractères LONG : texte long > 255 caractères LONG : texte long > 255 caractères Exemple : nom VARCHAR2(30) Base de données IV Définition de colonne : Les types
Types numériques : NUMBER(p,s): nombre décimal INTEGER : entier long SMALLINT : entier court FLOAT : réél à virgule flottante Exemples : age SMALLINT salaire NUMBER(10,2) Base de données IV Définition de colonne : Les types 2
Type de gestion du temps et des dates : DATE : date du calendrier grégorien TIMESTAMP : combiné date temps sous forme compacte : Exemple Date_commande DATE Base de données IV Définition de colonne : Les types 3
Les types « gros objets » CLOB : pour les chaînes de caractères BLOB : pour les données binaires BFILE : pour les données stockées dans des fichiers externes binaires. La taille maximale est de 4 gigabytes Base de données IV Définition de colonne : Les types 4
Contrainte de colonnes Associée à une colonne de la table Contrainte de table Associée à plusieurs colonnes de la table, ou à la totalité des colonnes « Il est utile de donner aux contraintes un nom qui exprime la raison de la contrainte » Base de données IV Les contraintes
S’applique sur une seule colonne Nullité de colonne Unicité de valeur dans une colonne Clé primaire Vérification sur un ensemble de valeur Clé étrangère « Une contrainte définit des restrictions sur les valeurs possibles » Base de données IV Les contraintes des colonne
S’applique sur plusieurs colonnes Clé primaire, si elle est « composite » Clé étrangère, si elle est « composite » Base de données IV Les contraintes de table
Clé primaire : permet d’identifier de manière unique un enregistrement dans la table Clé étrangère : permet de vérifier que le champ contient une clef primaire existante d’une autre table. « La notion de clef étrangère est directement liée à la notion d’association » Base de données IV Les clefs : primaires et étrangères
Un employé a une qualification Une qualification peut correspondre à plusieurs employés employe id nom a qualification id libelle 1,n1,1 Base de données IV Exemple 1
qualification.id est l’identifiant de l’entité qualification. employe.id est l’identifiant de l’entité employé. employe id nom a qualification id libelle 1,n1,1 Base de données IV Exemple 2
Traduction MCD=>MLD employe (id, nom, #qualification.id) qualification(id, libelle) employe id nom a qualification id libellé 1,n1,1 Base de données IV Exemple 3
CREATE TABLE qualification( id VARCHAR2(4) CONSTRAINT pk_qualif PRIMARY KEY, libelle VARCHAR2(30) ); CREATE TABLE employe( id VARCHAR2(4) CONSTRAINT pk_personne PRIMARY KEY, nom VARCHAR2(20), id_qualif VARCHAR2(4) CONSTRAINT fk_qualif REFERENCES qualification(id) ); Base de données IV Exemple 4
FIN DU COURS