Formulaire de BDD
Formulaire de BDD
Formulaire de BDD
I. Le dictionnaire de données
Le dictionnaire de données permet de recenser toutes les informations utiles au système considéré. Le
dictionnaire peut-être modalisé par le tableau suivant :
Le MCD permet de représenter les données sous forme de schéma. Il faut dans un premier construire les
entités (chacune possède une clé qui permet de repérer de façon unique une donnée), puis ajouter les
relations qui existent entre les entités. En plus de cela, il convient d’ajouter la cardinalité qui régit
les relations.
ENTITE 1 ENTITE 2
1,N RELATION 0,1
CLE CLE
Attribut11 Attribut Attribut21
Attribut12 Attribut22
Attribut13 Attribut23
III. Le MLD
Règle 1 : Toute entité est représentée par une relation. Chaque attribut de l'entité devient un attribut
de la relation. L'identifiant est conservé en tant que clé de la relation.
Règle 2 : Toute association qui associe plus de deux entités (ternaire et au-delà) est représentée par une
relation.
Règle 3 : Toute association binaire dont les cardinalités maximales sont n de chaque côté est une relation
(relation dont les attributs sont les attributs clefs des entités qu'elle relie ainsi que les éventuels
attributs propres à l’association).
Règle 4 : Une association de type père - fils, cardinalité maximum à n d’un côté et à 1 de l’autre, n’est
pas représentée par une relation. On indique les attributs clefs de l’entité père (côté (.,n)) dans le
fils (côté (.,1)).
Règles de normalisation
Une DF élémentaire est une DF de la forme X → A où A est un attribut unique n’appartenant pas à X et où il
n’existe pas X' inclus au sens strict dans X (i.e. X' Ì X) tel que X' → A.
Une DF X → A est une DF directe s’il n’existe aucun attribut B tel que l’on puisse avoir X → B et B → A.
Norme 1FN : Une relation est en 1FN si, et seulement si, tout attribut contient une valeur atomique (non
multiple, non composée).
Norme 2FN : Une relation est en 2FN si, et seulement si elle est en 1FN et si toutes les dépendances
fonctionnelles entre la clé et les autres attributs sont élémentaires.
Norme 3FN : Une relation est en 3FN si, et seulement si elle est en 2FN et si toutes les dépendances
fonctionnelles entre la clé et les autres attributs sont directes.
Norme BCNF : Une relation est en BCNF si, et seulement si elle est en 3FN et si les seules dépendances
fonctionnelles élémentaires sont celles dans lesquelles une clé détermine un attribut (et non l’inverse).
IV. Les types et les contraintes en SQL
Voici une liste des principales contraintes de colonnes (précédé du mot clé CONSTRAINT) :
o Vérification : CHECK
V. Le LDD (définition)
o Create
o Drop
o Alter
o Insert
o Update
UPDATE <nom_table>
SET <col>=<expr>[,<col>=<expr>…]
[WHERE <predicat>]
o Delete
o Select
π C 1 ,C 2 (matable ) A1 , A 2 … A n
Projection SELECT DISTINCT c1, c2 FROM ma_table
σ C 1=600 (matable )
Restriction SELECT * FROM ma_table WHERE c1 = 600; Ai OP Valeur e
Agrégat :
Attribut2,fonction(attr)
Attribut1
Remarques :
o Voici une liste des opérateurs de comparaison pour le ‘where’ : = , <> , <= , >= , < , >
o Voici une liste des opérateurs logiques pour le ‘where’ : AND , OR , NOT
o Voici une liste des meta-caractères existants en SQL : _ (un seul caractère) , % (0 ou n
caractères)
o Voici une liste des opérations sur les chaînes de caractère : UPPER(MAJASCULE) ,
LOWER(minuscule), TO_NUMBER(Chaîne → nombre), TO_CHAR(nb,masque(voir slide 13 BDD 6))
o Liste des opérateurs acceptés pour les sous-requêtes renvoyant une valeur : = , <> , <= , >= ,
< , >
o Liste des opérateurs acceptés pour les sous-requêtes renvoyant plusieurs valeurs : IN ,
NOT IN , ALL , ANY , = , <> , <= , >= , < , >
Remarque 2 : Lorsque l’on utilise une sous-requête, au lieu de faire une comparaison, on peut faire un
test sur la liste : SELECT T1.ID FROM table2 T2 WHERE EXISTS | NOT EXISTS (SELECT T2.ID FROM table2 T2
WHERE T2.ID = T1.ID)
VIII. Les opérations ensemblistes et jointures : SQL et langage algébrique
1. Union
2. Intersection
3. Différence
4. Division
Un cas particulier de jointure, est la jointure naturelle : elle se fait sur les attributs de même nom et
même type. Le principal avantage est que les colonnes sur lesquelles sont faites les jointures ne sont
affichées qu’une seule et unique fois : SELECT * FROM tab1 NATURAL JOIN tab2;
Pour tous les opérateurs ensemblistes et les jointures, les schema sont respectivement :
Operateur
Ai OP B j
IX. Les joitures externes en SQL
SELECT * FROM tab1 LEFT OUTER JOIN SELECT * FROM tab1,tab2 WHERE
tab2 ON tab1.col11 = tab2.col21; tab1.col1 = tab2.col1(+);
SELECT * FROM tab1 RIGHT OUTER JOIN SELECT * FROM tab1,tab2 WHERE
tab2 ON tab1.col11 = tab2.col21; tab1.col1(+) = tab2.col1;
Attention : La clause WHERE est une condition sur une table et la clause ON est une condition de jointure.
Les résultats sont complétements différents. Voici les schema respectivement des jointures LEFT, RIGHT et
FULL :
X. Les vues, les index, les droits
o Les vues
o Les index
o Les privilèges