Bases de Données Relationnelles. SQL Le langage de définition des données de SQL



Documents pareils
Bases de Données relationnelles et leurs systèmes de Gestion

Chapitre 3 LE MODELE RELATIONNEL ET SQL (DDL)

Le langage SQL pour Oracle - partie 1 : SQL comme LDD

Le Langage De Description De Données(LDD)

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

Le langage SQL (première partie) c Olivier Caron

Création et Gestion des tables

CREATION WEB DYNAMIQUE

TP3 : Creation de tables 1 seance

Pour les débutants. langage de définition des données

Bases de données relationnelles

Langage SQL : créer et interroger une base

Historisation des données

Introduction au Système de Gestion de Base de Données et aux Base de Données

Olivier Mondet

1. Qu'est-ce que SQL? La maintenance des bases de données Les manipulations des bases de données... 5

TP Contraintes - Triggers

Bases de Données Relationnelles. Le Modèle Relationnel

MySQL / SQL EXEMPLES

Plan. Bases de Données. Sources des transparents. Bases de SQL. L3 Info. Chapitre 4 : SQL LDD Le langage de manipulation de données : LMD

Le Langage SQL version Oracle

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes

SQL sous SqlServer OLIVIER D. DEHECQ Olivier 0

Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

Système de Gestion de Bases de Données Relationnelles. MySQL. Youssef CHAHIR

Intégrité sémantique dans les bases de données relationnelles

Les BASES de DONNEES dans WampServer

INSTITUT NATIONAL DES TELECOMMUNICATIONS CONTROLE DES CONNAISSANCES. 2. Les questions sont indépendantes les unes des autres.

Auto-évaluation Oracle: cours de base

SQL Historique

PHP 5. La base de données MySql. A. Belaïd 1

Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées

1/ Présentation de SQL Server :

Intégrité des données

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

Partie 0 : Gestion des tablespace et des utilisateurs... 3

Les bases de données

Cours Bases de données 2ème année IUT

I4 : Bases de Données

Modélisation et Gestion des bases de données avec mysql workbench

OpenPaaS Le réseau social d'entreprise

WEB DEVELOPER SGBD SYSTEME DE GESTION DE BASES DE DONNEES L étudiant sera capable :

FileMaker 13. Guide de référence SQL

Compétences Business Objects

Gestion de base de données

SQL Server ressource SOMMAIRE

ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ;

Bases de Données Avancées

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013

Bases de données et sites WEB

1. Base de données SQLite

14/04/2014. un ensemble d'informations sur un sujet : exhaustif, non redondant, structuré, persistant. Gaëlle PERRIN SID2 Grenoble.

Administration des bases de données. Jean-Yves Antoine

TD : Requêtes SQL (BDR.TD2-1) INSA 3IF

SQL. Oracle. pour. 4 e édition. Christian Soutou Avec la participation d Olivier Teste

Mejdi BLAGHGI & Anis ASSÈS

Bases de données. Yamine AIT AMEUR. INPT-ENSEEIHT DIMA 2 Rue Charles Camichel Toulouse Cedex 7

BASES DE DONNEES TP POSTGRESQL

Partie II Cours 3 (suite) : Sécurité de bases de données

A QUOI SERVENT LES BASES DE DONNÉES?

Notes de cours : bases de données distribuées et repliquées

Bases de Données Avancées

16H Cours / 18H TD / 20H TP

Support de cours. Introduction à SQL et MySQL. 2003, Sébastien Namèche

LE LANGAGE SQL2 1. INTRODUCTION

Systèmes de Gestion de Bases de Données

Initiation à SQL. Le langage de communication avec une base de données relationnelles. Application avec PostgreSQL. Nathalie Camelin 2011/2012

Université de Nice Sophia-Antipolis. Langage SQL. version 5.7 du polycopié. Richard Grin

Information utiles. webpage : Google+ : digiusto/

DEVAKI NEXTOBJET PRESENTATION. Devaki Nextobjects est un projet sous license GNU/Public.

I. MySQL : Serveur et SGBD

Bases de données. PTSI Lycée Eiffel. 28 février 2014

Laboratoires de bases de données. Laboratoire n 6. Programmation SQL. par Danièle BAYERS et Louis SWINNEN

Bases de données Cours 4 : Le langage SQL pour ORACLE

ISC Système d Information Architecture et Administration d un SGBD Compléments SQL

Introduction aux Bases de Données 2004/2005

Ora2Pg Performances. (C) 2013 Gilles Darold

INTEGRITE ET BD ACTIVES

Cours 3. Développement d une application BD. DBA - Maîtrise ASR - Université Evry

SQL Server 2000, Analysis Services et DTS

Développement de base de données Microsoft SQL Server Durée : 5 jours Référence : DPSQL12. Contenu

Corrigés détaillés des exercices

A QUOI SERVENT LES BASES DE DONNÉES?

SQL Server Cyril Gruau. 11 février 2003

Introduction aux Bases de Données

Bases de données élémentaires Maude Manouvrier

Bases de données avancées

1 Position du problème

Procédures Stockées WAVESOFT ws_sp_getidtable Exemple : ws_sp_getnextsouche Exemple :... 12

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Structured Query Language

Chapitre 5 LE MODELE ENTITE - ASSOCIATION

Gestion des utilisateurs et de leurs droits

Cours Base de données relationnelles. M. Boughanem, IUP STRI

Application web de gestion de comptes en banques

Gestion des transactions et accès concurrents dans les bases de données relationnelles

Bases de données et sites WEB Licence d informatique LI345

Transcription:

Bases de Données Relationnelles SQL Le langage de définition des données de SQL

Introduction SQL : Structured Query Language SQL est normalisé SQL 2: adopté (SQL 92) SQL 3: adopté (SQL 99) Standard d'accès aux bases de données relationnelles BDA.5.2

SQL : Trois langages Langage de définition de données (LDD/DDL) création de relations : CREATE TABLE modification de relations: ALTER TABLE suppression de relations: DROP TABLE vues, index. : CREATE VIEW... Langage de manipulation de données (LMD /DML) insertion de tuples: INSERT mise à jour des tuples: UPDATE suppression de tuples: DELETE Langage de requêtes (LMD/DML) SELECT... FROM... WHERE... BDA.5.3

Terminologie Relation > table Tuple Attribut > ligne > colonne (column) Identifiant > clé primaire (primary key) clé secondaire (unique) Identifiant externe > clé externe (external key) BDA.5.4

Langage de Définition de Données Commandes pour créer, modifier et supprimer les éléments du schéma (pour l instant table et vue) CREATE TABLE : créer une table CREATE VIEW : créer une vue particulière sur les données à partir d un SELECT table dérivée DROP TABLE / VIEW : supprimer une table ou une vue ALTER TABLE / VIEW : modifier une table ou une vue. BDA.5.5

CREATE TABLE Commande créant une table en donnant son nom, ses attributs et ses contraintes CREATE TABLE nom-table { ( nom-col type-col [DEFAULT valeur] [ [CONSTRAINT] contrainte-col] )* [ [CONSTRAINT] contrainte-table ]* AS requête-sql }; Légende : {a b} : a ou b [option] * : applicable autant de fois que souhaité mot en capitale : mot clé BDA.5.6

CREATE TABLE CREATE TABLE nom_table { ( nom-col type-col [DEFAULT val] [ [CONSTRAINT] contrainte-col] )* [ [CONSTRAINT] contrainte-table]* AS requête-sql }; Exemples : CREATE TABLE Doctorant ( nom VARCHAR(20), prénom VARCHAR(15), année_insc DECIMAL(4) DEFAULT 2003 ) ; CREATE TABLE Doctorant AS SELECT nom, prénom, année_inscr FROM Etudiant WHERE statut='doctorant' ; BDA.5.7

Domaines de valeurs CHAR(nb) VARCHAR(max) INTEGER NUMERIC(n,p) DATE TIME TIMESTAMP BDA.5.8

Contraintes contrainte-col : contrainte sur une colonne NOT NULL PRIMARY KEY UNIQUE REFERENCES nom-table [(nom-col)] [action] CHECK ( condition) contrainte-table : contraintes sur une table PRIMARY KEY (nom-col*) UNIQUE (nom-col*) FOREIGN KEY (nom-col*) REFERENCES nom-table [(nom-col*)] [action] CHECK ( condition) BDA.5.9

Attribut obligatoire : NOT NULL Contrainte sur une colonne CREATE TABLE Pays (nom VARCHAR(20) NOT NULL, capitale VARCHAR(20) NOT NULL, surface INTEGER, ) BDA.5.10

Identifiants : clé primaire / secondaire PRIMARY KEY (A1, A2, ) La clé primaire (si elle existe). En SQL les lignes doubles sont possibles! choisir l'identifiant le plus efficace attribut référencé par défaut dans les identifiants externes pas de valeur nulle possible c-à-d NOT NULL automatiquement UNIQUE (A1, A2, ) une clé secondaire (s'il en existe) contrainte d'intégrité pour les autres identifiants valeur nulle permise (sauf si NOT NULL) BDA.5.11

PRIMARY KEY : exemples CREATE TABLE Pays ( nom VARCHAR(20) PRIMARY KEY, capitale VARCHAR(20) ) CREATE TABLE Employé ( nom VARCHAR(30), prénom VARCHAR(30), adresse VARCHAR(60), CONSTRAINT Pk_emp PRIMARY KEY (nom, prénom) ) contrainte de colonne et de table BDA.5.12

UNIQUE : exemples CREATE TABLE Etudiant ( AVS CHAR(11) PRIMARY KEY, N Etudiant CHAR(6) UNIQUE, nom VARCHAR(20), prénom VARCHAR(30), CONSTRAINT UNIQUE (nom, prénom) ) Contrainte de colonne et de table PRIMARY KEY et UNIQUE sont incompatibles BDA.5.13

Clé externe : FOREIGN KEY CREATE TABLE Etudiant (N E ) CREATE TABLE Cours (NomCours ) CREATE TABLE Suit ( N Etud CHAR(9), NomC VARCHAR(25), PRIMARY KEY (N Etud, NomC), FOREIGN KEY (N Etud) REFERENCES Etudiant, FOREIGN KEY (NomC) REFERENCES Cours ) BDA.5.14

FOREIGN KEY (suite) Les clés externes référencent par défaut la clé primaire de la table référencée CREATE TABLE Employé (AVS CHAR(11) PRIMARY KEY, empn CHAR(6) UNIQUE, ) CREATE TABLE Département (dpt_id VARCHAR(18) PRIMARY KEY, manager_id CHAR(11) REFERENCES Employé, ) Une clé externe peut référencer une clé secondaire de la table référencée => à préciser CREATE TABLE Département2 (dpt_id VARCHAR(18) PRIMARY KEY, manager_id CHAR(6) REFERENCES Employé (empn ), ) BDA.5.15

Intégrité référentielle REFERENCES nom_table [(nom-col)] [action] Qu'est ce qui se passe quand on détruit/m.à.j. une clé primaire ou unique qui est référencée par un tuple (foreign key) d'une autre table? CREATE TABLE Département (dpt_id VARCHAR(18) PRIMARY KEY, manager_id CHAR(11) REFERENCES Employé, ) Soit le tuple (dpt_id=ventes, manager_id=12345, ) dans la table Département Que se passe-t-il si on détruit l'employé d'avs 12345 dans la table Employé? BDA.5.16

"Referential triggered action" Deux circonstances ON DELETE ON UPDATE Trois options SET NULL SET DEFAULT: valeur par défaut si elle existe, sinon NULL CASCADE : on répercute la m.à.j. CREATE TABLE Département ( dpt_id VARCHAR(18) PRIMARY KEY, manager_id CHAR(11) REFERENCES Employé (emp_id) ON DELETE SET NULL ) ON UPDATE CASCADE, Si la clause n'existe pas : refus BDA.5.17

Contraintes (rappel) contrainte-col : contrainte sur une colonne NOT NULL PRIMARY KEY UNIQUE REFERENCES nom-table [(nom-col)] [action] CHECK ( condition) contrainte-table : contraintes sur une table PRIMARY KEY (nom-col*) UNIQUE (nom-col*) FOREIGN KEY (nom-col*) REFERENCES nom-table [(nom-col*)] [action] CHECK ( condition) BDA.5.18

Contrainte CHECK (condition) Condition que chaque ligne de la table doit vérifier Contrainte de colonne et de table CREATE TABLE Employé ( AVS CHAR(11) PRIMARY KEY, nom VARCHAR(20) NOT NULL, prénoms VARCHAR(30), âge NUMBER CHECK (âge BETWEEN 16 AND 70), sexe CHAR CHECK (sexe IN ('M', 'F')), salaire NUMBER, commission NUMBER, CONSTRAINT check_sal CHECK (salaire * commission <= 7000) ) BDA.5.19

CREATE TRIGGER Contrainte d'intégrité simple => clause CHECK dans CREATE TABLE complexe => un TRIGGER CREATE TRIGGER nouvelle instruction QUAND événement INSERT / DELETE /UPDATE SI condition-sql ALORS action refus / instructions SQL BDA.5.20

TRIGGER : exemple Institut FormaPerm : Pour tout tuple de Prérequis <nomc, nomcprérequis>, le cycle de nomcprérequis dans Cours doit être inférieur ou égal à celui de nomc QUAND : INSERT INTO Prérequis SI : le cycle de nomcprérequis dans Cours est supérieur à celui de nomc ALORS : refuser l'insertion Format à voir en TP BDA.5.21

DROP TABLE DROP : supprimer une table supprime la table et tout son contenu DROP TABLE nom_table [CASCADE CONSTRAINTS] CASCADE CONSTRAINTS Supprime toutes les contraintes de clé externe référençant cette table Si on cherche à détruire une table dont certains attributs sont référencés sans spécifier CASCADE CONSTRAINT: refus BDA.5.22

ALTER TABLE Modifier la définition d une table : Changer le nom de la table mot clé : RENAME Ajouter une colonne ou une contrainte mot clé : ADD Modifier une colonne ou une contrainte mot clé : MODIFY Supprimer une colonne ou une contrainte mot clé : DROP renommer une colonne ou une contrainte mot clé : RENAME BDA.5.23

ALTER TABLE (format) ALTER TABLE nom-table { RENAME TO nouveau-nom-table ADD ( [ (nom-col type-col [DEFAULT valeur] [contrainte-col])* ] MODIFY (nom-col [type-col] [DEFAULT valeur] [contrainte-col])* DROP COLUMN nom-col [CASCADE CONSTRAINTS] RENAME COLUMN old-name TO new-name } BDA.5.24

Exemple : Institut FormaPerm CREATE TABLE Personne ( n P INTEGER NOT NULL, nom VARCHAR(30) NOT NULL, adr VARCHAR(100) NOT NULL, PRIMARY KEY (n P ) ) CREATE TABLE PersonnePrénoms ( n P INTEGER NOT NULL, prénom VARCHAR(30) NOT NULL, n prénom INTEGER NOT NULL, PRIMARY KEY (n P, n prénom ), UNIQUE (n P, prénom ), FOREIGN KEY (n P) REFERENCES Personne ON DELETE CASCADE ) BDA.5.25

Exemple FormaPerm (2) CREATE TABLE Etudiant ( n P INTEGER NOT NULL, n E INTEGER NOT NULL, daten DATE NOT NULL, PRIMARY KEY (n E ), UNIQUE (n P ), FOREIGN KEY (n P) REFERENCES Personne ) CREATE TABLE EtudiantEtudes ( n E INTEGER NOT NULL, année INTEGER NOT NULL, diplôme VARCHAR(30) NOT NULL, PRIMARY KEY (n E, diplôme ), FOREIGN KEY (n E) REFERENCES Etudiant ON DELETE CASCADE ) BDA.5.26

Exemple FormaPerm (3) CREATE TABLE Enseignant ( n P INTEGER NOT NULL, tel INTEGER NOT NULL, statut VARCHAR(30) NOT NULL, banque VARCHAR(30) NOT NULL, agence VARCHAR(30) NOT NULL, compte INTEGER NOT NULL, PRIMARY KEY (n P ), FOREIGN KEY (n P) REFERENCES Personne ) CREATE TABLE Cours ( nomc VARCHAR(30) NOT NULL, cycle INTEGER NOT NULL, n Ens INTEGER NOT NULL, PRIMARY KEY (nomc ), FOREIGN KEY (n Ens) REFERENCES Enseignant ) BDA.5.27

Exemple FormaPerm (4) CREATE TABLE Obtenu ( n E INTEGER NOT NULL, nomc VARCHAR(30) NOT NULL, note NUMERIC(2,1) NOT NULL, année INTEGER NOT NULL, PRIMARY KEY (n E, nomc ), FOREIGN KEY (n E) REFERENCES Etudiant.n E, FOREIGN KEY (nomc) REFERENCES Cours ) CREATE TABLE Inscrit ( n E INTEGER NOT NULL, nomc VARCHAR(30) NOT NULL, PRIMARY KEY (n E, nomc ), FOREIGN KEY (n E) REFERENCES Etudiant.n E, FOREIGN KEY (nomc) REFERENCES Cours ) BDA.5.28

Exemple FormaPerm (5) CREATE TABLE Prérequis ( nomc VARCHAR(30) NOT NULL, nomcprérequis VARCHAR(30) NOT NULL, PRIMARY KEY (nomc, nomcprérequis ), FOREIGN KEY (nomc) REFERENCES Cours, FOREIGN KEY (nomcprérequis) REFERENCES Cours ) BDA.5.29