Le Langage de Définition de Données LDD. 2 Les ordres et les objets Ordre CREATE –Création de la structure de l’objet  DD Ordre DROP –Suppression des.

Slides:



Advertisements
Présentations similaires
Bases de Données Avancées: Bases de Données Relationnelles
Advertisements

Programme Introduction aux BD et aux SGBD Le modèle relationnel
Vocabulaire pour la passage du modèle conceptuel des données au modèle relationnel des données. MCDMRD EntitéTable PropriétésChamps, attribut IdentifiantClé
SGBD – Oracle Cours BD LF2 info
T ECHNOLOGIES O RACLE Création et gestion des objets © sebvita.com.
Année universitaire Système dinformation Le SQL (Structured Query Language) langage dinterrogation dune base de données.
Faculté I&C, Claude Petitpierre, André Maurer Bases de données SQL (Structured Query Language)
LE LANGAGE SQL : LDD La création de tables L’ordre CREATE CREATE TABLE nom_de_table (Nom_colonne Type_colonne, Nom_colonne Type_colonne,
École dété Régionale 2007 Module : Base de Données Chap I : Notion de Base de Données Chap II : Notion de Systèmes de Gestion de Bases de Données Chap.
LMD: Langage de Manipulation de Données
Faculté I&C, Claude Petitpierre, André Maurer Bases de données SQL (Structured Query Language)
L’utilisation des bases de données
Gestion des annulations
Gérer les tablespaces et les fichiers de données
Initiation aux bases de données et à la programmation événementielle
Les fonctions de groupes Gestion des transactions
L’utilisation des bases de données
SQL partie3: Langage de définition des données
Création de bases de données
Bases de Données Avancées - TP2: SQL
1 CSI 2532 Lab3 6 Février 2012 Programmation avancée SQL.
Christine Bonnet SOURCES : « Samples » dOracle, « Oracle 8 » R. Chapuis PRO*C – C ++
OPTIMISATION DE BASE DE DONNEES ORACLE
Cours 4b: Introduction au SQL, le langage des SGBD Relationnels
Fichiers de données Fichiers de contrôles Fichiers de journalisations Fichiers de paramètres d’initialisation.
SQL partie 3. SQL est un langage de définition de données SQL est un langage de définition de données (LDD), c'est-à-dire qu'il permet de créer des tables.
Chap 4.5 : SQL (LDD) LDD : Langage de définition de données Réfs : Manuel p105.
 CREATE TABLE  DROP TABLE  ALTER TABLE  INSERT  UPDATE  DELETE  SELECT interrogation 2 Instruction de mise à jour structure.
Objectifs A la fin de ce chapitre, vous pourrez : présenter l'utilisation d'opérations de chargement de données par chemin direct décrire l'utilisation.
Créer des packages.
(Procedural Language / Structured Query Language)
Manipulation des Données
PostgreSQL – Présentation
DEFINITION DES DONNEES : schéma conceptuel. Schéma conceptuel instructiondescription CREATE TABLEcréation d'une relation ALTER TABLEmodification de la.
Module 4 : Implémentation de l'intégrité des données.
Structure de stockage et relations
Les Contraintes.
XML fortement adopté en tant que format indépendant d’échange de données. Utilisation de XML pour la modélisation de données structurées et non structurées.
SQL : Langage de Manipulation des données
21/04/2015© Robert Godin. Tous droits réservés.1 6Gestion des contraintes d’intégrité en SQL n Contrainte d'intégrité statique – respectée pour chacun.
Cours SQL.
Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio.
Création et Gestion de Tables
Le Langage de Définition de Données LDD
Cours n°4M1.ist-ie (S. Sidhom) UE 203 Promo. M1 IST-IE 2006/07 Conception d’un système d'information sur Internet Architecture trois-tiers : technologies.
Les vues Une vue: c’est une relation virtuelle. Définie par:
13 Copyright © Oracle Corporation, Tous droits réservés. Gérer l'intégrité des données.
Définition des contraintes Vérification des contraintes Triggers
Cours Access TuanLoc NGUYEN. Contact Nguyen TuanLoc Tél: Web:
Structured Query Language 1/34. SQL Types de données Langage de Définition de Données (LDD) Langage de Manipulation de Données (LDM) Langage de Contrôle.
Les bases de données Séance 8 Jointures.
Le Langage de Manipulation de Données LMD. 2 Les ordres SQL de manipulation INSERT –Insertion (ajout) de ligne(s) dans une table –Utiliser SQL*LOAD pour.
Le langage SQL.
Initiation aux bases de données et à la programmation événementielle
NIVEAU LOGIQUE Vues. Fenêtre dynamique sur la base Ses données proviennent d'autres tables ou d'autres vues.
INTRODUCTION AUX BASES DE DONNEES Base et métabase
Cours n°2 Implémentation et exploitation
Les vues, indexes, séquences.  Qu’est ce qu’une vue 1. Une vue est une vision partielle ou particulière des données d'une ou plusieurs tables de la base.
Bases de données – Cours 3
Le Langage de Manipulation de Données LMD Module 6.
Le langage SQL LA Plan 1. Introduction Rappels sur le modèle relationnel Les caractéristiques du langage SQL 2. Le Langage d'Interrogation des.
SQL Partie 2. SQL est un langage de manipulation de données SQL est un langage de manipulation de données (LMD), cela signifie qu'il permet de sélectionner,
Les bases de données Séance 4 Construction du Modèle Physique (la BDD)
1 Les bases de données Séance 5 -- Le Langage de Définition de Données ou la manœuvre de la structure de la base -- Le Langage de Manœuvre de Données.
SQL partie 1 Langage de Définition de Données. SQL est un langage de définition de données  SQL est un langage de définition de données (LDD), c'est-à-dire.
Structured Query Language SQL DDL
9 Copyright © 2004, Oracle. Tous droits réservés. Utiliser des instructions LDD pour créer et gérer des tables.
Transcription de la présentation:

Le Langage de Définition de Données LDD

2 Les ordres et les objets Ordre CREATE –Création de la structure de l’objet  DD Ordre DROP –Suppression des données et de la structure Ordre ALTER –Modification de la structure (contenant) Syntaxe Objet TABLE Objet INDEX Objet CLUSTER Objet SEQUENCE

3 Objet Table et Contraintes CREATE : Syntaxe create table nom_table (colonne1type1(longueur1), colonne2type2(longueur2), ……………………. constraint nom_contrainte1 type_contrainte1, ……………………. ); 3 Types de Contraintes CHECK (NOT NULL, UNIQUE) FOREIGN KEY PRIMARY KEY

4 Objet Table et Contraintes Les types de données VARCHAR(size) Données caractères de longueur variable CHAR(size) Données caractères de longueur fixe NUMBER(p,s ) Numérique de longueur variable DATE Valeurs de date et d'heure LONG Données caractères de longueur variable (2 Go) CLOB Données caractères (4 Go) RAW Binaire BLOB Binaire, jusqu'à 4 giga-octets BFILE Binaire, stocké dans un fichier externe, (4 Go)

5 Objet Table et Contraintes CREATE : Exemples -- Table ‘Mère’ CREATE TABLE service (IdServiceCHAR(3), NomServiceVARCHAR(30), CONSTRAINT pk_service PRIMARY KEY(IdService) );

6 Objet Table et Contraintes CREATE : Exemples (suite) -- Table ‘Fille’ CREATE TABLE employe (IdEmployeNUMBER(5), NomEmployeVARCHAR(30), Indice NUMBER(3), DateEmbaucheDATE DEFAULT SYSDATE, IdServiceCHAR(3) CONSTRAINT nn_emp_ser NOT NULL, CONSTRAINT pk_employe PRIMARY KEY(IdEmploye), CONSTRAINT fk_emp_ser FOREIGN KEY(IdService) REFERENCES service(IdService), CONSTRAINT ck_emp_indice CHECK (indice BETWEEN 100 AND 900) );

7 Objet Table : DROP DROP TABLE nom_table; DROP TABLE nom_table CASCADE CONSTRAINTS; Suppression complète de la table : définition et données Suppression aussi des contraintes de référence filles

8 Modification de la structure ALTER TABLE ALTER TABLE nom_table ADD (colonne1 type1, colonne2 type2); Ajout de colonnes ALTER TABLE nom_table MODIFY (colonne1 type1, colonne2 type2); Modification de colonnes ALTER TABLE nom_table DROP COLUMN (colonne1, colonne2); Suppression de colonnes

9 ALTER TABLE Exemples de modifications ALTER TABLE client ADD ChiffreAffaire NUMBER (10,2); ALTER TABLE client MODIFY nom VARCHAR(60); ALTER TABLE etudiant MODIFY idDiplome CONSTRAINT nn_etu_dip NOT NULL; ALTER TABLE client DROP COLUMN ChiffreAffaire ;

10 Contraintes constraint nomcontrainte { unique | primary key (col1[,col2]...) | foreign key (col1[,col2]...) references [schema].table (col1[,col2]...) [ON DELETE CASCADE] | check (condition) } Attention : suppression de tous les fils !

11 Modification des contraintes Ajout et Suppression ALTER TABLE nom_table ADD CONSTRAINT nom_contrainte type_contrainte; Ajout de contraintes ALTER TABLE nom_table DROP CONSTRAINT nom_contrainte; Suppression de contraintes Comme à la création d’une table

12 Modification des contraintes Exemples ALTER TABLE client ADD CONSTRAINT fk_client_cat FOREIGN KEY(idCat) REFERENCES categorie(idCat); ALTER TABLE client DROP CONSTRAINT fk_client_cat;

13 Activation et désactivation de contraintes ALTER TABLE nom_table DISABLE CONSTRAINT nom_contrainte; Désactivation de contraintes ALTER TABLE nom_table DISABLE CONSTRAINT PRIMARY KEY; Les contraintes existent toujours dans le dictionnaire de données mais ne sont pas actives Chargement de données volumineuses extérieures à la base

14 Activation d’une contrainte désactivée ALTER TABLE nom_table ENABLE CONSTRAINT nom_contrainte ; Activation de contraintes ALTER TABLE nom_table ENABLE CONSTRAINT PRIMARY KEY;

15 Ajout ou activation de contraintes : Récupération des lignes en erreur CREATE TABLE rejets (ligne rowid, proprietaire varchar(30), nom_tablevarchar(30), contraintevarchar(30)); Création d’une table Rejets ALTER TABLE nom_table ENABLE CONSTRAINT nom_contrainte EXCEPTIONS INTO rejets; Activation de contraintes Adresse ligne

16 Vérification de Contraintes différées Une contrainte peut-elle être différée ? –NOT DEFERRABLE (par défaut) –DEFERRABLE Comportement par défaut de la contrainte : –INITIALLY IMMEDIATE (par défaut) –INITIALLY DEFERRED Utiliser la clause SET CONSTRAINTS ou ALTER SESSION SET CONSTRAINTS pour modifier le comportement d'une contrainte

17 Vérification de Contraintes différées Exemples CREATE TABLE emps... dept_id NUMBER(6) CONSTRAINT fk_emp_dept REFERENCES depts DEFERRABLE INITIALLY IMMEDIATE); SQL> COMMIT; COMMIT * ERROR at line 1: ORA-02091: transaction rolled back ORA-02291: integrity constraint (MICHEL.FK_EMP_DEPT_ID) violated - parent key not found SQL> INSERT INTO emps VALUES (1, 'Laurent', 2); 1 row created. SET CONSTRAINTS ALL DEFERRED; SQL> INSERT INTO emps VALUES (1, ‘Laurent', 2) * ERROR at line 1: ORA-02291: integrity constraint (MICHEL.FK_EMP_DEPT_ID) violated - parent key not found ;

18 Les fichiers Index : organisation en B-Arbre En-tête d'entrée d'index Longueur de la colonne de la clé Valeur de la colonne de la clé ROWID Racine Branche Feuille Entrée d'index

19 Création et suppression d’Index CREATE UNIQUE INDEX nom_index ON nom_table(colonne[,colonne2 …]); Création d’un index Unique CREATE INDEX nom_index ON nom_table(colonne[,colonne2 …]); Création d’un index non Unique DROP INDEX nom_index; Suppression d’un index

20 Apport des Index Respect de la 4NF : clé primaire  index unique Amélioration des accès (sélection) sur les colonnes recherchées Optimisation des jointures (équi-jointure entre une clé primaire et sa clé étrangère) Attention aux clés primaires composées Table USER_INDEXES du dictionnaire

21 Cluster : Jointure physique Tables DEPT et EMP clusterisées Cluster Key (no_dept) 10 Info Jean 101 Sylvie 102 Michel 20 Ventes Xavier 100 Pierre 104 Corinne 30 Achats Paul no_deptnom_dept resp_dept Info Jean 20Ventes Xavier 30Achats Paul No_emp nom_emp no_dept Pierre Sylvie Michel Corinne 20 Tables DEPT et EMP non-clusterisées DEPT EMP Bloc1 Bloc2 Bloc3

22 Création de Cluster (1) 1.Création du cluster 2.Création de l’index de cluster CREATE CLUSTER personnel (no_dept NUMBER(3)) SIZE 200 TABLESPACE ts1 STORAGE(INITIAL 5M NEXT 5M PCTINCREASE 0); CREATE INDEX idx_personnel ON CLUSTER personnel TABLESPACE tsx1 STORAGE(INITIAL 1M NEXT 1M PCTINCREASE 0); Taille du bloc logique

23 Création de Cluster (2) CREATE TABLE dept (no_dept NUMBER(3) CONSTRAINT pk_dept PRIMARY KEY, nom_dept VARCHAR(30),resp_dept VARCHAR(30)) CLUSTER personnel(no_dept); 3- Création des tables dans le cluster CREATE TABLE emp (no_emp NUMBER(3) CONSTRAINT pk_emp PRIMARY KEY, nom_emp VARCHAR(30), no_dept NUMBER(3) REFERENCES dept(no_dept)) CLUSTER personnel(no_dept);

24 Administration des Clusters ALTER CLUSTER personnel SIZE 300K STORAGE (NEXT 2M); Modification des paramètres de stockage et de consommation d'espace d'un bloc Suppression des Clusters DROP CLUSTER personnel INCLUDING TABLES; DROP TABLE emp; DROP TABLE dept; DROP CLUSTER personnel; OU

25 Objet Séquence Permet d’obtenir des valeurs incrémentales Équivalent des colonnes AUTO_INCREMENT de MySql ou IDENTITY de SqlServer N’est pas associée à une colonne particulière Verrouillage automatique en cas de concurrence d’accès Valeur suivante :.NEXTVAL Valeur courante :.CURRVAL

26 Objet Séquence création et utilisation CREATE SEQUENCE nom_séquence START WITH valeur_départ INCREMENT BY incrément; INSERT INTO t1 VALUES (nom_séquence.NEXTVAL, …..); INSERT INTO t2 VALUES (……….., nom_séquence.CURRVAL); DROP SEQUENCE nom_séquence;

27 Objet Séquence Exemple de mise en oeuvre SQL> CREATE TABLE client (idClient NUMBER PRIMARY KEY, 2 nomClient VARCHAR(20)); Table créée. SQL> CREATE TABLE compte (idCompte NUMBER PRIMARY KEY, 2 nomCompte VARCHAR(30), idClient REFERENCES client); Table créée. SQL> CREATE SEQUENCE seq_client START WITH 1 INCREMENT BY 1; Séquence créée. SQL> CREATE SEQUENCE seq_compte START WITH 1 INCREMENT BY 1; Séquence créée. SQL> INSERT INTO client VALUES(seq_client.NEXTVAL,'Michel'); 1 ligne créée. SQL> SELECT seq_client.CURRVAL FROM dual; CURRVAL

28 Objet Séquence Exemple de mise en œuvre (suite) SQL> INSERT INTO compte VALUES(seq_compte.NEXTVAL,'Compte Courant Michel',seq_client.CURRVAL); 1 ligne créée. SQL> INSERT INTO compte VALUES(seq_compte.NEXTVAL,'Compte Epargne Michel',seq_client.CURRVAL); 1 ligne créée. SQL> SELECT * FROM client; IDCLIENT NOMCLIENT Michel SQL> SELECT * FROM compte; IDCOMPTE NOMCOMPTE IDCLIENT Compte Courant Michel 1 2 Compte Epargne Michel 1