Vous êtes sur la page 1sur 44

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

Vous aimerez peut-être aussi