
Analyse de données
Objectif â> concevoir une base de donnĂ©es
Etapes de modélisation :
- ModĂ©lisation Conceptuelle des DonnĂ©es (MCD) ~ vue de lâentreprise (schĂ©ma entitĂ©s/association)
- Modélisation Relationnelle des Données (MRD) ~ vue du systÚme
- Modélisation Physique des Données (MPD) ~ script de création des tables
â> On obtient alors une base de donnĂ©es opĂ©rationnelle.
MCD
SCHEMA DATAMODELER
Vocabulaire
EntitĂ© : ensemble homogĂšne dâinformations (~objet, classe)
PropriĂ©tĂ© : champ de lâentitĂ© (~attribut, caractĂ©ristique), atomique
- obligatoire = *
- optionnel = O
- identifiant :
- principal = #
- simple = un numéro unique par exemple
- composĂ© de propriĂ©tĂ©s et/ou âde liensâ (peut se lire âĂ chaqueâ) = un trait perpendiculaire au trait de la relation
- secondaire = U
- principal = #
Occurrence de donnĂ©e : une âchoseâ identifiable de maniĂšre unique et sans ambiguĂŻtĂ© (une ligne de valeurs)
Relations ou association : reprĂ©sentation dâune liaison logique entre plusieurs entitĂ©s, avec un nom composĂ© dâun verbe et des cardinalitĂ©s
â> toujours bidirectionnelle
- obligatoire (au moins 1) = trait plein
- optionnel (peut ĂȘtre 0) = trait pointillĂ©
- cardinalitĂ© maximale, âplusieursâ = patte dâoie ou âun et un seulâ = rien
- manitoumani : double patte dâoie ~crĂ©ation dâune entitĂ© dâintersection
- hĂ©ritage : une entitĂ© [gĂ©nĂ©rique] peut ĂȘtre dĂ©composĂ©e en plusieurs entitĂ©s [spĂ©cifiques] mutuellement exclusifs
- liens exclusifs : mĂȘme nom et mĂȘme cardinalitĂ© = arc
- liens transférables / non transférables : modifiables dans le temps ou non = losange
Domaines de valeurs statiques ~ Ă©numĂ©rations â> pour des donnĂ©es stables qui ne changeront pas au fil du temps (mois, jours, unitĂ©s de mesure)
Commentaires en vrac : - chaque table est identifiĂ©e avec une clĂ© primaire â> une occurrence doit ĂȘtre identifiĂ©e de maniĂšre unique - on essaie dâavoir des identifiants principaux avec une seule colonne et sans informations mĂ©tiers (qui sont souvent modifiĂ©es) â> plus facile Ă gĂ©rer - le trait vertical sur le lien c'est "Ă chaque" Ex : Ă chaque numĂ©ro de place dans le train correspond un numĂ©ro de wagon du train. Les numĂ©ros de place se rĂ©pĂštent dans chaque wagon, donc on associe numPlace et numWagon Ă chaque fois pour ĂȘtre sĂ»r qu'on sait de quoi on parle.
MRD
EXEMPLE DâUNE TABLE + DATAMODELER + notepad++
Transposition :
entitĂ©s â> tables
attributs â> colonnes
identifiants principaux et secondaires â> clĂ©s primaires et uniques
liens â> clĂ©s Ă©trangĂšres
options pour les arcs
options pour les entités génériques / spécifiques
Le modĂšle relationnel de donnĂ©es est lâensemble des tables qui composeront la base de donnĂ©es, avec la liste des colonnes et les diffĂ©rentes relations entre tables.
On détermine ici les contraintes de chaque table : - clé primaire (PK) - clé étrangÚre (FK) - non nullité (NN) - clé secondaire (UK) - domaine de valeurs statique (CHECK)
- contrainte de non nullité :
NOT NULL
- contrainte dâunicitĂ© :
UNIQUE(aussi appelée clé secondaire)
- contrainte de clé primaire :
PRIMARY KEY(regroupe implicitement les deux contraintes précédentes)
- contrainte dâintĂ©gritĂ© rĂ©fĂ©rentielle (clĂ© Ă©trangĂšre) :
FOREIGN KEY
- contrainte de validation :
CHECK(conditions imposées)
- (+) possibilité de donner une valeur par défaut :
DEFAULT
- (+) possibilitĂ© dâajouter un compteur (incrĂ©ment automatique, un seul par table) :
IDENTITY
ConcrĂštement : - si le lien est optionnel (pointillĂ©s), la colonne peut ĂȘtre null ; si le lien est obligatoire (trait plein), la colonne est NN - si le lien est de type onetoumani (une patte dâoie dâun cĂŽtĂ©), la table qui porte la patte dâoie a une colonne FK qui correspond Ă la PK de la table liĂ©e - si le lien est de type onetouone, la table qui porte un lien dâobligation a une colonne FK (qui est Ă©galement UK) ; sinon analyse mĂ©tier pour choisir quelle table a une colonne FK - si un lien est de type manitoumani (deux pattes dâoie), il est prĂ©fĂ©rable de le rĂ©soudre amont pour nâavoir que des onetoumani, ce qui permet de passer plus facilement au modĂšle relationnel = on la rĂ©sout en crĂ©ant une table intermĂ©diaire - si une entitĂ© possĂšde un identifiant de lien (petit trait vertical), la table correspondante a une clĂ© primaire composĂ©e de plusieurs colonnes, dont lâune vient dâune autre table = on a donc la PK qui est composĂ©e dâune ou plusieurs colonnes de la table et dâune colonne FK, celle-lĂ est donc Ă la fois PK et FK
Notions avancées :
En base de donnĂ©es, la notion dâhĂ©ritage nâexiste pas (sauf un peu PostgreSQL) donc il existe diffĂ©rentes façons de gĂ©rer ça : une seule table, deux tables sĂ©parĂ©es ou bien trois tables sĂ©parĂ©es.
La transposition des arcs (exclusivité) peut se faire de maniÚre explicite (avec une contrainte CHECK et une colonne remplie par option exclusive) ou de maniÚre générique (avec une colonne générique et une colonne type).
Pour affiner le niveau relationnel, il est possible dâajouter :
- des tables et des attributs logiques
- des rÚgles logiques (comme des compteurs, des contraintes, liens non transférables)
- des dĂ©clencheurs, qui permettent dâautomatiser des comportements (notamment pour gĂ©rer la non-transfĂ©rabilitĂ©).
MPD
Ce modÚle correspond au script de conception de la base de données, pour lequel on utilise le DDL (data definition language) de SQL.