Introduction à SQL2. Professeur Serge Miranda Directeur Master «MBDS»

Dimension: px
Commencer à balayer dès la page:

Download "Introduction à SQL2. Professeur Serge Miranda Serge.miranda@unice.fr Directeur Master «MBDS» www.mbds-fr.org www.youtube."

Transcription

1 Introduction à SQL2 Professeur Serge Miranda Directeur Master «MBDS» Livre et Exemple 1

2 Plan Rappels sur le modèle relationnel de CODD (les 10 Concepts fondamentaux) SQL2 - Définition - Manipulation - Contrôle - Critiques Modèle Relationnel de CODD (les 10 concepts de base) et PARADIGME VALEUR Définitions «Domaines» «Relations» («ensemble» ou «prédicat») Clé Primaire / Clé Etrangère Contrôle : Règles d intégrité De domaines De relation De référence Manipulation ensembliste : algèbre de Codd (langage «fermé, complet et orthogonal») Opérateurs ensemblistes Opérateurs relationnels : SELECTION, PROJECTION, JOIN et DIVISION 2

3 Modèle Relationnel de CODD (V1) DOMAINE ("Domain") VILLE = { NICE, PARIS, LYON, TOULO USE} PILOTE PILNO PILNOM ADR 100 SERGE NICE 101 JOHN PARIS 102 PETER TOUL LIGNE = N-UPLET N ( "TUPLE" ) COLONNE = ATTRIBUT ("ATTRIBUTE") «Structuration» Modèle R Paradigme «VALEUR» "STRUCTURATION" (comme le "S" de SQL ) 100 Peter A300 VALEURS 500 John A320 Toulouse Nice 1ère phase de structuration : constructeur SET : "Domaines" = ( ensemble de VALEURS ) PL# PLNOM DOMAINES 100,200,300,500,... Peter, John, Serge,... VILLE AVNOM Toulouse, Nice,... A300, A320,... 3

4 Structuration (Suite) 2ème phase de structuration : constructeur TUPLE " Relations" = " ensemble de tuples " RELATIONS AVION AV# AVNOM CAP LOC 100 A Paris 101 A Nice Algèbre relationnelle de CODD 4

5 Modèles relationnels Les modèles relationnels de CODD V1 ( 1970 ) " b.c. " 1970 RM-T T ( 1980 ) et V2 / V3 ( 1990 ) " a.c. " 1970 SQL : SEQUEL (1975 et 1982) SQL1 ( 1989 ) SQL2 ( 1992 ) SQL3 ( 1999) SQL4?... Généralités Les 4 facettes de SQL Langage de définition (d un schéma relationnel) *** Notation : **** :vaut le détour Langage de manipulation de la base de données * *** mérite d être vu (3ème étoile en 89) * il faut le voir mais SQL Langage de contrôle de la base de données (interface transactionnelle, ) **** SEQUEL «Structured English as a QUEry Language» Prototype SYSTEM-R d IBM, SAN JOSE (1975) Langage de communication **** (client-serveur, Internet XML, BD réparties) 5

6 Généralités Les concepts structurels de SQL : Tables Colonnes Lignes PILOTE PL# PLNOM ADRESSE 1 JEAN PARIS 2 PIERRE NICE 3 PAUL PARIS AVION AV# AVNOM CAP LOC 100 A NICE 101 B PARIS 102 A LYON 103 B LYON Généralités Modèle de Codd SQL (SEQUEL*) Français Anglais Relation Relation Table Domaine Domain Domain (SQL2) Attribut Attribute Column n-uplet (tuple) Tuple Line Clé primaire Primary key Primary key (ORACLE V6, DB2, V4,.) Clé étrangère Foreign key References (ORACLE V6, DB2 V4,.) * SEQUEL : «Structured English as a QUEry Language» 6

7 1. Définition et MAJ du schéma (noyau SQL) Create table [not null ; primary key / references] alter table add [modify, delete] create / drop index unique [create /drop data-space] Définition du schéma Create schema < Création de deux domaines Ville et Heure > create domain 1 Ville as char (12) default PARIS check (value in( PARIS, NICE, TOULOUSE )) create domain Heure as hour check (value > 7 and value < 22) < Création des tables > create table 2 PILOTE (PL# decimal (4), PLNOM char (12), ADR Ville check (value in ( PARIS, NICE )), SAL decimal (5), primary key (PL#)) 7

8 create table AVION (AV# decimal (4), AVNOM char (12), CAP decimal (3) check (value > 100), LOC Ville, primary key (AV#)) Create table VOL (VOL# char(5), PL# decimal (4) not null, AV# decimal(4), VD Ville, VA Ville, HD Heure, HA Heure, primary key (VOL#), foreign key (PL#) references PILOTE, initially deferred, foreign key (AV#) references AVION, on delete cascade, on update set null)) alter domain. Drop constraint Définition du schéma Type syntaxique Char(n), decimal, integer, bit, float, date (year, month, day), times (hour, minute, second), timestamp, interval Dictionnaire relationnel (INFORMATION-SCHEMA CATALOG) comprenant des tables systèmes accessibles par. SQL. 8

9 Définition du schéma Dictionnaire Relationnel Intégré Exemple : DB2 comprend un dictionnaire intégré («CATALOG») qui comprend des tables systèmes. Les PRINCIPALES SYSTABLES NAME CREATOR COLCOUNT Pilote Serge 4 Avion Serge 4 Vol Serge 7 SYSCOLUMNS NAME TBNAME COLTYPE PL# Pilote SMALLINT PLNOM Pilote CHAR ADR Pilote CHAR AV# Avion SMALLINT Définition du schéma Cluster : «Jointure dans la structure physique» (System-R, Oracle) Exemple : Cluster entre PILOTE et VOL sur PL# Bloc de cluster pour chaque valeur de PL# Exemple d un bloc de cluster pour la valeur pl# = SERGE NICE IT PARIS 100 NICE 7 8 IT NICE 101 PARIS IT PARIS 104 TOUL Create cluster PV (PIL# number (4)) (clé du cluster) 9

10 Définition du schéma Utilisation de l option CLUSTER dans create table pour mise en cluster table créée. Ex : create table PILOTE (PL# number(4) primary key, ) cluster PV (pil#) Mise en cluster d une table existante Exemple : create table VOL2 cluster PV (PL#) as select * from VOL drop table VOL rename VOL2 to VOL Définition du schéma On peut : Retirer une table d un cluster : alter cluster PV drop table PILOTE Supprimer un cluster : drop cluster PV Note : importance du cluster pour le stockage des objets persistants. 10

11 Manipulation BD 2 Interrogation et mise à jour d une base de données (noyau SQL) 2.1 SQL interactif Interrogation : <Mapping SQL> Select < liste attributs cible ou * > from < tables > where < qualification sur les lignes > avec in, exists, any, all, and, or, not, between, like, group by < attributs partitionnés > having < qualification sur les partitions > order < tri > union LMD Mise à jour : update R set where Suppression : delete from R where Insertion : insert into R values 11

12 Manipulation BD 2.2 SQL «intégré» («embedded SQL») Pointeur logique : «cursor» («impedance mismatch») (exec sql) declare CX cursor for < requête SQL > (exec sql) open / fetch / update / delete / close CX (cursor) Current (élément pointé) Code retour : sqlcode Manipulation BD Rappel : Opérateurs relationnels Diagramme de Venn pour les opérateurs UNION, INTERSECTION, DIFFERENCE entre 2 relations R1 et R2 qui doivent être unicompatibles (même nombre d attributs et attributs respectifs définis sur le même domaine) UNION INTERSECTION R1 R2 R1 R2 DIFFERENCE R1 R2 12

13 Manipulation BD SELECTION («découpage horizontal») PROJECTION («découpage vertical») Manipulation BD Rappel : JOINTURE de R1 et R2 sur A1 et A2 (quantificateur existentiel ) R1 A1 - - a1 - - a2 + + a2 # # a4 - - a5 R2 A2 a1 a2 a2 m p q R3 - - a1 a1 m - - a2 a2 p + + a2 a2 q 13

14 Manipulation BD DIVISION de R1 par R2 sur A1 et A2 (A1 et A2 définis sur le même domaine) (quantificateur universel ) R1 R2 B1 b1 b1 b2 b3 b4 b4 A1 a1 a2 a2 a1 a1 a2 A2 a1 a2 diviseur dividende R3 B b1 b4 Présentation par l exemple des verbes SQL2 de manipulation Domaine : = {Nice, Paris, Lyon, Toulouse } PILOTE PL# PLNOM ADR 100 Serge Nice 101 Jean Paris 102 Paul Paris VOL VOL# PL# VA... IT Nice IT Paris IT Paris 14

15 Manipulation BD select - from - where? AVION AVN AVNOM CAP LOC 100 A NICE 101 B PARIS 102 A LYON 103 B NICE Select AVNOM, CAP from AVION where LOC = NICE ; AVION AVNOM CAP A B Manipulation BD EXEMPLE1 : Requête mono-table en mode interactif puis imbriqué : Quels sont les vols (toutes les infos) desservant PARIS après 12 h?» Version interactive : select * from VOL where VA = PARIS and HD > 12. Version imbriquée dans un langage hôte («embedded SQL») : exec sql declare CX cursor for select VOL# from VOL where VA = PARIS ; declare VOL char(5) ; HD date ; HA date ; exec sql open CX ; do exec sql fetch CX into : VOL, : HD, HA ; < traitement sur les variables > end exec sql close CX ; 15

16 Manipulation BD Exemple : Interrogation du dictionnaire Quels sont les noms des colonnes de la table VOL? Select NAME from SYSCOLUMNS where TBNAME = VOL Quelles sont les tables du schéma? Select NAME from SYSTABLES ; Quelles sont les tables qui contiennent une colonne PL#? Select TBNAME from SYSCOLUMNS where NAME = pl# ; Manipulation BD Exemple 2 : Requête de jointure «Quels sont les noms des pilotes qui sont en service sur un vol desservant Paris?» select PLNOM from PILOTE, VOL where PILOTE. PL# = VOL. PL# and VOL. VA = PARIS ; 16

17 GROUP BY select * from vol ; VOL VOL# PL# AV# VD VA IT NICE PARIS IT PARIS TOUL IT TOUL PARIS IT PARIS NICE IT NICE LYON group by PL# : PL# = 1 VOL# AV# VD VA IT NICE PARIS IT PARIS NICE IT NICE LYON PL# = 2 VOL# AV# VD VA IT PARIS TOUL IT TOUL PARIS Manipulation BD Un peu de version.. Select PL#, COUNT(*) from VOL group by PL# having count (*) 3 ; 17

18 Traduction des requêtes SQL suivantes en Français SQL : select PL#, count (*) from VOL group by PL# having count (*) 3 ; «Quels sont les numéros de pilotes qui assurent plus de trois vols (avec le nombre de vols assurés)?» SQL : select PL#, count (*) from VOL where VD = NICE (1) group by PL# (2) having count (*) > 3 ; (3) Requête en français : «Quels sont les numéros des pilotes (avec le nombre de vols assurés) qui assurent plus de 3 vols au départ de Nice?» Manipulation BD Requête SQL : select PL#, count(*) from VOL where PL# (2) in (select PL# from VOL (1) where VD = NICE ) group by PL# (3) having count (*) > 3 ; (4) Requête en français : «Quels sont les numéros des pilotes (avec le nombre de vol assurés) qui assurent plus de 3 vols dont 1 au moins au départ de Nice?» 18

19 Exemple 4 : Requêtes de mise à jour Suppression des vols au départ de NICE delete From VOL where VD = NICE ; Augmentation de 10 de la capacité des AIRBUS localisés à NICE? update AVION set CAP = CAP + 10 where AVNOM = AIRBUS and LOC = NICE ; Manipulation BD Augmentation de 10 de la capacité des AIRBUS en service au départ de NICE et conduits par des pilotes habitant PARIS. update AVION set CAP = CAP + 10 where AVNOM = AIRBUS and AV# in ( select AV# from VOL where VD = NICE and PL# in ( select PL# from PILOTE where ADR = PARIS )) ; 19

20 Exemple : «Quelle est la moyenne des capacités des avions localisés à NICE?» select avg(cap) from AVION where LOC = NICE ; Remarques : - Fonction de base : AVG, SUM, COUNT, MAX, MIN - Pauvreté du SELECT du standard («singleton») - GROUP BY / HAVING de SQL2 : HAVING peut exister sans GROUP BY signifiant que le résultat du SELECT-FROM-WHERE est perçu comme une table partitionnée. Les expressions de la clause HAVING doivent être monovaluées par groupe. - Variable de parcours explicite : select * from AVION as AVX where AVX. AV# in (select AVY. AV# from AVION as AVY) ; Manipulation BD Autres exemple avec le NATURAL JOIN dans la clause FROM select * from (PILOTE natural join VOL) as PV ; 20

21 Manipulation BD Représentation des opérateurs relationnels en SQL (SQL1, SQL2) et nouvelles jointures dans SQL2 Tables PILOTE, AVION, VOL et les deux vues AVNICE : (select * from AVION where LOC = NICE ;) AVAIRBUS : (select * from AVION where AVNOM = AIRBUS ;) Opérateurs relationnels en SQL UNION Manipulation BD UNION Ex : select AV# from AVNICE union select AV# from AVAIRBUS ; 21

22 Manipulation BD INTERSECTION DIFFERENCE SQL1 SQL2 SQL1 SQL2 select AV# (select AV# select AV# from (select AV# from AVNICE from AVNICE) AVNICE from AVNICE) where exists intersect where not exists except (select AV# (select AV# (select AV# (select AV# from AVAIRBUS from from AVAIRBUS from where AVAIRBUS) ; where AVAIRBUS); AVAIRBUS.AV# AVAIRBUS.AV# = AVNICE.AV#); = AVNICE.AV#); Algèbre de Codd et SQL (Suite) SELECTION select * from AVION where CAP > 200 ; select AV#, AVNOM from AVION. PROJECTION 22

23 Algèbre de Codd et SQL (Suite) JOINTURE DIVISION «Qules sont les noms des pilotes en service au départ de Nice?» Il existe 7 façons différentes dont les deux principales sont : - Solution prédicative : select PLNOM from PILOTE, VOL where VOL-VD = NICE and PILOTE.PL# = VOL.PL# ; «Quels sont les numéros de pilotes qui conduisent TOUS les avions?» select distinct VX.PL# from VOL VX where not exists (select AV# from AVION where not exists (select * from VOL VY where VY.PL# = VX.PL# and AVION.AV# = VY.AV#)); Manipulation BD Autres JOINtures dans SQL2 : select PLNOM from PILOTE (NATURAL) join VOL on VOL.VD = NICE [using Pilote.PL# = Vol.PL# ;] Les jointures «externes» (OUTER JOIN ) : «LEFT», «RIGHT», «FULL», sous union (UNION JOIN), produit cartésien (CROSS JOIN), A join B on C using att1» est équivalent à select * from A, B where C and A. att1 = B. att1; < att1 et att2 sont les attributs de jointure CP/CE> 23

24 Manipulation BD Exemple de 3 requêtes équivalentes FROM. PILOTE left join VOL on PILOTE.PL# = VOL.PL# ; PILOTE left join VOL using PL# ; PILOTE natural left join VOL; Manipulation BD Requête SQL Q1 : Quels sont les noms d avion avec leur numéro et leur localisation (autre que Nice), ayant une capacité supérieure à 200 avec un tri décroissant sur le numéro? select AV#, AVNOM, LOC from AVION where CAP > 200 and LOC# NICE order by AV# dsc ; 24

25 Manipulation BD (exemples) Jointure entre 3 relations Q2 : Quels sont les noms des pilotes qui conduisent un AIRBUS? Ensembliste : (A) select PLNOM from PILOTE where PL# in (select PL# from VOL where AV# in (select AV# from AVION where AVNOM = AIRBUS)); Prédicatif : (A) select PLNOM from PILOTE, AVION, VOL where PILOTE. PL# = VOL.PL# and VOL.AV# = AVION.AV# and AVION.AVNOM = AIRBUS ; 25

26 Manipulation BD (exemples) Jointure sur des colonnes non clé Q3 : Quels sont les noms des pilotes qui habitent dans la ville de localisation d un AIRBUS? (B) select PLNOM from PILOTE, AVION where PILOTE. ADR = AVION. LOC and AVION.AVNOM = AIRBUS ; Questions logiques : (UNION, INTER, MINUS) correspondent à OU, ET, SAUF Q3 = Q3 et Q4 : (A) inter (B) Quels sont les noms des pilotes qui conduisent un AIRBUS ET qui habitent dans la ville de localisation d un AIRBUS? Manipulation BD (exemples) Autres jointures Q4 : Quels sont les vols ayant un trajet identique (VD, VA) à ceux assurés par Serge? select * from VOL where (VD, VA) in (select VD, VA from VOL, PILOTE where VOL. PL# = PILOTE.PL# and PILOTE.PLNOM = Serge ); 26

27 Manipulation BD (exemples) Q5 : Quels sont les pilotes qui habitent la ville de localisation d un AIRBUS et qui sont en service au départ d une ville desservie (VA) par «Serge»? select * from PILOTE where ADR in( select LOC from AVION where AVNOM = AIRBUS ) and PL# in ( select PL# from VOL where VD in ( select VA from VOL, PILOTE where VOL.PL# = PILOTE.PL# and PILOTE.PLNOM = Serge )); Manipulation BD (exemples) Q6 : Quels sont les noms des pilotes qui assurent un vol au départ de Paris? Ensembliste : utilisation d une sous-requête select PLNOM from PILOTE where PL# in (select PL# from VOL where VOL. VD = PARIS ) ; Prédicative : utilisation d une équation de jointure select PLNOM from PILOTE, VOL where PILOTE. PL# = VOL.PL# and VOL.VD = PARIS ; Nous pouvons donner cinq autres formes Copyright de traduction Serge Miranda de la jointure (!) : 27

28 select PLNOM from PILOTE where PL# = ANY (select PL# from VOL where VOL.VD = PARIS ); select PLNOM from PILOTE where exists (select * from VOL where PILOTE.PL# = VOL.PL# and VOL.VD = PARIS ); select PLNOM from PILOTE where 0 < ( select count (*) from VOL where PILOTE.PL# = VOL.PL# and VOL.VD = PARIS ) ; select PLNOM from PILOTE where PARIS = any ( select VD from VOL where VOL.PL# = PILOTE.PL#); Manipulation BD (exemples) Jointure et ANY - ALL Q7 : Quels sont les avions dont la capacité est supérieure à toutes les capacités des avions localisés à Nice? select * from AVION where CAP > all (select CAP from AVION where LOC = NICE ) ; Q7 : Quels sont les avions dont la capacité est supérieure à au moins celle d un avion localisé à Nice? select * from AVION where CAP > any (select CAP fromcopyright AVION where Serge Miranda LOC = NICE ); 28

29 Manipulation BD (exemples) Jointure multiple et résultat multi-relation Q8 : Donner toutes les paires de villes telles qu n avion localisé dans la première soit conduit par un pilote résidant dans la deuxième. select AVION.LOC, PILOTE.ADR from PILOTE, AVION, VOL where PILOTE.PL# = VOL.PL# and AVION.AV# = VOL.AV# ; Note : cet exemple met en jeu une jointure des 3 tables Q9 : Donner toutes les paires de pilotes habitant la même ville. (numéro de pilote) select PIL1.PL#, PIL2.PL# from PILOTE PIL1, PILOTE PIL2 where PIL1.ADR = PIL2.ADR and PL#différents; 29

30 Manipulation BD (exemples) Jointure externe («outer join») Q10 : Pour chaque pilote, donner son adresse et pour ceux qui sont en service, la liste des vols assurés. SQL de DB2 (et tout le dialecte SQL avec UNION) select PILOTE.PL#, PILOTE.ADR, VOL.VOL# where PILOTE.PL# = VOL.PL# union (all) select PILOTE.PL#, PILOTE.ADR, bb from PILOTE where not exists (select * from VOL where PILOTE.PL# = VOL.PL#); Partitionnement (GROUP BY) Q11 : Pour chaque pilote en service, quel est le nombre de vols assurés? select PL#, count (*) from VOL group by PL# Note : La colonne de partitionnement doit figurer dans la liste SELECT Q12 : Pour chaque avion en service l après - midi (après 12h) et conduit par plus de 2 pilotes, quels sont les trajets (VD, VA) assurés? select AV#, VD, VA from VOL where HD > 12 group by AV# having count (*) > 2 ; 30

31 Manipulation BD (exemples) GROUP BY : quelques variantes SELECT : attribut(s) partitionné(s) et Expression monovaluée (DB2,..) Attributs de la même relation (SQL server) GROUP BY : mono ou multi-attribut HAVING : Avec la clause WHERE Avec fonctions seulement.. Fonction de calcul Quel que soit le dialecte SQL, on trouve les fonctions AVG, SUM, MIN, MAX, COUNT. SQL+ d ORACLE offre en plus le calcul de variance (VARIANCE) et l écart type (STDDEV : «standard deviation»). Q13 : Quel est le nombre de trajets (VD, VA) assurés après 12 h select count distinct (VD, VA) from VOL where HD > 12 ; La fonction de calcul prend en compte l ensemble des lignes satisfaisant le WHERE Q14 : Quelle est la capacité maximum des avions par ville de localisation? select LOC, max (CAP) from AVION group by LOC ; 31

32 Manipulation BD (exemples) Q15 : Quelle est la capacité moyenne des avions par ville et par type? select LOC, AVNOM, avg (CAP) from AVION group by LOC, AVNOM; Q16 : Quel est le nombre de pilotes différents en service? select count (distinct VOL.PL#) from VOL; Q17 : Pour chaque ville de localisation sauf «Paris» de la compagnie, donner les capacités minimum et maximum d avions qui s y trouvent. select LOC, min(cap), max(cap) from AVION where LOC# PARIS group by LOC; Q18 : Quels sont les avions (numéros et noms) dont la capacité est comprise entre 200 et 300 et dont la localisation correspond à la ville de départ du vol «IT100». select AV#, AVNOM from AVION where CAP between 200 and 300 and AVION.LOC in (select VD from VOL where VOL# = IT100 ); 32

33 Q19 : Quels sont les avions (AV#, AVNOM) qui, après une augmentation de 10% de leur capacité, ont une capacité supérieure à 250? select AV#, AVNOM from AVION where CAP* 1.1 > 250; Q20 : Quelle est la capacité moyenne des avions pour chaque ville ayant plus de 10 avions (localisés)? select LOC, avg(cap) from AVION group by LOC having count (*) > 10; Q21 : Quels sont les pilotes (avec leur nombre de vols) parmi 100, 110, 120 et 130 qui assurent plus de 3 vols? select PL#, count(*) from VOL where PL# in (100, 110, 120, 130) group by PL# having count (*) > 3; Q22 : Quels sont les avions dont la capacité est supérieure à toutes les moyennes de capacités des avions par ville? select * from AVION where CAP > all (select avg(cap) from AVION group by LOC); Q23: Quels sont les vols au départ de Nice entre 14h et 16 h? select * from AVION where HD between 14 and 16 and VD = NICE ; Q24 : Quels sont les avions de type AIRBUS? Recherche sur troncature (AIRBUSA300, AIRBUSA320,.) select * from AVION where Copyright AVNOM Serge Miranda like AIRBUS% ; 33

34 Manipulation BD (exemples) Q25 : Quels sont les pilotes dont le nom comprend un «I» en deuxième position? select * from PILOTE where PLNOM like I% ; Q26 : Quels sont les pilotes dont le nom ressemble phonétiquement à «SMITH»? select PLNOM from PILOTE where soundex(plnom) = soundex( SMITH ); (Le pilote de nom SCHMIDT ferait partie du résultat) EXERCICE. Quelles sont les capacités maximales et la moyenne des capacités des Airbus (LIKE AIRBUS%) en service au départ de Nice et conduits par des pilotes dont le nom «sonne» comme SMITH ayant reçu la formation pour les conduire, pour les villes de localisation NICE, PARIS, TOULOUSE avec un nombre d avions localisés par ville correspondant au nombre d avions localisés à LYON? SELECT LOC, MAX (CAP), AVG (CAP) FROM (AVION NATURAL JOIN VOL ON VD = NICE AND AVNOM LIKE AIRBUS% AND LOC in (NICE, PARIS, TOULOUSE)) AS AV, AV NATURAL JOIN FORMATION USING AV.PL# = FORMATION.PLNO ON AV.AVNOM = FORMATION.TYPAV, PILOTE WHERE PILOTE.PL# = AV.PL#AND PLNOM SOUND ( SMITH GROUP BY LOC HAVING COUNT (*) = (SELECT COUNT (*) FROM AVION WHERE LOC = LYON ) ; Notes : Mettre la clause USING dans NATURAL JOIN si les attributs de jointure n ont pas le même nom Il existe plus de 1000 façons différentes d écrire cette requête (plus de 10 façons d écrire une jointure! 34

35 Manipulation BD (exemples) Sous-requêtes «indépendantes» : Q27 : Quels sont les avions dont la capacité est supérieure de 10% à la moyenne des capacités des avions? select * from AVION where CAP > (select avg (CAP)* 1.1 from AVION) ; (1) (2) (2) est évaluable séparément de (1) Maniplulation (sous requêtes indépendantes) Q28 : Quels sont les numéros des pilotes qui conduisent un avion conduit aussi par le pilote n 100? select distinct PL# from VOL where AV# in (select AV# from VOL where PL# = 100); 35

36 Manipulation BD (exemples) Avec un seul mapping, on aurait dû introduire une variable de parcours : select distinct PL# from VOL AS VX where VOL.AV# = VX.AV# and VX.PL# = 100; Une double variable de parcours pourrait être introduite : select distinct VX. PL# from VOL AS VX, VOL AS VY where VX. AV# = VY.AV# and VY.PL# = 100; Manipulation BD (exemples) Sous-requêtes «dépendantes»: Q29 : Quels sont les avions dont la capacité est supérieure de 10 % à la moyenne de capacités des avions localisés dans la même ville? select * (1) from AVION AX where AX.CAP > (select avg (AY.CAP)* 1.1 from AVION AY (2) where AX.LOC = AY.LOC); 36

37 Manipulation BD (exemples) Q30 : Quels sont les pilotes qui conduisent un avion conduit aussi par un pilote qui habite la même ville? select PILOTE.* from PILOTE AS PX, VOL AS VX where PILOTE.PL# = VOL.PL# and AV# in (select VX.AV# from VX where VX.PL# NOT= PILOTE.PL# and VX.PL# in (select PX.PL# from PX where PX.ADR = PILOTE.ADR)); Select P1.* From Pilote P1, Pilote P2, Vol V1, Vol V2 Where V1.AV # = V2.AV # and P1.PL # = V1.PL # and V2.PL # = P2.PL # and P1.ADR = P2.ADR And P1.PL # =/= P2.PL # ; 37

38 Sous-requêtes dépendantes : (suite) Dans les SQL standard, il y a systématiquement utilisation de variables SYNONYMES de parcours dans les sous-requêtes ; avec les autres dialectes SQL, cette utilisation n est nécessaire que dans les sous-requêtes dépendantes. Variable de parcours explicite : (SQL2) Select * from AVION as AVX where AVX.AV# in (select AVY.AV# from AVION as AVY Where AVX.CAP>AVY.CAP and AVY.LOC = Nice ) ; Autre exemple avec le NATURAL JOIN dans la clause FROM (avec même attribut de jointure : pas de clause USING) select * from (PILOTE natural join VOL) as PV ; Manipulation BD (exemples) Fonctions statistiques et SQL Moyenne arithmétique pondérée - P (liste) non pondérée - non P (ensemble) Q31 : Quelle est la moyenne des capacités de avions de la compagnie? P. non P. select avg (CAP) select avg (distinct CAP) FROM AVION ; FROM AVION ; 38

39 Fonctions Statistiques Table de fréquences : pour chaque valeur, nombre de fois qu elle apparaît. Q32 : Quelle est la table des fréquences des capacités des avions? select CAP, count (*) from AVION group by CAP; Intervalle Q33 : Quel est l intervalle des capacités des avions de la compagnie? select max(cap) - min(cap) from AVION; Fonction STAT et SQL2 Mode : valeur avec la fréquence la plus élevée Q34 : Quel est le mode de la capacité des avions? select CAP from AVION group by CAP having count (*) >= all (select count (*) from AVION group by CAP); 39

40 Division algébrique Q35 : Sélectionner les numéros de pilotes qui conduisent tous les avions de type AIRBUS de la compagnie. Forme équivalente traitée en SQL Q35 : Sélectionner les numéros de pilote en service tel qu il n existe pas d avion de nom AIRBUS qui ne soit pas conduit par ces pilotes Ecriture en SQL+ : select unique (PL#) from VOL as VX where not exists (select * from AVION where AVION.AVNOM = AIRBUS and not exists (select* from VOL as VY where AVION.AV# = VX.AV# and VY.PL# = VX.PL#)); Manipulation BD (exemples) Exemple avec l égalité ensembliste de SEQUEL (1975) : select PLNOM from PILOTE where ensemble des numéros d avion conduits par un pilote du résultat (select AV# from VOL where VOL.PL# = PILOTE.PL#) égalité ensembliste = ensemble des numéros (select AV# d avion correspondant from AVION à un AIRBUS where AVNOM = AIRBUS ); Note : CONTAINS ( inclusion ensembliste) 40

41 Manipulation BD (exemples) Solution avec la fonction de comptage select PL# from VOL where AV# in (select AV# from AVION where AVION.AVNOM = AIRBUS ) group by PL# having count (distinct AV#) = (select count (*) from AVION where AVNOM = AIRBUS ); Manipulation BD (exemples) Recherche hiérarchique (SQL + d ORACLE) (Problème de fermeture transition) Hiérarchie de vols en correspondance au départ de Nice. NICE PARIS TOULOUSE LYON MARSEILLE PARIS LYON LYON BRUXELLE PARIS TOULOUSE 41

42 Fermeture transitive et SQL2 Q36 : Quel sont les vols en correspondance directe au départ de Nice? select VOL#, VD, VA from VOL connect by VD = prior VA start with VD = NICE ; Manipulation BD (exemples) Les lignes du résultat sont ordonnées suivant le parcours de l arbre : VOL# VD VA IT100 NICE PARIS IT105 PARIS MARSEILLE IT107 MARSEILLE LYON IT102 NICE TOULOUSE IT106 TOULOUSE PARIS IT108 TOULOUSE LYON Possibilité d utiliser la variable LEVEL pour connaître le niveau hiérarchique (1 à 256) Fermeture SQL +? 42

43 SQL intégré Q38 : Donner les informations sur un vol donné. Program VOL-INFO variables VOLNO VD VA HD HA : smallint; : char(6); : char(6); : time; : time; Begin read Quel est le numéro de vol :? VOLNO; select VOLNUM, VD, VA, HD, HA into VOLNO, : VD, :VA, :HD, :HA from VOL where VOLNUM = : VOLNO; print Numéro de vol :, VOLNO; print Ville de départ :, VD; print Ville d arrivée :, VA; print Heure de départ :, HD; print Heure d arrivée :,HA; end Manipulation BD (exemples) SQL intégré Q39 : Donner les numéros de vol au départ de NICE. Program VOLNICE Variable VOLNO : smallint; Begin declare V cursor for select VOLNUM from VOL where VD = NICE ; print Numéros de vol au départ de NICE : ; open V fetch V into : VOLNO; while sqlcode = 0 do print VOLNO; fetch V into : VOLNO; od close V end 43

44 III CONTRÔLE BD en SQL2 Contrôle de la base de données (noyau SQL) «TRANSACTIONS» begin / end transaction Commit (Work) Rollback (work) lock table in exclusive mode /shared mode «VIEWS» Contrôle BD Vue («view») en SQL2 Table virtuelle (seule la définition est stockée) Exemple : Création d une vue de sécurité pour cacher les lignes de PILOTE correspondant à des salaires supérieurs à F : create view BAS-SALAIRE as select * from PILOTE where SAL ; GRANT / REVOKE : ex : 44

45 3. Contrôle BD (Transaction) («Tout ou rien», ) «alors que le TOUT se devait d être éclairant, Le RIEN pouvait se contenter d être moderne se contenter de RIEN, mais habiller ce rien de telle façon qu il fasse illusion» Claude JANNOUD («Au rendez-vous du nihilisme» 1989) Transaction en SQL Une transaction SQL est un ensemble d opérations SQL rendu «atomique» («tout ou rien») qui permet de passer d un état cohérent de la BD dans un autre («A et C» de ACID) Dans SQL2, le début d une transaction est implicite (pas de verbe BEGIN TRANSACTION) et la fin correspond au verbe COMMIT (terminaison correcte) T («COMMIT ou ROLLBACK» : Tout) (annulation et retour arrière) état cohérent i de la base de données état cohérent j de la base de données T («ROLLBACK» : Rien) 45

46 Contrôle BD Transaction en SQL d Oracle 3 types de transactions : READ /WRITE (par défaut) : SET TRANSACTION READ/WRITE READ ONLY (reporting) : SET TRANSACTION READ ONLY DISCRETE (pour OLTP lourd) : opérations internes sur le LOG différées Execute dbms-transaction.begin-discrete-transaction Insert.. Insert.. Commit work 3. Contrôle BD (Transaction) «Atomicité» : Environnement défaillant Tous les ordres SQL ou aucun vont être exécutés quelle que soit la panne Retour arrière assuré jusqu au début de la transaction ou au dernier point de reprise (SAVE POINT) «Sérialisibilité» : Environnement concurrentiel L exécution en parallèle de plusieurs transactions est équivalente à leur exécution en série Points de reprise (SAVEPOINT) Intérêts : retour arrière limité en cas de panne (rollback work) programmation structurée ex : SQL + d ORACLE insert into PASSAGER values (1, serge, ); savepoint after insert;.rollback S after insert;.commit 46

47 3. Contrôle BD Propriétés ACID d une transaction ACID A : Atomicité C : Cohérence I : Isolation (effets d une transaction non observables par une autre) D : Durabilité Problème d interférence entre transactions concurrentes («A+C») Problème des mises à jour perdues (dépendance écriture - écriture) T1 : augmentation de 10 de la capacité T2 : réduction de 5 de la capacité des des AIRBUS avions localisés à Paris begin T1. Update AVION set CAP = CAP + 10 where AVNOM = AIRBUS ;. end T1 begin T2 update AVION set CAP = CAP - 5 where LOC = PARIS ;. end T2 t Danger : Problème de mise à jour perdue ; «La capacité des AIRBUS localisés à Paris devrait être : CAP = CAP = CAP 0 + 5». 47

48 Problème de lecture impropre : (dépendance écriture - lecture) T1 : augmentation de 10 de la capacité des AIRBUS T2 : lecture des avions de capacité supérieure à 300 ou de nom AIRBUS avec traitement sur les capacités begin T1 begin T2. Update AVION.. set CAP = CAP where Select * AVNOM = AIRBUS ; from AVION. where CAP > 300. or AVNOM = AIRBUS ;... Rollback T1 end T2 end T1 T2 va prendre en compte les données modifiées par T1. Or les effets de T1 doivent être Copyright Serge t Miranda annulés (ROLLBACK T1) : la lecture de la table AVION par T2 est impropre. Problème de lecture non reproductible :(dépendance lecture - écriture) T1 : lecture à deux moments différents de la table AVION T2 : idem begin T1 begin T2. select *. from AVION.. where CAP > 300; Update AVION. set CAP = CAP where. AVNOM = AIRBUS select * or CAP > 300c from AVION. where CAP > 300;. end T2 end T1 t Les deux ensembles (1) et (2) peuvent être différents du fait de la modification effectuée par T2 : c est le problème de lecture non reproductible. 48

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles) SGBDR Systèmes de Gestion de Bases de Données (Relationnelles) Plan Approches Les tâches du SGBD Les transactions Approche 1 Systèmes traditionnels basés sur des fichiers Application 1 Gestion clients

Plus en détail

Cours Bases de données 2ème année IUT

Cours Bases de données 2ème année IUT Cours Bases de données 2ème année IUT Cours 12 : Concurrence d accès Anne Vilnat http://www.limsi.fr/individu/anne/cours Plan 1 Accès concurrents Définitions Verrous Collisions Niveaux de cohérence Blocage

Plus en détail

ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ;

ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ; RÈGLES A SUIVRE POUR OPTIMISER LES REQUÊTES SQL Le but de ce rapport est d énumérer quelques règles pratiques à appliquer dans l élaboration des requêtes. Il permettra de comprendre pourquoi certaines

Plus en détail

Le langage SQL pour Oracle - partie 1 : SQL comme LDD

Le langage SQL pour Oracle - partie 1 : SQL comme LDD Le langage SQL pour Oracle - partie 1 : SQL comme LDD 1 SQL : Introduction SQL : Structured Query Langage langage de gestion de bases de donn ees relationnelles pour Définir les données (LDD) interroger

Plus en détail

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2 SQL Sommaire : COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2 COMMANDES DE MANIPULATION DE DONNEES... 2 COMMANDES DE CONTROLE TRANSACTIONNEL... 2 COMMANDES DE REQUETE DE DONNEES... 2 COMMANDES

Plus en détail

Bases de données et sites WEB Licence d informatique LI345

Bases de données et sites WEB Licence d informatique LI345 Bases de données et sites WEB Licence d informatique LI345 Anne Doucet Anne.Doucet@lip6.fr http://www-bd.lip6.fr/ens/li345-2013/index.php/lescours 1 Contenu Transactions en pratique Modèle relationnel-objet

Plus en détail

Langage SQL : créer et interroger une base

Langage SQL : créer et interroger une base Langage SQL : créer et interroger une base Dans ce chapitre, nous revenons sur les principales requêtes de création de table et d accès aux données. Nous verrons aussi quelques fonctions d agrégation (MAX,

Plus en détail

Le Langage SQL version Oracle

Le Langage SQL version Oracle Université de Manouba École Supérieure d Économie Numérique Département des Technologies des Systèmes d Information Le Langage SQL version Oracle Document version 1.1 Mohamed Anis BACH TOBJI anis.bach@isg.rnu.tn

Plus en détail

Bases de Données relationnelles et leurs systèmes de Gestion

Bases de Données relationnelles et leurs systèmes de Gestion III.1- Définition de schémas Bases de Données relationnelles et leurs systèmes de Gestion RAPPELS Contraintes d intégrité sous Oracle Notion de vue Typage des attributs Contrainte d intégrité Intra-relation

Plus en détail

1 Introduction et installation

1 Introduction et installation TP d introduction aux bases de données 1 TP d introduction aux bases de données Le but de ce TP est d apprendre à manipuler des bases de données. Dans le cadre du programme d informatique pour tous, on

Plus en détail

TP Contraintes - Triggers

TP Contraintes - Triggers TP Contraintes - Triggers 1. Préambule Oracle est accessible sur le serveur Venus et vous êtes autorisés à accéder à une instance licence. Vous utiliserez l interface d accés SQL*Plus qui permet l exécution

Plus en détail

Gestion des transactions et accès concurrents dans les bases de données relationnelles

Gestion des transactions et accès concurrents dans les bases de données relationnelles Gestion des transactions et accès concurrents dans les bases de données relationnelles Bernard ESPINASSE Professeur à Aix-Marseille Université (AMU) Ecole Polytechnique Universitaire de Marseille Fev.

Plus en détail

SQL Historique 1982 1986 1992

SQL Historique 1982 1986 1992 SQL Historique 1950-1960: gestion par simple fichier texte 1960: COBOL (début de notion de base de données) 1968: premier produit de sgbdr structuré (IBM -> IDMS) 1970-74: élaboration de l'outil d'analyse

Plus en détail

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL Cours PL/SQL Langage propre à Oracle basé sur ADA Offre une extension procédurale à SQL PL/SQL permet d utiliser un sous-ensemble du langage SQL des variables, des boucles, des alternatives, des gestions

Plus en détail

Langage SQL (1) 4 septembre 2007. IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

Langage SQL (1) 4 septembre 2007. IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes Langage SQL (1) Sébastien Limet Denys Duchier IUT Orléans 4 septembre 2007 Notions de base qu est-ce qu une base de données? SGBD différents type de bases de données quelques systèmes existants Définition

Plus en détail

1. Qu'est-ce que SQL?... 2. 2. La maintenance des bases de données... 2. 3. Les manipulations des bases de données... 5

1. Qu'est-ce que SQL?... 2. 2. La maintenance des bases de données... 2. 3. Les manipulations des bases de données... 5 1. Qu'est-ce que SQL?... 2 2. La maintenance des bases de données... 2 2.1 La commande CREATE TABLE... 3 2.2 La commande ALTER TABLE... 4 2.3 La commande CREATE INDEX... 4 3. Les manipulations des bases

Plus en détail

Le langage SQL (première partie) c Olivier Caron

Le langage SQL (première partie) c Olivier Caron Le langage SQL (première partie) 1 Plan Le S.G.B.D. postgres Le langage SQL Langage de manipulation de données Langage de requêtes 2 Quelques mots sur Postgres (1/2) Travaux de Stonebraker (Univ. Berkeley)

Plus en détail

Introduction au Système de Gestion de Base de Données et aux Base de Données

Introduction au Système de Gestion de Base de Données et aux Base de Données Introduction au Système de Gestion de Base de Données et aux Base de Données Formation «Gestion des données scientifiques : stockage et consultation en utilisant des bases de données» 24 au 27 /06/08 Dernière

Plus en détail

Le Langage De Description De Données(LDD)

Le Langage De Description De Données(LDD) Base de données Le Langage De Description De Données(LDD) Créer des tables Décrire les différents types de données utilisables pour les définitions de colonne Modifier la définition des tables Supprimer,

Plus en détail

Notes de cours : bases de données distribuées et repliquées

Notes de cours : bases de données distribuées et repliquées Notes de cours : bases de données distribuées et repliquées Loïc Paulevé, Nassim Hadj-Rabia (2009), Pierre Levasseur (2008) Licence professionnelle SIL de Nantes, 2009, version 1 Ces notes ont été élaborées

Plus en détail

Les bases de données

Les bases de données Les bases de données Introduction aux fonctions de tableur et logiciels ou langages spécialisés (MS-Access, Base, SQL ) Yves Roggeman Boulevard du Triomphe CP 212 B-1050 Bruxelles (Belgium) Idée intuitive

Plus en détail

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes donsez@univ-valenciennes.

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes donsez@univ-valenciennes. Les Triggers SQL Didier DONSEZ Université de Valenciennes Institut des Sciences et Techniques de Valenciennes donsez@univ-valenciennes.fr 1 Sommaire Motivations Trigger Ordre Trigger Ligne Condition Trigger

Plus en détail

16H Cours / 18H TD / 20H TP

16H Cours / 18H TD / 20H TP INTRODUCTION AUX BASES DE DONNEES 16H Cours / 18H TD / 20H TP 1. INTRODUCTION Des Fichiers aux Bases de Données 2. SYSTEME DE GESTION DE BASE DE DONNEES 2.1. INTRODUCTION AUX SYSTEMES DE GESTION DE BASES

Plus en détail

Implémentation des SGBD

Implémentation des SGBD Implémentation des SGBD Structure générale des applications Application utilisateur accédant à des données d'une base Les programmes sous-jacents contiennent du code SQL Exécution : pendant l'exécution

Plus en détail

Bases de données et sites WEB

Bases de données et sites WEB Bases de données et sites WEB Cours2 : Sécurité et contrôles d accès Anne Doucet 1 Authentification Autorisation Privilèges Rôles Profils Limitations de ressources Plan Audit Contrôle d accès via les vues

Plus en détail

Bases de données relationnelles

Bases de données relationnelles Bases de données relationnelles Système de Gestion de Bases de Données Une base de données est un ensemble de données mémorisé par un ordinateur, organisé selon un modèle et accessible à de nombreuses

Plus en détail

LE LANGAGE SQL2 1. INTRODUCTION

LE LANGAGE SQL2 1. INTRODUCTION LE LANGAGE SQL2 1. INTRODUCTION Les serveurs de données relationnels présentent aujourd hui une interface externe sous forme d un langage de recherche et mise à jour, permettant de spécifier les ensembles

Plus en détail

Cours Bases de données

Cours Bases de données Informations sur le cours Cours Bases de données 9 (10) séances de 3h Polycopié (Cours + TD/TP) 3 année (MISI) Antoine Cornuéjols www.lri.fr/~antoine antoine.cornuejols@agroparistech.fr Transparents Disponibles

Plus en détail

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS 1. Introduction Nous allons aborder la notion de surcouche procédurale au sein des SGBDS relationnels tels que Oracle (PLSQL)

Plus en détail

Réplication des données

Réplication des données Réplication des données Christelle Pierkot FMIN 306 : Gestion de données distribuées Année 2009-2010 Echange d information distribuée Grâce à un serveur central Une seule copie cohérente Accès à distance

Plus en détail

Performances. Gestion des serveurs (2/2) Clustering. Grid Computing

Performances. Gestion des serveurs (2/2) Clustering. Grid Computing Présentation d Oracle 10g Chapitre VII Présentation d ORACLE 10g 7.1 Nouvelles fonctionnalités 7.2 Architecture d Oracle 10g 7.3 Outils annexes 7.4 Conclusions 7.1 Nouvelles fonctionnalités Gestion des

Plus en détail

Administration des bases de données. Jean-Yves Antoine http://www.info.univ-tours.fr/~antoine/

Administration des bases de données. Jean-Yves Antoine http://www.info.univ-tours.fr/~antoine/ Administration des bases de données Jean-Yves Antoine http://www.info.univ-tours.fr/~antoine/ Administration des bases de données II Objets avancés dans les bases de données OBJECTIFS 2.1. NOTIONS 2.1.1.

Plus en détail

Plan. Bases de Données. Sources des transparents. Bases de SQL. L3 Info. Chapitre 4 : SQL LDD Le langage de manipulation de données : LMD

Plan. Bases de Données. Sources des transparents. Bases de SQL. L3 Info. Chapitre 4 : SQL LDD Le langage de manipulation de données : LMD Plan Bases de Données L3 Info Céline Rouveirol 2010-2011 Bases de Données 1 / 77 Sources des transparents Bases de Données 2 / 77 Bases de SQL - M.P. Dorville/F. Goasdoué, LRI, Université Paris Sud - V.

Plus en détail

//////////////////////////////////////////////////////////////////// Administration bases de données

//////////////////////////////////////////////////////////////////// Administration bases de données ////////////////////// Administration bases de données / INTRODUCTION Système d informations Un système d'information (SI) est un ensemble organisé de ressources (matériels, logiciels, personnel, données

Plus en détail

Optimisation SQL. Quelques règles de bases

Optimisation SQL. Quelques règles de bases Optimisation SQL Quelques règles de bases Optimisation des ordres SQL Page 2 1. QUELQUES RÈGLES DE BASE POUR DES ORDRES SQL OPTIMISÉS...3 1.1 INTRODUCTION...3 1.2 L OPTIMISEUR ORACLE...3 1.3 OPTIMISEUR

Plus en détail

Les transactions 1/46. I même en cas de panne logicielle ou matérielle. I Concept de transaction. I Gestion de la concurrence : les solutions

Les transactions 1/46. I même en cas de panne logicielle ou matérielle. I Concept de transaction. I Gestion de la concurrence : les solutions 1/46 2/46 Pourquoi? Anne-Cécile Caron Master MAGE - SGBD 1er trimestre 2014-2015 Le concept de transaction va permettre de définir des processus garantissant que l état de la base est toujours cohérent

Plus en détail

Intégrité des données

Intégrité des données . Contraintes d intégrité : Définition et objectif Intégrité des données Définition des contraintes Vérification des contraintes Contrainte d'intégrité : propriété sémantique que doivent respecter les

Plus en détail

SQL. Oracle. pour. 4 e édition. Christian Soutou Avec la participation d Olivier Teste

SQL. Oracle. pour. 4 e édition. Christian Soutou Avec la participation d Olivier Teste Christian Soutou Avec la participation d Olivier Teste SQL pour Oracle 4 e édition Groupe eyrolles, 2004, 2005, 2008, 2010, is BN : 978-2-212-12794-2 Partie III SQL avancé La table suivante organisée en

Plus en détail

Vincent Augusto 2010-2011

Vincent Augusto 2010-2011 le des Systèmes Vincent Augusto École Nationale Supérieure des Mines de Saint-Étienne 2010-2011 Un 1/73 le des Un 2/73 1 2 3 4 le 5 6 7 8 Un le des Un 3/73 Contenu du cours : Techniques pour l analyse

Plus en détail

Cours 3. Développement d une application BD. DBA - Maîtrise ASR - Université Evry

Cours 3. Développement d une application BD. DBA - Maîtrise ASR - Université Evry Cours 3 Développement d une application BD 1 Plan du cours Gestion de la sécurité des données Optimisation des schémas de bases via la dénormalisation Utilisation de vues Placement du code applicatif dans

Plus en détail

Le langage SQL Rappels

Le langage SQL Rappels Le langage SQL Rappels Description du thème : Présentation des principales notions nécessaires pour réaliser des requêtes SQL Mots-clés : Niveau : Bases de données relationnelles, Open Office, champs,

Plus en détail

Du 10 Fév. au 14 Mars 2014

Du 10 Fév. au 14 Mars 2014 Interconnexion des Sites - Design et Implémentation des Réseaux informatiques - Sécurité et Audit des systèmes - IT CATALOGUE DE FORMATION SIS 2014 1 FORMATION ORACLE 10G 11G 10 FEV 2014 DOUALA CAMEROUN

Plus en détail

CHAPITRE 1 ARCHITECTURE

CHAPITRE 1 ARCHITECTURE 07/04/2014 Université des sciences et de la Technologie Houari Boumediene USTHB Alger Département d Informatique ADMINISTRATION ET TUNING DE BASES DE DONNÉES CHAPITRE 1 ARCHITECTURE RESPONSABLE DR K. BOUKHALFA

Plus en détail

Cours Base de données relationnelles. M. Boughanem, IUP STRI

Cours Base de données relationnelles. M. Boughanem, IUP STRI Cours Base de données relationnelles 1 Plan 1. Notions de base 2. Modèle relationnel 3. SQL 2 Notions de base (1) Définition intuitive : une base de données est un ensemble d informations, (fichiers),

Plus en détail

Intégrité sémantique dans les bases de données relationnelles

Intégrité sémantique dans les bases de données relationnelles Intégrité sémantique dans les bases de données relationnelles 1 - Intégrité sémantique Bernard ESPINASSE Professeur à Aix-Marseille Université (AMU Ecole Polytechnique Universitaire de Marseille Fev. 2013

Plus en détail

Présentation du module Base de données spatio-temporelles

Présentation du module Base de données spatio-temporelles Présentation du module Base de données spatio-temporelles S. Lèbre slebre@unistra.fr Université de Strasbourg, département d informatique. Partie 1 : Notion de bases de données (12,5h ) Enjeux et principes

Plus en détail

Quelques aspects du Relationnel-Objet du SGBD Oracle

Quelques aspects du Relationnel-Objet du SGBD Oracle Département informatique de l IUT (de l université) de Bordeaux Cours de Bases de Données : présentation partielle d un SGBD RO 12 août 2015 Olivier Guibert Quelques aspects du Relationnel-Objet du SGBD

Plus en détail

Module BDR Master d Informatique (SAR)

Module BDR Master d Informatique (SAR) Module BDR Master d Informatique (SAR) Cours 6- Bases de données réparties Anne Doucet Anne.Doucet@lip6.fr 1 Bases de Données Réparties Définition Conception Décomposition Fragmentation horizontale et

Plus en détail

Cours Bases de données 2ème année IUT

Cours Bases de données 2ème année IUT Cours Bases de données 2ème année IUT Cours 13 : Organisation d une base de données, ou comment soulever (un peu) le voile Anne Vilnat http://www.limsi.fr/individu/anne/cours Plan 1 Les clusters de table

Plus en détail

14/04/2014. un ensemble d'informations sur un sujet : exhaustif, non redondant, structuré, persistant. Gaëlle PERRIN SID2 Grenoble.

14/04/2014. un ensemble d'informations sur un sujet : exhaustif, non redondant, structuré, persistant. Gaëlle PERRIN SID2 Grenoble. Gaëlle PERRIN SID2 Grenoble Le 10/04/2014 Base de Données (BD) : une grande quantité de données, centralisées ou non, servant pour les besoins d'une ou plusieurs applications, interrogeables et modifiables

Plus en détail

Bases de Données Réparties Concepts et Techniques. Matthieu Exbrayat ULP Strasbourg - Décembre 2007

Bases de Données Réparties Concepts et Techniques. Matthieu Exbrayat ULP Strasbourg - Décembre 2007 Bases de Données Réparties Concepts et Techniques Matthieu Exbrayat ULP Strasbourg - Décembre 2007 1 Définition Une base de données répartie (distribuée) est une base de données logique dont les données

Plus en détail

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES Dossier G11 - Interroger une base de données La base de données Facturation contient tout un ensemble d'informations concernant la facturation de la SAFPB (société anonyme de fabrication de produits de

Plus en détail

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation Base de données S. Lèbre slebre@unistra.fr Université de Strasbourg, département d informatique. Présentation du module Contenu général Notion de bases de données Fondements / Conception Utilisation :

Plus en détail

ORACLE 10G DISTRIBUTION ET REPLICATION. Distribution de données avec Oracle. G. Mopolo-Moké prof. Associé UNSA 2009/ 2010

ORACLE 10G DISTRIBUTION ET REPLICATION. Distribution de données avec Oracle. G. Mopolo-Moké prof. Associé UNSA 2009/ 2010 ORACLE 10G DISTRIBUTION ET REPLICATION Distribution de données avec Oracle G. Mopolo-Moké prof. Associé UNSA 2009/ 2010 1 Plan 12. Distribution de données 12.1 Génération des architectures C/S et Oracle

Plus en détail

Création et Gestion des tables

Création et Gestion des tables Création et Gestion des tables Version 1.0 Z Grégory CASANOVA 2 Sommaire 1 Introduction... 3 2 Pré-requis... 4 3 Les tables... 5 3.1 Les types de données... 5 3.1.1 Les types de données Sql Server... 5

Plus en détail

Présentation du PL/SQL

Présentation du PL/SQL I Présentation du PL/ Copyright Oracle Corporation, 1998. All rights reserved. Objectifs du Cours A la fin de ce chapitre, vous saurez : Décrire l intéret du PL/ Décrire l utilisation du PL/ pour le développeur

Plus en détail

Introduction aux SGBDR

Introduction aux SGBDR 1 Introduction aux SGBDR Pour optimiser une base Oracle, il est important d avoir une idée de la manière dont elle fonctionne. La connaissance des éléments sous-jacents à son fonctionnement permet de mieux

Plus en détail

Auto-évaluation Oracle: cours de base

Auto-évaluation Oracle: cours de base Auto-évaluation Oracle: cours de base Document: F0475Test.fm 14/01/2008 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INTRODUCTION AUTO-ÉVALUATION ORACLE: COURS DE

Plus en détail

Cours Bases de données 2ème année IUT

Cours Bases de données 2ème année IUT Cours Bases de données 2ème année IUT Cours Bilan : Des vues à PL/SQL corrigé Anne Vilnat http://www.limsi.fr/individu/anne/cours Plan 1 Cas exemple 2 Les tables... 3 Vues et index 4 Privilèges 5 Fonctions

Plus en détail

ISC21-1 --- Système d Information Architecture et Administration d un SGBD Compléments SQL

ISC21-1 --- Système d Information Architecture et Administration d un SGBD Compléments SQL ISC21-1 --- Système d Information Architecture et Administration d un SGBD Compléments SQL Jean-Marie Pécatte jean-marie.pecatte@iut-tlse3.fr 16 novembre 2006 ISIS - Jean-Marie PECATTE 1 Valeur de clé

Plus en détail

Session S12 Les bases de l optimisation SQL avec DB2 for i

Session S12 Les bases de l optimisation SQL avec DB2 for i Session S12 Les bases de l optimisation SQL avec DB2 for i C. GRIERE cgriere@fr.ibm.com STG Lab Services IBM i Avril 2012 Les fleurs et les requêtes SQL Lorsque l on veut planter de nouvelles fleurs dans

Plus en détail

Exemple accessible via une interface Web. Bases de données et systèmes de gestion de bases de données. Généralités. Définitions

Exemple accessible via une interface Web. Bases de données et systèmes de gestion de bases de données. Généralités. Définitions Exemple accessible via une interface Web Une base de données consultable en ligne : Bases de données et systèmes de gestion de bases de données The Trans-atlantic slave trade database: http://www.slavevoyages.org/tast/index.faces

Plus en détail

Olivier Mondet http://unidentified-one.net

Olivier Mondet http://unidentified-one.net T-GSI Ch.4 Le Langage SQL LDD, LCD Cet exercice guidé reprend le plan suivis lors de l intervention de formation faite pour l académie de Versailles. L objectif principal visait en la présentation du langage

Plus en détail

Gestion des utilisateurs et de leurs droits

Gestion des utilisateurs et de leurs droits Gestion des utilisateurs et de leurs droits Chap. 12, page 323 à 360 Lors de la création d'un utilisateur vous devez indiquer son nom, ses attributs, son profil, la méthode d'authentification (par le SE

Plus en détail

Les bases de l optimisation SQL avec DB2 for i

Les bases de l optimisation SQL avec DB2 for i Les bases de l optimisation SQL avec DB2 for i Christian GRIERE cgriere@fr.ibm.com Common Romandie 3 mai 2011 Les fleurs et les requêtes Lorsque l on veut planter de nouvelles fleurs dans un jardin il

Plus en détail

Devoir Data WareHouse

Devoir Data WareHouse Université Paris XIII Institut Galilée Master 2-EID BENSI Ahmed CHARIFOU Evelyne Devoir Data WareHouse Optimisation, Transformation et Mise à jour utilisées par un ETL Mr R. NEFOUSSI Année 2007-2008 FICHE

Plus en détail

OpenPaaS Le réseau social d'entreprise

OpenPaaS Le réseau social d'entreprise OpenPaaS Le réseau social d'entreprise Spécification des API datastore SP L2.3.1 Diffusion : Institut MinesTélécom, Télécom SudParis 1 / 12 1OpenPaaS DataBase API : ODBAPI...3 1.1Comparaison des concepts...3

Plus en détail

BD réparties. Bases de Données Réparties. SGBD réparti. Paramètres à considérer

BD réparties. Bases de Données Réparties. SGBD réparti. Paramètres à considérer Bases de Données Réparties Définition Architectures Outils d interface SGBD Réplication SGBD répartis hétérogènes BD réparties Principe : BD locales, accès locaux rapides accès aux autres SGBD du réseau

Plus en détail

Bases de Données Réparties

Bases de Données Réparties Bases de Données Réparties Architecture Mise en œuvre Duplication et Réplication Michel Tuffery BDR : Définition Ensemble de bases de données gérées par des sites différents et apparaissant à l utilisateur

Plus en détail

Master Exploration Informatique des données DataWareHouse

Master Exploration Informatique des données DataWareHouse Master Exploration Informatique des données DataWareHouse Binôme Ahmed BENSI Enseignant tahar ARIB SOMMAIRE I. Conception...1 1. Contexte des contrats...1 2. Contexte des factures...1 II. Modèle physique...2

Plus en détail

A QUOI SERVENT LES BASES DE DONNÉES?

A QUOI SERVENT LES BASES DE DONNÉES? BASE DE DONNÉES OBJET Virginie Sans virginie.sans@irisa.fr A QUOI SERVENT LES BASES DE DONNÉES? Stockage des informations : sur un support informatique pendant une longue période de taille importante accès

Plus en détail

A.E.C. GESTION DES APPLICATIONS TECHNOLOGIE DE L'INFORMATION LEA.BW

A.E.C. GESTION DES APPLICATIONS TECHNOLOGIE DE L'INFORMATION LEA.BW A.E.C. GESTION DES APPLICATIONS TECHNOLOGIE DE L'INFORMATION LEA.BW Groupe : 322 Exploitation des Banques de données 420-PK6-SL (1-2-1) Étape : 3 Professeur Nom: Marcel Aubin Courriel : maubin@cegep-st-laurent.qc.ca

Plus en détail

Introduction aux Bases de Données

Introduction aux Bases de Données Introduction aux Bases de Données I. Bases de données I. Bases de données Les besoins Qu est ce qu un SGBD, une BD Architecture d un SGBD Cycle de vie Plan du cours Exemples classiques d'applications BD

Plus en détail

1/ Présentation de SQL Server :

1/ Présentation de SQL Server : Chapitre II I Vue d ensemble de Microsoft SQL Server Chapitre I : Vue d ensemble de Microsoft SQL Server Module: SQL server Semestre 3 Année: 2010/2011 Sommaire 1/ Présentation de SQL Server 2/ Architerture

Plus en détail

UNION INTERCEPT SELECT WHERE JOINT FROM ACID

UNION INTERCEPT SELECT WHERE JOINT FROM ACID STOCKAGE TRANSACTION, SÉRIALISABILITÉ, NIVEAUX D'ISOLATION 1 BASE RELATIONNELLE Un serveur de données relationnel : Rend compte de la «réalité» sous forme de table Met en relation la perception logique

Plus en détail

MySQL / SQL EXEMPLES

MySQL / SQL EXEMPLES MySQL_exemples_janv04_mpT EXEMPLES 1 MySQL / SQL EXEMPLES Typologie du langage Il est possible d'inclure des requêtes SQL dans un programme écrit dans un autre langage (en langage C par exemple), ainsi

Plus en détail

CREATION WEB DYNAMIQUE

CREATION WEB DYNAMIQUE CREATION WEB DYNAMIQUE IV ) MySQL IV-1 ) Introduction MYSQL dérive directement de SQL (Structured Query Language) qui est un langage de requêtes vers les bases de données relationnelles. Le serveur de

Plus en détail

Bases de données Cours 1 : Généralités sur les bases de données

Bases de données Cours 1 : Généralités sur les bases de données Cours 1 : Généralités sur les bases de données POLYTECH Université d Aix-Marseille odile.papini@univ-amu.fr http://odile.papini.perso.esil.univmed.fr/sources/bd.html Plan du cours 1 1 Qu est ce qu une

Plus en détail

Laboratoires de bases de données. Laboratoire n 6. Programmation SQL. par Danièle BAYERS et Louis SWINNEN

Laboratoires de bases de données. Laboratoire n 6. Programmation SQL. par Danièle BAYERS et Louis SWINNEN Département Informatique Laboratoires de bases de données Laboratoire n 6 Programmation SQL par Danièle BAYERS et Louis SWINNEN Ce document est disponible sous licence Creative Commons indiquant qu il

Plus en détail

Bases de données avancées

Bases de données avancées Bases de données avancées Jean-Yves Antoine LI - Université François Rabelais de Tours Jean-Yves.Antoine@univ-tours.fr UFR Sciences et Techniques IUP SIR Blois Master 1 Bases de Données avancées IUP Blois,

Plus en détail

Configurer la supervision pour une base MS SQL Server Viadéis Services

Configurer la supervision pour une base MS SQL Server Viadéis Services Configurer la supervision pour une base MS SQL Server Référence : 11588 Version N : 2.2 : Créé par : Téléphone : 0811 656 002 Sommaire 1. Création utilisateur MS SQL Server... 3 2. Configuration de l accès

Plus en détail

Introduction aux Bases de Données 2004/2005

Introduction aux Bases de Données 2004/2005 Introduction aux Bases de Données 2004/2005 Chapitre 6: Le langage SQL Ecole Nationale Supérieur de Physique de Strasbourg Christian Wolf christian.wolf@ensps.u-strasbg.fr 6.1 Stockage physique Film numfil

Plus en détail

TP11 - Administration/Tuning

TP11 - Administration/Tuning TP11 - Administration/Tuning MIAGE #3-2006/2007 January 9, 2007 1 Architecture physique d une base Oracle 1.1 La structure physique Une base de données Oracle est composé de fichiers (au sens du système

Plus en détail

Historisation des données

Historisation des données Historisation des données Partie 1 : mode colonne par Frédéric Brouard, alias SQLpro MVP SQL Server Expert langage SQL, SGBDR, modélisation de données Auteur de : SQLpro http://sqlpro.developpez.com/ "SQL",

Plus en détail

Bases de Données. Plan

Bases de Données. Plan Université Mohammed V- Agdal Ecole Mohammadia d'ingénieurs Rabat Bases de Données Mr N.EL FADDOULI 2014-2015 Plan Généralités: Définition de Bases de Données Le modèle relationnel Algèbre relationnelle

Plus en détail

Données Réparties. Thibault BERNARD. thibault.bernard@univ-reims.fr

Données Réparties. Thibault BERNARD. thibault.bernard@univ-reims.fr Données Réparties Thibault BERNARD thibault.bernard@univ-reims.fr Sommaire Introduction Gestion de la concurrence Reprise après panne Gestion des données dupliquées Sommaire Introduction Gestion de la

Plus en détail

TD : Requêtes SQL (BDR.TD2-1) INSA 3IF 2008-2009

TD : Requêtes SQL (BDR.TD2-1) INSA 3IF 2008-2009 TD : Requêtes SQL (BDR.TD2-1) INSA 3IF 2008-2009 Loïc Maisonnasse 1 Objectif Ce TD a pour objectif de vous familiariser avec le langage de requêtes SQL. Et de vous apprendre à écrire des requêtes SQL pour

Plus en détail

Initiation à SQL. Le langage de communication avec une base de données relationnelles. Application avec PostgreSQL. Nathalie Camelin 2011/2012

Initiation à SQL. Le langage de communication avec une base de données relationnelles. Application avec PostgreSQL. Nathalie Camelin 2011/2012 Initiation à SQL Le langage de communication avec une base de données relationnelles Application avec PostgreSQL Nathalie Camelin 2011/2012 Université du Maine Institut Claude Chappe D'après Levy Estève

Plus en détail

Techniques de stockage. Techniques de stockage, P. Rigaux p.1/43

Techniques de stockage. Techniques de stockage, P. Rigaux p.1/43 Techniques de stockage Techniques de stockage, P. Rigaux p.1/43 Techniques de stockage Contenu de ce cours : 1. Stockage de données. Supports, fonctionnement d un disque, technologie RAID 2. Organisation

Plus en détail

Chapitre 10. Architectures des systèmes de gestion de bases de données

Chapitre 10. Architectures des systèmes de gestion de bases de données Chapitre 10 Architectures des systèmes de gestion de bases de données Introduction Les technologies des dernières années ont amené la notion d environnement distribué (dispersions des données). Pour reliér

Plus en détail

FileMaker 13. Guide de référence SQL

FileMaker 13. Guide de référence SQL FileMaker 13 Guide de référence SQL 2013 FileMaker, Inc. Tous droits réservés. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, Californie 95054 FileMaker et Bento sont des marques commerciales de

Plus en détail

Sybase Adaptive Server Enterprise 15

Sybase Adaptive Server Enterprise 15 Sybase Adaptive Server Enterprise 15 Prêt pour Sybase Adaptive Server Enterprise 15? Novembre 2006 Documentation technique # 29 Introduction Cette présentation liste les fonctionnalités importantes de

Plus en détail

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour http://cuiwww.unige.

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour http://cuiwww.unige. : JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java Michel Bonjour http://cuiwww.unige.ch/~bonjour Plan JDBC: API bas niveau pour l accès aux BD (SQL) - Introduction - JDBC et : Java, ODBC, SQL

Plus en détail

2 Serveurs OLAP et introduction au Data Mining

2 Serveurs OLAP et introduction au Data Mining 2-1 2 Serveurs OLAP et introduction au Data Mining 2-2 Création et consultation des cubes en mode client-serveur Serveur OLAP Clients OLAP Clients OLAP 2-3 Intérêt Systèmes serveurs et clients Fonctionnalité

Plus en détail

Partie II Cours 3 (suite) : Sécurité de bases de données

Partie II Cours 3 (suite) : Sécurité de bases de données Partie II Cours 3 (suite) : Sécurité de bases de données ESIL Université de la méditerranée Odile.Papini@esil.univ-mrs.fr http://odile.papini.perso.esil.univmed.fr/sources/ssi.html Plan du cours 1 Introduction

Plus en détail

Module BDR Master d Informatique (SAR)

Module BDR Master d Informatique (SAR) Module BDR Master d Informatique (SAR) Cours 9- Transactions réparties Anne Doucet Anne.Doucet@lip6.fr Transactions réparties Gestion de transactions Transactions dans un système réparti Protocoles de

Plus en détail

Java et les bases de données

Java et les bases de données Michel Bonjour http://cuiwww.unige.ch/~bonjour CENTRE UNIVERSITAIRE D INFORMATIQUE UNIVERSITE DE GENEVE Plan Introduction JDBC: API SQL pour Java - JDBC, Java, ODBC, SQL - Architecture, interfaces, exemples

Plus en détail