Conception de bases de données
Lis Sulmont
Curriculum Manager
Identifier les groupes de données qui se répètent et créer de nouveaux tableaux pour ceux-ci
Une définition plus formelle :
Les objectifs de la normalisation sont les suivants :
- Être capable de caractériser le niveau de redondance dans un schéma relationnel
- Fournir des mécanismes permettant de transformer les schémas afin d'éliminer les redondances
Classé du moins au plus normalisé :
$$
Données initiales
| Student_id | Student_Email | Courses_Completed |
|------------|-----------------|----------------------------------------------------------|
| 235 | [email protected] | Introduction to Python, Intermediate Python |
| 455 | [email protected] | Cleaning Data in R |
| 767 | [email protected] | Machine Learning Toolbox, Deep Learning in Python |
| Student_id | Student_Email |
|------------|-----------------|
| 235 | [email protected] |
| 455 | [email protected] |
| 767 | [email protected] |
| Student_id | Completed |
|------------|--------------------------|
| 235 | Introduction to Python |
| 235 | Intermediate Python |
| 455 | Cleaning Data in R |
| 767 | Machine Learning Toolbox |
| 767 | Deep Learning in Python |
Données initiales
| Student_id (PK) | Course_id (PK) | Instructor_id | Instructor | Progress |
|-----------------|----------------|---------------|---------------|----------|
| 235 | 2001 | 560 | Nick Carchedi | .55 |
| 455 | 2345 | 658 | Ginger Grant | .10 |
| 767 | 6584 | 999 | Chester Ismay | 1.00 |
| Student_id (PK) | Course_id (PK) | Percent_Completed |
|-----------------|----------------|-------------------|
| 235 | 2001 | .55 |
| 455 | 2345 | .10 |
| 767 | 6584 | 1.00 |
| Course_id (PK) | Instructor_id | Instructor |
|----------------|---------------|---------------|
| 2001 | 560 | Nick Carchedi |
| 2345 | 658 | Ginger Grant |
| 6584 | 999 | Chester Ismay |
Données initiales
| Course_id (PK) | Instructor_id | Instructor | Tech |
|----------------|---------------|---------------|--------|
| 2001 | 560 | Nick Carchedi | Python |
| 2345 | 658 | Ginger Grant | SQL |
| 6584 | 999 | Chester Ismay | R |
| Course_id (PK) | Instructor | Tech |
|----------------|---------------|--------|
| 2001 | Nick Carchedi | Python |
| 2345 | Ginger Grant | SQL |
| 6584 | Chester Ismay | R |
| Instructor_id | Instructor |
|---------------|---------------|
| 560 | Nick Carchedi |
| 658 | Ginger Grant |
| 999 | Chester Ismay |
Quels sont les risques encourus si nous ne normalisons pas suffisamment ?
1. Anomalie de mise à jour
2. Anomalie d'insertion
3. Anomalie de suppression
Incohérence des données due à la redondance lors de la mise à jour
| Student_ID | Student_Email | Enrolled_in | Taught_by |
|------------|-----------------|-------------------------|---------------------|
| 230 | [email protected] | Cleaning Data in R | Maggie Matsui |
| 367 | [email protected] | Data Visualization in R | Ronald Pearson |
| 520 | [email protected] | Introduction to Python | Hugo Bowne-Anderson |
| 520 | [email protected] | Arima Models in R | David Stoffer |
Pour mettre à jour l'adresse e-mail de l’étudiant n°520 :
Impossible d'ajouter un enregistrement en raison d'attributs manquants
| Student_ID | Student_Email | Enrolled_in | Taught_by |
|------------|-----------------|-------------------------|---------------------|
| 230 | [email protected] | Cleaning Data in R | Maggie Matsui |
| 367 | [email protected] | Data Visualization in R | Ronald Pearson |
| 520 | [email protected] | Introduction to Python | Hugo Bowne-Anderson |
| 520 | [email protected] | Arima Models in R | David Stoffer |
Impossible d'ajouter un étudiant qui s'est inscrit, mais qui n'est inscrit à aucun cours
La suppression d'enregistrements peut entraîner une perte involontaire de données
| Student_ID | Student_Email | Enrolled_in | Taught_by |
|------------|-----------------|-------------------------|---------------------|
| 230 | [email protected] | Cleaning Data in R | Maggie Matsui |
| 367 | [email protected] | Data Visualization in R | Ronald Pearson |
| 520 | [email protected] | Introduction to Python | Hugo Bowne-Anderson |
| 520 | [email protected] | Arima Models in R | David Stoffer |
Si nous supprimons l'étudiant n°230, que se passe-t-il avec les données sur Cleaning Data in R ?
Quels sont les risques encourus si nous ne normalisons pas suffisamment ?
1. Anomalie de mise à jour
2. Anomalie d'insertion
3. Anomalie de suppression
Plus la base de données est normalisée, moins elle sera sujette aux anomalies de données
Veuillez ne pas oublier les inconvénients de la normalisation mentionnés dans la dernière vidéo
Conception de bases de données