Base de Données

Base de Données - Mind Map

Lancez-Vous. C'est gratuit
ou s'inscrire avec votre adresse e-mail
Base de Données par Mind Map: Base de Données

1. Conception BD

1.1. Modèle Conceptuel

1.2. Modèle Logique

1.3. Modèle Physique

2. Passage au Schéma Relationnel

3. Normalisation

3.1. Dépendances Fonctionnelles (DF) : X -> Y

3.1.1. DF Elémentaire

3.1.2. DF Directe

3.1.3. Propriétés

3.1.3.1. Réflexivité

3.1.3.2. Transitivité

3.1.3.3. Pseudo-transitivité

3.1.3.4. Additivité

3.1.3.5. Décomposition

3.1.3.6. Augmentation

3.1.3.7. Union

3.2. 3 Formes Normales

3.2.1. 1FN

3.2.2. 2FN

3.2.3. 3FN

4. Algèbre Relationnelle

4.1. Opérateurs

4.1.1. Unaires

4.1.1.1. Sélection

4.1.1.2. Projection

4.1.2. Binaires

4.1.2.1. Ensemblistes

4.1.2.1.1. Union

4.1.2.1.2. Intersection

4.1.2.1.3. Différence

4.1.2.2. N-aires

4.1.2.2.1. Produit cartésien

4.1.2.2.2. Jointure

4.1.2.2.3. Division

5. SQL de Base

5.1. LDD : Langage de Définition des Données

5.1.1. Création de table: CREATE

5.1.1.1. 1ère Forme: Création simple

5.1.1.1.1. CREATE TABLE nom table ( nom col 1 type col [( taille)] [DEFAULT valeur ] [contrainte col], nom col 2 type col [( taille)] [DEFAULT valeur ] [contrainte col], nom col 3 type col [( taille)] [DEFAULT valeur ] [contrainte col], [contrainte-table] );

5.1.1.2. 2ème Forme: Création + Insertion

5.1.1.2.1. Exemple: CREATE TABLE Client_Sfax AS SELECT numclt, nom, tel, adr FROM Client Where Ville = 'Sfax';

5.1.1.3. Type de données

5.1.1.3.1. Caractère

5.1.1.3.2. Numérique

5.1.1.3.3. Date

5.1.2. Contraintes

5.1.2.1. Contrainte colonne

5.1.2.1.1. create table nom_table (col_i type_j [CONSTRAINT nom_contrainte] la contrainte , …. );

5.1.2.1.2. PRIMARY KEY

5.1.2.1.3. NULL

5.1.2.1.4. NOT NULL

5.1.2.1.5. UNIQUE

5.1.2.1.6. DEFAULT <valeur_par_defaut>

5.1.2.1.7. CHECK ( condition)

5.1.2.1.8. [FOREIGN KEY] REFERENCES nom_table [(nom-col)] [action]

5.1.2.2. Contrainte table

5.1.2.2.1. create table nom_table (col_1 type_2 ……………….., …. Col_n type_p ……………….., [CONSTRAINT nom_contrainte] la contrainte (<liste de colonnes>) ……………………………….. );

5.1.2.2.2. PRIMARY KEY (nom-col)

5.1.2.2.3. UNIQUE (nom-col)

5.1.2.2.4. FOREIGN KEY (nom-col) REFERENCES nom-table [(nom-col)] [action]

5.1.2.2.5. CHECK ( condition)

5.1.3. Supprimer une table: DROP

5.1.3.1. DROP TABLE nom table;

5.1.4. Renommer une table: RENAME

5.1.4.1. RENAME ancien_nom_table TO nouveau_nom ;

5.1.5. Ajouter une colonne ou une contrainte: ADD

5.1.6. Modifier une colonne ou une contrainte: MODIFY

5.1.7. ALTER

5.1.7.1. ALTER TABLE nom table { RENAME TO nouveau nom table | ADD ([(nom col type col [DEFAULT valeur] [contrainte col])*] [contrainte table] ) | MODIFY (nom col [type col] [DEFAULT valeur] [contrainte col])* };

5.1.7.2. Ajout, modification, suppression de colonnes

5.1.7.3. Ajout, suppression de contraintes

5.1.7.4. Activation, désactivation de contraintes

5.1.8. Cas où une donnée référencée est mise à jour (UPDATE) ou détruite (DELETE)

5.1.8.1. Deux circonstances

5.1.8.1.1. ON DELETE

5.1.8.1.2. ON UPDATE

5.1.8.2. Trois options

5.1.8.2.1. SET NULL

5.1.8.2.2. SET DEFAULT

5.1.8.2.3. CASCADE

5.1.8.3. Exemple

5.1.8.3.1. create table enseigner (NCIN varchar2 (8), code_mat varchar2 (10) , code_cl varchar2 (10) , constraint PK primary key (NCIN, code_mat, code_cl), constraint FK1 foreign key (NCIN) references professeur (NCIN) on delete set null, constraint FK2 foreign key (cod_mat) references matiere (code_mat) on update cascade, constraint FK3 foreign key (cod_cl) references classe (code_cla) on delete set null on update cascade ) ;

5.2. LMD : Langage de Manipulation des Données

5.2.1. Insérer des données : peupler les tables: INSERT

5.2.1.1. INSERT INTO nom_table [(<listes de colonnes>)] values (<liste de valeurs>) ;

5.2.2. Mise à jour des données: UPDATE

5.2.2.1. UPDATE nom_table SET col_1 = expr_1, col_2 = expr_2, … WHERE condition ;

5.2.3. Suppression de données: DELETE

5.2.3.1. DELETE FROM nom_table [WHERE condition] ;

5.3. LID : Langage d’Interrogation des Données

5.3.1. Mono table

5.3.1.1. Syntaxe

5.3.1.1.1. SELECT <liste de colonnes ou d’expressions> FROM <liste de tables ou de vues> [WHERE <critère(s) de jointure> AND <critère(s) de sélection>] [GROUP BY <colonne(s) de partitionnement> [HAVING <critère(s) de restriction>]] [ORDER BY <liste (nom, alias ou numéro) de colonnes>]

5.3.1.1.2. SELECT <liste de colonnes ou d’expressions> FROM <liste de tables ou de vues> [WHERE <condition>] [GROUP BY <liste de colonne(s)> [HAVING <condition>] ] [ORDER BY <liste (nom, alias ou numéro) de colonnes>]

5.3.1.1.3. SELECT : pour la projection

5.3.1.1.4. FROM : toutes les tables utiles pour la requête

5.3.1.1.5. WHERE : pour la sélection

5.3.1.1.6. ORDER BY : obtenir les résultats dans un ordre croissant (ASCendant) ou décroissant (DESCendant)

5.3.1.2. Opérateurs

5.3.1.2.1. Opérateurs de comparaison

5.3.1.2.2. Opérateurs logiques

5.3.1.2.3. Autres prédicats

5.3.1.3. Fonctions

5.3.1.3.1. Fonctions arithmétiques

5.3.1.3.2. Fonctions trigonométriques

5.3.1.3.3. Fonctions sur les chaînes de caractères

5.3.1.3.4. Fonctions sur les dates

5.3.1.3.5. Fonctions de conversion

5.3.1.3.6. Autres Fonctions

5.3.1.4. Traitement des résultats

5.3.1.4.1. Fonctions sur les colonnes

5.3.1.4.2. Élimination de tuples répétés ( DISTINCT )

5.3.1.4.3. Définition de l’ordre des tuples ( ORDER BY )

5.3.1.4.4. Regroupement de résultats (GROUP BY)

5.3.1.5. Mise en forme de l'affichage

5.3.1.5.1. COLUMN

5.3.1.5.2. BREAK

5.3.1.5.3. TTITLE

5.3.1.5.4. BTITLE

5.3.1.5.5. AS 'Titre Colonne'

5.3.1.5.6. Variables d'environnement

5.3.1.6. Variables paramétrées : '&chaîne'

5.3.2. Multi Tables

5.3.2.1. Jointure Ensembliste

5.3.2.1.1. UNION

5.3.2.1.2. MINUS

5.3.2.1.3. INTERSECT

5.3.2.1.4. PRODUIT CARTESIEN

5.3.2.2. Jointure Forme Procédurale Déconnectée

5.3.2.2.1. IN, NOT IN

5.3.2.2.2. =, >, <, >=, <=, !=

5.3.2.3. Jointure Forme Relationnelle

5.3.2.3.1. N Tables --> N-1 Jointures

5.3.2.3.2. Equi-Jointure : T1.col1 = T2.col4

5.3.2.3.3. Jointure Externe : T1.col2 = T2.col4 (+)

5.3.2.4. Tables dynamiques

5.3.2.4.1. select ... from (select ... from t1) where...

5.3.2.5. Jointure Forme Procédurale Synchronisée

5.3.2.5.1. EXISTS, NOT EXISTS

5.3.2.5.2. =, >, <, >=, <=, !=

5.3.2.5.3. Mise en oeuvre de la Division

5.3.2.6. Autres

5.3.2.6.1. ANY

5.3.2.6.2. ALL

5.3.2.6.3. CONTAINS

5.4. LCD : Langage de Contrôle des Données

5.4.1. Sous-Schéma

5.4.1.1. Restriction de la vision : VIEW

5.4.1.1.1. VUE = Table Virtuelle reconstruite à chaque appel

5.4.1.1.2. Mono-Table

5.4.1.1.3. Multi-Tables

5.4.1.1.4. CREATE [( OR REPLACE )] VIEW nom_vue [( liste des colonnes de la vue )] AS SELECT ………… [WITH CHECK OPTION [CONSTRAINT nom_cont] ];

5.4.1.1.5. Supprimer une vue

5.4.1.1.6. Renommer une vue

5.4.1.1.7. Ajouter des commentaires à une table

5.4.2. Privilèges

5.4.2.1. Restriction des actions : GRANT / REVOKE

5.4.2.2. Systèmes

5.4.2.2.1. Régit l'utilisation de la BD au niveau du système (nom de l'utilisateur et mot de passe, espace disque alloué aux utilisateurs et opérations système autorisées par l'utilisateur)

5.4.2.2.2. Exemples de privilèges système

5.4.2.2.3. GRANT { priv_syst | rôle } [ , { priv2 | rôle2 }...] TO {utilisateur1 | rôle | PUBLIC} [,{utilisateur2 ...}] [WITH ADMIN OPTION] ;

5.4.2.2.4. REVOKE { priv_syst | rôle } [ , { priv | rôle2 }...] FROM { utilisateur1 | rôle | PUBLIC } [, { utilisateur2 ...} ] ;

5.4.2.3. Objets

5.4.2.3.1. Contrôle les actions (insert, execute,...) sur les objets (tables, vues,..)

5.4.2.3.2. GRANT privilège1 [, privilège2 ...] [ (colonne [,colonne2.])] ON schéma.objet TO { utilisateur1 | rôle | PUBLIC} [, { utilisateur2 ...} ] [ WITH GRANT OPTION ] ;

5.4.2.3.3. REVOKE privilège1 [, privilège2 ...] [ ( colonne [, colonne2...] ) ] ON schéma.objet FROM { utilisateur1 | rôle | PUBLIC} [, { utilisateur2 ...} ] [ CASCADE CONSTRAINTS ] ;

5.4.2.4. Rôles

5.4.2.4.1. Regroupement de privilèges par famille d'utilisateur

5.4.2.4.2. {CREATE | ALTER} ROLE nom_rôle { NOT IDENTIFIED | IDENTIFIED {BY mot_de_passe | EXTERNALLY} };

5.4.2.4.3. GRANT {privilège1 | rôle1} TO nom_rôle; GRANT {privilège2 | rôle2} TO nom_rôle; GRANT ROLE nom_role TO user;

5.4.2.4.4. REVOKE ROLE nom_rôle FROM user;

5.4.2.4.5. DROP ROLE nom_rôle;

5.4.3. Contraintes évènementielles

6. SQL avancé