LE LANGAGE DE REQUETES SQL2

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
SQL - Subtilités.
Le Modèle Relationnel (Chapitre 4)
Fonctionnalités des SGBD
Le Modèle Logique de Données
Algèbre relationnelle
TP 3-4 BD21.
Optimisation de Requêtes
Bases de données orientées-objets
INTEGRITE ET BD ACTIVES
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:
Programme Introduction aux BD et aux SGBD Le modèle relationnel
L'OBJET-RELATIONNEL 1. Le modèle objet-relationnel
Les fonctions.
Année universitaire Système dinformation Le SQL (Structured Query Language) langage dinterrogation dune base de données.
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,
LMD: Langage de Manipulation de Données
Développement d’applications web
Contrôles d'accès aux données
L’utilisation des bases de données
Algèbre relationnelle
Initiation aux bases de données et à la programmation événementielle
Modélisation E/R des Données
Chap 4 Les bases de données et le modèle relationnel
SELECT {* | Expression [Alias] [,...] } FROM Table [WHERE Condition] [ORDER BY { Expression | Alias } [ ASC | DESC ] [NULLS FIRST | NULLS LAST ] [,...]
L’utilisation des bases de données
F Copyright © Oracle Corporation, Tous droits réservés. Créer des programmes avec Procedure Builder.
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 1 Procédures stockées CPI-SQLServer.
MODELE RELATIONNEL concept mathématique de relation
Cours de Base de Données & Langage SQL
Cours N°2 Base de Données & Langage SQL
Inventé par T. Codd (IBM Recherche)
Base de données Chapitre 1 Introduction
Création de bases de données
Les concepts et les méthodes des bases de données
1 SQL Manipulations Avancées (08-09) Witold Litwin.
Michel Tollenaere SQL et relationnel ENSGI Cours MSI 2A Relationnel et SQL version 1.4 du 25 septembre 2007 (ajout jointures) 1 Modèle relationnel Historique.
Christine Bonnet SOURCES : « Samples » dOracle, « Oracle 8 » R. Chapuis PRO*C – C ++
Bases de données orientées objets SGBD relationnels-objets
Bases de données orientées objets Illustration sur ORACLE
Structures des données
Cours 4b: Introduction au SQL, le langage des SGBD Relationnels
Introduction.
Modélisation des données Niveau conceptuel DON-2 V0-0.
Chap 4.5 : SQL (LDD) LDD : Langage de définition de données Réfs : Manuel p105.
L'OBJET-RELATIONNEL 1. Le modèle objet-relationnel
MySQL.
Traduction des opérations sous MySQL
Le langage de requêtes SQL
Cours n°4M2. ESCE (S. Sidhom) Séminaire ( 6-12 Février 2007 ) Promo. M2 ESCE-Tunis 2006/07 Conception d’un système d'information sur Internet Architecture.
1 BDs Orientées Objets Witold LITWIN. 2 Pourquoi ? F Les BDs relationnelles ne sont pas adaptées aux applications CAD/CAM, cartes géo... F le problème.
Optimisation de requêtes
PostgreSQL – Présentation
DEFINITION DES DONNEES : schéma conceptuel. Schéma conceptuel instructiondescription CREATE TABLEcréation d'une relation ALTER TABLEmodification de la.
Sélection de colonnes (la projection)
Le modèle relationnel Plan 1. Concepts descriptifs
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.
Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio.
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.
Le langage SQL.
Séance /10/2004 SGBD - Approches & Principes.
Initiation aux bases de données et à la programmation événementielle
INTRODUCTION AUX BASES DE DONNEES Base et métabase
Bases de données – Cours 3
CONCEPTS BD - Synthèse journée 1 :
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.
Transcription de la présentation:

LE LANGAGE DE REQUETES SQL2 Les niveaux SQL2 Intermédiaire Introduction à SQL3

1. Les niveaux Trois niveaux distingués : Entry SQL2 = SQL89 + manques Intermediate SQL2 =Compléments relationnels Full SQL2 = Gadgets en plus

SQL2 Entry Codes réponses SQLSTATE Renommage des colonnes résultats Mots clés utilisables entre " " Méta-base normalisée (schémas)

2. SQL2 Intermédiaire SQL relationnel complet Support de la notion de domaine Domaine = type de données contraint Support du temps Type Date, Time, ... avec opérateurs Meilleur support des chaînes de caractères Opérateurs algébriques mieux intégrés Modification de schémas

SQL2 Intermediate : Création de domaines CREATE DOMAIN <nom> <type> [valeur] [Contrainte] <type> ::= CHAR [(n)] ½ VARCHAR [(n)] BIT [VARYING] [(n)] SMALLINT ½ INTEGER NUMERIC [p, [q]] ½ DECIMAL [p, [q]] ½ FLOAT [n] DATE½ TIME ½ TIMESTAMP½ INTERVAL <valeur> ::= DEFAULT constante USER ½ NULL CURRENT_DATE½ CURRENT_TIME ½ CURRENT_TIMESTAMP 5

Exemples de domaine (1) CREATE DOMAIN cru VARCHAR(20) ; CREATE DOMAIN couleur_vins CHAR(10) DEFAULT 'rouge' ; CREATE DOMAIN date_commande DATE ; CREATE DOMAIN quantite SMALLINT ; 6

Exemple de domaine (2) Possibilité de créer des domaines avec contraintes : CREATE DOMAINE MONEY IS DECIMAL (5,2) DEFAULT (-1) CHECK (VALUE = -1 OR VALUE > 0) NOT NULL

SQL2 : Types Types de données date avec opérations DATE, TIME et TIMESTAMP Intervalles de temps Cascade des mises à jour Suppression en cas d' intégrité référentielle avec options Cascader les suppressions (CASCADE) Rendre nul l'attribut référençant (NULLIFY) Différents alphabets et ordres de lettres

Traitement des chaînes de caractères expression_caractère ::= 'chaîne_caractère' <nom_colonne> USER UPPER (expression_caractère) LOWER (expression_caractère) CHARACTER_LENGTH (expression_caractère) SUBSTRING (expression_caractère FROM début FOR longueur) POSITION (expression_caractère IN expression_caractère ) CAST (expression AS type | domaine) expression_caractère | | expression_caractère 29

Exemple de chaînes de caractères Q11 :Donner le numéro et les 5 premières lettres du cru en majuscule pour chaque vin dont le cru possède plus de 10 lettres SELECT V#, UPPER(SUBSTRING(CRU FROM 1 TO 5) FROM VINS WHERE CHARACTER_LENGTH(CRU) > 10 30

Traitement du type date expression_date_temps ::= constante <nom_colonne> CURRENT_DATE CURRENT_TIME [précision] CURRENT_TIMESTAMP [précision] EXTRACT (champ FROM source) CAST (expression AS type | domaine) 31

Traitement du type date Exemples : UPDATE VINS SET ANNEE = EXTRACT (YEAR FROM CURRENT_DATE) WHERE V# = 10 UPDATE COMMANDES SET DATE_COM = CAST ('1996-10-23' AS DATE) 32

SQL2 : Opérateurs Jointure externe (outer-join) Expressions de SELECT FROM R1 [NATURAL] [{LEFT | RIGHT}] JOIN R2 [ON (A=B)], … WHERE … Expressions de SELECT [OUTER] UNION INTERSECT EXCEPT

Exemple de Jointure Externe Q12 :Afficher le numéro et le cru des vins ainsi que la quantité commandée pour ceux d'entre eux qui ont été commandés ou non SELECT V#, CRU, QTE FROM VINS NATURAL LEFT JOIN COMMANDES ou bien FROM VINS LEFT JOIN COMMANDES USING (V#) ou encore FROM VINS LEFT JOIN COMMANDES ON V.V# = C.V# 28

SQL2 : Création d'index CREATE [UNIQUE] INDEX [nom_index] ON nom_table ( <nom_colonne [ASC ½ DESC] > * ); Exemple: CREATE UNIQUE INDEX index_exp ON EXPEDITION (num_exp ASC) ; 9

SQL2 : Création de schéma CREATE SCHEMA [nom_schéma] [ AUTHORIZATION <nom_utilisateur>] [DEFAULT CHARACTER SET <jeu_car>] [ <éléments_du_schéma> * ]; Exemple: CREATE DATABASE VIGNOBLES // non normalisé CREATE SCHEMA COOPERATIVE CREATE DOMAIN ... CREATE TABLE ... 10

SQL2 : Modification de schéma DROP DOMAIN <nom_domaine> TABLE <nom_table> INDEX <nom_index> SCHEMA <nom_schema> [CASCADE ½ RESTRICT] ; RESTRICT interdit la destruction d'un objet référencé (via une contrainte d'intégrité, une vue, ...) alors que CASCADE propage la destruction 11

SQL2 : Modification de schéma ALTER TABLE <nom_table> ADD COLUMN <def_colonne> CONSTRAINT <def_contrainte_table > ALTER <def_colonne> DROP COLUMN <nom_colonne> CONSTRAINT <nom_contrainte > 12

Exemples de modification de schema ALTER TABLE EXPEDITION ADD COLUMN adresse_livraison VARCHAR(30) ALTER quantite INTEGER NOT NULL ; 13

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

3. SQL3 et l'objet-relationnel Standard ISO accepté depuis 1999 SQL89, SQL92, SQL99 Objectif : étendre le standard SQL2 (adopté par l'ISO en 1992) avec des fonctionnalités objets et autres Forme : un ensemble de composants dont foundation, PSM, CLI, ... Implémentation progressive dans les SGBD DB2, Informix, Oracle, Versant, …

Intégration de l'objet 1990 : The Object-Oriented Manifesto 1991 : The Third Generation Manifesto 1996 : l'objet-relationnel s'impose dans l'industrie 1999 : Normalisation du langage SQL3 Fonctionnalités : extension du relationnel avec les concepts de l’objet support de types de données complexes et extensibles extension de SQL pour le support des objets intégration des règles (triggers)

Concepts fondamentaux Encapsulation Objet complexe Héritage Polymorphisme

L'apport des modèles objets Identité d'objets introduction de pointeurs invariants possibilité de chaînage Encapsulation des données possibilité d'isoler les données par des opérations facilite l'évolution des structures de données Héritage d'opérations et de structures facilite la réutilisation des types de données permet l'adaptation à son application Possibilité d'opérations abstraites (polymorphisme) simplifie la vie du développeur

Les types d'objets complexes Nécessité d'introduire des attributs multivalués Fourniture de collections prédéfinies telles liste, ensemble, tableau, ... Imbrication des collections pour représenter des objets très compliqués Exemple : Type Point {real X, real Y} Type Ligne { list <Points> } Type PolyLigne {list <Lignes>}

Extension des tables relationnelles Peuvent contenir des attributs de type complexe Peuvent être des tables d'objets Policy# Incident# Report 24 134 219 Photo 037 Incident Table

Le modèle objet-relationnel Extension du modèle relationnel attributs multivalués : structure, liste, tableau, ensemble héritage sur tables et types domaine type abstrait de données (structure cachée + méthodes) identité d'objets Object-Relational en anglais OBJET Polymorphisme RELATIONNEL Types Domaine Table Attribut Clé Référence Collections Opération Identifiant Héritage

Exemple de création de type CREATE TYPE Employe (E# int, Nom varchar(32) Prenom varchar(16), BirthDate date, OPERATION age (BirthDate) int) ; Un ensemble de types sont inclus au SGBD Simple Data Types Multimedia Numeric $245 Character “Jones” Date 24-Jun-97 Text Spatial Image Video Specialized Application-Specific

Exemple de création de tables CREATE TABLE Incident (Police# int, Incident# int, Rapport text, Photo image) CREATE TABLE Employes of TYPE employe CREATE TABLE Employes (Description employe)

Extension des requêtes peuvent appeler les méthodes argument du SELECT argument du WHERE peuvent traverser les chemins découpage des attributs complexes parcours des associations peuvent parcourir les collections en argument du FROM possibilité de collection dépendantes

Exemples de requêtes SELECT nom FROM Employes e WHERE e..age() < 35; SELECT nom, adresse WHERE e.adresse..dept() = "Var" AND e.adresse.ville = "Toulon";

4. CONCLUSION Un standard de plus en plus complet très suivi Attention aux approximations et imitations incomplètes Tout ou presque existe dans les propositions SQL2 ou SQL3 Une référence pour implémenter et utiliser chaque aspect des BD Le langage de communication inter-système RDA, TP, SQL ACCESS GROUP (CLI, FAP) Le langage universel sur lequel s'appuie les progiciels