Généralité sur les bases de données Année universitaire 2017/2018 LFIG 2 Généralité sur les bases de données Fahmi Ben Rejab
Définition
Définition
Définition et terminologie Base de données correspondante à la gestion des commandes d’un magasin
Définition et terminologie Base de données correspondante à la gestion des ouvrages d’une bibliothèque
Cycle de vie
SGBD
Objectif
Objectif
Architecture
Architecture
Architecture
Architecture
Fonctionnement
A faire Limites de l’approche SGF?
Relation
Relation
Relation
Relation
Relation
Relation
Relation Exemple : Gestion des affectations des candidats par diplôme.
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 / REVOKE / 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.
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.
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 Article(ref, nom, prix, date_achat) CREATE TABLE Article ( ref VARCHAR2(10), nom VARCHAR2(30), prix NUMBER(9,2), date_achat DATE) ; une chaîne de caractères de longueur variable (longmax=10)
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
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).
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) ;
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) ;
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
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
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)));
LDD : Exemple d’application Exemple : soit le modèle logique de données suivant :
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 Departement Projet Employe Participation
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 ;
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
LDD : La commande « ALTER TABLE »
LDD : Modification / Suppression d’une colonne