Base de Données 3 février 2001 M Cieloski
1
LE L D D
Le langage de description de données
Il permet d’exprimer les ordres de définition dans les structures
d’hébergement des données, notamment les tables, les vues et les index.
Il permet de créer, modifier ou supprimer des tables.
Les types de données : alphanumérique : CHAR(n) liste de caractères, n
fixe la taille ; VARCHAR(n) liste de caractères de taille variable de longueur n.
Numérique : NUMBER(n ;d) c’est un nombre de n
chiffre de longueur (n) dont (d) chiffres après la virgule ;
De type INTEGER qui regroupe les entiers
FLOAT numérique flottant
SMALLINT (-32768 à +32767)
DATE type date
TIME heure
DATE/TIME date+heure
I CREATION DE TABLE
CREATE TABLE : permet de créer une table, de définir des colonnes, de leur
associer un type et éventuellement des contraintes à vérifier.
~> CREATE TABLE <nom_table> (<nom_colonne> <type>, <- - - > <- - - >) ;
Exemple CREATE TABLE département (n°_dep number(31),---) ;
Il est également possible de créer une table en insérant des lignes à la création
CREATE TABLE département (n°_dep number(31),---)
AS SELECT <nom_champ> FROM <table>
avec conditions
II EXPRESSION DES CONTRAINTES D’INTEGRITES
La gestion automatique des contraintes d’intégrités est l’un des outils de gestion de
base de données, selon les contraintes, différentes anomalies peuvent se déclencher,
dès qu’une saisie, une modification, ou une destruction de données est effectuée.
Dès qu’un accès non conforme aux contraintes spécifiées survient, l’action est
automatiquement rejetée, par suite, elle est présentée à l’utilisateur si le traitement
se fait en interactif ou rangé dans une table qui trace les erreurs si le traitement se
fait en différé (batch).
LES DIFFERENTES CONTRAINTES :
Base de Données 3 février 2001 M Cieloski
2
Contrainte de clé :
Ce premier type de contrainte traité par le SGBD permet de
vérifier l’unicité des clés de chacune des tables (clé primaire). Une clé primaire peut
être constituée de plusieurs colonnes. Elle doit répondre à une obligation ; Quelque
soit la table si une clé primaire est définie, elle doit être présente dans chaque
enregistrement et aucun de ses composants ne doit être NULL.
Si la clé à déjà été saisie cela déclenche une erreur.
Contrainte de type de données :
permet de vérifier les types de données saisie et les
domaines de validité (ex : note entre 0 et 20)
Contrainte d’intégrité référentielle :
La gestion des contraintes d’intégrités permet
aussi de vérifier automatiquement la présence de données référencées dans des
tables différentes.
C’est à dire qu’une contrainte d’intégrité référentielle peut s’appliquer dès qu’une clé
primaire d’une table est utilisée comme référence dans une autre table.
(ex : num_spec est une clé étrangère dans les tables jouer et representaion)
La clé étrangère :
Elle peut être constituée de plusieurs colonnes, le de produit
(clé primaire de la table produits), mais elle est clé étrangère de la table commandes
quand au de fournisseur, clé primaire de la table fournisseurs et clé étrangère
dans commandes.
Anomalies de suppression :
Si on supprime le fournisseur 17, 3 commandes de la
table commande deviennent incohérentes ; Elle doivent d’abord être supprimées
dans la table commandes.
Anomalies de modification :
Si on transforme le de fauteuil rouge de 102 à 112,
les 2 enregistrements de la table des commandes doivent également être modifiés.
Anomalies d’ajout :
Si on tente d’ajouter une commande qui se réfère au produit
111 ; L’ajout est refusé car il n’existe pas dans la table produits.
En résumé :
Grâce à la gestion des contraintes dont le SGBD s’occupe à chaque
action sur les données cela contribue à la cohérence de la base.
3 façons selon les souhaits de l’utilisateur.
- un simple signalement de l’anomalie (message)
- Effacement automatique des tuples
- MAJ des tuples qui utilise la clé étrangère qui référence une clé primaire qui
vient de changer de valeur.
Le LDD
1
permet d’exprimer ces différentes contraintes au moment de la création de
la table associée à la définition d’une colonne, il est possible d’ajouter l’expression de
ces différentes contraintes.
CONSTRAINT : Permet de nommer la contrainte
1
LDD langage de description des données
Base de Données 3 février 2001 M Cieloski
3
DEFAULT : Valeur par défaut d’une colonne
NOT NULL : Une colonne n’est pas nulle
UNIQUE : Toutes les valeurs d’une colonne doivent être différentes
CHECK : Vérification de la validité suivi de la condition
CHECK (condition)
PRIMARY KEY : (liste de colonnes)
FOREIGN KEY : (liste de colonnes 1) Références table (liste colonnes 2)
Les modification automatiques à faire sur la clé étrangère donc un changement de la
clé primaire sont également exprimées par des clauses.
ON DELETE RESTRICT : donne un échec s’il existe encore dans la table
CASACADE :
SET NULL : place valeur null à place de toute occurence
SET DEFAULT :
Idem pour la mise à jour
ON UPDATE RESTRICT
CASCADE
SET NULL
SET DEFAULT
Dans les 2 cas si on ne spécifie pas, c’est la valeur RESTRICT qui est retenue par
défaut.
Illustration par l’exemple
Supprimer le produit 103
Delete From produits
Where pno=103
CREATE TABLE commandes
(cno integer
pno integer
fno integer
qute integer
PRIMARY KEY (cno)
FOREIGN KEY (pno) references produits (pno)
ON DELETE RESTRICT);
Dans ce cas de figure mon ordre va être refucar le produit 103 est référencé dans
la table commandes.
Delete From produits
Where pno=103
CREATE TABLE commandes
(cno integer
pno integer
Base de Données 3 février 2001 M Cieloski
4
fno integer
qute integer
PRIMARY KEY (cno)
FOREIGN KEY (pno) references produits (pno)
ON DELETE CASCADE);
Il aurait supprimé toutes les lignes qui références le produit 103 dans la table
commandes puis dans la table produits.
Delete From produits
Where pno=103
CREATE TABLE commandes
(cno integer
pno integer
fno integer
qute integer
PRIMARY KEY (cno)
FOREIGN KEY (pno) references produits (pno)
ON DELETE SET NULL);
Où il va trouver 103 dans la table commandes il va mettre NULL.
La création d’une table produits avec pour contrainte le n° de produit sont une
clé primaire < 200, le prix du produit compris entre 1000 F et 9000 F, le poids
ne devrait excéder 100Kg, la couleur rouge, verte ou jaune.
CREATE TABLE produits
(pno integer, CHECK (pno<200),
design char (10),
prix integer, CHECK (prix BETWEEN 1000 and 9000),
poids integer, CHECK (poids < 100),
couleur char(10), CHECK (couleur IN (‘rouge’,’vert’,’jaune’)),
CONSTRAINT PK_produits primary key (pno)) ;
Création de la table des commandes, avec cno primary key, fno et pno clés
étrangères en spécifiant effacement en cascade.
CREATE TABLE commandes
(cno UNIQUE NOT NULL,
fno integer,
pno integer,
qute integer,
CONSTRAINT PK_commandes primary key(cno),
CONSTRAINT FK_fournisseurs foreign key(fno),
References fournisseurs(fno),
ON DELETE CASCADES,
CONSTRAINT FK_produits foreign key(pno),
References produits(pno),
Base de Données 3 février 2001 M Cieloski
5
ON DELETE CASCADES) ;
LES TRIGGER : Nouveau type de contrainte qui s’exprime au travers d’un
déclencheur (en fait un script SQL), lors de l’ajout, la suppression, la modification
… .Il se lance avant ou après la modif. Supp. ou l’associe à une action INSERT,
DELETE ou UPDATE.
Exemple : Tracer les action d’un utilisateur sur les destructions dans la table
commandes.
CREATE TRIGGER Espion
AFTER DELETE
ON commandes
(insert into trace
values (USER, SYSDATE, commandes.cno)) ;
LES VUES
C’est une table dont les données ne sont pas physiquement stockées mais qui
se référent à des données stockées dans d’autres tables.
C’est donc une fenêtre sur la table qui permet à chacun de voir les données
comme il le souhaite.
On peut ainsi définir plusieurs vues à partir d’une même table et en faire
varier la composition en fonction des utilisateurs. Il est aussi possible de combiner
des données venant de plusieurs tables, d’autres vues ou données calculées dans
une vue (données brutes ou transformées).
CREATE VIEW nom
(liste_col)
As selection des données ;
Créer une vue qui présente la table des produits avec les prix en euro.
CREATE VIEW produits_euro
AS select pno,design,prix/6.55957
From produits;
Création d’une vue qui montre la table des commandes avec les noms des
fournisseurs et produits en clair.
CREATE VIEW commandes
AS select cno,nom,design,qute,
From produits P,
fournisseurs F,
commandes C,
where F.fno = C.fno
1 / 7 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !