Année universitaire 2015/2016 LFIG 2 Généralité sur les bases de données Fahmi Ben Rejab 1 Définition 2 Définition 3 Définition et terminologie Base de données correspondante à la gestion des commandes d’un magasin 4 Définition et terminologie Base de données correspondante à la gestion des ouvrages d’une bibliothèque 5 Cycle de vie 6 SGBD 7 Objectif 8 Objectif 9 Architecture 10 Architecture 11 Architecture 12 Architecture 13 Fonctionnement 14 A faire Limites de l’approche SGF? 15 Relation 16 Relation 17 Relation 18 Relation 19 Relation 20 Relation 21 Relation Exemple : Gestion des affectations des candidats par diplôme. 22 Introduction: le langage SQL • Le terme SQL « Structured Query Language » signifie Langage d’interrogation structuré. • SQL est un langage complet de gestion de Bases de Données Relationnelles. (BDR) • Il a été conçu par IBM dans les années 70. Il est devenu le langage standard des systèmes de gestion de bases de données relationnelles (SGBDR). • Il englobe 4 sous-langages : - Un Langage de Définition des Données (LDD) /CREATE / DROP / ALTER - Un Langage de Manipulation des Données (LMD) / INSERT / UPDATE / DELETE - Un Langage d’Interrogation des Données (LID) / SELECT - Un Langage de Contrôle des Données (LCD) / GRANT / REVOKE23/ COMMIT SGBD ORACLE Oracle est un SGBD édité par la société du même nom (Oracle Corporation http://www.oracle.com), leader mondial des bases de données. La société Oracle Corporation a été créée en 1977 . Elle s'appelle Relational Software Incorporated (RSI) et commercialise un Système de Gestion de Bases de données relationnelles (SGBDR ou RDBMS pour Relational Database Management System) nommé Oracle. 24 SGBD ORACLE Toad est un outil spécialement prévu pour les bases de données Oracle. Cet utilitaire d'administration propose des fonctionnalités simples permettant de créer et de modifier vos différentes bases de données. 25 LDD: Langage de Définition des Données LDD : La commande « CREATE TABLE» • La commande CREATE TABLE permet de créer une table en définissant le nom et le type de chacune des colonnes de la table. • La syntaxe simplifiée de cette commande est: CREATE TABLE nom-table (nom_colonne1 type, nom_colonne2 type, etc.) Exemple : selon SQL de Oracle une chaîne de caractères de longueur variable (longmax=10) Article(ref, nom, prix, date_achat) CREATE TABLE Article ( ref VARCHAR2(10), nom VARCHAR2(30), prix NUMBER(9,2), date_achat DATE) ; 26 LDD : Expression des contraintes d’intégrités LDD : Expression des contraintes d’intégrités • Lors de la création de la table, on peut spécifier des contraintes d’intégrité, Il existe des contraintes : 1- sur une colonne : la contrainte porte sur une seule colonne. Elle suit la définition de la colonne dans un ordre CREATE TABLE. 2- sur une table : la contrainte porte sur une ou plusieurs colonnes. Elle se place au même niveau que les définitions des colonnes dans un ordre CREATE TABLE . • Chaque contrainte peut être nommée comme suit: [CONSTRAINT nom-contrainte] définition-contrainte 27 LDD : Expression des contraintes d’intégrités Les contraintes de colonnes : - NULL ou NOT NULL (facultatif / obligatoire) ; - UNIQUE (unicité des valeurs) ; - PRIMARY KEY (clé primaire ) ; - REFERENCES (intégrité de référence) ; - CHECK (contraintes de valeurs). Les contraintes de tables : - UNIQUE (composition des colonnes) ; - PRIMARY KEY (clé primaire composée) ; - FOREIGN KEY (liste de nom de colonne) REFERENCES (nom de de table) (liste de nom de colonne)) ; - CHECK (condition particulière sur les valeurs). 28 LDD : Expression des contraintes d’intégrités • Les contraintes d’intégrité possibles sont: a- Valeur obligatoire (NOT NULL): la colonne ne peut jamais être vide. b- Contrainte d’unicité (UNIQUE): exige que toutes les valeurs explicites contenues dans la colonne soient uniques au sein de la table. Exemple: Article(ref, nom, prix, date_achat) CREATE TABLE Article (ref VARCHAR2(10) UNIQUE NOT NULL , nom VARCHAR2(30), prix DECIMAL(9,2), date_achat DATE) ; 29 LDD : Expression des contraintes d’intégrités c- Contrainte de clé primaire ( PRIMARY KEY) Exemple: Article(ref, nom, prix, date_achat) CREATE TABLE Article (ref VARCHAR2(10) PRIMARY KEY , nom VARCHAR2(30), prix DECIMAL(9,2), date_achat DATE) ; 30 LDD : Expression des contraintes d’intégrités d- Contrainte de clé étrangère ( FOREIGN KEY ) • Pour une contrainte sur une table : FOREIGN KEY REFERENCES table_mère (clé_primaire_table_mère) [ON DELETE CASCADE] • Pour une contrainte sur une colonne : nom_clé_étrangère REFERENCES nom_table_mère (clé_primaire_table_mère) [ON DELETE CASCADE] L'option ON DELETE CASCADE indique que la suppression d'une ligne de la table va entraîner automatiquement la suppression de toutes les lignes qui la référencient dans la base de données. Si cette option n'est pas indiquée, il est impossible de supprimer des lignes de la table mère qui sont référencées par des lignes de la table fille 31 LDD : Expression des contraintes d’intégrités Exemple: Employé (NCIN, NomE, #Dept) Département (ND, NomD, Date_Creation, Budget) CREATE TABLE Employé (NCIN INTEGER PRIMARY KEY , nomE VARCHAR2(30), Dept INTEGER FOREIGN KEY REFERENCES Département (ND)); Remarque : il est impératif de créer la table département (mère) avant la table Employé (fille) → Il faut donc respecter l'ordre de création des tables 32 LDD : Expression des contraintes d’intégrités e- Contrainte « CHECK » • Cette contrainte spécifie une condition que les colonnes de chaque ligne devront vérifier. Exemple 1: Employé (NCIN, NomE, #Dept) Département (ND, NomD, Date_Creation, Budget) CREATE TABLE Département ( ND INTEGER NOT NULL PRIMARY KEY , NomD VARCHAR2 (10), Date_Creation DATE , Budget NUMBER CHECK (Budget >= 10000)); Exemple 2: Employé (NCIN, NomE, #Dept) Département (ND, NomD, Date_Creation, Budget) CREATE TABLE Employé ( NCIN INTEGER NOT NULL PRIMARY KEY , NomE VARCHAR(10) , Dept INTEGER FOREIGN KEY REFERENCES Département(ND) CHECK (Dept IN (1, 2, 3, 4))); 33 LDD : Exemple d’application Exemple : soit le modèle logique de données suivant : 34 LDD : Exemple d’application Il faut respecter l'ordre correct de création des tables (les tables filles après les tables mères) 1- Création de la Table Département 2- Création de la Table Projet 3- Création de la Table Employé 4- Création de la Table Participation 35 LDD : La commande « DROP TABLE » • La commande « DROP TABLE» permet de supprimer une table. Les lignes et la définition elle-même de la table sont détruites. Exemple : DROP TABLE Employe ; 36 LDD : La commande « DROP TABLE » Ordre de suppression des tables Il faut respecter l'ordre correct de suppression des tables (les tables filles avant les tables mères) 1- Suppression de la Table Participation 2- Suppression de la Table Employé 3- Suppression de la Table Département 4- Suppression de la Table Projet Exemples: DROP TABLE Participation DROP TABLE Employé DROP TABLE Département DROP TABLE Projet 37 LDD : La commande « ALTER TABLE » 38 LDD : La commande « ALTER TABLE » 39