création et alimentation de bases de données sql · cours 4 sql* est un langage standardisé,...
TRANSCRIPT
-
Cration et alimentation de bases
de donnes SQL
Stphane Crozat
stph.scenari-community.org/bddsql1.pdf
12 janvier 2018Paternit - Partage des Conditions Initiales l'Identique : http://creativecommons.org/licenses/by-sa/4.0/fr/
-
Table des matires
I - Cours 4
1. Le langage SQL .............................................................................................................................................. 5
1.1. Le langage SQL ........................................................................................................................................................................... 51.2. Conseils pour l'apprentissage du SQL ........................................................................................................................................... 6
2. Crer des tables en SQL (Langage de Dfinition de Donnes) ....................................................................... 6
2.1. Exercice: Lab I++ ...................................................................................................................................................................... 72.2. Cration de tables ........................................................................................................................................................................ 82.3. Domaines de donnes ................................................................................................................................................................... 82.4. La valeur NULL ........................................................................................................................................................................ 102.5. Contraintes d'intgrit ................................................................................................................................................................ 102.6. Exemple de contraintes d'intgrit ............................................................................................................................................... 12
3. Insrer, modifier et supprimer des donnes en SQL (Langage de Manipulation de Donnes) ..................... 13
3.1. Exercice ..................................................................................................................................................................................... 133.2. Insertion de donnes par entre explicite des valeurs .................................................................................................................. 133.3. Insertion de valeurs par l'intermdiaire d'une slection ............................................................................................................... 143.4. Mise jour de donnes .............................................................................................................................................................. 153.5. Suppression de donnes .............................................................................................................................................................. 15
4. Supprimer et modifier des tables en SQL (Langage de Dfinition de Donnes) .......................................... 16
4.1. Suppression d'objets ................................................................................................................................................................... 164.2. Modification de tables ............................................................................................................................................................... 164.3. Exemple de modifications de tables ............................................................................................................................................ 17
II - Exercices 19
1. The show ....................................................................................................................................................... 19
1.1. Exercice : tude du schma ........................................................................................................................................................ 201.2. Exercice: ................................................................................................................................................................................... 21
2. Exercice: Du producteur au consommateur ................................................................................................. 21
III - Devoir 23
1. Exercice: Jeanne et Serge ............................................................................................................................. 23
Contenus annexes 24
Questions de synthse 26
Solutions des exercices 27
Glossaire 33
Abrviations 34
-
Rfrences 35
Bibliographie 36
Webographie 37
-
Cours
4
est un langage standardis, implment par tous les , qui permet, indpendamment de la plate-SQL* SGBDR*
forme technologique et de faon dclarative, de dfinir le modle de donnes, de le contrler et enfin de le manipuler.
CoursI
-
Le langage SQL
5
- - - -
-
-
-
-
1. Le langage SQL1.1. Le langage SQL
(pour langage de requtes structur) est un langage dclaratif destin la manipulation de bases de SQL*
donnes au sein des et plus particulirement des .SGBD* SGBDR*
SQL est un langage dclaratif, il n'est donc pas a proprement parl un langage de programmation, mais plutt une interface standard pour accder aux bases de donnes.
Il est compos de quatre sous ensembles :
Le Langage de Dfinition de Donnes ( , ou en anglais DDL, ) pour crer LDD* Data Definition Languageet supprimer des objets dans la base de donnes (tables, contraintes d'intgrit, vues, etc.).Exemple de commandes: CREATE DROP ALTER
Le Langage de Contrle de Donnes ( , ou en anglais DCL, ) pour grer les LCD* Data Control Languagedroits sur les objets de la base (cration des utilisateurs et affectation de leurs droits).Exemple de commandes: GRANT REVOKE
Le Langage de Manipulation de Donnes ( , ou en anglais DML, ) pour LMD* Data Manipulation Languagela recherche, l'insertion, la mise jour et la suppression de donnes. Le LMD est bas sur les oprateurs relationnels, auxquels sont ajouts des fonctions de calcul d'agrgats et des instructions pour raliser les oprations d'insertion, mise jour et suppression.Exemple de commandes: INSERT UPDATE DELETE SELECTLe Langage de Contrle de Transaction (LCT, ou en anglais TCL, ) pour la Transaction Control Languagegestion des transactions (validation ou annulation de modifications de donnes dans la BD)Exemple de commandes: COMMIT ROLLBACK
Gulutzan and Pelzer, 1999*
Le modle relationnel a t invent par E.F. Codd (Directeur de recherche du centre IBM de San Jos) en 1970, suite quoi de nombreux langages ont fait leur apparition :
IBM Sequel (Structured English Query Language) en 1977IBM Sequel/2IBM System/RIBM DB2
Ce sont ces langages qui ont donn naissance au standard SQL, normalis en 1986 au tats-Unis par l' ANSI*
pour donner SQL/86 (puis au niveau international par l' en 1987).ISO*
Dfinition: SQL
SQL: LDD, LCD, LMD, LCT
Fondamental : Rfrence SQL: SQL-99 complete, really
Complment : Origine du SQL
-
Conseils pour l'apprentissage du SQL
6
- -
- -
-
-
- - - SQL-86 (ou SQL-87): Version d'origine
SQL-89 (ou SQL-1): Amliorations mineuresSQL-92 (ou SQL-2): Extensions fonctionnelles majeures (types de donnes, oprations relationnelles, instruction LDD, transactions, etc.
SQL-99 (ou SQL-3): Introduction du (couche procdurale sous forme de procdure stockes) et du PSM*
RO*
SQL-2003: Extensions XML*
SQL-2006: Amliorations mineures (pour XML notamment)SQL-2008: Amliorations mineures (pour le RO notamment)
Selon leur niveau d'implmentation de SQL, les SGBD acceptent ou non certaines fonctions.
Certains SGBD ayant entam certaines implmentations avant leur standardisation dfinitive, ces implmentations peuvent diffrer de la norme.
1.2. Conseils pour l'apprentissage du SQL
dbdisco.crzt.fr*
Pour tester une base de donnes et voir si elle fonctionne, il faut l'alimenter avec des donnes, pour vrifier qu'elle permet effectivement de faire ce que l'on souhaite.
Une base de donnes sans donnes, c'est au mieux une base, mais a n'est pas suffisant!
Utiliser une rfrence correspondant son SGBDR.Dans le doute PostgreSQL est un des SGBDR les plus proches du standard et dont la documentation est la mieux faite: https://docs.postgresql.fr
2. Crer des tables en SQL (Langage de Dfinition de Donnes)Objectifs
Matriser les bases du SQL pour crer et modifier des tables et des vues.
Le est la partie du langage SQL qui permet de crer de faon dclarative les objets composant une . LDD* BD*
Il permet notamment la dfinition des schmas, des relations, des contraintes d'intgrit, des vues.
Complment : Versions de SQL
Remarque : Version SQL et implmentations SGBD
Conseil : Le SQL, c'est du code informatique, il faut le faire fonctionner
Conseil : Alimenter vos bases de donnes
Conseil : Utiliser une rfrence en ligne
https://docs.postgresql.fr
-
Exercice: Lab I++
7
-
-
- -
-
-
-
Rappel: Le code SQL peut tre test avec Db Disco*
2.1. Exercice: Lab I++Description du problme
[20 min]
Un laboratoire souhaite grer les mdicaments qu'il conoit.
Un mdicament est dcrit par un nom, qui permet de l'identifier. En effet il n'existe pas deux mdicaments avec le mme nom. Un mdicament comporte une description courte en franais, ainsi qu'une description longue en latin. On gre aussi le conditionnement du mdicament, c'est dire le nombre de pilules par bote (qui est un nombre entier). chaque mdicament on associe une liste de contre-indications, gnralement plusieurs, parfois aucune. Une contre-indication comporte un code unique qui lidentifie, ainsi qu'une description. Une contre-indication est toujours associe un et un seul mdicament.
Exemple de donnes
Afin de matrialiser notre base de donnes, nous obtenons les descriptions suivantes:
Le a pour description courte et pour description longueChourix Mdicament contre la chute des choux Vivamus fermentum semper porta. Nunc diam velit, adipiscing ut tristique vitae, sagittis vel odio.
. Il est conditionn en bote de 13.Maecenas convallis ullamcorper ultricies. Curabitur ornare.Ses contre-indications sont:
CI1: Ne jamais prendre aprs minuit.CI2: Ne jamais mettre en contact avec de l'eau.
Le a pour description courte et pour Tropas Mdicament contre les dysfonctionnements intellectuels description longue Suspendisse lectus leo, consectetur in tempor sit amet, placerat quis neque. Etiam
. Il est conditionn en bote de 42.luctus porttitor lorem, sed suscipit est rutrum non.Ses contre-indications sont:
CI3: Garder l'abri de la lumire du soleil
Question 1
Question 2
Question 3
Question 4
Raliser le modle conceptuel de donnes en UML du problme.[ ]solution n1 *[ ] p.27
En mobilisant les rgles adquates, proposer un modle logique de donnes correspondant en relationnel. Le reprage des domaines et des cls est obligatoire.
[ ]solution n2 *[ ] p.27
Crer une base de donnes en SQL correspondant au modle relationnel.[ ]solution n3 *[ ] p.27
Insrer les donnes fournies en exemple dans la base de donnes.[ ]solution n4 *[ ] p.27
-
Cration de tables
8
- -
2.2. Cration de tables
Qu'est ce que le SQL ? (cf. p.5)
La cration de table est le fondement de la cration d'une base de donnes en SQL.
La cration de table est la dfinition d'un schma de relation en , par la spcification de tous les intension*
attributs le composant avec leurs domaines respectifs.
1 nom_table (2 nom_colonne1 domaine1,3 nom_colonne2 domaine2,4 ...5 nom_colonneN domaineN6 );
1 Personne (2 Nom ( ),3 Prenom ( ),4 Age ( )5 );
La dfinition des types n'est pas suffisante pour dfinir un schma relationnel, il faut lui adjoindre la dfinition de , qui permette de poser les notions de cl, d'intgrit rfrentielle, de restriction de contraintes d'intgritdomaines, etc.
2.3. Domaines de donnes
Un attribut d'une relation est dfini pour un certain domaine ou type. Les types de donnes disponibles en SQL
varient d'un l'autre, on peut nanmoins citer un certain nombre de types standards que l'on retrouve SGBD*
dans tous les SGBD.
INTEGER ou INT, SMALLINTNUMERIC(X)
Rappel
Introduction
Dfinition: Cration de table
Syntaxe
Exemple
Attention : Contrainte d'intgrit
Introduction
Fondamental : Les types standard
nom_table (CREATE TABLE
nom_colonne1 domaine1,
nom_colonne2 domaine2,
...
nom_colonneN domaineN
);
Personne (CREATE TABLE
Nom ( ),VARCHAR 25
Prenom ( ),VARCHAR 25
Age ( )NUMERIC 3
);
-
Domaines de donnes
9
- -
-
-
-
-
-
-
- -
- -
- - DECIMAL(X,Y) ou NUMERIC(X,Y)
FLOAT(X), REAL
CHAR(X)VARCHAR(X)
DATE (AAAA-MM-JJ)DATETIME (AAAA-MM-JJ HH:MM:SS)
Les nombres entiersINTEGER (ou INT) et SMALLINT, permettent de coder des entiers sur 4 octets (-2.147.483.648 2.147.483.647) ou 2 octets (-32.768 32.767).Les nombres entiersNUMERIC(X) dsigne un entier de X chiffres au maximum.Les nombres dcimauxDECIMAL(X,Y), o X et Y sont optionnels et dsignent respectivement le nombre de chiffres maximum pouvant composer le nombre, et le nombre de chiffres aprs la virgule.NUMERIC(X,Y) est un synonyme standard.Les nombres virgule flottanteFLOAT(X), avec X dfinissant la prcision (nombre de bits de codage de la mantisse).REAL est un synonyme standard de FLOAT(24).
Il est conseill d'utiliser DECIMAL qui est un nombre exact, plutt que FLOAT qui est un nombre approximatif, si la prcision requise est suffisante. FLOAT sera rserv typiquement des calculs scientifiques ncessitant un degr de prcision suprieur.
On distingue principalement les types CHAR(X) et VARCHAR(X), o X est obligatoire et dsigne la longueur de la chane.
CHAR dfinit des chanes de longueur fixe (complte droites par des espaces, si la longueur est infrieure X);et VARCHAR des chanes de longueurs variables.
CHAR et VARCHAR sont gnralement limits 255 caractres. La plupart des SGBD proposent des types, tels que TEXT ou CLOB (Character Long Object), pour reprsenter des chanes de caractres longues, jusqu' 65000 caractres par exemple.
Les types date dont introduits avec la norme SQL2. On distingue:
DATE qui reprsente une date selon un format de type "AAAA-MM-JJ";et DATETIME qui reprsente une date plus une heure, dans un format tel que "AAAA-MM-JJ HH:MM:SS".
Les types numriques standard
Conseil : FLOAT versus DECIMAL
Les types chane de caractres standard
Les types date standard
-
La valeur NULL
10
- -
- - - -
-
- - -
En fonction du SGBD, il peut exister de nombreux autres types. On peut citer par exemple:
MONEY pour reprsenter des dcimaux associs une monnaie,BOOLEAN pour reprsenter des boolens,BLOB (pour Binary Long Oject) pour reprsenter des donnes binaires tels que des documents multimdia (images bitmap, vido, etc.)...
2.4. La valeur NULL
L'absence de valeur, reprsente par la valeur , est une information fondamentale en SQL, qu'il ne faut NULLpas confondre avec la chane de caractre ou bien la valeur 0. Il ne s'agit pas d'un type, ni d'une espacecontrainte, mais d'une valeur possible dans tous les types.
Par dfaut en SQL fait partie du domaine, il faut l'exclure explicitement par la clause aprs NULL NOT NULLla dfinition de type, si on ne le souhaite pas.
1 nom de (2 nom_table (3 nom_colonne1 domaine1 ,4 nom_colonne2 domaine2,5 ...6 nom_colonneN domaineN 7 );
2.5. Contraintes d'intgrit
PRIMARY KEY ()FOREIGN KEY (
-
Contraintes d'intgrit
11
-
-
- -
-
- - -
Les contraintes d'intgrit sur une colonne sont :
PRIMARY KEY : dfinit l'attribut comme la cl primaireUNIQUE : interdit que deux tuples de la relation aient la mme valeur pour l'attribut.REFERENCES () : contrle l'intgrit rfrentielle entre l'attribut et la table et ses colonnes spcifiesCHECK () : contrle la validit de la valeur de l'attribut spcifi dans la condition dans le cadre d'une restriction de domaine
Les contraintes d'intgrit sur une table sont :
PRIMARY KEY () : interdit que deux tuples de la relation aient les mmes valeurs pour l'ensemble des attributs de la liste.FOREIGN KEY (
-
Exemple de contraintes d'intgrit
12
-
- - -
Une contrainte sur une colonne peut toujours tre remplace par une contrainte sur une table.
2.6. Exemple de contraintes d'intgrit
1 Personne (2 NSS ( ) PRIMARY KEY,3 Nom ( ) ,4 Prenom ( ) ,5 Age ( ) CHECK (Age ),6 Mariage ( ) REFERENCES Personne(NSS),7 Codepostal ( ),8 Pays ( ),9 UNIQUE (Nom, Prenom),
10 FOREIGN KEY (Codepostal, Pays) REFERENCES Adresse (CP, Pays)11 );1213 Adresse (14 CP ( ) ,15 Pays ( ) ,16 Initiale ( ) CHECK (Initiale = LEFT(Pays, )),17 PRIMARY KEY (CP, Pays)18 );
Dans la dfinition de schma prcdente on a pos les contraintes suivantes :
La cl primaire de Personne est NSS et la cl primaire de Adresse est (CP, Pays).Nom, Prnom ne peuvent pas tre null et (Nom, Prnom) est une cl.Age doit tre compris entre 18 et 65 et Initiale doit tre la premire lettre de Pays (avec la fonction LEFT qui renvoie la sous chane gauche de la chane passe en premier argument, sur le nombre de caractres passs en second argument)Mariage est cl trangre vers Personne et (Codepostal, Pays) est une cl trangre vers Adresse.
1 Personne (2 NSS ( ) ,3 Nom ( ) ,4 Prenom ( ) ,5 Age ( ) ,6 Mariage ( ),7 Codepostal ( ),8 Pays ( ),9 PRIMARY KEY (NSS),
10 UNIQUE (Nom, Prenom),11 CHECK (Age ),12 FOREIGN KEY (Mariage) REFERENCES Personne(NSS),13 FOREIGN KEY (Codepostal, Pays) REFERENCES Adresse (CP, Pays)14 );1516 Adresse (17 CP ( ) ,
Remarque
Exemple
Exemple : Rcriture avec uniquement des contraintes de table
Personne (CREATE TABLE
NSS ( ) PRIMARY KEY,CHAR 13
Nom ( ) ,VARCHAR 25 NOT NULL
Prenom ( ) ,VARCHAR 25 NOT NULL
Age ( ) CHECK (Age ),INTEGER 3 BETWEEN 18 AND 65
Mariage ( ) REFERENCES Personne(NSS),CHAR 13
Codepostal ( ),INTEGER 5
Pays ( ),VARCHAR 50
UNIQUE (Nom, Prenom),
FOREIGN KEY (Codepostal, Pays) REFERENCES Adresse (CP, Pays)
);
Adresse (CREATE TABLE
CP ( ) ,INTEGER 5 NOT NULL
Pays ( ) ,VARCHAR 50 NOT NULL
Initiale ( ) CHECK (Initiale = LEFT(Pays, )),CHAR 1 1
PRIMARY KEY (CP, Pays)
);
Personne (CREATE TABLE
NSS ( ) ,CHAR 13
Nom ( ) ,VARCHAR 25 NOT NULL
Prenom ( ) ,VARCHAR 25 NOT NULL
Age ( ) ,INTEGER 3
Mariage ( ),CHAR 13
Codepostal ( ),INTEGER 5
Pays ( ),VARCHAR 50
PRIMARY KEY (NSS),
UNIQUE (Nom, Prenom),
CHECK (Age ),BETWEEN 18 AND 65
FOREIGN KEY (Mariage) REFERENCES Personne(NSS),
FOREIGN KEY (Codepostal, Pays) REFERENCES Adresse (CP, Pays)
);
Adresse (CREATE TABLE
CP ( ) ,INTEGER 5 NOT NULL
-
Insrer, modifier et supprimer des donnes en SQL (Langage de Manipulation de Donnes)
13
18 Pays ( ) ,19 Initiale ( ),20 PRIMARY KEY (CP, Pays),21 CHECK (Initiale = LEFT(Pays, ))22 );
Ce schma est strictement le mme que le prcdent, simplement les contraintes ont toutes t rcrites comme des contraintes de table.
3. Insrer, modifier et supprimer des donnes en SQL (Langage de Manipulation de Donnes)
Objectifs
Matriser les bases du SQL pour entrer, modifier et effacer des donnes dans les tables.
3.1. Exercice
3.2. Insertion de donnes par entre explicite des valeurs
Le langage SQL fournit des instructions pour ajouter des nouveaux tuples une relation. Il offre ainsi une interface standard pour ajouter des information dans une base de donnes.
Il existe deux moyens d'ajouter des donnes, soit par fourniture directe des valeurs des proprits du tuple ajouter, soit par slection des tuples ajouter depuis une autre relation.
1 ()2 ()
1 Virement ( , Montant, Objet)2 ( - - , , );
Quelle valeur renvoie la dernire instruction SQL de la liste ci-dessous :
1 t (2 a ,3 b ,4 c );56 t ( , , );78 t ( , , );9
10 sum(a) + (b) t;
[ ]solution n5 *[ ] p.28
Syntaxe : Insertion directe de valeurs
Exemple
Pays ( ) ,VARCHAR 50 NOT NULLInitiale ( ),CHAR 1
PRIMARY KEY (CP, Pays),
CHECK (Initiale = LEFT(Pays, ))1
);
()INSERT INTO
()
Virement ( , Montant, Objet)INSERT INTO Date
( - - , , );VALUES 14 07 1975 1000 'Prime de naissance'
t (CREATE TABLE
a ,integer
b ,integer
c );integer
t ( , , );INSERT INTO VALUES 0 0 0
t ( , , );INSERT INTO VALUES 1 0 0
sum(a) + (b) t;SELECT count FROM
-
Insertion de valeurs par l'intermdiaire d'une slection
14
- -
- - Les proprits non valorises sont affectes la valeur NULL.
Il est possible de ne pas spcifier les proprits valoriser, dans ce cas, toutes les proprits de la relation seront considres, dans leur ordre de dfinition dans la relation ( n'utiliser que dans les cas les plus simples).
Les chanes de caractre doivent tre protges par des apostrophes: 'Pour insrer une apostrophe, doubler le caractre: ''
1 livre (titre) ( )
La saisie des dates peut se faire de plusieurs faons dpendante du SGBD, la mthode la plus systmatique consiste utiliser la fonction o la chane de caractre respecte le format.TO_DATE(chane,format)
Par exemple ou TO_DATE('20170330','YYYYMMDD') TO_DATE('30-03-2017','DD-MM- dsignent tous les deux le 30 mars 2017.YYYY')
1 livre (pubdate) (TO_DATE( , ))
Fonctions SQL * (cf. p.24)
https://www.postgresql.org/docs/current/static/functions-formatting.html
3.3. Insertion de valeurs par l'intermdiaire d'une slection
1 ()2 ...
L'instruction SELECT projetant un nombre de proprits identiques aux proprits valoriser.
1 Credit ( , Montant, Objet)2 , Montant, 3 Debit4 Debit = - - ;
Remarque
Attention : Chanes de caractres
Exemple
Attention : Dates
Exemple
Complment
Complment
Syntaxe : Insertion de donnes par slection de valeurs existantes dans la base
Exemple
livre (titre) ( )INSERT INTO VALUES 'L''Attrape-curs'
livre (pubdate) (TO_DATE( , ))INSERT INTO VALUES '20170330' 'YYYYMMDD'
()INSERT INTO
...SELECT
Credit ( , Montant, Objet)INSERT INTO Date
, Montant, SELECT Date 'Annulation de dbit'
DebitFROM
Debit = - - ;WHERE .Date 25 12 2001
https://www.postgresql.org/docs/current/static/functions-formatting.html
-
Mise jour de donnes
15
- -
Dans cet exemple tous les dbits effectus le 25 dcembre 2001, sont re-crdits pour le mme montant (et la mme date), avec la mention annulation dans l'objet du crdit. Ceci pourrait typiquement ralis en cas de dbits errons ce jour l.
Les proprits non valorises sont affectes la valeur NULL.Il est possible de ne pas spcifier les proprits valoriser, dans ce cas, toutes les proprits de la relation seront considres, dans leur ordre de dfinition dans la relation ( n'utiliser que dans les cas les plus simples).
3.4. Mise jour de donnes
Le langage SQL fournit une instruction pour modifier des tuples existants dans une relation.
1 2
-
Supprimer et modifier des tables en SQL (Langage de Dfinition de Donnes)
16
1 FaussesFactures2 Auteur=
4. Supprimer et modifier des tables en SQL (Langage de Dfinition de Donnes)
Objectifs
Matriser les bases du SQL pour crer et modifier des tables et des vues.
Le permet de crer les objets composant une de faon dclarative. Il permet notamment la LDD* BD*
dfinition des schmas des relations, la dfinition des contraintes d'intgrit, la dfinition de vues relationnelles.
4.1. Suppression d'objets
Il est possible de supprimer des objets de la , tels que les tables ou les vues.BD*
1
1 Personne;2 VIEW Employe;
4.2. Modification de tables
L'instruction ALTER TABLE permet de modifier la dfinition d'une table (colonnes ou contraintes) pralablement cre.
Cette commande absente de SQL-89 est normalise dans SQL-92
1 2 ADD
1
Exemple : Suppression slective
Syntaxe
Exemple
Introduction
Syntaxe : Ajout de colonne
Syntaxe : Suppression de colonne
FaussesFacturesDELETE FROM
Auteur=WHERE 'Moi'
DROP
Personne;DROP TABLE
VIEW Employe;DROP
ALTER TABLE table
ADD
ALTER TABLE table
-
Exemple de modifications de tables
17
1. 2. 3.
2
1 2 ADD
Pour modifier une table ne contenant pas encore de donne, la commande ALTER n'est pas indispensable, l'on peut supprimer la table modifier (DROP) et la recrer telle qu'on la souhaite. Notons nanmoins que si la table est rfrence par des clauses FOREIGN KEY, cette suppression sera plus complique, car il faudra galement supprimer et recrer les tables rfrenantes (ce qui ce complique encore si ces dernires contiennent des donnes).
Pour modifier une table contenant des donnes, la commande ALTER n'est pas indispensable. On peut en effet :
Copier les donnes dans une table temporaire de mme schma que la table modifierSupprimer et recrer la table modifier avec le nouveau schmaCopier les donnes depuis la table temporaire vers la table modifie
4.3. Exemple de modifications de tables
Soit une table initiale telle que dfinie ci-aprs.
1 Personne (2 pk_n ( ), 3 nom ( ),4 prenom ( ),5 PRIMARY KEY (pk_n)6 );
On dcide d'apporter les amnagements suivants la table : on dfinit "nom" comme UNIQUE et on supprime le champ "prenom".
1 Personne2 ADD UNIQUE (nom);34 Personne5 prenom;
La table obtenue aprs modification est identique la table qui aurait t dfinie directement telle que ci-aprs.
1 Personne (
Syntaxe : Ajout de contrainte
Remarque : Modification de table sans donne sans la commande ALTER
Remarque : Modification de table avec donnes sans la commande ALTER
Table initiale
Modifications
Table finale
DROP
ALTER TABLE table
ADD table
Personne (CREATE TABLE
pk_n ( ), NUMERIC 4
nom ( ),VARCHAR 50
prenom ( ),VARCHAR 50
PRIMARY KEY (pk_n)
);
PersonneALTER TABLE
ADD UNIQUE (nom);
PersonneALTER TABLE
prenom;DROP
Personne (CREATE TABLE
-
Exemple de modifications de tables
18
2 pk_n ( ), 3 nom ( ),4 PRIMARY KEY (pk_n),5 UNIQUE (nom)6 );
pk_n ( ), NUMERIC 4 nom ( ),VARCHAR 50
PRIMARY KEY (pk_n),
UNIQUE (nom)
);
-
Exercices
19
1. The show
[30 minutes]
Soit le schma relationnel suivant dcrivant un systme de rservations de places de spectacles :
1 SPECTACLE (#nospectacle:int, nom:str, dure:minutes, type:{thtre|danse|concert})
2 SALLE (#nosalle:int, nbplaces:int)3 REPRESENTATION (#date:timestamp, #nospectacle=>SPECTACLE, #nosalle=>SALLE, prix:decimal)
ExercicesII
SPECTACLE (#nospectacle:int, nom:str, dure:minutes, type:
{thtre|danse|concert})SALLE (#nosalle:int, nbplaces:int)
REPRESENTATION (#date:timestamp, #nospectacle=>SPECTACLE, #nosalle=>SALLE, prix:
decimal)
-
Exercice
20
1.1. Exercice : tude du schma1.1.1. Exercice
1.1.2. Exercice
1.1.3. Exercice
1.1.4. Exercice
1.1.5. Exercice
1.1.6. Exercice
[ ]solution n6 *[ ] p.28
Le schma permet de grer un espace de spectacles composs d'un ensemble de salles.
Vrai
Faux
La dure du spectacle est donne en minutes.
Vrai
Faux
Le type SQL dsigne un instant la seconde prs, par exemple: .TIMESTAMP 20/03/2017 10:37:22
Vrai
Faux
On peut supposer que le champ dsigne le dbut d'une reprsentation.date
Vrai
Faux
Deux spectacles identiques peuvent tre jous en mme temps dans deux salles diffrentes.
Vrai
Faux
Deux spectacles diffrents peuvent tre jous en mme temps dans la mme salle.
Vrai
Faux
-
Exercice: Du producteur au consommateur
21
- - -
1.2. Exercice:
Question 1
Question 2
Question 3
Question 4
2. Exercice: Du producteur au consommateur[30 min]
Soit le modle relationnel suivant:
1 Producteur(#raison_sociale:chane(25), ville:chane(255))2 Consommateur(#login:chane(10), #email:chane(50), nom:chane(50),prenom:chane(50), ville:chane(255))
3 Produit(#id:entier, description:chane(100), produit-par=>Producteur, consomme-par-login=>Consommateur, consomme-par-email=>Consommateur)
On ajoute que:
est une cl candidate de (nom,prenom,ville) ConsommateurTous les produits sont produitsTous les produits ne sont pas consomms
Question 1
Question 2
Retro-concevoir le MCD en UML.[ ]solution n7 *[ ] p.29
Proposer des contraintes d'intgrit ralistes pour ce schma (en franais).[ ]solution n8 *[ ] p.29
Proposer une dfinition du schma en SQL qui prenne en compte certaines de ces contraintes.[ ]solution n9 *[ ] p.30
Insrer des donnes ralistes dans votre schma afin de vrifier son bon fonctionnement.
Rtro-concevez le modle conceptuel sous-jacent ce modle relationnel.[ ]solution n10 *[ ] p.30
tablissez le code LDD standard permettant d'implmenter ce modle en SQL.[ ]solution n11 *[ ] p.31
Producteur(#raison_sociale:chane(25), ville:chane(255))
Consommateur(#login:chane(10), #email:chane(50), nom:chane(50),prenom:chane
(50), ville:chane(255))Produit(#id:entier, description:chane(100), produit-par=>Producteur, consomme-
par-login=>Consommateur, consomme-par-email=>Consommateur)
-
Exercice: Du producteur au consommateur
22
Question 3
Question 4
Question 5
- -
Insrez les donnes dans votre base de donnes correspondant aux assertions suivantes:
L'entreprise de Compigne "Pommes Picardes SARL" a produit 4 lots de pommes, et 2 lots de cidre.Il existe trois utilisateurs consommateurs dans la base, donc les adresses mails sont:[email protected] - [email protected] - [email protected] sont des employs de la ville de Compigne qui habitent cette ville. Leur mail est construit sur le modle [email protected]. Leur login est leur prnom.
[ ]solution n12 *[ ] p.31
- - -
Modifiez les donnes de votre base de donnes pour intgrer les assertions suivantes:
1 lots de pommes a t consomms par Al Un.2 lots de pomme ont t consomm par Bob Deux.Tous les lots de cidre ont t consomms par Al Un.
[ ]solution n13 *[ ] p.32
Charlie Trois n'ayant rien consomm, modifiez votre base de donnes afin de le supprimer de la base.[ ]solution n14 *[ ] p.32
-
Devoir
23
1. Exercice: Jeanne et Serge[30 min]
Vous avez en charge la ralisation d'une base de donnes pour grer un tournoi de Volley-Ball. Les quipes, identifies par un nom, sont composes de deux six joueurs dont on gre le nom et le prnom. Un match oppose deux quipes, une date donne et toujours renseigne, dont une est gagnante, et sont jous en deux sets gagnants (le score est donc toujours de 2 pour le gagnant et 0 ou 1 pour le perdant, on dcide donc de ne grer que le score du perdant). On notera que deux quipes se rencontrent au plus une fois.
Question 1
Question 2
Question 3
DevoirIII
Raliser le modle conceptuel de la BD en utilisant le formalisme UML. noncer les ventuelles contraintes non reprsentes sur le schma.
Traduire le MCD en modle logique relationnel. noncer les ventuelles contraintes non reprsentables en relationnel.
Proposer une implmentation SQL du modle relationnel, en intgrant le maximum de contraintes. noncer les ventuelles contraintes non reprsentables en SQL.
-
Contenus annexes
24Stphane Crozat (Contributions: Benjamin Lussier, Antoine Vincent)
- -
-
- -
-
- - -
-
- - -
-
- -
-
- - - - -
> Fonctions SQL
Par opposition aux fonctions de calcul SQL qui s'appliquent sur toute la table pour raliser des agrgats (en ne renvoyant qu'une seule valeur par regroupement), les fonctions "mono-ligne" sont des fonctions au sens classique, qui s'appliquent une ou plusieurs valeurs et renvoient une valeur en retour.
Les fonctions "mono-ligne" :
Manipulent des lments de donnesAcceptent des arguments en entre et retournent des valeurs en sortieAgissent sur chaque ligneRetournent un seul rsultat par lignePeuvent modifier les types de donnes
Traitement de chane
CONCAT, SUBSTR, LENGTH, INSRT, LPAD, TRIMLOWER, UPPER, INITCAP
Traitement de date
MONTHS_BETWEEN, ADD_MONTHS, NEXT_DAY, LAST_DAYSELECT sysdate FROM dual
Oprations mathmatiques sur les dates : SELECT sysdate + 10 FROM dual
Traitement numrique
ROUND, TRUNCFLOOR, CEILMOD
Conversion
Conversion impliciteConversion explicite : TO_DATE, TO_NUMBER, TO_CHAR
Gnrales
NVL (par exemple NVL(X,0) renvoie 0 si X vaut Null)CASE WHEN condition1 THEN valeur1 WHEN condition2 THEN valeur2 ELSE valeur3 END
Contenus annexes
Rappel
Exemple
-
Contenus annexes
25Stphane Crozat (Contributions: Benjamin Lussier, Antoine Vincent)
- -
- - - -
- Imbrication de fonctions : F3(F2(F1(col,arg1),arg2),arg3)
Les fonctions mono-ligne sont utilises pour :
Transformer les donnesFormater des dates et des nombres pour l'affichageConvertir des types de donnes de colonnes...
La fonction renvoie les B caractres partir du caractre A dans la chane X.SUBSTR(X, A, B)
Fonctions SQL
Vous pouvez consulter , page 9 12, pour avoir une description plus dtaille des Oracle : SQL*
fonctions disponibles sous Oracle.
1 tIntervenant (#pknom:varchar, prenom:varchar, poste:integer)2 tCours (#pkannee:2000..2100, #pknum:integer, titre:varchar, type:C|TD|TP, fkintervenant=>tIntervenant, debut:date)
1 pknum cours,2 CASE 3 WHEN type= THEN 4 WHEN type= THEN 5 WHEN type= THEN 6 END type_label7 tCours
1 COURS TYPE_LABEL 2 ----- -----------------3 1 Cours 4 2 Travaux dirigs
Mthode
Exemple : Extraction de chane
Complment
Rappel : BD "Gestion des intervenants": Schma relationnel
Exemple : BD "Gestion des intervenants": Question avec CASE
tIntervenant (#pknom:varchar, prenom:varchar, poste:integer)
tCours (#pkannee:2000..2100, #pknum:integer, titre:varchar, type:C|TD|TP,
fkintervenant=>tIntervenant, debut:date)
pknum cours,SELECT AS
CASE
WHEN type= THEN 'C' 'Cours'
WHEN type= THEN 'TD' 'Travaux dirigs'
WHEN type= THEN 'TP' 'Travaux pratiques'
END type_labelAS
tCoursFROM
COURS TYPE_LABEL
----- -----------------
1 Cours
2 Travaux dirigs
http://docs.oracle.com/cd/B19188_01/doc/B15917/sqfunc.htm
-
Questions de synthse
26Stphane Crozat (Contributions: Benjamin Lussier, Antoine Vincent)
A quoi sert le LDD ?
.........................................................................................................................................................................................................................................................
.........................................................................................................................................................................................................................................................
.........................................................................................................................................................................................................................................................
.........................................................................................................................................................................................................................................................
.........................................................................................................................................................................................................................................................
.........................................................................................................................................................................................................................................................
.........................................................................................................................................................................................................................................................
En quoi le LDD est il un langage dclaratif ?
.........................................................................................................................................................................................................................................................
.........................................................................................................................................................................................................................................................
.........................................................................................................................................................................................................................................................
.........................................................................................................................................................................................................................................................
.........................................................................................................................................................................................................................................................
.........................................................................................................................................................................................................................................................
.........................................................................................................................................................................................................................................................
Quel rapport y-a-t il entre le LDD et le concept de relation ?
.........................................................................................................................................................................................................................................................
.........................................................................................................................................................................................................................................................
.........................................................................................................................................................................................................................................................
.........................................................................................................................................................................................................................................................
.........................................................................................................................................................................................................................................................
.........................................................................................................................................................................................................................................................
.........................................................................................................................................................................................................................................................
Questions de synthse
-
Solutions des exercices
27Stphane Crozat (Contributions: Benjamin Lussier, Antoine Vincent)
Exercice p. 7> Solution n4
Exercice p. 7> Solution n3
Exercice p. 7> Solution n2
Exercice p. 7> Solution n1
1 Medicament (#nom:varchar, description:varchar, description_longue:varchar, conditionnement:number)
2 Contre_indication(#code:varchar, description:varchar, medicament=>Medicament)
1 Medicament (2 nom , 3 description , 4 description_longue , 5 conditionnement ,6 PRIMARY KEY (nom)7 );89 Contre_indication (
10 code , 11 description , 12 medicament ,13 PRIMARY KEY (code),14 FOREIGN KEY (medicament) REFERENCES Medicament (nom)15 );
1 Medicament (nom,description,description_longue,conditionnement)2 ( , , , );3 Contre_indication (code,description,medicament)4 ( , , );5 Contre_indication (code,description,medicament)6 ( , , );
Solutions des exercices
Medicament (#nom:varchar, description:varchar, description_longue:varchar,
conditionnement:number)Contre_indication(#code:varchar, description:varchar, medicament=>Medicament)
Medicament (CREATE TABLE
nom , varchar
description , varchar
description_longue , varchar
conditionnement ,integer
PRIMARY KEY (nom)
);
Contre_indication (CREATE TABLE
code , varchar
description , varchar
medicament ,varchar
PRIMARY KEY (code),
FOREIGN KEY (medicament) REFERENCES Medicament (nom)
);
Medicament (nom,description,description_longue,conditionnement)INSERT INTO
( , , , );VALUES 'Chourix' 'Mdicament contre la chute des choux' 'Vivamus...' 13
Contre_indication (code,description,medicament)INSERT INTO
( , , );VALUES 'CI1' 'Ne jamais prendre aprs minuit' 'Chourix'
Contre_indication (code,description,medicament)INSERT INTO
( , , );VALUES 'CI2' 'Ne jamais mettre en contact avec de l''eau' 'Chourix'
-
Solutions des exercices
28Stphane Crozat (Contributions: Benjamin Lussier, Antoine Vincent)
Exercice p. 20> Solution n6
-
- -
Exercice p. 13> Solution n5
78 Medicament (nom,description,description_longue,conditionnement)9 ( , ,
, );'Suspendisse...' 4210 Contre_indication (code,description,medicament)11 ( , , );
Quelle valeur renvoie la dernire instruction SQL de la liste ci-dessous :
1 t (2 a ,3 b ,4 c );56 t ( , , );78 t ( , , );9
10 sum(a) + (b) t;
6
Contenus de la table :
Aprs Create : Aprs Insert n1 :
0 0 0
Aprs Insert n2 :
0 0 0
1 0 0
On a sum(a) = 1 et count(b) = 2 donc La requte renvoie .3
Exercice
Le schma permet de grer un espace de spectacles composs d'un ensemble de salles.
Vrai
Faux
Exercice
La dure du spectacle est donne en minutes.
Vrai
Faux
Medicament (nom,description,description_longue,conditionnement)INSERT INTO
( , ,VALUES 'Tropas' 'Mdicament contre les dysfonctionnements intellectuels'
, );'Suspendisse...' 42 Contre_indication (code,description,medicament)INSERT INTO
( , , );VALUES 'CI3' 'Garder l''abri de la lumire du soleil' 'Tropas'
t (CREATE TABLE
a ,integer
b ,integer
c );integer
t ( , , );INSERT INTO VALUES 0 0 0
t ( , , );INSERT INTO VALUES 1 0 0
sum(a) + (b) t;SELECT count FROM
-
Solutions des exercices
29Stphane Crozat (Contributions: Benjamin Lussier, Antoine Vincent)
- -
Exercice p. 21> Solution n7
Exercice
Le type SQL dsigne un instant la seconde prs, par exemple: .TIMESTAMP 20/03/2017 10:37:22
Vrai
Faux
Exercice
On peut supposer que le champ dsigne le dbut d'une reprsentation.date
Vrai
Faux
Exercice
Deux spectacles identiques peuvent tre jous en mme temps dans deux salles diffrentes.
Vrai
Faux
Exercice
Deux spectacles diffrents peuvent tre jous en mme temps dans la mme salle.
Vrai
Faux
Classe d'association (cf. p.)Transformation des classes d'association (cf. p.)
Complment : Classe d'association
-
Solutions des exercices
30Stphane Crozat (Contributions: Benjamin Lussier, Antoine Vincent)
Exercice p. 21> Solution n9
- -
-
-
-
- -
-
Exercice p. 21> Solution n8
sur SPECTACLES :
le nom d'un spectacle est non nul,la dure d'un spectacle est comprise entre 60 minutes et 240 minutes,
sur SALLES :
la capacit d'une salle est comprise entre 100 et 500 places.
sur REPRESENTATION :
le prix d'une reprsentation est compris entre 10 et 50 ,certaines dates peuvent tre interdites (le premier mai par exemple).
1 SPECTACLE (2 nospectacle ,3 nom ( ) ,4 duree ,5 type ( ),6 PRIMARY KEY (nospectacle),7 CHECK (duree> duree< ),8 CHECK (type ( , , ))9 );
1 SALLE (2 nosalle ,3 nbplaces ,4 PRIMARY KEY (nosalle),5 CHECK (nbplaces> nbplaces< )6 );
1 REPRESENTATION (2 nospectacle ,3 nosalle ,4 rdate ,5 prix ( , ),6 PRIMARY KEY (nosalle, , nospectacle),7 FOREIGN KEY (nospectacle) REFERENCES SPECTACLE(nospectacle),8 FOREIGN KEY (nosalle) REFERENCES SALLE(nosalle),9 CHECK (prix> prix< )
10 );
Exemple
SPECTACLE (CREATE TABLE
nospectacle ,integer
nom ( ) ,varchar 30 NOT NULL
duree ,integer
type ( ),char 7
PRIMARY KEY (nospectacle),
CHECK (duree> duree< ),1 and 4
CHECK (type ( , , ))in 'thtre' 'danse' 'concert'
);
SALLE (CREATE TABLE
nosalle ,integer
nbplaces ,integer
PRIMARY KEY (nosalle),
CHECK (nbplaces> nbplaces< )100 and 500
);
REPRESENTATION (CREATE TABLE
nospectacle ,integer
nosalle ,integer
rdate ,date
prix ( , ),decimal 3 2
PRIMARY KEY (nosalle, , nospectacle),date
FOREIGN KEY (nospectacle) REFERENCES SPECTACLE(nospectacle),
FOREIGN KEY (nosalle) REFERENCES SALLE(nosalle),
CHECK (prix> prix< )10 and 50
);
-
Solutions des exercices
31Stphane Crozat (Contributions: Benjamin Lussier, Antoine Vincent)
Exercice p. 22> Solution n12
Exercice p. 21> Solution n11
Exercice p. 21> Solution n10
Produits
1 Producteur (2 raison_sociale ( ),3 ville ( ),4 PRIMARY KEY (raison_sociale)5 );67 Consommateur (8 login ( ),9 email ( ),
10 nom ( ) ,11 prenom ( ) ,12 ville ( ) ,13 PRIMARY KEY (login,email),14 UNIQUE (nom,prenom,ville)15 );1617 Produit (18 id ,19 description ( ),20 produit_par ( ) ,21 consomme_par_login ( ),22 consomme_par_email ( ),23 PRIMARY KEY (id),24 FOREIGN KEY (produit_par) REFERENCES Producteur(raison_sociale),25 FOREIGN KEY (consomme_par_login,consomme_par_email) REFERENCES Consommateur(login,
email)26 );
1 -- Insertion du producteur2
Producteur (CREATE TABLE
raison_sociale ( ),VARCHAR 25
ville ( ),VARCHAR 255
PRIMARY KEY (raison_sociale)
);
Consommateur (CREATE TABLE
login ( ),VARCHAR 10
email ( ),VARCHAR 50
nom ( ) ,VARCHAR 50 NOT NULL
prenom ( ) ,VARCHAR 50 NOT NULL
ville ( ) ,VARCHAR 255 NOT NULL
PRIMARY KEY (login,email),
UNIQUE (nom,prenom,ville)
);
Produit (CREATE TABLE
id ,INTEGER
description ( ),VARCHAR 100
produit_par ( ) ,VARCHAR 25 NOT NULL
consomme_par_login ( ),VARCHAR 10
consomme_par_email ( ),VARCHAR 50
PRIMARY KEY (id),
FOREIGN KEY (produit_par) REFERENCES Producteur(raison_sociale),
FOREIGN KEY (consomme_par_login,consomme_par_email) REFERENCES Consommateur(login,
email));
-- Insertion du producteur
-
Solutions des exercices
32Stphane Crozat (Contributions: Benjamin Lussier, Antoine Vincent)
Exercice p. 22> Solution n14
Exercice p. 22> Solution n13
3 INSERT INTO Producteur (raison_sociale, ville) 4 VALUES ('Pommes Picardes SARL', 'Compigne');56 -- Insertion des produits78 INSERT INTO Produit (id, description, produit_par) 9 VALUES (1, 'Lot de pommes', 'Pommes Picardes SARL');
1011 INSERT INTO Produit (id, description, produit_par) 12 VALUES (2, 'Lot de pommes', 'Pommes Picardes SARL');1314 INSERT INTO Produit (id, description, produit_par) 15 VALUES (3, 'Lot de pommes', 'Pommes Picardes SARL');1617 INSERT INTO Produit (id, description, produit_par) 18 VALUES (4, 'Lot de pommes', 'Pommes Picardes SARL');1920 INSERT INTO Produit (id, description, produit_par) 21 VALUES (5, 'Lot de cidre', 'Pommes Picardes SARL');2223 INSERT INTO Produit (id, description, produit_par) 24 VALUES (6, 'Lot de cidre', 'Pommes Picardes SARL');2526 -- Insertion des consommateurs2728 INSERT INTO Consommateur (login, email, nom, prenom, ville)29 VALUES ('Al', '[email protected]', 'Un', 'Al', 'Compigne');3031 INSERT INTO Consommateur (login, email, nom, prenom, ville)32 VALUES ('Bob', '[email protected]', 'Deux', 'Bob', 'Compigne');3334 INSERT INTO Consommateur (login, email, nom, prenom, ville)35 VALUES ('Charlie', '[email protected]', 'Trois', 'Charlie', 'Compigne');
1 UPDATE produit 2 SET consomme_par_login='Al', consomme_par_email='[email protected]'3 WHERE id=1;45 UPDATE produit 6 SET consomme_par_login='Bob', consomme_par_email='[email protected]'7 WHERE id=2 OR id=3;89 UPDATE produit
10 SET consomme_par_login='Al', consomme_par_email='[email protected]'11 WHERE description='Lot de cidre';1213
1 DELETE FROM consommateur2 WHERE login='Charlie' AND email='[email protected]';
INSERT INTO Producteur (raison_sociale, ville)
VALUES ('Pommes Picardes SARL', 'Compigne');
-- Insertion des produits
INSERT INTO Produit (id, description, produit_par)
VALUES (1, 'Lot de pommes', 'Pommes Picardes SARL');
INSERT INTO Produit (id, description, produit_par)
VALUES (2, 'Lot de pommes', 'Pommes Picardes SARL');
INSERT INTO Produit (id, description, produit_par)
VALUES (3, 'Lot de pommes', 'Pommes Picardes SARL');
INSERT INTO Produit (id, description, produit_par)
VALUES (4, 'Lot de pommes', 'Pommes Picardes SARL');
INSERT INTO Produit (id, description, produit_par)
VALUES (5, 'Lot de cidre', 'Pommes Picardes SARL');
INSERT INTO Produit (id, description, produit_par)
VALUES (6, 'Lot de cidre', 'Pommes Picardes SARL');
-- Insertion des consommateurs
INSERT INTO Consommateur (login, email, nom, prenom, ville)
VALUES ('Al', '[email protected]', 'Un', 'Al', 'Compigne');
INSERT INTO Consommateur (login, email, nom, prenom, ville)
VALUES ('Bob', '[email protected]', 'Deux', 'Bob', 'Compigne');
INSERT INTO Consommateur (login, email, nom, prenom, ville)
VALUES ('Charlie', '[email protected]', 'Trois', 'Charlie', 'Compigne');
UPDATE produit
SET consomme_par_login='Al', consomme_par_email='[email protected]'
WHERE id=1;
UPDATE produit
SET consomme_par_login='Bob', consomme_par_email='[email protected]'
WHERE id=2 OR id=3;
UPDATE produit
SET consomme_par_login='Al', consomme_par_email='[email protected]'
WHERE description='Lot de cidre';
DELETE FROM consommateur
WHERE login='Charlie' AND email='[email protected]';
-
Glossaire
33Stphane Crozat (Contributions: Benjamin Lussier, Antoine Vincent)
Intension
L'intension est l'explicitation d'un domaine par la description de ses caractristiques (en vue de sa comprhension abstraite, gnrale).
Elle s'oppose l'extension qui est l'nonciation exhaustive de l'ensemble des objets du domaine.
Exemple: Le domaine des couleursContre-exemple: {bleu, rouge, vert}
Glossaire
-
Signification des abrviations
34Stphane Crozat (Contributions: Benjamin Lussier, Antoine Vincent)
ANSI : American National Standards Institute
BD : Base de Donnes
ISO : International Standardization Organization
LCD : Langage de Contrle de Donnes
LDD : Langage de Dfinition de Donnes
LMD : Langage de Manipulation de Donnes
PSM : Persistent Stored Modules
RO : Relationnel-Objet
SGBD : Systme de Gestion de Bases de Donnes
SGBDR : Systme de Gestion de Bases de Donnes Relationnelles
SQL : Structured Query Language
XML : eXtensible Markup Language
Abrviations
-
Rfrences
35Stphane Crozat (Contributions: Benjamin Lussier, Antoine Vincent)
dbdisco.crzt.frDB Disco est une application web permettant de crer une base de donnes temporaire (les donnes sont effaces la dconnexion).http://dbdisco.crzt.fr
Rfrences
http://dbdisco.crzt.fr
-
Bibliographie
36Stphane Crozat (Contributions: Benjamin Lussier, Antoine Vincent)
Gulutzan Peter, Pelzer Trudy. . . 1999 SQL-99 complete, really CMP books.
Bibliographie
-
Webographie
37Stphane Crozat (Contributions: Benjamin Lussier, Antoine Vincent)
, , , Roegel Denis Oracle : SQL http://www.loria.fr/~roegel/cours/iut/oracle-sql.pdf 1999.
Webographie
http://www.loria.fr/~roegel/cours/iut/oracle-sql.pdf
CoursLe langage SQLLe langage SQLConseils pour l'apprentissage du SQL
Crer des tables en SQL (Langage de Dfinition de Donnes)Exercice: Lab I++Cration de tablesDomaines de donnesLa valeur NULLContraintes d'intgritExemple de contraintes d'intgrit
Insrer, modifier et supprimer des donnes en SQL (Langage de Manipulation de Donnes)ExerciceInsertion de donnes par entre explicite des valeursInsertion de valeurs par l'intermdiaire d'une slectionMise jour de donnesSuppression de donnes
Supprimer et modifier des tables en SQL (Langage de Dfinition de Donnes)Suppression d'objetsModification de tablesExemple de modifications de tables
ExercicesThe showExercice : tude du schmaExercice:
Exercice: Du producteur au consommateur
DevoirExercice: Jeanne et Serge
Contenus annexesQuestions de synthseSolutions des exercicesGlossaireAbrviationsRfrencesBibliographieWebographie