Georges Gardarin 1 LE LANGAGE DE REQUETES SQL l Origines et Evolutions l SQL1 86: la base l SQL1 89: l'intégrité l SQL2 92: la nouvelle norme l SQL3 98:

Slides:



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

Les Systèmes de Gestion de Bases de Données (SGBD) PL-SQL.
Langage de manipulation de données Ensemble de commandes permettant : – modifier la base : ajout, modification et suppression – interroger la base ex :
Programme Introduction aux BD et aux SGBD Le modèle relationnel
Bases de données : modèlisation et SGBD
Découverte de SQL Server par la pratique pour les administrateurs expérimentés Module 5 : Accès aux données Bertrand Audras Microsoft Technology Center.
Jeudi 24/09 Correction TP du mardi 22/09
Fonctionnalités des SGBD
1 Créer les Applications de BDs : SQL Imbriqué Witold Litwin.
4 relations –EMPLOYE –SERVICE –LOCALITE –ADRESSE.

Optimisation de Requêtes
LE MODELE RELATIONNEL INVENTE PAR T. CODD (IBM SAN-JOSE)
SGBDR : LA GESTION DES VUES
Optimisation de Requêtes
Les Requêtes S.Q.L « Structured Query Language)
Année universitaire Système dinformation Le SQL (Structured Query Language) langage dinterrogation dune base de données.
LMD: Langage de Manipulation de Données
XQuery 1. Introduction 2. Modèle de données 3. XQuery par l'exemple
Contrôles d'accès aux données
Systèmes d Information : 10b Michel de Rougemont Université Paris II Les Bases de Données : Access.
10 Copyright © Oracle Corporation, Tous droits réservés. Autres concepts relatifs aux déclencheurs.
LE LANGAGE SQL Langage de manipulation de données (LMD)
Mise en œuvre du langage MDX - 1 ère partie- Présentation de lexemple et des outils utilisés -1-
L’utilisation des bases de données
Cours N°2 Base de Données & Langage SQL
1 LE LANGAGE DE REQUETES SQL Origines et Evolutions SQL1 86: la base SQL1 89: l'intégrité.
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 1 Procédures stockées CPI-SQLServer.
Mise en œuvre du langage MDX
Question 1.1 Q1 Q2 Q3 Q4 USA Canada home Computer phone security
PLSQL ORACLE 8i Connecter VB à BD Oracle Les collections Question de révision Les blocs anonymes Les triggers REVISION Par : Joël Huot.
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 SQL: Contraintes et Triggers Chapitre 5,
SQL partie3: Langage de définition des données
Inventé par T. Codd (IBM Recherche)
Maria Berger - Maîtrise d'AES
Christine Bonnet SOURCES : « Samples » dOracle, « Oracle 8 » R. Chapuis PRO*C – C ++
LE LANGAGE DE REQUETES SQL2
Introduction Le SQL (Structured  Query Language) est un langage universel de gestion des bases de données. Il a une triple fonction : LDD Langage de Définition.
Cours 4b: Introduction au SQL, le langage des SGBD Relationnels
SQL partie 4. SQL est un langage de protections d'accès Il est possible avec SQL de définir des permissions au niveau des utilisateurs d'une base de données.
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,
Le langage SQL LDD : Langage de Définition de Données
Mise en œuvre du langage MDX
Le langage de requêtes SQL
Optimisation de requêtes
1 G. Gardarin Optimisation de Requêtes  1. Introduction  2. Arbres relationnels  3. Restructuration algébrique  4. Modèle de coût  5. Choix du meilleur.
Le modèle relationnel Plan 1. Concepts descriptifs
1 J. PHILIPP d'après G. Gardarin SGBDR : la gestion des vues l 1. Contexte l 2. Vues externes l 3. Interrogation des vues l 4. Mises à jour des vues l.
Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio.
3 Copyright © Oracle Corporation, Tous droits réservés. Créer des fonctions.
 L’information est conservée sous forme de tables  Contient: ◦ Un nom ◦ Une clé primaire ◦ Une liste de colonnes ◦ Les informations/données (sous forme.
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 Cours N°2 : langage d’interrogation de données. (Les requêtes statistiques et autres).
Cours n°2 Implémentation et exploitation
Le Langage de Manipulation de Données LMD Module 6.
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,
Bases de données : modèlisation et SGBD Séance 3.
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.
Langages d’interrogation et de manipulation. N. ChaignaudGM4 - Base de données2 1. Algèbre relationnelle  Ensemble d’opérations permettant de manipuler.
LE LANGAGE DE REQUETES SQL
Langage de manipulation de données (LMD)
Structured Query Language
SQL LMD FICHE 4.6.
Manipulation D’Une Base De Données
Transcription de la présentation:

Georges Gardarin 1 LE LANGAGE DE REQUETES SQL l Origines et Evolutions l SQL1 86: la base l SQL1 89: l'intégrité l SQL2 92: la nouvelle norme l SQL3 98: les évolutions objets

Georges Gardarin 2 1. Origines et Evolutions l SQL est dérivé de l'algèbre relationnelle et de SEQUEL l Il a été intégré à SQL/DS, DB2, puis ORACLE, INGRES, … l Il existe trois versions normalisées, du simple au complexe : SQL1 86 version minimale SQL1 89 addendum (intégrité) SQL2 (92) langage complet à 3 niveaux l Une version 3 étendue (objets, règles) est en préparation. l La plupart des systèmes supportent SQL1 complet

Georges Gardarin 3 OPERATIONS l Opérations de base select, insert, update, delete l Opérations additionnelles définition et modification de schémas définition de contraintes d'intégrité définition de vues accord des autorisations gestion de transactions

Georges Gardarin 4 ORGANISATION DU LANGAGE l SQL comprend quatre parties : l Le langage de définition de schéma (Tables, Vues, Droits) l Le langage de manipulation (Sélection et mises à jour) l La spécification de modules appelables (Procédures) l L'intégration aux langages de programmation (Curseurs)

Georges Gardarin 5 2. SQL l LANGAGE DE DEFINITIONS DE DONNEES CREATE TABLE CREATE VIEW l LANGAGE DE MANIPULATION DE DONNEES SELECT OPEN INSERT FETCH UPDATE CLOSE DELETE l LANGAGE DE CONTROLE DE DONNEES GRANT et REVOKE BEGIN et END TRANSACTION COMMIT et ROLLBACK

Georges Gardarin 6 BASE DE DONNEES Collection de tables et de vues dans un schéma VITICULTEURS (NVT, NOM, PRENOM, VILLE, REGION) VINS (NV, CRU, MILLESIME, DEGRE, NVT, PRIX) BUVEURS (NB, NOM, PRENOM, VILLE) ABUS (NV, NB,DATE,QTE) GROS_BUVEURS (NB, NOM, PRENOM)

Georges Gardarin 7 Exemples de Questions (1) l Q1: Crus des vins sans doubles. SELECT DISTINCT CRU FROM VINS l Q2: Noms des buveurs ayant bus des Beaujolais 87 ou 88. SELECT DISTINCT NOM FROM BUVEURS B, VINS V, ABUS WHERE B.NB = ABUS.NB AND ABUS.NV = V.NV AND CRU LIKE '%BEAUJOLAIS%' AND MILLESIME IN (1987, 1988)

Georges Gardarin 8 Exemples de Questions (2) l Q3 : Noms et prénoms des buveurs de vins dont le cru commence par B, de degré inconnu ou compris entre 11 et 13. SELECT NOM, PRENOM FROM BUVEURS B, VINS V, ABUS A WHERE B.NB = A.NB AND A.NV = V.NV AND CRU LIKE "B%" AND (DEGRE BETWEEN 11 AND 13 OR DEGRE IS NULL) l Q4 : Noms des crus bus par au moins un buveurs. SELECT DISTINCT CRU FROM VINS V WHERE EXISTS ( SELECT * FROM BUVEURS B, ABUS A WHERE B.NB = A.BNB AND A.NV = V.NV )

Georges Gardarin 9 Exemples de Questions (3) l Q5: Calculer le degré moyen pour chaque cru. SELECT CRU, AVG(DEGRE) FROM VINS GROUP BY CRU l Q6 : Calculer le degré moyen et le degré minimum pour tous les crus de 94 dont le degré minimum est supérieur à 12. SELECT CRU, AVG(DEGRE), MIN(DEGRE) FROM VINS WHERE MILLESIME = 1994 GROUP BY CRU HAVING MIN(DEGRE) > 12

Georges Gardarin 10 Select: Forme Générale SELECT FROM [WHERE AND ] [GROUP BY ] [HAVING ] l Restriction : arithmétique (=,, textuelle (LIKE) sur intervalle (BETWEEN) sur liste (IN) l Possibilité de blocs imbriqués par : ä IN, EXISTS, NOT EXISTS, ALL, SOME, ANY

Georges Gardarin 11 COMMANDE INSERT INSERT INTO [( attribute [,attribute] … )] {VALUES [, ] … | } l Exemples INSERT INTO VINS (NV, CRU, MILLESIME) VALUES 112, "JULIENAS", NULL INSERT INTO BUVEURS (NB,NOM,PRENOM) SELECT NVT, NOM, PRENOM FROM VITICULTEURS WHERE VILLE LIKE '%DIJON%'

Georges Gardarin 12 COMMANDE UPDATE l UPDATE SET <attribute = {value expression | NULL} [ = {value expression | NULL}] … [WHERE ] l EXEMPLE UPDATE ABUS SET QTE = QTE * 1.1 WHERE ABUS.NV IN SELECT NV FROM VINS WHERE CRU = 'VOLNAY' AND MILLESIME = 1990

Georges Gardarin 13 COMMANDE DELETE l DELETE FROM [WHERE ] l EXEMPLE DELETE FROM ABUS WHERE NV IN SELECT NV FROM VINS WHERE DEGRE IS NULL

Georges Gardarin 14 SELECT Curseur SGBD UTILISATION DE SQL DEPUIS UN LP l Intégration de deux systèmes de types utilisation d'un pré-compilateur et d'une librairie l Passage de l'ensembliste au tuple à tuple utilisation de curseurs et Fetch l Exemple Program PL/1-SQL EXEC SQL BEGIN DECLARE SECTION ; DCL VAR1 CHAR(20) ; DCL VAR2 INT ; EXEC SQL END DECLARE SECTION ; EXEC SQL DECLARE C1 CURSOR FOR SELECT …FROM … WHERE … :VAR1 EXEC SQL OPEN C1 ; DO WHILE SQLCODE = 0 BEGIN EXEC SQL FETCH C1 INTO :VAR2

Georges Gardarin 15 SQL : INTEGRITE l VALEURS PAR DEFAUT CREATE TABLE VINS ( NV INT UNIQUE, CRU CHAR(10), ANNEE INT, DEGRE FIXED (5,2), NVT INT, PRIX FIXED(7,2) DEFAULT 40 ) l CONTRAINTES DE DOMAINES SALAIRE INT CHECK BETWEEN 6000 AND

Georges Gardarin 16 SQL : INTEGRITE REFERENTIELLE l CLE PRIMAIRE ET CONTRAINTE REFERENTIELLE CREATE TABLE VINS ( NV INT PRIMARY KEY, CRU CHAR(10), ANNEE INT, DEGRE FIXED (5,2), NVT INT REFERENCES VITICULTEURS, PRIX DEFAULT 40 ) l REFERENCE EN PRINCIPE LA CLE PRIMAIRE celle de VITICULTEURS

Georges Gardarin 17 LA NORMALISATION DE SQL l GROUPE DE TRAVAIL ANSI/X3/H2 et ISO/IEC JTC1/SC2 l DOCUMENTS ISO : SQL : Database Language SQL X3.135 ISO ) SQL : Database Language SQL with Integrity Enhancement X3.168 ISO SQL : Database Language SQL2 X3.135 ISO l ARGUMENTS POUR : Réducion des coûts d'apprentissage Portabilité des applications Longévité des applications Langage de communication inter-systèmes l ARGUMENTS CONTRE : Manque de rigueur théorique Affaiblit la créativité

Georges Gardarin 18 SQL STANDARD SQL VENDEUR.2 SQL VENDEUR.3 SQL VENDEUR.1 POSITION DES VENDEURS l Problèmes : SQLCODE (0 ou <0 si erreur) ALTER / DROP Table Dynamique SQL (Prepare, Execute) Méta-base normalisée Modèles internes (Index, Espaces,…)

Georges Gardarin SQL2 l Trois niveaux distingués : Entry SQL2 = SQL89 + manques Intermediate SQL2 =Compléments relationnels Full SQL2 = Gadgets en plus

Georges Gardarin 20 SQL2 Entry l Codes réponses SQLSTATE l Renommage des colonnes résultats l Mots clés utilisables entre " " l Métabase normalisée (schémas)

Georges Gardarin 21 SQL2 Intermediate l TYPES DE DONNEES DATE AVEC OPERATIONS DATE, TIME et TIMESTAMP Intervalles de temps l CASCADE DES MISES A JOUR Suppression en cas d' intégrité référentielle avec options l Cascader les suppressions (CASCADE) l Rendre nul l'attribut référençant (NULLIFY) l DIFFERENTS ALPHABETS ET ORDRES DE LETTRES

Georges Gardarin 22 SQL2 Intermediate l POSSIBILITE DE CREER DES DOMAINES CREATE DOMAINE MONEY IS DECIMAL (5,2) DEFAULT (-1) CHECK (VALUE = -1 OR VALUE > 0) NOT NULL l JOINTURE EXTERNE (OUTER-JOIN) SELECT … FROM R1 [NATURAL] [{LEFT | RIGHT}] JOIN R2 [ON (A=B)], … WHERE … l EXPRESSIONS DE SELECT [OUTER] UNION INTERSECT EXCEPT

Georges Gardarin 23 SQL2 Full l Extension des dates et temps l Expressions étendues avec correspondances de colonnes l Possibilité de SELECT en argument d'un FROM l Vues concrètes l Contraintes d'intégrité multi-tables l Contrôles d'intégrité différés

Georges Gardarin SQL3 - Composants l Composants multiples Framework, Foundation, Binding CLI, PSM Transactions, temporal, real-time l Interface client SQL/CLI du SAG (X/OPEN) l Procédures stockées Persistent Stored Modules (PSM) l Objets l Récursion l Déclencheurs

Georges Gardarin 25 Un Standard en Evolution l PROPOSITION CONCURRENTE DE L'ODMG Accord entre constructeurs de SGBD Objets Support du modèle pur objet de l'OMG Variation de SQL traitant des collections imbriquées l Accord ANSI X3 H2 et ODMG Définition d'un langage d'interrogation intégrant relationnel et objet Convergence relationnel-objet vers SQL3 l SQL3 prévu pour 1997 intégrera L4G Objet Règles (BD actives)

Georges Gardarin CONCLUSION l Un standard de plus en plus complet et de plus en plus suivi Attention aux approximations et imitations incomplètes Tout existe dans les propositions SQL2 ou SQL3 Une référence pour implémenter et utiliser chaque aspect des BD l Le langage de communication inter-système RDA, TP, SQL ACCESS GROUP (CLI, FAP) l Le langage universel sur lequel s'appuie les progiciels l SQL réussira-t-il à bien intégrer l'objet ?