Présentation du cours. Rappel sur SQL
←
→
Transcription du contenu de la page
Si votre navigateur ne rend pas la page correctement, lisez s'il vous plaît le contenu de la page ci-dessous
IFT287 Exploitation de bases de données
relationnelles et orientées objet
Semaine 1
Présentation du cours.
Rappel sur SQL
« If you don’t know where you are going,
you will probably end up somewhere else. » Domingo Palao
« Si tu ne sais pas où tu t’en vas,
probablement tu arriveras ailleurs »
-Laurence J. Peter.Plan de la semaine
S
e
m Présentation du cours
a
i
n Présentation des étudiants
e
1
Présentation du chargé de cours
Présentation du plan de cours
IFT287 Exploitation de BD relationnelles et OO
Introduction et mise en contexte
Rappel sur SQL
2015-08-26 © Domingo Palao 2IFT287 Exploitation de bases de données
relationnelles et orientées objet
Semaine 1
Présentation du chargé de coursPrésentation du chargé de cours
S
e
Prénom et nom
m Domingo PALAO MUÑOZ
a Formation en informatique
i
n Maîtrise en Commerce électronique. Université de Montréal
e Bac en génie informatique. Université National Autonome du Mexique
1
Expériences avec les bases de données
Modélisation et développement de plusieurs systèmes d’information ayant
IFT287 Exploitation de BD relationnelles et OO
comme principal élément les bases de données
Mémoire du bac en génie informatique
Mémoire de maîtrise sur les bases de données distribuées
Bases de données utilisées
Oracle, Sybase, Adabas, RDB, MS SQL Server, Informix
Attentes du cours IFT287
Que les étudiantes et les étudiants aient une bonne compréhension de
l’utilisation des bases de données relationnelles et orientées objet dans le
contexte du développement d’un système logiciel
Passe-temps
Le baseball, la musique, la lecture.
2015-08-26 © Domingo Palao 4IFT287 Exploitation de bases de données
relationnelles et orientées objet
Semaine 1
Présentation du plan de coursPlan de cours
Description de l’annuaire
S
e
m
a
i Voir plan du cours
Objectif :
n
e
1
Développer une application Web simple
IFT287 Exploitation de BD relationnelles et OO
exploitant des bases de données
relationnelles et orientées objet.
2015-08-26 © Domingo Palao 6Plan de cours
À la fin de ce cours, l’étudiant devrait être
S
e
m
a capable :
i
n de connaître les composantes de base d’un
e
système de gestion de base de données;
1
de savoir exploiter une base de données
relationnelle et une base de données orientée objet;
IFT287 Exploitation de BD relationnelles et OO
de connaître et d’appliquer les principes de base du
langage XML pour l’échange électronique de
données;
de développer une interface graphique web simple;
de parfaire sa connaissance des bases de données
de manière autonome.
2015-08-26 © Domingo Palao 7Plan de cours
Objectifs spécifiques.
S
e
m
a À la fin de cette activité pédagogique, l’étudiante ou l’étudiant sera
i capable de:
n
e Manipuler de bases de données relationnelles
Créer, modifier et interroger une base de données relationnelle en mode
1 client-serveur;
Développer une application simple, dans un langage de programmation
IFT287 Exploitation de BD relationnelles et OO
orienté-objet, exploitant une base de données relationnelle.
Manipuler de bases de données orientées objet
Créer, modifier et interroger une base de données orientée objet;
Utiliser une base de données orientée objet;
Développer une application simple, dans un langage de programmation
orientée objet, exploitant une base de données orientée objet.
Manipuler des interfaces
Créer une description de fichier XML;
Créer et d’interroger un fichier XML à partir d’une application;
Développer une interface graphique web simple pour une application.
2015-08-26 © Domingo Palao 8Plan de cours
Qualifications préalables
S
e
m
a Concepts et architecture des bases de données.
i
n Création, interrogation et mise à jour d’une base de données
e
relationnelle à l’aide du langage SQL.
1
Requêtes complexes.
IFT287 Exploitation de BD relationnelles et OO
Contraintes d’intégrité.
Modélisation entité-relation.
Traduction d’un modèle entité-relation en un modèle relationnel.
Dépendances fonctionnelles, dépendances multivaluées,
dépendances de jointure.
Normalisation : 1FN à 5FN et BCNF.
Voir la liste des références pour une mise à niveau.
2015-08-26 © Domingo Palao 9Plan de cours
Responsabilités et tâches
S
e
m
a
i Des étudiantes et étudiants.
n
e S’approprier de la matière du cours par la lecture
1
des articles indiqués des manuels de base.
Participer aux activités qui se déroulent en classe.
IFT287 Exploitation de BD relationnelles et OO
Du chargé de cours.
Organiser et gérer l’environnement
d’apprentissage
Fournir toutes les ressources d’apprentissage
nécessaires et animer les activités en classe
Évaluateur
2015-08-26 © Domingo Palao 10Plan de cours
Organisation et déroulement du
S
e
m
a
i
n
cours
e
Préparation du cours
Apprentissage en classe
1
IFT287 Exploitation de BD relationnelles et OO
Exercices au laboratoire
La réalisation des travaux pratiques
2015-08-26 © Domingo Palao 11Plan de cours
S
e
m
La communication dans le cours
a
i
Courriel électronique
n
e
Le site web :
http://ift287-dpm.espaceweb.usherbrooke.ca/index.html
1
IFT287 Exploitation de BD relationnelles et OO
2015-08-26 © Domingo Palao 12Plan de cours
S
e Matériel didactique et pédagogique
Plan de cours
m
a
i
n
e Manuels de base
1
Autres références
IFT287 Exploitation de BD relationnelles et OO
Diapositives utilisées lors des exposés
Sites Web de référence, etc.
2015-08-26 © Domingo Palao 13Plan de cours
S
e
Réalisations et critères d’évaluation
m Travaux pratiques :
a
i Six travaux.
n Rappel sur SQL
e
Introduction à Java
1 L’approche client-serveur avec JDBC et Java 1
L’approche client-serveur avec JDBC et Java 2
IFT287 Exploitation de BD relationnelles et OO
L’approche client-serveur avec NoSQL et Java
XML et Interface web
Les équipes de 2 personnes pour la période de mercredi.
turnin. Pas de dépôt de travaux par courriel (aucune exception!)
Validation
La partie pratique de l’évaluation se fait lors de la période de
laboratoire. SEULEMENT 1 PÉRIODE!
Après cette période vous avez le droit de présenter votre travail pendant la période
de laboratoire suivante, mais il y a une pénalité de 30%
La partie de correction du code
2015-08-26 © Domingo Palao 14Plan de cours
S
e
Réalisations et critères d’évaluation
m
a Examens :
i
n Mi-session.
e
Final.
1
Points bonis pour l’examen:
IFT287 Exploitation de BD relationnelles et OO
Commentaires chaque semaine
Préparez un résumé de la matière traitée dans les
cours (1 page seulement écrite à la main!)
Les résumés sont à remettre avant l’examen.
2015-08-26 © Domingo Palao 15Plan de cours
S
e
Notation
m
a Éléments de notation Points
i
n Examen périodique 30
e
Examen final 35
1
Travaux pratiques (5,5,6,6,6,7) points) 35
IFT287 Exploitation de BD relationnelles et OO
TOTAL 100
Points extra
Commentaires après chaque séance 5
0.5 chaque (10/13)
Ou
Résumé avant l’examen 2.5 (2)
TOTAL 105
La note maximale sera toujours 100 points
2015-08-26 © Domingo Palao 16Plan de cours
Note sur le plagiat
S
e
m
a
i
n
e
Coopération entre étudiants
1
Matériel sur Internet
IFT287 Exploitation de BD relationnelles et OO
2015-08-26 © Domingo Palao 17Plan de cours
S
e Bibliographie
m Livre 1. Fundamentals of database systems fifth edition.
a
i Auteur: Elmasri, Ramez
n
e
Publié par: Pearson Addison Wesley
1
Livre 2. IFT287: Notes du cours.
IFT287 Exploitation de BD relationnelles et OO
Auteur: M. Frappier
Livre 3. Principles of Database Systems with Internet and Java
applications.
Auteur: G. Ricardi
Publié par: Addison Wesley
Livre 4. Au cœur de Java 8ème édition
Auteur:Cay Horstman
Publié par: John Wiley, 2008
Autres références.
2015-08-26 © Domingo Palao 18IFT287 Exploitation de bases de données
relationnelles et orientées objet
Semaine 1
Rappel sur SQL
Domingo PalaoSQL
Structured Query Langage (SQL)
S
e
m
a
ou langage structuré de requêtes
i est un langage informatique
n
e standard et normalisé, destiné à
1
interroger ou manipuler une base
de données.
IFT287 Exploitation de BD relationnelles et OO
Edgar F. Codd (1923-2003) en
1970 a rédigé l’article « A
Relational Model of Data for
Large Shared Data Banks »
dans la revue ACM.
IBM s’est mis à développer Edgar F. Codd (1923-2003)
SEQUEL (Structured English
Query Language) pour mettre en
œuvre le modèle de Codd.
2015-08-26 © Domingo Palao 20SQL
S
e 1979, Relational Software, Inc (actuellement ORACLE Corporation)
m a présenté la première version commerciale de SQL.
a
i SQL a été adopté comme recommandation par l’Institut de
n
e Normalisation Américaine (ANSI) en 1986, et comme norme
internationale par l’ISO en 1987.
1
SQL2 finalisée en 1992.
IFT287 Exploitation de BD relationnelles et OO
Un des principaux changements, l’ajout des OUTER JOIN.
SQL3 proposée en 1999.
Elle supporte une extension objet et elle est partiellement implémentée
par quelques SGBD.
SQL:2003
Introduction de fonctions pour la manipulation de XML
SQL:2008
Ajout de fonctions de fenêtrage,
2015-08-26 © Domingo Palao 21SQL
Il existe 3 niveaux de conformité dans la norme
S
e
m
a SQL-92 :
i
n Entry
e
Intermediate
1
Full
IFT287 Exploitation de BD relationnelles et OO
La majorité des systèmes de gestion de bases
de données se prétendaient compatibles au
standard SQL dès lors qu'ils se conformaient au
niveau Entry.
L'ensemble des fonctionnalités des niveaux
Intermediate et Full étaient, soit trop volumineux, soit
en conflit avec les fonctionnalités implantées.
http://docs.postgresqlfr.org/8.1/features.html
2015-08-26 © Domingo Palao 22SQL
S
e
m SQL est composé de deux parties :
a
i
n SQL déclaratif
e
DDL, Data Definition Language.
1
DML, Data Manipulation Language.
IFT287 Exploitation de BD relationnelles et OO
DCL, Data Control Language.
TCL, Transaction Control Language
SQL procédural
PSM, Persistent Stored Module
CLI, Call Level Interface
Embedded SQL
2015-08-26 © Domingo Palao 23Exercice rapide
S
e
m Donner quelques exemples de
a
i
n
commandes de :
e
DDL, Data Definition Language.
1
DML, Data Manipulation Language.
IFT287 Exploitation de BD relationnelles et OO
DCL, Data Control Language.
TCL, Transaction Control Language
2015-08-26 © Domingo Palao 24Exercice rapide (Solution)
S
e Donner quelques exemples de commandes de :
m
a
DDL, Data Definition Language.
i CREATE – Créer des objets dans la base de données
n ALTER – Changer la structure de la base de données
e
DROP – Supprimer des objets
1 TRUNCATE – Supprimer tous les enregistrements d’une table
(l’espace alloué aux enregistrements est libéré)
IFT287 Exploitation de BD relationnelles et OO
COMMENT – Ajouter des commentaires dans le dictionnaire de
données
RENAME – Renommer un objet
DML, Data Manipulation Language.
SELECT – Faire une requête à la base de données
INSERT – Insérer des données
UPDATE – Mettre à jour les données existantes dans une table
DELETE – Supprimer les enregistrements d’une table (l’espace
alloué à ces enregistrements reste)
CALL – Appeler un programme en PL/SQL ou Java
EXPLAIN PLAN – Expliquer la manière d’accéder à la base de
données
LOCK TABLE - Contrôler la concurrence
2015-08-26 © Domingo Palao 25Exercice rapide (Solution)
S
e
m
Donner quelques exemples de commandes
a
i de:
n
e DCL, Data Control Language.
1 GRANT – Donner des privilèges d’accès aux usagers
REVOKE – Enlever des privilèges donnés avec le GRANT
IFT287 Exploitation de BD relationnelles et OO
TCL, Transaction Control Language
COMMIT - Sauvegarder les données de manière définitive
SAVEPOINT – Identifier un point où on peut retourner avec
un rollback dans une transaction
ROLLBACK – Retourner la base de données à son état
original depuis le dernier COMMIT ou SAVEPOINT
SET TRANSACTION – Changer les options d’une transaction
2015-08-26 © Domingo Palao 26IFT287 Exploitation de bases de données
relationnelles et orientées objet
Semaine 1
Data Definition LanguageData Definition Language
S
e
m Utilise les commandes pour établir la
a
i
n
définition des tables (relations) d’une base
e
1
de données
CREATE
IFT287 Exploitation de BD relationnelles et OO
DROP
ALTER
TRUNCATE
COMMENT
RENAME
2015-08-26 © Domingo Palao 28IFT287 Exploitation de bases de données
relationnelles et orientées objet
Semaine 1
Data Manipulation LanguageRequêtes en SQL
SQL a une commande de base pour chercher
S
e
m
a
l’information dans la base de données, la commande
i SELECT
n
e Le format de base de l’instruction SELECT de SQL est
1 connu comme le bloque SELECT-FROM-WHERE
IFT287 Exploitation de BD relationnelles et OO
SELECT
FROM
WHERE
< liste d’attributs > c’est une liste de noms d’attributs qu’on
cherche avec la requête
< liste de tables > c’est une liste obligatoire qui spécifie les
tables à utiliser pendant la requête
c’est la condition booléenne identifiant les tuples à
chercher avec la requête
2015-08-26 © Domingo Palao 30IFT287 Exploitation de bases de données
relationnelles et orientées objet
Semaine 1
Opérations d’ensembleOpérations d’ensemble
S
e
m
SQL a incorporé quelques opérations
a
i d’ensembles
n
e UNION
1
MINUS
IFT287 Exploitation de BD relationnelles et OO
INTERSECT
Les résultats de ces opérations sont des
ensembles de tuples.
Les tuples dupliqués sont éliminés du résultat.
Les opérations d’ensembles s’appliquent seulement
aux relations ayant le même nombre d’attributs et
les attributs doivent apparaître dans le même
ordre.
2015-08-26 © Domingo Palao 32Opérations d’ensemble
S
e
m
Faire une liste de tous les noms des employés
a
i ainsi que les noms de tous leurs dépendants
n
e
(SELECT FNAME
1
FROM EMPLOYE)
IFT287 Exploitation de BD relationnelles et OO
UNION
(SELECT DEPENDENT_NAME
FROM DEPENDENT)
Pourquoi une requête avec des opérations
d’ensemble est considérée comme deux
requêtes?
2015-08-26 © Domingo Palao 33IFT287 Exploitation de bases de données
relationnelles et orientées objet
Semaine 1
Requêtes imbriquéesRequêtes imbriquées
Une requête SELECT peut appeler une requête
S
e
m
a
imbriquée.
i
n
Nous pouvons spécifier dans la clause WHERE une
e deuxième requête, nommée outer query
1
Chercher le nom et l’adresse de tous les employés qui
IFT287 Exploitation de BD relationnelles et OO
travaillent dans le département 'Research’ ou ‘Sales’.
SELECT FNAME, LNAME, ADDRESS
FROM EMPLOYEE
WHERE DNO IN (SELECT DNUMBER
FROM DEPARTMENT
WHERE DNAME='Research'
OR DNAME=‘Sales')
2015-08-26 © Domingo Palao 35Utilisation de JOIN dans SQL2
Exemples :
S
e
m
a
SELECT FNAME, LNAME, ADDRESS
i FROM EMPLOYEE, DEPARTMENT
n WHERE DNAME='Research' AND DNUMBER=DNO
e
Peut être écrite :
1
SELECT FNAME, LNAME, ADDRESS
FROM (EMPLOYEE JOIN DEPARTMENT
IFT287 Exploitation de BD relationnelles et OO
ON DNUMBER=DNO)
WHERE DNAME='Research’
Ou bien:
SELECT FNAME, LNAME, ADDRESS
FROM (EMPLOYEE NATURAL JOIN DEPARTMENT
AS DEPT(DNAME, DNO, MSSN, MSDATE)
WHERE DNAME='Research’
2015-08-26 © Domingo Palao 36IFT287 Exploitation de bases de données
relationnelles et orientées objet
Semaine 1
Outer Join
2015-08-26 © Domingo Palao 37OUTER JOIN
S
e
m Prenons les tables suivantes:
a
i
n
Dept
e
deptId deptNom
1
1 Développement
IFT287 Exploitation de BD relationnelles et OO
2 Recherche
3 Finances
Emp
empId empNom deptId
1 Jean Beauregard 1
2 Anne Rivaud 2
3 Marie Allaire
2015-08-26 © Domingo Palao 38OUTER JOIN
S
e
m L’instruction suivante:
a
i
n
SELECT *
e
1
FROM dept JOIN emp
ON (dept.deptId = emp.deptId)
IFT287 Exploitation de BD relationnelles et OO
dept.deptId deptNom empId empNom emp.deptId
1 Développement 1 Jean Beauregard 1
2 Recherche 2 Anne Rivaud 2
2015-08-26 © Domingo Palao 39OUTER JOIN
S
e
m L’instruction suivante:
a
i
n
SELECT *
e
1
FROM dept LEFT JOIN emp
ON (dept.deptId = emp.deptId)
IFT287 Exploitation de BD relationnelles et OO
dept.deptId deptNom empId empNom emp.deptId
1 Développement 1 Jean Beauregard 1
2 Recherche 2 Anne Rivaud 2
3 Finances NULL NULL NULL
Donne comme résultat les enregistrements de la relation
de gauche qui n’ont pas une correspondance dans la
relation de droite.
2015-08-26 © Domingo Palao 40OUTER JOIN
S
e
m L’instruction suivante:
a
i
n
SELECT *
e
1
FROM dept RIGHT JOIN emp
ON (dept.deptId = emp.deptId)
IFT287 Exploitation de BD relationnelles et OO
dept.deptId deptNom empId empNom emp.deptId
1 Développement 1 Jean Beauregard 1
2 Recherche 2 Anne Rivaud 2
NULL NULL 3 Marie Allaire
Donne comme résultat les enregistrements de la relation
de droite qui n’ont pas une correspondance dans la relation
de gauche.
2015-08-26 © Domingo Palao 41OUTER JOIN
S
e
m L’instruction suivante:
a
i
n
SELECT *
e
1
FROM dept FULL JOIN emp
ON (dept.deptId = emp.deptId)
IFT287 Exploitation de BD relationnelles et OO
dept.deptId deptNom empId empNom emp.deptId
1 Développement 1 Jean Beauregard 1
2 Recherche 2 Anne Rivaud 2
NULL NULL 3 Marie Allaire
3 Finances NULL NULL NULL
Donne comme résultat les enregistrements de la relation
de droite qui n’ont pas une correspondance dans la relation
de gauche.
2015-08-26 © Domingo Palao 42IFT287 Exploitation de bases de données
relationnelles et orientées objet
Semaine 1
Fonctions d’agrégation
2015-08-26 © Domingo Palao 43Fonctions d’agrégation
S
e Nous avons :
m
a COUNT,
i
n SUM,
e
MAX,
1
MIN,
IFT287 Exploitation de BD relationnelles et OO
AVG
Trouver le salaire maximal, minimal et moyen de tous les
employés.
SELECT MAX(SALARY), MIN(SALARY), AVG(SALARY)
FROM EMPLOYEE
Quelques implémentations de SQL ne permettent qu’une
fonction d’agrégation dans la clause SELECT
2015-08-26 © Domingo Palao 44Fonctions d’agrégation
S
e
m Trouver le salaire maximal, minimal et
a
i
n
moyen des employés du département
e
1
'Research'.
SELECT MAX(SALARY),
IFT287 Exploitation de BD relationnelles et OO
MIN(SALARY),
AVG(SALARY)
FROM EMPLOYEE, DEPARTMENT
WHERE DNO=DNUMBER AND
DNAME='Research'
2015-08-26 © Domingo Palao 45Groupes
S
e Dans plusieurs cas, nous avons besoin d’appliquer une
fonction d’agrégation à un ou plusieurs sous-groupes de
m
a
i
n tuples dans une relation
La fonction doit être appliquée à chaque sous-groupe de
e
1
manière indépendante
IFT287 Exploitation de BD relationnelles et OO
SQL a la clause GROUP BY pour spécifier les options
de groupage
Pour chaque département, trouver le numéro de
département, le nombre d’employés et le salaire moyen
SELECT DNO, COUNT (*), AVG (SALARY)
FROM EMPLOYEE
GROUP BY DNO
2015-08-26 © Domingo Palao 46Groupes
S
e
m Pour chaque projet, trouver le numéro de
a
i
n
projet, le nom du projet, et le nombre
e
1
d’employés qui travaillent dans ce projet
SELECT PNUMBER, PNAME, COUNT (*)
IFT287 Exploitation de BD relationnelles et OO
FROM PROJECT, WORKS_ON
WHERE PNUMBER=PNO
GROUP BY PNUMBER, PNAME
Dans ce cas, les fonctions d’agrégation et de
groupage sont appliquées après la jointure de
deux relations
2015-08-26 © Domingo Palao 47La clause HAVING
Quelques fois, nous voulons obtenir les valeurs
S
e
m
a
appliquées aux fonctions d’agrégations, mais seulement
i pour quelques groupes avec une condition précise
n
e La clause HAVING est utilisée pour spécifier une
1 condition de sélection dans les groupes
HAVING ne fonctionne pas avec les tuples
IFT287 Exploitation de BD relationnelles et OO
individuellement
Exemple : Pour chaque projet avec plus que deux
employés, trouver le numéro de projet, nom du projet et
le numéro des employés qui travaillent dans ce projet
SELECT PNUMBER, PNAME, COUNT(*)
FROM PROJECT, WORKS_ON
WHERE PNUMBER=PNO
GROUP BY PNUMBER, PNAME
HAVING COUNT (*) > 2
2015-08-26 © Domingo Palao 48IFT287 Exploitation de bases de données
relationnelles et orientées objet
Semaine 1
Mise à jour des données en SQLMise à jour des données en SQL
S
e
m Il y a trois commandes SQL pour modifier
a
i
n
une base de données :
e
1
INSERT
DELETE
IFT287 Exploitation de BD relationnelles et OO
UPDATE
2015-08-26 © Domingo Palao 50INSERT
S
e
INSERT est utilisée pour ajouter un ou plusieurs tuples dans une relation
m Les valeurs des attributs doivent être dans le même ordre qu’au moment de
a créer la table avec la commande CREATE TABLE
i
n Exemple:
e INSERT INTO EMPLOYEE
VALUES ('Richard','K','Marini', '653298653', '30-DEC-52',
1
'98 Oak Forest,Katy,TX', 'M', 37000,'987654321', 4 )
IFT287 Exploitation de BD relationnelles et OO
Une forme alternative spécifie de manière explicite le nom des attributs qui
correspondent aux valeurs de la nouvelle tuple
Exemple: Ajouter un EMPLOYEE duquel on connaît seulement FNAME,
LNAME, et SSN.
INSERT INTO EMPLOYEE (FNAME, LNAME, SSN)
VALUES ('Richard', 'Marini', '653298653')
INSERT INTO NEW_EMPLOYEE (FNAME, LNAME, SSN)
SELECT (FNAME, LNAME, SSN)
FROM EMPLOYEE
2015-08-26 © Domingo Palao 51DELETE
S
e Supprime les tuples d’une relation
m Nous pouvons ajouter la clause WHERE pour sélectionner les tuples à
a supprimer
i
n L’intégrité référentielle est validée
e S’il n’y a pas une clause WHERE, tous les tuples de la relation seront
1
supprimés
IFT287 Exploitation de BD relationnelles et OO
DELETE FROM EMPLOYEE
WHERE LNAME='Brown’
DELETE FROM EMPLOYEE
WHERE DNO IN
(SELECT DNUMBER
FROM DEPARTMENT
WHERE DNAME='Research')
DELETE FROM EMPLOYEE
2015-08-26 © Domingo Palao 52UPDATE
S
e Utilisée pour modifier les valeurs d’un ou plusieurs tuples
m La clause WHERE sélectionne les tuples à modifier
a
i Chaque commande modifie les tuples dans la même relation
n L’intégrité référentielle est validée
e
1 UPDATE PROJECT
SET PLOCATION = 'Bellaire', DNUM = 5
IFT287 Exploitation de BD relationnelles et OO
WHERE PNUMBER=10
Donner une augmentation de salaire de 10% aux employés du
département de ‘Research’.
UPDATE EMPLOYEE
SET SALARY = SALARY *1.1
WHERE DNO IN (SELECT DNUMBER
FROM DEPARTMENT
WHERE DNAME='Research')
2015-08-26 © Domingo Palao 53IFT287 Exploitation de bases de données
relationnelles et orientées objet
Semaine 1
VuesVues en SQL
S
e Une vue est une table virtuelle qui est dérivée d’autres
m
a tables
i
n Elle n’a pas d’existence propre.
e
Aucune donnée ne lui est associée.
1 Sa description est stockée sous la forme d’une requête.
Permets l’utilisation complète des requêtes.
IFT287 Exploitation de BD relationnelles et OO
Pour créer une vue, nous avons la commande: CREATE
VIEW
CREATE VIEW WORKS_ON_NEW AS
SELECT FNAME, LNAME, PNAME, HOURS
FROM EMPLOYEE, PROJECT, WORKS_ON
WHERE SSN=ESSN
AND PNO=PNUMBER
2015-08-26 © Domingo Palao 55Utilité des vues
S
e
m
Confidentialité
a
i Les utilisateurs n’ont pas le droit d’accéder qu’aux
n
e vues.
1
Cacher la complexité des données aux
IFT287 Exploitation de BD relationnelles et OO
utilisateurs
Vue simplifiée des données.
Simplifier les requêtes aux utilisateurs non
spécialisés.
Présenter différentes perspectives sur les
données aux utilisateurs
Renommer des colonnes.
2015-08-26 © Domingo Palao 56IFT287 Exploitation de bases de données
relationnelles et orientées objet
Semaine 1
Questions?Vous pouvez aussi lire