0% ont trouvé ce document utile (0 vote)
5 vues21 pages

Contraintes d'intégrité en bases de données

Le document présente un plan de cours sur les bases de données avancées, abordant des sujets tels que l'architecture des SGBD, le langage PL/SQL, les triggers, et les transactions. Il se concentre particulièrement sur les contraintes d'intégrité, leur définition, leur déclaration, et les types de contraintes, notamment statiques et dynamiques. La conclusion souligne l'importance des contraintes d'intégrité dans la gestion des bases de données et les langages utilisés pour leur définition et manipulation.

Transféré par

raoufboussaidi111
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
5 vues21 pages

Contraintes d'intégrité en bases de données

Le document présente un plan de cours sur les bases de données avancées, abordant des sujets tels que l'architecture des SGBD, le langage PL/SQL, les triggers, et les transactions. Il se concentre particulièrement sur les contraintes d'intégrité, leur définition, leur déclaration, et les types de contraintes, notamment statiques et dynamiques. La conclusion souligne l'importance des contraintes d'intégrité dans la gestion des bases de données et les langages utilisés pour leur définition et manipulation.

Transféré par

raoufboussaidi111
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

PLAN DU COURS Base de données avancées

• Chapitre 1. Architecture des SGBD et généralité sur les BD:


• Architecture des SGBD
• Contraintes d’intégrité
• Méta-base
• Mémoire relationnelle
• Chapitre 2. Le langage PL/SQL
• Chapitre 3. Les Triggers
• Chapitre 4. Les transactions
• Chapitre 5. Optimisation et évaluation des requêtes centralisées
• Chapitre 6. BD Distribuées : Fragmentation, allocation et optimisation
• Chapitre 7. Les BDs non relationnelles (NoSQL)
[Link]. HPC M1 BDA USTHB 1
Chapitre 1
GÉNÉRALITÉS SUR LES BD: Contraintes d’intégrité

[Link]. HPC M1 BDA USTHB 2


GESTION DEL’INTÉGRITÉ
• CONTRAINTES D’INTÉGRITÉ
• Les données de la base doivent rester conformes à la réalité qu’elles
représentent
• Ceci est réalisé à l’aide de la définition des contraintes d’intégrité (CI).
• Une contrainte d’intégrité est une règle qui peut être simple ou
complexe pouvant prendre la valeur vraie ou faux.
• Elle s’applique sur les données d’une base de données
• Elle permet de maintenir la cohérence de données

[Link]. HPC M1 BDA USTHB 3


CONTRAINTES D’INTÉGRITÉ

• Quand les déclarer?


• A la création de la base de données.
• A tout instant de l’existence d’une base de données. On doit donc pouvoir
définir de nouvelles contraintes d’intégrité de manière dynamique.
• Comment ?
• A l’aide d’instructions ou de programmes SQL, ou ses différentes extensions
tel que PL/SQL .
• Le SGBD doit fournir des mécanismes pour vérifier que la base est
cohérente vis à vis de cette contrainte et accepter ou rejeter toute mise à
jour de la BD.
[Link]. HPC M1 BDA USTHB 4
CONTRAINTES D’INTÉGRITÉ
• EXEMPLES
• Soit la relation : ETUDIANT (Matricule, Nom, Date-Naissance, Filiere)

• A la création:
• CREATE TABLE ETUDIANT ( Matricule integer PRIMARY KEY,
• Nom char (40) NOT NULL,
• Date-Naissance integer,
• Filiere char (30)
• CONSTRAINT C1 FILIERE CHECK (FILIERE in (‘Informatique’, ‘mathématique’))

• Au cours de la vie de la BD
• ALTER TABLE ETUDIANT ADD CONSTRAINT C2 Filiere CHECK (Filiere in
(‘Informatique', ‘Mathématique', ’Télécommunications’))

[Link]. HPC M1 BDA USTHB 5


CONTRAINTES D’INTÉGRITÉ
• CREATE TABLE ETUDIANT ( Matricule integer PRIMARY KEY,
• Nom char (40) NOT NULL,
• Date-Naissance integer,
• Filiere char (30));
• Au cours de la vie de la BD
• ALTER TABLE ETUDIANT ADD CONSTRAINT C2 Filiere CHECK (Filiere in
(‘Informatique', ‘Mathématique'))

[Link]. HPC M1 BDA USTHB 6


LES TYPES DE CONTRAINTES D’INTÉGRITÉ
• Deux types de contraintes d’intégrité: statique ou dynamique

• Contraintes statiques:

Contraintes statiques intra relation:


Contraintes statiques intra relation mono attribut
Contraintes statiques intra relation multi attributs

Contraintes statiques inter relation

[Link]. HPC M1 BDA USTHB 7


LES TYPES DE CONTRAINTES D’INTÉGRITÉ

• Contraintes statiques intra relation:

• CI individuelle intra relation mono attribut


• Plage de valeurs : 4.000 ≤ salaire ≤ 20.000, : salaire between 10000
and 20000
• Liste de valeurs : Couleur dans [bleu, rouge, vert] : couleur IN (‘bleu’,
‘rouge’, ‘vert’)

[Link]. HPC M1 BDA USTHB 8


LES TYPES DE CONTRAINTES D’INTÉGRITÉ
• CI individuelle intra relation multi attribut: Contraintes entre
constituants (attributs) :

• Exemple :
• Trajet (NumT, DateDep, VilleDep, VilleArr)
• Ville départ doit être différente ville d’arrivée
• Alter table Trajet ADD constraint Ch1 check VilleDep <> VilleArr

[Link]. HPC M1 BDA USTHB 9


LES CONTRAINTES STATIQUES SQL: NIVEAU
COLONNE ET NIVEAU TABLE

[Link]. HPC M1 BDA USTHB 10


LES CONTRAINTES STATIQUES SQL: NIVEAU
COLONNE ET NIVEAU TABLE
• CREATE TABLE ETUDIANT ( Matricule integer PRIMARY KEY,
• Nom char (40) NOT NULL,
• Date-Naissance integer,
• Filiere char (30)
• CONSTRAINT C1 FILIERE CHECK (FILIERE in (‘Informatique’,
‘mathématique’))

[Link]. HPC M1 BDA USTHB 11


CI STATIQUE : AU NIVEAU COLONNE SQL

• Exemple:
• NOT NULL : interdit la présence de valeurs nulles dans la colonne
• create table employe (
• Empno number(4),
• Nomemp varchar(10) not null
• Numproj number (9)
• Numdept number(2) not null) ;

• La contrainte NOT NULL s’applique aux colonnes Nomemp et Numdept de


la table Employe.
[Link]. HPC M1 BDA USTHB 12
CI STATIQUE : AU NIVEAU TABLE OU
COLONNE
• La contrainte de clé unique se définit au niveau table ou au niveau colonne

• Exemple

• Create table departement (


• Numdept number (2),
• Nomdept varchar(12)
• Constraint département_nomdept_uk UNIQUE (nomdept))

• On aurait pu écrire lors de la création de la table:


• Nomdept UNIQUE varchar(12) qui serait alors une contrainte colonne
[Link]. HPC M1 BDA USTHB 13
CI STATIQUE : AU NIVEAU TABLE OU
COLONNE: PRIMARY KEY
• CREATE Table departement
• Numdept Number(2)
• Nomdept Varchar(14)
• Constraint département_nomdept_uk Unique (nomdept)
• Constraint département_numdept_pk PRIMARY KEY (Numdept)) ;

• Remarque : un index primaire est créé automatiquement pour une


colonne PRIMARY KEY

[Link]. HPC M1 BDA USTHB 14


CONTRAINTES INTER-RELATIONS MULTI
ATTRIBUTS STATIQUES
• Contrôler que l’ensemble des valeurs d’un constituant d’une relation
R1 apparait également dans une relation R2

• Rayon (Nom-Rayon, Etage, Recettes, Depenses, Nb-Employes)


• Employe (Nom, Salaire, Nom-Rayon*)

• CI clé étrangère

[Link]. HPC M1 BDA USTHB 15


CONTRAINTES INTER-RELATIONS MULTI
ATTRIBUTS STATIQUES
• Contrôler que l’ensemble des valeurs d’un constituant d’une relation R1 apparait également dans une
relation R2
• Rayon (Num-Rayon, Etage, Recettes, Depenses, Nb-Employes)
• Employe (NumEmp, NomEmp, N-Rayon*)
• Exprimer le fait que tout rayon apparaissant dans la relation Employé est décrit dans la relation Rayon

• La contrainte FOREIGN KEY définit une colonne d’une table par référence a une autre table (clé primaire)

• Exemple :
• CREATE table employe ( Numemp number(4)
Nomemp varchar(10) NOT NULL
Num-rayon NUMBER(2) NOT NULL,
Constraint employe_numrayon_fk FOREIGN KEY (N-Rayon) REFERENCES Rayon (Num-Rayon)

[Link]. HPC M1 BDA USTHB 16


CONTRAINTES D’INTÉGRITÉ DYNAMIQUES
• Elles sont définies au cours de changements d’états. On peut alors
contrôler le passage d’un état à un autre.
• Les n-uplets du nouvel état dépendent de ceux de l’ancien:
• Triggers ou déclencheurs

[Link]. HPC M1 BDA USTHB 17


CONTRAINTES D’INTÉGRITÉ DYNAMIQUESLES
TRIGGERS OU DÉCLENCHEURS
• Définition : Un trigger est une règle ayant la structure suivante:
• « si événement et/ou condition alors action »
• L’action est déclenchée à la suite de l’événement, si la condition est vérifiée.
• Exemple
• Lorsqu’un nouvel employé est inséré dans la base, le nombre d’employés figurant dans la
relation rayon doit augmenter de un pour le rayon du nouvel employé
• CREATE OR REPLACE TRIGGER EMPINS
• AFTER INSERT ON Employé
• FOR EACH ROW
• BEGIN
• UPDATE RAYON
• SET Nb-Employés = Nb-Employés + 1
• WHERE Nom-Rayon = :[Link]-Rayon);
• END;

[Link]. HPC M1 BDA USTHB 18


MODIFICATION DE CI
• Ajout de contraintes
• ALTER TABLE <nom_table> ADD CONSTRAINT nom_contrainte
• type_contrainte;

• Suppression de contraintes
• ALTER TABLE <nom_table> DROP CONSTRAINT nom_contrainte

[Link]. HPC M1 BDA USTHB 19


CONCLUSION

• Ce qu’il faut retenir :


• Une CI est une règle de gestion à définir :
• À la création de la BD
• Au cours de la vie de la BD
• Une CI doit être vérifiée tout au long de l’existence de la BD
• Elle peut être modifiée au cours de la vie de la BD
• Le SGBD est l’organe de définition, vérification, modification d’une CI à
travers des instructions du LDD/LMD
• Deux types de CI : statique / dynamique
• CI dynamique : une règle de gestion active : les TRIGGERS
[Link]. HPC M1 BDA USTHB 20
CONCLUSION

• Langage de Définition de Données (LDD):


• CREATE
• DROP
• ALTER
• Pour les structures de données (tables, vues, index, triggers, contraintes…)

• Langage de Manipulation de Données (LMD):


• Insert
• Delete
• Update
• Pour les données (les tuples)

[Link]. HPC M1 BDA USTHB 21

Vous aimerez peut-être aussi