Systèmes d’Information et Application

Slides:



Advertisements
Présentations similaires
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,
Advertisements

Initiation aux bases de données et à la programmation événementielle
SQL Partie 1.
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.
PostgreSQL – Présentation
DEFINITION DES DONNEES : schéma conceptuel. Schéma conceptuel instructiondescription CREATE TABLEcréation d'une relation ALTER TABLEmodification de la.
Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio.
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.
Le langage SQL.
Initiation aux bases de données et à la programmation événementielle
Bases de données – Cours 3
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.
RAPPEL SUR LES BASES DE DONNÉES, LE SQL 1 er trimestre V1.0 06/01/2015.
1- Introduction 1ère partie Le langage SQL 2- Connexion 3- Structure & Contenu 4- Requêtes.
SQL partie 5 1 LMD create – update – primary key secondary key.
Le langage de définition de données B.T.S. S.I.O – SI3 –
1- Introduction Sommaire Modèle Logique des Données 2- Structure 3- Traduction du MCD en MLD 4- Recap - Méthodologie.
SQL : 4 fonctions d'exploitation de SGBD SQL (Structured Query Language, traduisez Langage de requêtes structuré) est un langage informatique ayant pour.
1- phpMyAdmin 3ème partie : Manipulation des données Le langage SQL 2- Gérer les tables 3- Gérer les données.
1 Programmation en C++ C++ de base ● Programme C++ ● Variables, objets, types ● Fonctions ● Namespace ● Tests ● Boucles ● Pointeurs, références.
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.
1 Programmation en C++ C++ de base ● Programme C++ ● Variables, objets, types ● Types et opérations fondamentales ● Tests ● Boucles ● Pointeurs, références.
Les Bases de données Définition Architecture d’un SGBD
Construire des requêtes
Environnement du développement de BD ORACLE REPORTS 10g
ملخص Initiation à la sgbdr
Bases de données multimédia
Structured Query Language SQL DDL
Intégration du P7 dans l’épreuve E41
Initiation aux bases de données et à la programmation événementielle
Pointeurs et langage C.
LE LANGAGE DE REQUETES SQL
Langage de manipulation de données (LMD)
Structured Query Language
Généralité sur les bases de données
Les bases de données et le modèle relationnel
Langage de Manipulation des Données LMD
SQL LID – INTERROGATIN DES DONNEES
Réalisation d’une application web sous le thème: «Mon vétérinaire » par : Benzineb Asmaa et Meftahi Oualid Présentation à Université Saad Dahlab Blida.
Maria Berger - Maîtrise d'AES Algèbre relationnelle.
Introduction BD TABLES ET DONNÉES champs OU données, types de données
Notion De Gestion De Bases De Données
Manipulation D’Une Base De Données
Programmation en C++ C++ de base
Structure D’une Base De Données Relationnelle
Modèle entité-association Exercice client : Une petite entreprise souhaite concevoir une base de données pour la gestion des commandes de ses clients,
Calcul Scientifique Initiation à SCILB
02- Evaluation Access 2003 Cette évaluation comporte des QCM (1 seule réponse) et des Zones à déterminer dans des copies d’écran.
Introduction en systèmes d’information et bases de données B.Shishedjiev -Introduction en BD 1.
I Copyright © 2004, Oracle. Tous droits réservés. Introduction.
1 Copyright © 2004, Oracle. Tous droits réservés. Extraire des données à l'aide de l'instruction SQL SELECT.
2 Copyright © 2004, Oracle. Tous droits réservés. Restreindre et trier les données.
Bases de données sous Access. Initiation aux bases de données  Structure d’une base de données.
9 Copyright © 2004, Oracle. Tous droits réservés. Utiliser des instructions LDD pour créer et gérer des tables.
Préface Introduction Objectifs du chapitre I-2 Objectifs du cours I-3 Oracle10g I-4 Oracle Database 10g I-6 Oracle Application Server 10g I-7 Oracle Enterprise.
Remarque : Un nombre ou une lettre en gras fait référence à un chapitre entier ou à une annexe entière. A Affichage des dates par défaut 02-06, Ajouter.
1. LE LANGAGE SQL DDL Version 2 - Janvier Le langage SQL-DDL
7 Contraintes d’intégrité en SQL
Introduction aux Bases de Données SGBDR Microsoft Access.
PRESENTATION ACCESS Editeur : Microsoft Environnement Windows (SE)
Base de données Table des clients Table des fournisseurs Table des commandes clients Formulaire des clients Formulaire des fournisseurs Formulaire des.
TP1 - DBMAIN BFSH Lausanne - Switzerland - Tel Université de Lausanne.
Langage SQL ENCG-Tanger Le Langage SQL (1) INTRODUCTION
Systèmes d’Information et Application
1. LE LANGAGE SQL DDL Version 1 - Mai 2009 corrigé le 11/2/2011
Systèmes d’Information et Application
DONNÉE DE BASE QM Manuel de formation. Agenda 2  Introduction  Objectif de la formation  Données de base QM: Caractéristique de contrôle Catalogue.
Transcription de la présentation:

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

Contact Web: http://happymaths.pagesperso-orange.fr Email: happy.maths@orange.fr

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.

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 2 2h

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

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

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).

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.  

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.    

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 : 16383 caractères max.  

Type données SQL : numérique SQL Standard introduit les types numériques : SMALLINT : entier signé entre –32768 et 32767. INTEGER : entier signé entre –231 et 231 - 1. 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é.

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é.

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é.

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.

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 ) ;

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, 500.00 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).

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.

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.

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

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

Etude de cas : schéma relationnel BDCours

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)

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

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

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 >= 2014 AND id_annee < 2500) );

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));

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')) );

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')) );

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));