Rappel – Base de Données
1
Base de données (2)
Les données sont stockées sur des mémoires secondaires
Indépendante de l’application et du langage de
programmation
Partagée par plusieurs utilisateurs
Gérée par un SGBD (DBMS: Database Management System)
3
SGBD
Système de Gestion de Bases de Données (SGBD)
Est un ensemble de logiciels permettant
La création de données
‒ LDD : Langage de Définition de Données)
La manipulation de données (Interrogation et mise à
jour de la base)
‒ LMD : Langage de Manipulation de Données
Le contrôle de données
‒ LCD : Langage de Contrôle de Données
La gestion des transactions
4
SGBD (2)
"Un ensemble de programmes assurant le stockage, la
modification, l’accès et la maintenance de données de la base
de données indépendamment des programmes d’application",
Georges Gardarin
Exemple
MySQL, Oracle, DB2, SQL Server, PostgreSQL,
Access, Paradox, ...
5
Evolution des SGBD
Ces évolutions sont Induits par
Croissance importante du volume de données
Diversité de type de données
6
Fonctionnalités principales d’un
SGBD
Cohérence et intégrité des données
Vérification des contraintes d’intégrité
Non redondance des données
Partage des données et confidentialité
Performances d’accès
Sécurité des données et reprise sur panne
Indépendance des données
Niveau physique
Niveau logique
Niveau externe (Vue)
7
Modèles de données [+SGBDR]
Tout SGBD est conçu autour d’un modèle de données bien
défini
Abstraction mathématique selon laquelle l’utilisateur voit les
données
Exemples
relationnel
réseaux
hiérarchique
etc
8
Modèles de données (2)
Possède deux parties
1) Un langage pour la description des données
CREATE TABLE STUDENT
( Num Integer,
FirstName Char(100),
LastName Char(100),
BirthYear Integer)
2) Un langage avec un ensemble d’opérations pour manipuler
les données
SELECT LastName
FROM STUDENT
WHERE BirthYear =1980
ORDER BY LastName 9
Architecture logique d’un SGBD
La plupart des SGBD suivent l’architecture standard Ansi/Sparc
Permet d’isoler les différents niveaux d’abstraction nécessaires
pour un SGBD
Détacher l’utilisateur de l’implémentation physique.
View 1 View 1 View 2
Conceptual
Schema
Internal
Schema
data
base
10
Architecture logique d’un SGBD
1) Niveau interne ou physique
Décrit le modèle de stockage des données et les fonctions
d’accès
2) Niveau conceptuel ou logique
Décrit la structure globale de la base de données
Le schéma conceptuel
‒ Est produit par une analyse de l’application à modéliser et
par intégration des différentes vues utilisateurs
‒ Décrit la structure de la base indépendamment de son
implantation
3) Niveau externe
Correspond aux différentes vues des utilisateurs.
Chaque schéma externe donne une vue sur le schéma conceptuel à
une classe d’utilisateurs. 11
Séparation logique / physique [+SGBDR]
Principe d’indépendance des données
Permet à l’utilisateur de se concentrer uniquement sur la
représentation logique des données sans se soucier de la
représentation physique de ces données.
LDD pour définir les aspects structurels des données.
LMD pour y accéder et les mettre-à-jour.
Plusieurs aspects de l’implémentation physique peuvent être
changés sans avoir à modifier la vision abstraite de la base de
données
Distinction fondamentale qui existe entre les systèmes de
fichiers et les bases de données
12
Séparation niveaux physique et
applicatif [+SGBDR]
Offre des points de vue différent sur les bases de données qui
sont adaptés à des besoins spécifiques
Les vues cachent les informations sans intérêt
13
Modèle relationnel
Les concepts sont fondés sur une théorie mathématique
issue de :
L'algèbre relationnelle
La théorie des ensembles
La logique formelle
Repose sur le principe de la séparation
entre les données et les traitements
A été proposé par l'informaticien d'IBM
Edgar F. Codd CODD en 1970
14
Modèle relationnel (2)
Les données sont organisées en relations
Tables: relations
Colonnes: attributs
Lignes: n-uplets (ou tuples)
Exemple
Table : Etudiant
idEtudiant nom adresse numC desc note
110 Amina Alger M212 Analyse 1 A
406 Ali Jijel M212 Analyse 1 B
218 Ahmed Alger I209 Base de données C
340 Amir Sétif I209 Base de données A
200 Karima Jijel M100 Algèbre B
15
Modèle relationnel (3)
Schéma d’une base de données
Ensemble de noms de tables
Ensemble d’attributs pour chaque table
Etudiant[idEtudiant, nom, adresse, numC, desc, note]
MODULE[code, intitulé, niveau, responsable]
Instance d’une bases de données
Ensemble de valeurs dans une table
Ensemble de n-uplets
{<406, Ali, Jijel, M212, Analyse 1, B>,
<110, Amina, Alger, M212, Analyse 1, A>}
16
Attributs
Attribut
Un nom qui décrit une propriété
Exemple : matricule, nom, prénom, adresse d'un étudiant
Domaine d'un attribut :
Ensemble des valeurs atomiques de l'attribut
Exemple : matricule ∈{'1753', '2410', '0148'}, adresse est une
chaîne de 20 caractères
Valeur NULL
Absence temporaire de valeur (inconnu) ou l'inapplicabilité
d'une valeur pour un attribut dans un tuple
17
Clés
Clé
Plus petit sous-ensemble d’attributs qui identifient chaque ligne de
manière unique
Il n'existe pas deux lignes avec les mêmes valeurs pour l'ensemble
de ces attributs
Exemple: l'attribut matricule pour la relation Étudiant
matricule nom prénom dateNaiss addresse
110 Mouman Amina 11-10-2000 Alger
406 Ben Salah Ali 26-09-1999 Jijel
218 Brahimi Ahmed 15-03-1999 Alger
340 Larbi Amir 09-06-2000 Sétif
Est-ce que les ensembles suivants peuvent être des clés?
– {nom, prénom}
– {nom, prénom, dateNaiss} 18
Clé primaire & clé étrangère
Clé primaire Clé étrangère Clé primaire
code intitulé niveau salle num nbrPlaces
110 BDA M2 12 12 120
406 Réseaux M2 19 18 120
218 Algo MI 18 19 40
340 Algèbre MI 12 20 40
Table: Module Table: Salle
19
SQL
Le SGBDR est muni d'un langage normalisé et non
procédural : SQL
Plusieurs sortes de commandes SQL
LDD
LMD
LCD
20
Langage de Dentition de Données
(LDD)
Permet de définir une base de données et les objets qui la
composent (Tables relationnelles, attributs, vues, indexes, etc).
En utilisant trois commandes
CREATE: création
ALTER: modification
DROP: suppression
21
Langage de Manipulation de Données
(LMD)
Permet de consulter et de mettre à jour les objets crées par le
LDD
En utilisant trois commandes
Consultation
SELECT
Mise à jour
INSERT: Insertion de nouvelles données
UPDATE: Modification de données existantes
DELETE: Suppression de données existantes
22
Langage de Contrôle de Données
(LCD)
Permettant de contrôler l'accès aux données
Autoriser et interdire l’accès à certaines données à certains
utilisateurs
Privilèges d’accès aux données
En utilisant trois commandes
Autoriser la réalisation d’une opération : GRANT
Interdire la réalisation d’une opération : DENY
Annuler la commande de contrôle précédente : REVOKE
Autoriser la modification des enregistrements : UPDATE
Interdire de modifier des enregistrements : READ
(consultation en lecture seulement)
Autoriser la suppression des enregistrements : DELETE
23
Exemple
Création d’une Table
CREATE TABLE Produit (
Numprod number (6) not null,
Desprod varchar (15) unique,
Couleur char,
Poids number (8,3),
Qte_stk number (7,3),
Prix number (10,3),
CodMag number(5,3),
Constraint Ck1_Produit CHECK (Poids >=0),
Constraint PK_Produit primary key (NumProd),
Constraint FK_Produit Foreing Key (CodMag)
references Magasin (NumMag) );
Suppression d’une Table
DROP TABLE Produit ;
24
Exemple (2)
Ajout de nouvelles colonnes à une table
ALTER TABLE CLIENT ADD type_clt char(3) ;
Modification de la structure d'une colonne existante
ALTER TABLE CLIENT MODIFY type_clt char(5) ;
Suppression de colonnes existantes
ALTER TABLE Magasin DROP ville ;
Ajout d'une contrainte
ALTER TABLE Magasin ADD Constraint ck1_magasin
check (surface between 10 and 100) ;
Suppression de contraintes existantes
ALTER TABLE magasin DROP PRIMARY KEY CASCADE ;
ALTER TABLE produit DROP CONSTRAINT Ck4_Produit ;
25
Redondance et Anomalies
Exemple
idEtudiant nom adresse numC desc note
110 Amina Alger M212 Analyse 1 A
406 Ali Jijel M212 Analyse 1 B
218 Ahmed Alger I209 Base de données C
340 Amir Sétif I209 Base de données A
200 Karima Jijel M100 Algèbre B
Quels sont les problèmes ?
26
Redondance et Anomalies (2)
Redondance d’information
idEtudiant nom adresse numC desc note
110 Amina Alger M212 Analyse 1 A
406 Ali Jijel M212 Analyse 1 B
110 Amina Alger I209 Base de données C
340 Amir Sétif I209 Base de données A
200 Ali Jijel M100 Algèbre B
27
Anomalie de modification
idEtudiant nom adresse numC desc note
110 Amina Alger M212 Analyse 1 A
406 Ali Jijel M212 Analyse 1 B
110 Amina Alger I209 Base de données C
340 Amir Sétif I209 Base de données A
200 Ali Jijel M100 Algèbre B
Une modification sur une ligne peut nécessiter des
modification sur d'autres lignes
Ex. : Modification. Adresse de Amina
28
Anomalie de suppression
Certaines informations dépendent de l'existence d'autres
informations.
Ex. : Le cours 'M100' d’Algèbre dépend de l'existence d’Ali
idEtudiant nom adresse numC desc note
110 Amina Alger M212 Analyse 1 A
406 Ali Jijel M212 Analyse 1 B
110 Amina Alger I209 Base de données C
340 Amir Sétif I209 Base de données A
200 Ali Jijel M100 Algèbre B
29
Anomalie d’insertion
Valeurs manquantes
Ex : Si on veut insérer un nouvel étudiant '220, Karim, Bejaia',
il faut connaitre un de ses cours et sa note dans ce cours, ou
introduire des les valeurs nulles.
idEtudiant nom adresse numC desc note
110 Amina Alger M212 Analyse 1 A
406 Ali Jijel M212 Analyse 1 B
110 Amina Alger I209 Base de données C
340 Amir Sétif I209 Base de données A
200 Ali Jijel M100 Algèbre B
220 Karim Bejaia ???? ???? ????
30
DF - Dépendances fonctionnelles
Définition
Soit une relation R (X, Y, Z)
X, Y, Z sont des ensembles d'attributs
Z peut être vide
Il existe une DF de X vers Y, (notée X→Y), si c'est toujours la
même valeur de Y qui est associée à une valeur donnée de X
si (x, y, z) et (x, y’, z’) sont deux tuples de R, alors y = y'.
Exemple: Etudiant (NumEtudiant, Nom, Prénom, Département)
NumEtudiant → Nom
NumEtudiant → Prénom
NumEtudiant → Département
31
Normalisation
Objectif
Optimiser la modélisation
Suppression des problèmes de redondances
Minimiser l’espace de stockage (élimination des
redondances)
plusieurs Formes Normales
1FN
2FN
3FN
FNBC
…
32
1FN - Première forme normale
Une relation est en 1FN si et seulement si
Tous les attributs sont atomiques (non décomposables).
Ne contienne pas de structures répétitives.
Employé
Matricule
Nom
DateDeNaissance décomposable adresse
Adresse décomposable code postal
NumProj_1 ville
DescProj_1
NumProj_2 répétitif
DescProj_2
33
1FN (2)
Problématique:
On ne sait pas combien de projets sont affectés à chaque
employé.
Donc, au moment de la création, on ne sait pas
combien de champs il faut créer pour le projet
Problème de redondance: si plusieurs employés sont
affectés à un projet, on aura plusieurs fois la même
description du projet
34
2FN - Deuxième forme normale
Une relation est en 2FN si et seulement si
Elle est en 1FN
Tous les attributs de la relation dépendent de toute la
clé et non d’une partie de la clé
Autrement dit, éviter la configuration:
Dans la relation R (A, B, C, D, E)
Il faut éviter la configuration suivante :
A, B → D, E
B→C
35
2FN - Exemple
Employé (Matricule, Nom, Prénom, Age) est en 2FN
Commande (NumPièce, NomFour, Quantité, Adresse) n'est pas
en 2FN car on a :
NumPièce, NomFour → Quantité
NomFour → Adresse
Problématique: Schéma avec anomalies
NumPièce NomFour Quantité Adresse
12 Ben Braham 40 Rue des Martyrs, Alger
10 Mansouri 50 Rue Des Invalides, Oran
15 Ben Braham 18 Rue des Martyrs, Alger
10 Brahimi 20 Rue de la Révolution, Setif
Anomalie de mise à jour
36
2FN - Exemple (2)
Solution: Décomposition de la relation
PièceCommandée (NomPièce, NomFour, QUANTITE)
Fournisseur(NomFour, Adresse)
Fournisseur PièceCommandée
NomFour Adresse NumPièce NomFour Quantité
Ben Braham Rue des Martyrs, Alger 12 Ben Braham 40
Mansouri Rue Des Invalides, Oran 10 Mansouri 50
Brahimi Rue de la Révolution, Setif 15 Ben Braham 18
10 Brahimi 20
Schéma sans anomalies
37
3FN – Troisième forme normale
Une relation est en 3FN si et seulement si
Elle est en 2FN
Tous les attributs non-clé dépendent uniquement de la
clé (aucune dépendance entre deux attributs non clé).
Autrement dit, éviter la configuration:
Dans la relation R (A, B, C, D, E)
Il faut éviter la configuration suivante :
A, B → C, D, E
C→E
38
3FN – Exemple
Etudiant
IdEtudiant Nom Département SigleDep
12 Kamal 7 MI
10 Mokrani 7 MI
15 Yakoubi 3 ST
10 Ben Mohamed 2 SM
DF
DF
39
3FN – Exemple (2)
Etudiant Département
IdEtudiant Nom Département IdDépartement Sigle
12 Kamal 7 2 MI
10 Mokrani 7 3 ST
15 Yakoubi 3 7 SM
10 Ben Mohamed 2
40
Exemple
EtudiantCours
IdEtudiant IdCours IdEnseignant Note
1200 12 211 A
1000 15 340 A+
1500 12 211 B-
1000 17 211 C
En 3FN ?
Problèmes ?
41
FNBC – Forme Normale de Boyce-Codd
Une relation respecte la forme normale de Boyce-Codd, si et
seulement si
Elle est en 3FN
Tous les attributs non-clé ne sont pas source de
dépendance vers une partie de la clé
Permet d’éliminer certaines redondances plus rares
42
FNBC – Exemple
EtudiantCours
IdEtudiant IdCours IdEnseignant Note
1200 12 211 A
1000 15 340 A+
1500 12 211 B-
1000 17 211 C
EtudiantCours Cours
IdEtudiant IdCours Note
IdCours IdEnseignant
1200 12 A
12 211
1000 15 A+
15 340
1500 12 B-
17 211
1000 17 C
43
Autres Formes Normales
Permettent d’approfondir certaines dépendances plus rares,
complexes et souvent difficiles à identifier
Permet de s’approcher d’un modèle sans redondance
Plus complexes
Leur usage reste beaucoup plus marginal
44
NB
La cohérence de la base de données dépend de la qualité de sa
conception!!!
45