class: mainpage name: accueil # Les différents types de clefs ### Business Intelligence --- layout:true .footer[ # Les différents types de clefs - Business Intelligence (11/09/2018) ## IMT Atlantique - http://formations.imt-atlantique.fr/bi/ - [Laurent Brisson](http://www.laurent-brisson.fr) et Sylvie Huchet .cc-by-nc-sa[] ] --- .header[ # Les différents types de clefs : notions de base ] # Student Table (provenant du système opérationnel) .small[Student_ID (PK) | Firstname | Lastname | Email --- | --- | --- | --- R666 | Lex | Luthor | lex.luthor@imt-atlantique.fr B613 | Olivia | Pope | olivia.pope@imt-atlantique.fr] ## Définitions - Clef **primaire** : elle définit de manière unique chaque ligne de la table. Chacune de ses valeurs est unique et non NULL. - Clef **étrangère** : il s'agit d'une clef qui référence un attribut d'une autre table (généralement une clef primaire). - Clef **composite** : il s'agit d'une clef composée de plusieurs attributs. - Clef **candidate** : il s'agit d'une clef ayant toutes les propriétés requises pour être une clef primaire. - Clef **alternative** : il s'agit d'une clef candidate n'ayant pas été choisie pour être la clef primaire. ??? Une clef primaire est un ensemble d'attributs qui détermine fonctionnellement tous les autres attributs de la table. Ici `Student_ID` et `Email` sont deux clefs candidates. On ne peut pas utiliser la combinaison de `Firstname` et `Lastname` en tant que clef composite car il y a un risque de doublon. La clef choisie pour être la clef primaire est `Student_ID`. --- .header[ # Les différents types de clefs : notions avancées ] # Student Dimension (dans l'entrepôt de données) .small[id (PK)| Firstname | Lastname | Student_ID | Email --- | --- | --- | --- 1 | Lex | Luthor | R666 | lex.luthor@imt-atlantique.fr 2 | Olivia | Pope | B613 | olivia.pope@imt-atlantique.fr] ## Définitions - Clef **naturelle** : il s'agit d'une clef utilisée pour définir quelque chose du monde réel. - Clef **métier** : il s'agit d'une clef primaire d'un système source. - Clef **artificielle** ou clef de **substitution** : utilisée en tant que clef dimensionnelle, il s'agit d'une clef sans signification qui est auto-générée (en général une séquence de nombres) pour remplacer une clef naturelle. ??? Ici `Student_ID` est une clef métier et naturelle tandis que `Email` est une clef naturelle. Afin de s'isoler du monde réel et du système source, une clef artificielle `id` est créée afin d'avoir la garantie que la clef primaire n'évoluera pas au cours du temps. --- .header[ # Les différents types de clefs : Terminologie et références ] ## Approfondir les concepts suivants .small[ FR | EN | [ADWD] | [SS] -- | -- | -- | -- Clef primaire | Primary Key | 142 | - Clef étrangère | Foreign Key | 142 | - Clef composite | Composite Key | 142 | - Clef alternative | Alternate Key | 142 | - Clef candidate | Candidate Key | 142 | - Clef naturelle | Natural Key | 142 | 11, 30 Clef artificielle ou clef de substitution | Surrogate Key | 142 | 11, 30 Clef métier | Business Key | 142 | - ] .x-small[ [ADWD] Corr, Laurence, and Jim Stagnitto. Agile Data Warehouse Design: Collaborative Dimensional Modeling, from Whiteboard to Star Schema.
[SS] Adamson, Christopher. Star Schema. Osborne/McGraw-Hill, 2010. ]