SQL-MAJ, vues - 1 / Djamel Berrabah SQL : création et mises-à-jour de schémas et de données ● Commandes de définition de données (DDL) ● Commandes de mise-à-jour.

Slides:



Advertisements
Présentations similaires
Le Langage de Définition de Données LDD
Advertisements

Le langage SQL.
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.
Les ORMs ● Faire coexister le monde relationnel et objet.
RAPPEL SUR LES BASES DE DONNÉES, LE SQL 1 er trimestre V1.0 06/01/2015.
Présentation LabPlus v3. Solution novatrice en Technologies de l’information Solution novatrice en Technologies de l’information Application pour la Gestion.
Les profils du SEDA confection de profil avec Agape.
1- Introduction 1ère partie Le langage SQL 2- Connexion 3- Structure & Contenu 4- Requêtes.
Algèbre relationnelle - 1 / Djamel Berrabah Algèbre relationnelle Modèle relationnel : rappel Algèbre relationnelle.
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 –
SQL-MAJ, vues - 1 UPMC - UFR 919 Ingéniérie - Cours Bases de données (BD-LI341) SQL : création et mises-à-jour de schémas et de données ● Commandes de.
SQL : 4 fonctions d'exploitation de SGBD SQL (Structured Query Language, traduisez Langage de requêtes structuré) est un langage informatique ayant pour.
SQL query - 1 / D. Berrabah SQL : interrogation de BD Requêtes d'interrogation simples Requêtes complexes Agrégats et groupement.
SQL query - 1 UPMC - UFR 919 Ingéniérie - Cours Bases de données (BD-L3) SQL : interrogation de BD Requêtes d'interrogation simples Requêtes complexes.
1- phpMyAdmin 3ème partie : Manipulation des données Le langage SQL 2- Gérer les tables 3- Gérer les données.
Calcul et SQL - 1 / Djamel Berrabah Calcul relationnel et SQL Calcul relationnel à variables « n-uplet » Calcul relationnel à variables « domaine » Query.
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.
Chapitre 3: SQL-ORACLE. Concepts de SQL SQL est un langage d’interrogation de base de données relationnelles pour  Définir les données (LDD)  Interroger.
Nouveautés Version 4.1 et mai 2017.
Utilisation des Gammes La chaîne numérique en Productique
ملخص Initiation à la sgbdr
Structured Query Language SQL DDL
Initiation aux bases de données et à la programmation événementielle
LE LANGAGE DE REQUETES SQL
Langage de manipulation de données (LMD)
Les Bases de données Définition Architecture d’un SGBD
Structured Query Language
Initiation aux bases de données et à la programmation événementielle
AMUE – SIFAC Les concepts de SIFAC WEB HISTORIQUE DES MISES A JOUR
Généralité sur les bases de données
Langage de Manipulation des Données LMD
D3 – Produire, traiter, exploiter et diffuser des documents numériques
Bases de données réparties Les vues matérialisées Oracle
Notion De Gestion De Bases De Données
Création Et Modification De La Structure De La Base De Données
SQL LMD FICHE 4.6.
Manipulation D’Une Base De Données
PROGRAMMATION INFORMATIQUE D’INGÉNIERIE II
Programmation Android Bases De Données, SQL-lite
SQL Structured Query Language
6. PRODUCTION DU CODE DE LA BASE DE DONNEES
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.
Integrated Business intelligence
2. CONCEPTS DES BASES DE DONNEES
Langage d’interrogation des Données Les fonctions de groupes
Programmation Android Première application Android
Suivi Campagne Principe
Révision du format des données
1. LE LANGAGE SQL DDL Version 2 - Janvier Le langage SQL-DDL
Chapitre 2 Le Projet Poterie
„La plate-forme EAI “ Initiation à WBI
2. LE LANGAGE SQL DML (1) Version 2 - Janvier 2012
7 Contraintes d’intégrité en SQL
5 Introduction au modèle relationnel 5.1 Concepts de base
Semaine 3 Retour sur la semaine 2 Plan de séance
© Robert Godin. Tous droits réservés.
03- Evaluation Access 2003 Cette évaluation comporte des QCM (1 seule réponse) et des Zones à déterminer dans des copies d’écran.
20 Données semi-structurées et XML
Info Bases de données avancées
Elles contiennent des informations autre que géométriques
SQL Structured Query Language
Exploitation de vos données
1. LE LANGAGE SQL DDL Version 1 - Mai 2009 corrigé le 11/2/2011
Systèmes d’Information et Application
Systèmes d’Information et Application
© Robert Godin. Tous droits réservés.
Transcription de la présentation:

SQL-MAJ, vues - 1 / Djamel Berrabah SQL : création et mises-à-jour de schémas et de données ● Commandes de définition de données (DDL) ● Commandes de mise-à-jour de données (DML) ● Vues

SQL-MAJ, vues - 2 / Djamel Berrabah SQL : mises-à-jour SQL permet d’interroger et de créer, mettre à jour et supprimer des bases de données. SQL-DDL : création, modification et suppression de schémas création, modification et suppression de schémas de relation définition de clés et d’autres contraintes SQL-DML : création, modification et suppression de données insertion, modification et suppression de n-uplets

SQL-MAJ, vues - 3 / Djamel Berrabah Commandes DDL Création de schémas : CREATE SCHEMA nom_schema AUTHORIZATION nom_utilisateur Création de tables : Spécifie un nouveau schéma de relation Forme : CREATE TABLE nom_table (Attribute_1 [DEFAULT ], Attribute_2 [DEFAULT ], … Attribute_n [DEFAULT ] [ ])

SQL-MAJ, vues - 4 / Djamel Berrabah Exemple Définition de la relation Project CREATE TABLE Project ( Pno CHAR(3), PnameVARCHAR(20), Budget NUMBER(10,2) DEFAULT 0.00 City CHAR(9));

SQL-MAJ, vues - 5 / Djamel Berrabah Types de données ANSI SQL / Oracle Numériques : INT, SMALLINT. Possibilité de DEFAULT AUTOINCREMENT FLOAT, DOUBLE PRECISION, REAL NUMBER(i,j) : i=précision (nombres de chiffres); j=échelle NUMBER(4,3) = [0.000 … 9.999] FLOAT(p) : précision p (# de bits) Chaînes de caractères : CHAR(n) : longueur fixe = n CHAR VARYING(n) : longueur variable avec max=n CLOB : character large object (4 GO) NCHAR, NCLOB : national character set (UTF8, UTF16,...) Séquences binaires : RAW(n) : n <= 2Kb LONG RAW(n) : n <= 2Mb BLOB : binary large object (4 GO)

SQL-MAJ, vues - 6 / Djamel Berrabah Types de données SQL / Oracle Dates : DATE : YYYY-MM-DD HH Heure : TIME : HH:MM:SS Instants de temps : TIMESTAMP les champs DATE et TIME avec une précision de secondes Autres types Oracle : XML, spatial, media (audio/image/video)

SQL-MAJ, vues - 7 / Djamel Berrabah Standard ANSI SQL et Oracle ANSI SQL Oracle CHAR(n) CHAR VARYING(n)VARCHAR2(n) NATIONAL CHAR(n)NCHAR(n) NUMERIC[(p,s)], DECIMAL[(p,s)] NUMBER(p,s) INT,SMALLINTNUMBER(38) FLOAT, DOUBLE PRECISION FLOAT(126) REALFLOAT(63)

SQL-MAJ, vues - 8 / Djamel Berrabah Type DATE Format par défaut : YYYY-MM-DD Fonctions : SYSDATE : date / heure actuelle TO_DATE('98-DEC-25:17:30','YY-MON-DD:HH24:MI') SELECT * FROM my_table WHERE datecol = TO_DATE('04-OCT-00','DD-MON-YY'); Arithmétique : SYSDATE + 1 : demain

SQL-MAJ, vues - 9 / Djamel Berrabah Types utilisateurs : domaines Pour créer un DOMAINE : CREATE DOMAIN nom_domaine AS type Exemple : CREATE DOMAIN Gender AS CHAR(1) Utile pour pouvoir contrôler l’évolution de définitions de types. : CREATE DOMAIN n’est pas implanté.

SQL-MAJ, vues - 10 / Djamel Berrabah Autres commandes DDL DROP SCHEMA nom_schema [,…] [CASCADE | RESTRICT]  supprime les schémas indiqués  CASCADE : toutes les tables du schéma  RESTRICT : seulement les tables vides (par défaut) DROP TABLE nom_table [,…] [CASCADE | RESTRICT]  RESTRICT : supprime la table seulement si elle n’est référencée par aucune contrainte (clé étrangère) ou vue  CASCADE : supprime aussi toutes les tables qui « dépendent » de nom_table ALTER TABLE nom_table OPERATION  modifie la définition de la table  opérations: Ajouter (ADD), effacer (DROP), changer (MODIFY) attributs et contraintes changer propriétaire, …

SQL-MAJ, vues - 11 / Djamel Berrabah SQL : création et mises-à-jour de schémas et de données Commandes de définition de données (DDL) Commandes de mise-à-jour de données (DML) Vues

SQL-MAJ, vues - 12 / Djamel Berrabah Insertion de tuples INSERT INTO table [ ( column [,...] ) ] { VALUES ( { expression | DEFAULT } [,...] ) | query } en spécifiant des valeurs différentes pour tous les attributs dans l’ordre utilisé dans CREATE TABLE : INSERT INTO R VALUES (value(A 1 ), …, value(A n )) en spécifiant les noms d’attributs (indépendant de l’ordre) : INSERT INTO R ( A i, …, A k ) VALUES (value(A i ), …, value(A k )) insertion du résultat d’une requête (copie) : INSERT INTO R

SQL-MAJ, vues - 13 / Djamel Berrabah

SQL-MAJ, vues - 14 / Djamel Berrabah Suppression de tuples DELETE FROM table [ WHERE condition ] Supprimer tous les employés qui ont travaillé dans le projet P3 pendant moins de 3 mois : DELETE FROM Emp WHERE Eno IN ( SELECT Eno FROM Works WHERE PNO=‘P3’ AND Dur < 3) Attention : il faut aussi effacer les n-uplets correspondants dans la table Works (cohérence des données).

SQL-MAJ, vues - 15 / Djamel Berrabah Modification de tuples UPDATE table SET column = { expression | DEFAULT } [,...] [ WHERE condition ] UPDATER SETA i =value, …, A k =value WHEREP

SQL-MAJ, vues - 16 / Djamel Berrabah

SQL-MAJ, vues - 17 / Djamel Berrabah Validation / annulation des mises-à-jours COMMIT [WORK]  pour rendre permanents les résultats des mises-à-jours  dans un programme (C, java…): EXEC SQL COMMIT; ROLLBACK [WORK]  pour annuler les résultats des mises-à-jour  dans un programme: EXEC SQL ROLLBACK; La sémantique de ces commandes est supportée par les transactions (on verra ça plus tard).

SQL-MAJ, vues - 18 / Djamel Berrabah SQL : création et mises-à-jour de schémas et de données Commandes de définition de données (DDL) Commandes de mise-à-jour de données (DML) Vues

SQL-MAJ, vues - 19 / Djamel Berrabah SQL : Vues Définition Interrogation Mises-à-jours Évaluation de requêtes

SQL-MAJ, vues - 20 / Djamel Berrabah Pourquoi définir des vues Une BD peut contenir des centaines de tables avec des milliers d’attributs : 1.Les requêtes sont complexes :  difficiles à formuler  source d’erreurs 2.Une modification du schéma nécessite la modification de beaucoup de programmes. Solution : Adapter le schéma et les données à des applications spécifiques  vues

SQL-MAJ, vues - 21 / Djamel Berrabah Définition d’une vue Définition : Une vue V(a1, a2, … an) est une relation avec n attributs qui contient le résultat d’une requête Q(a1, a2, …an) évaluée sur une base de données BD : V(a1, a2, …an) :- Q(x1, x2, …,xn, BD) Remarques : V possède un schéma relationnel avec des attributs a1,…an. V reflète l’état actuel d’une base de données BD V peut être interrogée et il est possible de définir des vues à partir d’autres vues. On distingue les relations « matérialisées » (tables) et les relations « virtuelles » (vues)

SQL-MAJ, vues - 22 / Djamel Berrabah Relations et Vues Relatio n Vue Requê te

SQL-MAJ, vues - 23 / Djamel Berrabah Définition d’une vue dans SQL CREATE VIEW nom_vue [(att1, att2...)] AS requête_SQL [ WITH CHECK OPTION ] nom_vue désigne le nom de la relation att1,... (optionnel) permet de nommer les attributs de la vue (attributs de la requête par défaut) requête_SQL désigne une requête SQL standard qui définit le « contenu » (instance) de la vue WITH CHECK OPTION (voir mises-à-jour de vues)

SQL-MAJ, vues - 24 / Djamel Berrabah Exemple Emp (Eno, Ename, Title, City) Project(Pno, Pname, Budget, City) Pay(Title, Salary) Works(Eno, Pno, Resp, Dur) Définition de la vue EmpProjetsParis des employés travaillant dans des projets à Paris : CREATE VIEW EmpProjetsParis(NumE, NomE, NumP, NomP, Dur) AS SELECT Emp.Eno, Ename, Works.Pno, Pname, Dur FROM Emp, Works, Project WHERE Emp.Eno=Works.Eno AND Works.Pno = Project.Pno AND Project.City = ‘Paris’

SQL-MAJ, vues - 25 / Djamel Berrabah Interrogation de vues Emp (Eno, Ename, Title, City) Project(Pno, Pname, Budget, City) Pay(Title, Salary) Works(Eno, Pno, Resp, Dur) Les noms des employés de projets Parisiens : Requête sans vue: SELECT Ename FROM Emp, Works, Project WHERE Emp.Eno=Works.Eno AND Works.Pno = Project.Pno AND Project.City = ‘Paris’ Requête avec vue: SELECT NomE FROM EmpProjetsParis On obtient le même résultat

SQL-MAJ, vues - 26 / Djamel Berrabah Évaluation de requêtes sur des vues Requête : SELECT Emp.Eno FROM EmpProjetsParis WHERE Dur > 3 Vue : CREATE VIEW EmpProjetsParis AS SELECT Emp.Eno, Ename, Project.Pno, Pname, Dur FROM Emp, Works, Project WHERE Emp.Eno=Works.Eno AND Works.Pno = Project.Pno AND Project.City = ‘Paris’

SQL-MAJ, vues - 27 / Djamel Berrabah  Ename (  Dur > 3 (  Emp.Eno, (Emp |> <|  City=‘Paris’ (Project))) Ename, Works.Pno, Dur Requête :  Ename (  Dur > 3 EmpProjetsParis ) Évaluation de requêtes sur des vues Vue : EmpProjetsParis :=  Emp.Eno, (Emp |> <|  City=‘Paris’ (Project) Ename, Works.Pno, Dur  Ename (Emp |> 3 Works |><|  City=‘Paris’ (Project)) Extension Simplification

SQL-MAJ, vues - 28 / Djamel Berrabah Mise-à-jour de vues Problème de mise-à-jour : une vue est une relation virtuelle et toutes les modifications de cette relation doivent être “transmises” aux relations (tables) utilisées dans sa définition. La plupart du temps il n’est pas possible de mettre à jour une vue (insérer un n-uplet, …). Exemple:  V(A,C) :-  A,C ( R(A,B) |><| S(B,C))  Insertion d’un n-uplet [A:1,C:3] dans la vue V  Quelle est la modification à faire dans R et S?

SQL-MAJ, vues - 29 / Djamel Berrabah Vues modifiables Une vue n’est pas modifiable :  quand elle ne contient pas tous les attributs définis comme NON NULL dans la table interrogée  quand elle contient une jointure  quand elle contient une fonction agrégat Règle : Une vue est modifiable quand elle est définie comme une sélection/projection sur une relation R (qui peut aussi être une vue modifiable) sans utilisation de SELECT DISTINCT.

SQL-MAJ, vues - 30 / Djamel Berrabah Mises-à-jour Emp (Eno, Ename, Title, City) Project(Pno, Pname, Budget, City) Pay(Title, Salary) Works(Eno, Pno, Resp, Dur) CREATE VIEW ProjetParis AS SELECT Pno,Pname,Budget FROM Project WHERE City=‘Paris’; UPDATE ProjetParis SET Budget = Budget*1.2;

SQL-MAJ, vues - 31 / Djamel Berrabah WITH CHECK OPTION WITH CHECK OPTION protège contre les « disparitions de n- uplets » causées par des mise-à-jour : CREATE VIEW ProjetParis WITH CHECK OPTION AS SELECT Pno,Pname,Budget,City FROM Project WHERE City=‘Paris’; UPDATE ProjetParis SET City = ‘Lyon’ WHERE Pno=142; Mise-à-jour rejetée

SQL-MAJ, vues - 32 / Djamel Berrabah Vues et tables Similitudes : Interrogation SQL UPDATE, INSERT et DELETE sur vues modifiables Autorisations d'accès Différences: On ne peut pas créer des index sur les vues On ne peut pas définir des contraintes (clés) Une vue est recalculée à chaque fois qu’on l’interroge  Vue matérialisée : stocker temporairement la vue pour améliorer les performances.