La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Systèmes d’Information et Application

Présentations similaires


Présentation au sujet: "Systèmes d’Information et Application"— Transcription de la présentation:

1 Systèmes d’Information et Application
Année Universitaire SIA TD2 SQL – Le langage de définition des données (LDD) Emmanuel Fruchart

2 Contact Web: http://happymaths.pagesperso-orange.fr

3 Descriptif du TD Objectif :
Savoir créer la structure d’une base de données à partir d’un schéma relationnel et des types de données fournis. Supports : SQL : le Langage de Définition des Données.

4 Contenu du TD Rappel de cours SQL – le LDD SQL 0h30
Etude de cas Création d’une base de données en SQL à partir d’un schéma relationnel 1h Application Exercice puis corrigé 0h30 TNE 2 Exercice h

5 Présentation Structured Query Language (SQL)
Langage de Définition des Données (LDD)

6 Structured Query Language (SQL)
SQL est un langage structuré de requêtes. Evolution de SEQUEL, IBM, années 70, pour accompagner son premier SGBDR (SYSTEM-R). SQL devenu la norme en matière de langage relationnel : SQL/86 : standard officiel ratifié par comités ISO et ANSI. SQL/89 : + définition des contraintes de référence. SQL/92, SQL-2 ou SQL Standard : + connexions et sessions C/S + normalisation types données date et heure + opérateurs intersection, différence, jointure + contraintes d'intégrité + traitement du SQL dynamique + catalogue BDD.    SQL/92, SQL Standard = support de ce cours

7 Structured Query Language (SQL)
SQL admet les caractéristiques suivantes : Langage relationnel ensembliste (pas de variable !) Langage à intégration verticale : adapté administrateur BDD, architecte d'applications, développeur. Même gamme de mots réservés Langage à intégration horizontale : commandes qui permettent de : Définir les données (LDD). Manipuler les données (LMD). Contrôler les données (LCD).

8 Structured Query Language (SQL)
SQL peut être : interprété directement (dans le SGBD) incorporé (embedded) dans un langage procédural (type C ou Pascal). Tous les principaux SGBD relationnels (SGBDR) du marché, dont DB2, Oracle, Informix, SQL Server, Sybase, Ingres ou Access ont adopté SQL. Chaque SGBDR utilise sa propre variante du langage SQL. Mais chaque variante est très proche : SQL est un langage relativement portable.  

9 LDD : Langage de Définition des Données
LDD (DDL en anglais) : Le LDD est l'ensemble des commandes permettant de : définir un objet d'une BDD relationnelle. modifier un objet d'une BDD relationnelle. supprimer un objet d'une BDD relationnelle.

10 Type données SQL : chaîne de caractères
SQL Standard introduit 2 types chaînes de caractères : CHAR(n) : longueur fixe. VARCHAR(n) : longueur variable. Privilégier CHAR si contenu colonne imprévisible, mais taille maximale connue. VARCHAR si utilisation de taille maximale de la colonne fait exception. Constantes chaînes entourées par des apostrophes (parfois guillemets). Si déjà une apostrophe, on la double : 'L''eau vive’. Consulter la doc. du SGBD pour n maximum et portabilité. Exemple : caractères max.

11 Type données SQL : numérique
SQL Standard introduit les types numériques : SMALLINT : entier signé entre –32768 et INTEGER : entier signé entre –231 et NUMERIC(p,d) ou DECIMAL(p,d) : nombre décimal à p chiffres significatifs dont d après virgule. REAL : réel à simple précision, >= 7 chiffres significatifs. FLOAT ou DOUBLE PRECISION : réel à double précision, >= 15 chiffres significatifs. Constantes numériques : –5 ou 2.5 ou 5.4E-5. Pas de ‘ ’ ! Consulter la doc. du SGBD pour vérifier la portabilité.

12 Type données SQL : temporel
SQL Standard introduit les types temporels : DATE : pour une date simple, 2 chiffres pour le jour, 2 pour le mois et 4 pour l'année. TIME : pour une heure, au format "heure minute seconde". Les secondes pouvant contenir des décimales. TIMESTAMP : pour un moment précis, une date avec heures, minutes et secondes avec 6 chiffres après la virgule. INTERVAL : s'emploie pour un intervalle de temps.    Constantes temporelles : dépendent des options que l'administrateur a choisies à la création de la BDD ('01/01/2000‘ mode français ou '2000/01/01‘ mode anglais). Consulter la doc. du SGBD pour vérifier la portabilité.

13 Type données SQL : binaire
SQL Standard introduit les types binaires : BIT : type binaire de longueur constante. BIT VARYING : type binaire de longueur variable.    Ces types peuvent servir pour l'enregistrement de données type images et sons, mais nous ne les utiliserons pas dans le cadre de ce cours. Consulter la doc. du SGBD pour vérifier la portabilité.

14 LDD : Création et suppression d’une base
Création d'une base de données    Instruction standard SQL CREATE DATABASE nom_base; Suppression d'une base de données DROP DATABASE nom_base; Attention, sous certains S.G.B.D., les bases de données sont en fait créés par l'administrateur au moment de la configuration du S.G.B.D. par des outils dédiés, de sorte que l'instruction ci-dessus est obsolète. L'utilisateur, lors de la connexion à une base de données, spécifie son nom d'utilisateur, son mot de passe, et l'alias de base utilisée. Il peut alors accéder alors aux objets de cette base de données.

15 LDD : Création d’une table
Création d'une table de base de données Instruction standard SQL CREATE TABLE nom_table ( nom_col type_col [DEFAULT valeur] [contrainte_col], ………… ………… [………………….] [………………..], CONSTRAINT nom_contrainte contrainte_table, ……………….. ………………… …………………, CONSTRAINT nom_contrainte contrainte_table ) ;

16 LDD : Création d’une table et conventions
Paramètres entre crochets facultatifs donc optionnels. Attention syntaxe précise (ne pas oublier de virgules, ni en mettre en trop). Noms des colonnes : noms communs, sans caractères spéciaux, ni accents. Valeurs par défaut : constantes du type de la colonne (2000 pour integer, pour float, ‘Titi' pour char). Noms des contraintes de table : noms communs, sans caractères spéciaux, ni accents (exemple : PKperiode pour clé primaire de la table periode).

17 LDD : Contraintes de colonne
Les contraintes de colonne possibles sont : PRIMARY KEY : colonne clé primaire de la table. NOT NULL : valeurs colonne doivent être renseignées. UNIQUE : interdit présence de doublons dans colonne. CHECK (expr_cond_col) : les données de la colonne doivent respecter une certaine condition portant sur la colonne uniquement. REFERENCES nom_table_ref (nom_col_ref) : colonne reliée à clé étrangère qui est le champ nom_col_ref de la table nom_table_ref.

18 LDD : Contraintes de tables
Les contraintes de table possibles sont : PRIMARY KEY(nom_col1, nom_col2, … ) : clé primaire de la table formée des champs nom_col1, nom_col2, … UNIQUE(nom_col1, nom_col2, … ) : interdit les doublons dans les valeurs des t - uplets (valeur_col1, valeur_col2, …). CHECK (expr_cond_table) : les données de la table doivent respecter une certaine condition portant sur tout ou partie des colonnes de la table. FOREIGN KEY(nom_col) REFERENCES nom_table_ref (nom_col_ref) : colonne reliée à une clé étrangère qui est le champ nom_col_ref de la table nom_table_ref.

19 LDD : Mise à jour d’une table
Mise à jour d'une table de base de données Instruction standard SQL ALTER TABLE nom_table ordre_de_mise_a_jour; Ordres de mise à jour possibles ADD COLUMN nom_col type_col [DEFAULT valeur] [contrainte_col] ADD CONSTRAINT nom_contrainte_tbl contrainte_tbl ALTER nom_col type_col [DEFAULT valeur] [contrainte_col] DROP COLUMN nom_col DROP CONSTRAINT nom_contrainte_tbl

20 LDD : Suppression d’une table
Suppression d'une table de base de données Instruction standard SQL DROP TABLE nom_table;

21 Etude de cas : schéma relationnel BDCours

22 Etude de cas : types de données BDCours
annee  id_annee INTEGER desc_annee CHAR(50) nb_filles INTEGER nb_garcons INTEGER periode id_periode CHAR(2) desc_periode CHAR(100) classe id_classe CHAR(4) desc_classe CHAR(100) matiere id_matiere CHAR(4) desc_matiere CHAR(100)

23 Etude de cas : types de données BDCours
professeur et professeur_rem id_professeur CHAR(8) nom CHAR(50) prenom CHAR(50) sexe CHAR(1) date_naissance DATE id_matiere CHAR(4) enseignement id_annee INTEGER id_periode CHAR(2) id_classe CHAR(4) id_matiere CHAR(4) id_professeur CHAR(8) moyenne_classe FLOAT

24 Etude de cas : création base BDCours
create database bdcours;

25 Etude de cas : création table annee
create table annee ( id_annee integer NOT NULL, desc_annee char(50), nb_filles integer, nb_garcons integer, constraint PKannee PRIMARY KEY(id_annee), constraint CKannee CHECK(id_annee >= AND id_annee < 2500) );

26 Etude de cas : tables periode, table, matiere
create table periode (id_periode char(2) NOT NULL, desc_periode char(100), constraint PKperiode PRIMARY KEY(id_periode)); create table classe (id_classe char(4) NOT NULL, desc_classe char(100), constraint PKclasse PRIMARY KEY(id_classe)); create table matiere (id_matiere char(4) NOT NULL, desc_matiere char(100), constraint PKmatiere PRIMARY KEY(id_matiere));

27 Etude de cas : création table professeur
create table professeur ( id_professeur char(8) NOT NULL, nom char(50) NOT NULL, prenom char(50) NOT NULL, sexe char(1) NOT NULL, date_naissance date, id_matiere char(4) NOT NULL, constraint PKprof PRIMARY KEY(id_professeur), constraint FKprofmat FOREIGN KEY(id_matiere) REFERENCES MATIERE (id_matiere), constraint CKprofsexe CHECK(sexe IN ('H', 'F')) );

28 Etude de cas : création tbl professeur_rem
create table professeur_rem ( id_professeur char(8) NOT NULL, nom char(50) NOT NULL, prenom char(50) NOT NULL, sexe char(1) NOT NULL, date_naissance date, id_matiere char(4) NOT NULL, constraint PKprem PRIMARY KEY(id_professeur), constraint FKpremmat FOREIGN KEY(id_matiere) REFERENCES MATIERE (id_matiere), constraint CKpremsexe CHECK(sexe IN ('H', 'F')) );

29 Etude de cas : création table enseignement
create table enseignement (id_annee integer NOT NULL, id_periode char(2) NOT NULL, id_classe char(4) NOT NULL, id_matiere char(4) NOT NULL, id_professeur char(8) NOT NULL, moyenne_classe float, constraint PKens PRIMARY KEY(id_annee,id_periode,id_classe,id_matiere), constraint FKensann FOREIGN KEY(id_annee) REFERENCES ANNEE(id_annee), constraint FKensper FOREIGN KEY(id_periode) REFERENCES PERIODE(id_periode), constraint FKenscla FOREIGN KEY(id_classe) REFERENCES CLASSE(id_classe), constraint FKensmat FOREIGN KEY(id_matiere) REFERENCES MATIERE(id_matiere), constraint FKensprof FOREIGN KEY(id_professeur) REFERENCES PROFESSEUR(id_professeur), constraint CKensmoy CHECK(moyenne_classe BETWEEN 0 AND 20));


Télécharger ppt "Systèmes d’Information et Application"

Présentations similaires


Annonces Google