📘

Analyse de données

Objectif —> concevoir une base de donnĂ©es

Etapes de modélisation :

—> On obtient alors une base de donnĂ©es opĂ©rationnelle.

⚙
SQL Developer Data Modeler : https://www.oracle.com/fr/database/sqldeveloper/technologies/sql-data-modeler/

MCD


SCHEMA DATAMODELER

Vocabulaire

EntitĂ© : ensemble homogĂšne d’informations (~objet, classe)

PropriĂ©tĂ© : champ de l’entitĂ© (~attribut, caractĂ©ristique), atomique

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

â„č
Lecture d’un lien : Une occurrence de A {doit | peut} ĂȘtre nomdulien {un ou plusieurs | un et un seul} occurrence de B.

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)

⚠
BP : on utilise pas ça, on fait une entité normale pour pouvoir modifier.

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.

📌
Pour aller plus loin : https://www.base-de-donnees.com/mcd/

â„č
Lors de la réalisation effective de la base de données : une entité deviendra une table, une propriété deviendra un champ, une occurrence deviendra une ligne dans une table, une relation deviendra une clé étrangÚre.

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

⚠
MCD ~ noms des entitĂ©s au singulier ≠ MRD ~ noms des tables au pluriel

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)

â„č
Intégrité des données (vu en SQL) :
  • 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

📌
Pour aller plus loin, voir les cours 04 - SQL et 05 - PL-SQL.

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
⚠
Dans un lien onetouone, il n’y a qu’une seule table qui porte une FK puisqu’elle est liĂ©e Ă  la PK de l’autre —>Cela n’indique pas si l’association sera uni- ou bi-directionnelle.

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.

📌
Pour aller plus loin, voir les cours 04 - SQL et 05 - PL-SQL