Introduction à SQL3 (SQL99)

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

Download "Introduction à SQL3 (SQL99)"

Transcription

1 SELECT quelque chose avec image FROM quelque part ++ WHERE condition ++ Introduction à SQL3 (SQL99) Professeur Serge Miranda Master2 «MBDS» 18/11/12 22:53 BD" (Part IV) 1

2 Contenu I II Présentation des principales caractéristiques de SQL3 (SQL99) niveaux 2 et 3 (définition, manipulation, contrôle, développement) Présentation critique du double paradigme : valeur et pointeur (type REF) dans SQL3 18/11/12 22:53 BD" (Part IV) 2

3 Standard SQL? n ANSI (American National Standard Institute) X3H2 database language committe (X3 division ANSI pour Syst. de Traitement Information) : définition SQL3 de 1991 à 1999 avec 28 membres votants : n ISO : International Standard Organization comprenant ANSI, AFNOR (France) et NIST ( n 4 phases n Working draft (WD) n Committee draft (CD) pour révision ouverte (1/96) n Draft international standard (DIS) (12/98) n International standard (7/99) 3

4 Standard SQL(petite histoire) n SEQUEL 1 (1974) de System R d IBM, SEQUEL 2 (1977) n SQL 1 (Ansi : 1986 ; ISO : 1987) : 100 pages puis révisions en 1989, «SQL89» Avec des systèmes de tests et de validation développés par le NIST (National Institute of Standards and Technology n SQL2 (1992, «SQL92») par X3H2 : 600 pages avec 3 niveaux n Niv. 1 : «Entry» (SQL1), 2: «Intermediate» et 3: «Full» n SQL3 ( Standard en 1999, «SQL99») : 1500 pages n Niveau 1 (SQL2) n SQL2003, SQL2006, SQL2008 4

5 SQL post 2003 : XML ++ n SQL 2006 : ISO/IEC :2006 ways in which SQL can be used in conjunction with XML. It defines ways of importing and storing XML data in an SQL database, manipulating it within the database and publishing both XML and conventional SQL-data in XML form. ² In addition, it enables applications to integrate into their SQL code the use of XQuery, the XML Query Language published by the World Wide Web Consortium (W3C), to concurrently access ordinary SQL-data and XML documents. 5

6 Standard SQL3 n Part1 : Framework n Part2 : Foundation (noyau avec «TDA») n Part3 : SQL/CLI (interface d appel client) n Part4 : SQL/PSM (lang. procédures stockées) n Part5 : SQL/Bindings n Part6 : SQL/XA (moniteur TP) n Part7 : SQL/Temporal 6

7 Rappels : Principales nouveautés SQL2 n + d «orthogonalité» (EX: Tables dérivées dans from..) n + de types : varchar, bit, character sets, date, time, interval n + d opérateurs :Union, Cross et Natural JOIN n Difference (EXCEPT) et Intersection (INTERSECT) n Prédicats MATCH, BETWEEN, LIKE (Exemple :..Where AVNOM Like Airbus% ) n Apparition partielle des domaines : create DOMAINS n NULL n + Définition relationnelle :Clé primaire et intégrité référentielle n Niveaux d isolation pour transactions, CASE 7

8 Modèle «OR»? n Extensions RICE du modèle relationnel : - REUTILISATION (Héritage, polymorphisme) - IDENTITE et références - COMPLEXITE des Objets (Collections et produit) - ENCAPSULATION (types et fonctions utilisateur) 8

9 Concept OBJET dans SQL3? n Dualité de structures de données SQL3 pour CLASSE D OBJETS : «TABLES» (Relations) et «TYPES» (Domaines) : CREATE TABLE CREATE TYPE Note : un concept de trop (!) ou préparer Date et SQL4? + possibilité de travailler proprement! Persistance automatique avec TABLE! 9

10 Classe OBJET dans SQL3 avec TABLE n 1) «TABLE» : Create table structure de données de base (relation NF2 possible) pour le stockage en mémoire persistante et la manipulation ensembliste avec VALEURS et POINTEURS (double paradigme!) 2 types de TABLE : - «Table Objet» possible (clause «CREATE TABLE With Identity») è ROWID è Type REF possible - Table «relationnelle» sinon 10

11 Classe OBJET dans SQL3 avec TYPE 2) «TYPE» : Create type (classe d objets) 2 types de TYPE : - («VALUE») ADT n Pas d OID, valeur pour attribut dans relation n Types de base - («OBJECT») ADT (Create type with OID <visible>) n OID pour chaque instance (pas d OID par défaut) n Types possibles pour attributs ou autres ADT, variables SQL n Type REF (avec OID) possible associé 11

12 «Type» de SQL3 vs «Domaine» n «Type» de SQL3 n Structuration possible avec attributs (Constructeur ROW,..) comme une «table» SQL n Pas de différence structurelle avec «tables» sauf la persistence n «Domaine» de Codd/Date n «VALEURS» uniquement (pouvant être de complexité arbitraire) n «Domaine «de Date : «Type de Données Sémantique qui vérifie les propriétés RICE» 12

13 SQL3 R : * HERITAGE MULTIPLE hybride (clause"under" pour les TABLES et les TYPES) * POLYMORPHISME (Surcharge) et TEMPLATES (types génériques/ paramétrés) 13

14 SQL3 I : (dualité de structure, dualité d OID) : Pour les tables : "ROW ID" (explicite- "with identity") pour encapsulation de tuple et type REF Pour les TYPES : "Object ID" («with OID visible» ) pour les classes d objets 14

15 SQL3 C : TYPES (ADT) et TABLES ADT : types de données complexe défini par l'utilisateur : "OBJECT ADT" (avec OID) : classe d objets " VALUE ADT» (sans OID) : type de base Support d objets complexes (tables ou ADT) : - Constructeur de Collections : "SET", "LIST", "MULTISET" (agrégation de tables) - Constructeur tuple/produit cartésien (ROW) 15

16 SQL3 C : TYPES (ADT) et TABLES TABLES avec - «With identity» (ROWID) : classe d objets - sans ROWID : table relationnelle des attributs "stored" ou "virtual" ("updatable", "read-only", "constant") 16

17 SQL3 E * PSM (Persistent Stored Module) : regroupement de routines dans schéma objet/procédures STOCKEES * "Routines"(SQL ou externe) associées aux tables/ ADT/base : -"Functions"("Actor», «Constructor» ou "destructor") -"Procedures" * 3 Niveaux d'encapsulation pour un ADT (idem C ++) ("Private","Protected«(sous type), "Public") 17

18 SQL3? n Un langage de définition de types/tables n Un langage de programmation (objets) n Un langage de requêtes (OR) n Un langage de communication n Un langage temporel 18

19 SQL3 (Exemple Définition) DEUX possibilités pour une entité conceptuelle / CLASSE OBJET : table ou type (ADT) ayant chacune un OID système possible 1- CREATE TABLE Exemple : Create Table Personne (Nom char (20), Sexe char (1), Age integer Conjoint REF Personne WITH IDENTITY) notes : - WITH IDENTITY (è ROWID ) : Des Routines peuvent être associées aux tables pour implanter des opérations encapsulant les lignes + type REF possible sur la table Personne 19

20 SQL3 (Exemple) 2- CREATE <OBJECT> TYPE (With OID ) Exemple: Create TYPE personne_type with OID <visible> (nom varchar not null, sexe constant, age virtual... date-naissance date, ACTOR FUNCTION age (:P personne_type) return real... DESTRUCTOR FUNCTION enlever_personne..; End function) 20

21 SQL3 (Exemple) (suite create personne_type ) CREATE TABLE Personnes (donnees_personne : personne_type) n La seule façon qu'une instance de TDA soit stockée de manière persistante dans la BD, c est de la stocker comme valeur de colonne d'une table (seule différence importante entre TABLE OBJET et ADT OBJET!) 21

22 A partir d Oracle 9 SQL3 (Exemple) - TABLE «OBJET» : Create table T of type t Exemple : Create type personne_type as object (P#, ) Create table personnes of type personne_type (avec OID, faisant de la table une table objet) - distinction OID (16 Octets, immuable, non indexable) et ROWID (10 octets, non immuable, indexable) - PKOID (pseudo OID sur les vues : «Primary key OID»)/ PKREF : une vue peut servir à créer un OID sur une table relationnelle (vision objet..de TABLES) 22

23 SQL3 (Exemple) : héritage 3- <à partir de -1- Create Table Personne> CREATE TABLE Pilote UNDER Personne (NbreHeures integer) <UNDER pour héritage structurel et opérationnel> 23

24 SQL3 (Exemple) : type REF CREATE TABLE Vol (Vol# Char(4), PL# REFERENCE Pilote (PL#) <clé étrangère : valeur clé primaire avec manipulation relationnelle> REFPIL REF Pilote <type REF : ROWID, pointeur ligne avec opérateurs spécifiques!>...) n La valeur de l attribut REFPIL est un RowID/pointeurligne et non plus une valeur de clé primaire ; opérateur DEREF associé aux pointeurs (pas SQL!) n La clé étrangère et le type REF peuvent cohabiter dans une même table (cf Oracle 9) 24

25 SQL3 (Exemple 2D ) CREATE (OBJECT) TYPE RECTANGLE with OID (x1, y1, x2, y2 real) Actor function MAKE_RECT... return RECTANGLE ; <Point dans rectangle?> Actor function IS_IN (x,y real, R RECTANGLE) if (R.x1<=x and x<=r.x2) and (R.y1<=y and y<=r.y2) then return TRUE else FALSE ; 25

26 SQL3 (Exemple 2D ) <côté dans rectangle?> Actor function ONE_SIDE_IS_IN (R0, R RECTANGLE) if (IS_IN (R.x1, R.y1, R0) or IS_IN(R.x2, R.y1, R0) or IS_IN (R.x2, R.y2, R0) or IS_IN (R.x1, R.y2, R0) ) then return TRUE else FALSE; 26

27 SQL3 Définition (Exemple 2D-suite) <intersection non vide de deux rectangles?> Actor function OVERLAP (R1, R2 RECTANGLE) if ONE_SIDE_IS_IN (R1 R2) then return TRUE else if ONE_SIDE_IS_IN (R2,R1) then return TRUE else return FALSE; 27

28 SQL3 Manipulation (Exemple 2D-suite) Create table RECTANGLES (datarectangle RECTANGLE) requête SQL3 SELECT * FROM RECTANGLES R WHERE OVERLAP (R, MAKE_RECT (0,1,0,1)) = TRUE ; 28

29 SQL3 (Présentation des nouveautés, Niveaux 2 et 3) Définition Manipulation Contrôle Développement/Programmation 29

30 SQL3 (Définition) : Types de Types de Base n NOMBRES : base Integer, Smallint, Numeric, Numeric (P) et Numeric (P,S), Decimal (P) et Decimal (P,S) (Precision, Scale) Real, Double Precision et Float n Chaînes de caractères : Character, character varying, national character n Chaîne de bits : Bit, Bit Varying n Date : date, time, timestamp et Intervalle temporel : Interval day/month/ year n Indéfini (NULL) et logique (boolean) 30

31 SQL3 (Définition) : Nouveaux types Enumération, booléen, Character LOB (CLOB), binary LOB (BLOB), Constructeur tuple/produit cartésien : row, Constructeur de collection : set, multiset et list, Distinct (ud) types Create distinct type monnaieeuro as integer (9) Create distinct type monnaieusa as integer (9) 31

32 SQL3 (Définition) Constructeur ROW (produit cartésien) Constructeur ROW (expression) soit au niveau des domaines soit directement au niveau des attributs d une table ou d un type n Create domain adresse ROW (numero.., rue.., ville,.. Zip..) n Create ROW type adresse (numero, rue, ville, zip) n Create table/type Pilote (, Adresse ROW( numero varchar (3), rue varchar (12),..) ROW à utiliser dans INSERT avec opérateur «..» pour accès à sous partie (Note : «.» dans Oracle 9) ROW permet d avoir des tables imbriquées dans des tables (NF2) idem attribut de type table/adt 32

33 SQL3 (Définition) : ADT Rappel : ADT (type de données «abstrait»/abstract data type) 1- Déclaration (attributs, méthodes) : «type specification» avec «member» pour méthodes dans Oracle 9 2- Implantation (méthodes) : «type body» dans Oracle n Concept de classe d objets avec le concept d ADT avec OID (create type with OID ) qui comprend 2 parties visibles : n Les spécifications des attributs n les méthodes/routines associées (base, type ou table) : «functions» (Actor/ Constructor/ Destructor) ou «procedures» 33

34 SQL3 (Définition) : ADT CREATE TYPE <nom ADT> <corps de l ADT> <corps de l ADT> <OID option> ::= WITH OID (VISIBLE) <subtype clause> ::= UNDER <supertype clause> possibilité d héritage multiple avec résolution explicite <member list> <column definition> : attributs publics ou privés <function declaration> : opérations publiques <operator name list> : opérateurs surchargés <equals clause>, <less-than clause> : définition des ordres <cast clause> : fonction de conversion de types 34

35 SQL3 (Définition) : ADT et CONSTRUCTOR Création instance de TDA par une fonction CONSTRUCTOR Exemple pour TDA Adresse : CONSTRUCTOR FUNCTION adresse-t () RETURNS adresse-t Declare : a adresse-t Begin New : a ; Set : a.numero = null ; Set : a.ville = null ; return a ; END; END Function <CONSTRUCTOR : Fonction spéciale ayant le même nom que le type> 35

36 SQL3 (Définition) : ADT et CONSTRUCTOR Exemple : Create table pilote of type pilote-t Insert into pilote values (pilote-t (1, Serge, adresse-t (MBDS, Sophia, )) Update pilote p set p.adresse = adresse-t (MBDS, Sophia Antipolis, ) where p.nom = Serge ; 36

37 SQL3 (Définition) : ADT et fonctions Suppression instance d un TDA par fonction DESTRUCTOR Exemple : DESTRUCTOR FUNCTION sup-adresse (:a adresse) RETURNS adresse BEGIN Destroy : a ; Return : a; END; END Function 37

38 SQL3 (Définition) : ADT n Accès aux attributs d un TDA : n fonctions OBSERVER (lecture), MUTATOR (mise à jour) <génération automatique fonction OBSERVER par déclaration de variable> Exemple : Declare a adresse Declare V varchar (12) V = ville (a) ; <fonction OBSERVER «ville»> <mutator> : ville (a, Valbonne ) ; Note : ces fonctions sont généralement intégrées dans SQL3 (Update..) Tout attribut «A1 du type t du TDA nomadt» a une fonction OBSERVER implicite : «(Function) A1 (arg1/nomadt) Returns t» 38

39 SQL3 (Définition) : ADT n Accès aux attributs d un TDA : Notation «..» du type : <(nom variable ADT)..Fonction> Exemples : - a..ville pour invoquer la fonction ville du TDA Adresse - Pour un TDA Pilote (variable P) ayant un attribut «domicile» défini sur le TDA «Adresse», on peut écrire avec les déclarations ci dessus : (set ) v= P..domicile..ville 39

40 SQL3 (Définition) : ADT n Fonction CAST sur TDA pour modifier type Exemple: WHERE VOL..HA>> (CAST (VOL..HD AS Date) + 4 Hours) 40

41 SQL3 (Définition) : ADT n Utilisation d un ADT? n Type d un Attribut d un autre ADT n Exemple : remplacer le type DECIMAL du champ SALAIRE par un TDA SALAIRE pour des raisons de sécurité.. n Sous type d un autre ADT (Clause UNDER) n Exemple : Create type pilote under employe n Types d un paramètre dans une routine n Exemple : Create function salaire (p pilote) returns Decimal (6,2) Return(..) ; 41

42 SQL3 (Définition) : ADT n Utilisation d un ADT? n Type de variable SQL n Exemple : declare vp pilote puis Select * Into vp From Pilote Where.. n Type source d un type DISTINCT n Type d un attribut d une table ou d un domaine (sémantique additionnelle avec contraintes Check ) n Exemple : Create domain Paris-adresse as adresse Check (value (a.ville) = Paris ) default null; 42

43 SQL3 (Définition) : Déclencheur n Définition de déclencheur : CREATE TRIGGER BEFORE/ AFTER <événement> of <Att> on <Table> REFERENCING OLD/NEW as <x> <action> n «BEFORE/AFTER : possibilité de déclencher avant ou après l'événement n <événement> = INSERT, UPDATE, DELETE n possibilité de référencer les valeurs avant ou après mise à jour («REFERENCING OLD/NEW as») n <action> = opération sur table (INSERT..) avec condition possible («WHEN» «WHERE») 43

44 SQL3 (Définition) : Déclencheur (trigger) n Exemple1 : PILOTE (ID int, salaire float) CUMUL (ID int, Augmentation float) Définition d un déclencheur après toute mise à jour du champ «salaire» de PILOTE qui met à jour l attribut «augmentation» de la relation CUMUL CREATE TRIGGER AFTER UPDATE OF salaire ON pilote REFERENCING OLD AS ancien_salaire, NEW AS nouveau_salaire UPDATE CUMUL SET Augmentation = Augmentation + nouveau_salaire - ancien_salaire WHERE ID = pilote.id 44

45 SQL3 (Définition) : Déclencheur (trigger) n EXEMPLE 2 : Définition d un déclencheur après toute mise à jour de l attribut HA de Vol avec mise à jour de la vue VOLINDIRECT Create Trigger T1 after update of HA on Vol Referencing old as ancienneha new as nouvelleha Update volindirect set.(nouvelleha- ancienneha) ; 45

46 SQL3 (Définition) : TABLES n CREATE TABLE avec clauses n with identity (è RowID et Type REF dessus), n on commit, n global/local/temporary, n le type REF et les Objets lignes (RowID), n les collections pour les attributs multivalués (peut être dans SQL4) (ARRAY, SET, MULTISET et LIST), n constant/updatable n clauses under (héritage) with, n constructeur de table avec VALUES (expression) 46

47 SQL3 (Définition) : type REF n Type REF pour localiser une instance de TDA ou un tuple via leur ROWID (type et table «objets») - valeur de Référence obtenue par l opérateur de référencement REF («à», «.» dans Oracle) 47

48 SQL3 (Définition) : TABLES n Une TABLE peut avoir des attributs n définis sur un TDA n Complexes : Multivalués (SET, LIST) ou produit (ROW) n de type REF n SOUS-TABLE : Une TABLE peut être obtenue par héritage ( héritage multiple) EX : Create type PILOTE_EN_FORMATION under PILOTE, FORMATION (..) Note : le sous type Pilote_en_formation hérite des attributs de Pilote et de Formation (création automatique type ROW de Pilote) 48

49 SQL3 (Définition) : TABLES Possibilité n d'utiliser un type prédéfini pour la table (Vision tabulaire d une classe ; persistance des objets d une classe) EX : CREATE TABLE pilotes OF t-pilote ; Possibilité de définir un nouveau type Le type est celui des tuples de la table EX : CREATE TABLE Constructeurs OF NEW TYPE Constructeur (nom VARCHAR, total MONEY) ; 49

50 SQL3 (Définition) : TABLES Intégrité de domaine (NULL, NOT NULL, Check) Intégrité référentielle - Restrict, Cascade, Set Null, Set Default + - «NO ACTION» : Idem Restrict mais test à la fin du module SQL Tables de base et temporaires CREATE TABLE n Persistante (table de base) : Create/drop Table n Global temporary : une référence dans SQL crée une instance distincte; dans session SQL ayant plusieurs modules, transactions n Local temporary 50

51 SQL3 (Définition) : TABLES Les instances d un TDA deviennent persistantes par association avec une table de base (en attendant idem «table temporaire») Exemple : Create type Pilotedessai (..) Create table Pilote ( pil Pilotedessai, salaire Decimal (6,2),..) Création instance par : Declare : p Pilotedessai ; Begin new : p set : p.numero = 100 set : p.nom = paul Return :p; 51 END

52 SQL3 (Définition) Exemple : Create table AVION <ou CreateType AVION> ( AV# Integer, AVNOM varchar (12), AV-PHOTO blob (600 K), CONTRAT clob (60K), REFPILOTE REF Pilote <Pilote attitré> Private PRIX Decimal (9,2) CAP SET Integer, <ensemble de capacités> LOC SET adresse, <Ensemble d adresses ; insertion avec SET (ROW(.. ))> REVISION boolean with identity) Exercice : «Représenter en schéma ODMG cette table SQL3 (With Identitry dans AVIONpermet de représenter le pointeur INVERSE) 52

53 SQL3 (Définition) CREATE TABLE Vol (Vol# Char(4),... PL# REFERENCE Pilote (PL#) <clé étrangère : valeur clé primaire> REFPIL REF Pilote <type REF : ROWID>...) 53

54 SQL3 (Manipulation) : Accès TDA Exemple : Quels sont les numéros d avion qui sont en révision avec leur contrat et leurs villes de localisation? Select AV#, CONTRAT, LOC..VILLE From AVION Where REVISION = true ; Rappel : Notation «..» utilisée aussi pour obtenir le champ/fonction d un ADT 54

55 SQL3 (Manipulation) : Accès TDA Exemples avec ADT Pilote : Pilotes habitant Nice? Select * From Pilote P Where P..ADR..ville = Nice ; Update pilote Set pilote..adr..ville = ville ( Toulouse ) Where pil# = 100 ; 55

56 SQL3 (Manipulation) : JOIN n Clause from avec produit cartésien (Jointure CROSS ) et orthogonalité EX : Select * From (Select * From (((T1 Union T2) INTERSECT T3) EXCEPT T4)) n Join NATURAL sur attributs ayant le même nom n Jointure (T1 join T2) avec clauses using foreign key, using primary key, using constraint et recursive union n Quantificateurs EXISTENTIEL et UNIVERSEL : for some/all table-res (condition) 56

57 Exemples 57

58 SQL3 (Manipulation) : Récursion Requêtes récursives pour parcours hiérarchique avec possibilités de limiter la profondeur (et les cycles avec la clause CYCLE) avec type de recherche comme DEPTH FIRST ou BREADTH FIRST EX : Sélectionner tous les vols indirects au départ de Nice Create view RECURSIVE Vol-IND (VD, VA) AS (Select VD, VA from Vol union Select IN.VD, OUT.VA From Vol IN, Vol OUT Where IN.VA = OUT.VD and IN.HA < OUT.HD and IN.Connections <3 )ou Search Breadth First by VD set ) Select * From VOL-IND Where VD = Nice ; 58

59 SQL3 (Manipulation) : appel de fonctions et opérateurs Appel de fonctions EX : Selectionner les pilotes qui habitent à moins de 1 KM de Jean? SELECT r.nom FROM pilote j, pilote r WHERE j.nom = 'Jean' and distance(j.adr,r.adr) < 1; 59

60 SQL3 (Manipulation) : appel de fonctions et opérateurs Appel d'opérateurs : EX : Sélectionner les noms des avions localisés à Nice avec leurs photos (zoom de 50%)? SELECT a.avnom, Zoom (a.photo, 50) FROM avion a WHERE a.loc..ville = «Nice» ; 60

61 SQL3 (Contrôle) : TRANSACTIONS Début et fin explicites pour transactions : START/ COMMIT TRANSACTION avec ISOLATION LEVEL (Read uncommitted, read committed, repeatable read, serializable) et 2 modes d accès (read only, read write) SET LOCAL TRANSACTION (pour transactions réparties) SET CONSTRAINTS (deferred, immediate) transactions en mode asynchrone avec async, savepoint, rollback to savepoint.. Spécification SQL/XA défini par X/Open 61

62 SQL3 (Contrôle) : Sécurité des données - create assertion avec clauses after et before - intégrité référentielle (restrict ) - définition de rôles (create role) avec GRANT/REVOKE possibles - Privileges : Select, Delete, Update, Insert, References (vues), Usage (modif. Schéma), Trigger, Under, Execute, ALL 62

63 SQL3 (Manipulation) : Langage HOTE Langage hôte intégré «complet» : - Contrôle de boucle avec WHILE, IF THEN ELSE, REPEAT, FOR et LOOP (LEAVE), CASE - déclaration de variables et assignations - «Routines» définies dans le langage hôte : «Functions» ou «Procédures» : SPECIFIC FUNCTION/ PROCEDURE - Récursion linéaire possible entre procédures 63

64 SQL3 (Manipulation) : Langage HOTE Exemple : Envois de mails aux étudiants du Master Miage et du Master MBDS sur le programme de DB Forum IF (Select Diplome From Etudiants Where Club= «DB Forum») = MBDS Then insert into send_mail (Master ) Elseif (Select Diplôme ) = MIAGE Then Insert into send_mail (Master..) CASE When valeur1 Then.. When valeur2 Then Else <SQL> End Case 64

65 SQL3 (Manipulation) : langage hôte Langage d Exception vis à vis du code SQLSTATE avec : - 3 possibilités d exécution : CONTINUE, EXIT et UNDO - la définition de conditions d exception avec SIGNAL/RESIGNAL Possibilité de structuration en MODULES : «modules» :{procedures} 65

66 SQL3 (Manipulation) : SQL3 PSM Langage de programmation de procédures : «Procédures stockées» de SQL3 pour ADT en plus des fonctions et des procédures : PSM : «Persistent Stored Modules» déclaration de variables et Assignation conditions CASE, IF boucles LOOP, FOR exceptions SIGNAL, RESIGNAL possibilité de procédures et fonctions externes et de structuration en modules 66

67 SQL3 (Manipulation) : SQL3 PSM Procédures stockées de SQL3 PSM - Fonctions (monovaluées) : «actor» ou «destructor» - Procédures qui ne retournent pas de valeurs - PSM qui peut contenir des fonctions et des procédures Exemple Create module actions_pilote Procedure Affectation (..) Begin.. End Procedure Vacances ( ) Begin End Procedure Formation ( ) Begin End Appel de procédure par CALL EXEC SQL CALL actions_pilotes.affectation ( IT100, Paris, Nice,..) 67

68 II Présentation critique du double paradigme : valeur et pointeur (type REF) dans SQL3! 18/11/12 22:53 BD" (Part IV) 68

69 SQL3 et 3ième Manifeste de Date (96,99) " It seems clear that the correct mapping of encapsulated objects into the relational data model is that classes of objects correspond to DOMAINS (not to rows) «DON CHAMBERLIN, membre SQL3, IBM, Avril 97 (InfoDB, Vol 10, numéro 6, p.25) 69

70 Modèle OR de Date Modèle V1 de T. Codd Modèle OR de C.Date Structure Opérateurs Structures Opérateurs de données de données RELATIONS SQL2 RELATIONS SQL3 DOMAINES / CLASSES (D) Signature RICE dans «domaines» Hiérarchie de Domaines.. Opérateurs spécifiques dans SELECT ou WHERE 70

71 Rappels programmation : VALEURS vs VARIABLES vs POINTEURS VALEUR? «constante non modifiable (au sens philosophique)» VARIABLE? Toute variable possède un NOM, une VALEUR et une ADR mémoire ; VARIABLE := ( NOM, VALEUR, ADR) POINTEUR? type de variable qui contient l ADR d une autre variable comme valeur («indirection») 71

72 Retour sur le modèle Relationnel : TABLES vs RELVARS 1-Relations/TABLES («valeurs») vs Relations/VARIABLES ( «RELVARS» ) (DATE95, 99) «RELATION» : double signification : «variable» et «valeur»! : 1-"En-tête"(ensemble de paires <noms de colonne, noms de domaines>) <--> PREDICAT : le «RELVAR/RELATION» 2-"Corps" (ensemble de tuples de valeurs pas de pointeurs, conformes à l'en tête) <-->TABLE DE VALEURS avec une volatilité importante : la «TABLE/RELATION» 72

73 Retour sur le modèle Relationnel "Declare N Integer"? N est une variable entière dont les valeurs sont des entiers "CREATE TABLE T "? T est une variable relation (RELVAR) dont les valeurs sont des tables (tuples) (TABLES/RELATIONS) 73

74 Retour sur le modèle relationnel DOMAINES 2- "DOMAINES"! "DOMAINE" (CODD70) : TYPE de données "sémantique" défini par le système ou par l'utilisateur ==> opérateurs pouvant être associés ENCAPSULATION de facto ==> TYPAGE «FORT» (toute valeur possède un domaine/type) 74

75 «DOMAINES»? 1) Aucune restriction sur la complexité des valeurs des Domaines dans leur définition (==> domaines de graphes de sons, videos,..)! Exemple : Domaine des buts (séquences Vidéo) des meilleurs joueurs de football du monde (avec typologie forte) 2) Aucune interdiction d associer un ensemble d opérateurs spécifiques 3 ) Aucune interdiction de construire une hiérarchie de domaines DOMAINES = Naturellement, Classes d' OBJETS dans la terminologie OO! ( Propriétés RICE au niveau des domaines) : «TYPE DE DONNEES sémantique qui vérifie les propriétés RICE» (DATE et 3ieme manifeste) 75

76 «RELATIONS» (TABLES ou RELVARS) vs «DOMAINES» «Domaine» : seul niveau d abstraction SEMANTIQUE incontournable entre les «valeurs» et les «relations» candidat NATUREL au support de CLASSES d OBJETS (propriété RICE) è Ni les «TABLES», ni les «RELVARS», ne peuvent remplacer/emuler le concept de «DOMAINES» 76

77 Double CONSTAT! Les Relations/TABLES ne sont pas des «Domaines»! Les Relations/RELVARS ne sont pas des «Domaines»! 77

78 Retour sur le modèle Relationnel TABLES vs DOMAINES 3- RELATIONS/TABLES et DOMAINES : DISTINCTS Domaine : valeurs potentielles (" type") vs Relation /table (Attributs): valeurs réelles Les RELATIONS/TABLES sont dépendantes du temps vs les valeurs de DOMAINE sont "éternelles" 78

79 Retour sur le modèle Relationnel TABLES vs DOMAINES domaines statiques vs relations/tables dynamiques Une «relation/table» A un type (le RELVAR) alors qu'un «domaine» EST un type 79

80 Retour sur le modèle Relationnel RELVAR vs DOMAINES Un domaine comprend des valeurs de complexité arbitraire alors qu'un RELVAR contient des tuples EX : Domaine DVille contient la valeur " Paris " alors que le Relvar RVille contient le tuple <Dville : PARIS> Un RELVAR n'encapsule pas des valeurs à la différence des domaines 80

81 Retour sur le modèle Relationnel RELVAR vs DOMAINES 4- Les RELVARS ne sont pas candidats naturels à être des CLASSES d'objets Exemple de RICE au niveau des RELVARS (Manifeste de Stonebraker /SQL3 Avec Table/Classe) : CREATE TABLE PERSONNE (SS# CHAR(9), DATE-NAISS DATE, ADDRESSE CHAR (50)); 81

82 Retour sur le modèle Relationnel (con't) CREATE TABLE EMP UNDER PERSONNE ( ENOM CHAR(20), SAL NUMERIC, LOISIRS SET_OF (LOISIR) < REF ds SQL3> TRAVAILLE_POUR (COMPAGNIE) <Ref ds SQL3> METHODES RETRAITE (..): NUMERIC ; 82

83 Retour sur le modèle Relationnel (con't) CREATE TABLE LOISIR (NOM... ); CREATE TABLE COMPAGNIE (NOM CHAR(20), LOCATION CHAR (12)); 83

84 Besoins d'extensions du Langage de requête - expression de chemin EX.: EMP.TRAVAILLE_POUR.LOCATION - expression imbriquée EX.: EMP.LOISIRS.NOM 84

85 Retour sur le modèle Relationnel (con't) - Opérateurs de comparaison de relations EX.: SUBSET,.. - Opérateurs de cheminement dans un graphe - Appel de méthodes dans les expressions 85

86 Retour sur le modèle Relationnel (con't) PROBLEMES? - Certaines colonnes ont des vrais TYPES de DONNEES (CHAR(20) : valeurs potentielles..) d'autres non, valeurs réelles (COMPAGNIE ) - Classe RELVAR avec des variables PUBLIC sans nécessairement des méthodes (l'inverse dans les classes «pures» OO ) 86 -

87 Retour sur le modèle Relationnel (con't) Table incorrecte d un point de vue structure informatique (cf 3NF) et structure sémantique! - les objets lignes peuvent... contenir d'autres objets (EX.: les objets EMP contiennent des objets COMPAGNIE) en fait des POINTEURS vers ces objets (==> anomalie de mise à jour des lignes ) - Mise à jour des objets contenus : cascade? 87

88 Retour sur le modèle Relationnel (con't) - PB : une "relation" contient non seulement des valeurs mais des...pointeurs ==> ré-interprétation de l'algebre pour des objets imbriqués! - héritage des méthodes pour les relations dérivées via les opérateurs de l'algèbre? (EX: PROJ (SALAIRE, COMPAGNIE) avec RETRAITE?) Où sont les domaines? 88

89 Type REF (Rappels) VALEURS vs VARIABLES? (cf PB Relation/TABLES vs Relations/RELVAR) VARIABLE := (NOM, V, ADR) VALEURS vs POINTEURS? (Modèle Relationnel vs Modèle de Données Codasyl/OO) VALEUR : éternelle! (EX: "Amour") vs VARIABLE : modifiable et dépendante du temps 89

90 Type REF (con't) Les Variables ont des adresses (pas les valeurs) : è TYPE «ADRESSE» avec 2 opérateurs de base : * Référencement/adressage ("referencing") : và adr en C : ptr = &v; (avec char v; et char *ptr ; alors v=6; ou *ptr=6;) en PL/1 DECLARE N INTEGER DECLARE P POINTER P= ADDR (N) * Déréférencement ("dereferencing") : adrà v en C : *A ; en PL/1 : A--> V 90

91 Extensions Pointeurs ds SQL3 Trois extensions de SQL2 (pour les tables) : ROWID (ptr ligne), type REF, «-->» 1- Pointeur Ligne : Identifiant (système) de tuple (ROW ID) L'opérateur associé de référencement est "&ROW" En Oracle 9, cet opérateur s appelle ref Exemple : Select ref (p) from pilote p where pnom = serge ; 91

92 Type REF de SQL3 2- Type "REF" : les valeurs d'une colonne peuvent être des POINTEURS ligne ("adresses de tuples" /ROWID) d'une autre relation. Exemple : Dans la table pilote, un attribut "refavion" vatraduire le lien N:1 entre Pilote et Avion correspondant à "l'avion préféré d'un pilote" refavion REF (avion_type) SCOPE FOR refavion IS avion refavion contient pour un pilote donné, le ROWID de l'avion préféré 92

93 Type REF de SQL3 Type "REF" dès Oracle 9 : - le type REF est introduit dans les TABLES ou les TYPES (qui peuvent exister avec ou sans OID) - opérateurs associés : «ref» et «deref» - OID, ROWID, PKID/PKREF Note : en dehors du stockage persistant des valeurs de TABLES, aucune différence entre TYPE et CLASSE! 93

94 1) Opérateur de REFERENCEMENT : «&ROW» (REF en Oracle) VALEUR en entrée : POINTEUR-Ligne en sortie Utilisation réduite en SQL3 sauf pour INSERTION de tuples 2) Opérateur de DEREFERENCEMENT : «à» (DEREF en Oracle) POINTEUR LIGNE en ENTR2E (ROWID) : VALEURS en Sortie Exploitable dans SELECT/WHERE Opérateur retenu dans RECHERCHE INFORMATION REFXè VALEURS 94

95 Opérateur de déréferencement de SQL3 3- Opérateur de déréférencement noté "-->» Exemple : "refavion --> av#, avnom" forme abrégée pour : SELECT av#, avnom FROM avion A WHERE A.&ROW = refavion ; Dans Oracle 9 :.Where ref (A) = refavion ; Notation. possible dans Oracle 9 pour «à» 95

96 Exemples avec type de données REF de SQL3 pilote (pl#, plnom, adr, refavion ) avion (av#, avnom, cap, loc) <refavion de type REF : "refavion" contient des valeurs d'adresses de tuples (ROWID) d'avions pour traduire l avion préféré d'un pilote> 96

97 Exemples avec type de données REF de SQL3 Q1 : Quels sont les numéros des avions préférés par les pilotes habitant 'Nice'? SELECT p.refavion-->av# <opérateur de déréférencement> FROM pilote p WHERE p.adr = 'Nice' ; 97

98 Exemples avec type de données REF de SQL3 Q2 (symétrique) : Quels sont les noms des pilotes préférant des Airbus A300? SELECT FROM WHERE p.plnom pilote p p.refavion--> avnom='a300'; 98

99 Exemple de jointure externe avec "-->" Q : "pour chaque pilote habitant Nice, donner le nom du pilote avec le numéro et le nom de l avion préféré (pour ceux qui en ont un) " 99

100 Exemple de jointure externe avec "-->" SELECT p.plnom, p.refavion-->(av#, Avnom) FROM Pilote p WHERE p.adr = 'Nice' ; 100

101 Exemple1 Nous supposons que chaque avion a un pilote attitré unique (nous rajoutons l'attribut refpilote dans la relation Avion) "Quels sont les noms des pilotes qui préfèrent un avion dont le pilote attitré habite Nice?" La requête SQL3 s'écrit alors : SELECT p.plnom FROM Pilote p WHERE p.refavion -->refpilote -->Adr = 'Nice' ; 101

102 Noms des pilotes attitrés d un A300 qui préfèrent un B747? 102

103 Noms des pilotes attitrés d un A300 qui préfèrent un B747? Select a.refpiloteè Plnom From Avion a Where a.avnom=a300 and a.refpiloteè Refavionè Avnom=B747 ; 103

104 Exemple double jointure Attributs de type REF à la place (ou en plus) des clés étrangères : REFpil et REFav dans la relation VOL Quels sont les noms des pilotes qui conduisent un Airbus? SELECT FROM v.refpil-->pilnom vol v WHERE v.refav-->avnom = Airbus ; 104

105 Exemple autojointure Rajout attribut REFavbis (pour avion de rechange) dans la relation avion Quels sont les noms des pilotes qui conduisent un avion dont l avion de rechange est localisé à Nice? SELECT v.refpil à plnom FROM vol v WHERE v.refav-->refavbis-->loc = Nice ; 105

106 Exemple en SQL2 En SQL2, en remplaçant refavion et refpilote par des clés étrangères AV# et PL#et refavbis par RA : SELECT P.PNOM FROM Pilote P, Avion A1 A2, Vol V WHERE P.PL#= V.PL# AND V.AV#= A1.AV# AND A1.RA= A2.AV# AND A2.Loc= 'Nice' ; 106

107 Exemple complet Pilote (PL#, PLNOM, ADR, REFAVION) <REFAVION : Avion préféré d un pilote> Avion (AV#, AVNOM, LOC, REFAVBIS, REFPILOTE) <REFPILOTE Pilote attitré d un avion ; REFAVBIS : Référence avion de rechange> Vol (Vol#, PL#, AV#, REFPIL, REFAV, VD, VA, HD, HA) Quels sont les noms des pilotes préférant un B747 qui conduisent un Airbus dont l avion de rechange est l avion attitré de Jean? 107

108 Quels sont les noms des pilotes préférant un B747 qui conduisent un Airbus dont l avion de rechange est l avion attitré de Jean? SELECT v.refpil à plnom FROM vol v WHERE (v.refav à Avnom = Airbus, REFAVBIS à REFPILOTEà Plnom = Jean ) and (v.refpilà REFAVIONà Avnom = B747 ) ; Traitez la en partie avec jointure de SQL2 108

109 Exemple (bis) ou SELECT v.refpil à plnom?, refavionà AVNOM = B747 FROM vol v WHERE v.refav à Avnom Airbus and REFavbis à Refpiloteà Plnom = Jean ; 109

110 Exemple + complet! Pilote (PL#, PLNOM, ADR, REFAVION, REFCOPIL) <REFAVION : Avion préféré d un pilote> <REFCOPIL : Référence Copilote> Avion (AV#, AVNOM, LOC, REFAVBIS, REFPILOTE) <REFPILOTE Pilote attitré d un avion ; REFAVBIS : Référence avion de rechange> Vol (Vol#, PL#, AV#, REFPIL, REFAV, VD, VA, HD, HA) FORMATION (PL#, REFPILF, AVNOM, DATE) 110

111 Question avec le MAX de è n Inventer une Requête utilisant 4 Fois de suite la navigation è? 111

112 Q 4 è? n Select refpilè Nom From vol Where refavè refpiloteè refavionè refavbis è AVNom= Airbus ; En FR? 112

113 Q5 J n Nom des pilotes qui préfèrent un avion dont l avion de rechange est localisé à Nice et dont le pilote attitré a un copilote habitant Nice qui a reçu en 2000 une formation pour conduire un A300? 113

114 Réponse Q5 Select P.PLNOM From Pilote P Where P.refavionè refavbisè A.loc = «Nice», Refpiloteè refcopilè Adr = «Nice», PL# In Select (F.PL# From Formation F Where F.date= «2000» and F.Avnom= «A300») Note : à la différence de l ODMG on peut mixer SQL2 et SQL3 dans une requête 114

115 Exercice n Porter le schéma SQL3 précédent en schéma ODMG et répondez à une requête mettant en jeu 4 «è» n Commentez les principales différences entre les 2 approches (définition et manipulation) 115

116 Exemple 2 (donné par Don Chamberlin d IBM du comité SQL3 dans Info DB correspondant à un exemple classique) La relation Employe contient les attributs Salaire et REFdept (de type REF sur Departement) La relation Departement contient l'attribut REFmngr (de type REF sur Employe) 116

117 Exemple 2 Q : noms et salaires des employés gagnant plus que leur managers? SELECT E.NOM, E.SALAIRE FROM EMP E WHERE E.Salaire > E.REFdept --> REFmngr-->Salaire ; 117

118 Exemple 2 en SQL2 (en remplaçant les types REF par des clés étrangères) : SELECT E.Nom, E.Salaire FROM Employe E, Employe F, WHERE Departement D E.D# = D.D# AND D.Manager = F.Emp# AND E.Salaire>F.Salaire ; 118

119 Discussion sur le type REF 1- Nature d'un résultat de projection sur le type REF? SELECT refavion FROM pilote p WHERE p.pnom = 'serge' ; 119

120 Discussion sur le type REF 2- l'attribut de type REF contient des "adresses de variables lignes (POINTEURS) "! Seul le concept de «variable relation» (RELVAR) existe dans le modèle relationnel! 3- Distinction entre le type REF et le concept de "clé étrangère" de SQL2? - CE : Valeurs de CP vs Attribut REF : valeurs de ROWID - manipulation différente! Note : les valeurs de ROWID peuvent ne pas (encore) ou ne plus exister («dangling references») 120

121 Type REF et ROWID : CREATE TABLE Vol (Vol# Char(4), PL# reference Pilote REFPIL REF Pilote...) initialisation? n La valeur du lien «REFPIL" est un RowID inaccessible par l utilisateur (accès avec opérateur ref/ deref) et non plus une valeur de clé étrangère (PL#) manipulable par l utilisateur n La clé étrangère et le type REF peuvent cohabiter dans une même table n Le mot clé SCOPE FOR permet de limiter la visibilité des références à une table particulière (Alter table vol add (scope for REFPIL is pilote1)); 121

122 Initialisation ROWID? Insert into VOL ( IT100, 1, 100, Nice, Paris, 7,8, (Select &ROW (p) From Pilote p where p.pl = 1 ), Select &ROW (a) From Avion a where a.av =100 ); Rappel : &ROW (ref en Oracle) : «Opérateur de référencement» associé à un ROWID Note : En Oracle 9, la clause «returning REF into» permet de récupérer le ROWID d un tuple Exemple : Insert into pilote values (1,Serge, Toulouse, Returning Ref (pilote) into pil-ref) insert into Vol values (IT100, 1, Nice,Paris, 7,8, pil-ref) 122

123 Initialisation ROWID? Retour du RAT («Record at-a-time») dans le SAT («Set at-a-time»)! «Chasser le RAT dans SQL2, il revient au galop avec le type REF dans SQL3!» Un lien multivalué (1:N ou N:M ) se traduit par un type REF permettant d avoir des jointures «cablées» au niveau TABLE ou TYPE La gestion d initialisation et de manipulation des pointeurs associés est affaire de développeurs RAT 123

124 Remarques sur le type REF de SQL3 et le pointeur REF de l'odmg Dans ODMG, REF est un pointeur persistant qui enrichit le concept de pointeur C++ avec son pointeur symétrique INVERSE; Les jointures se font EXCLUSIVEMENT par suivi de pointeurs Dans SQL3 1- REF est un pointeur entre variables lignes 2- REF permet de simplifier des requêtes complexes (en SQL2 ) mettant en jeu des auto jointures et des jointures externes exploitant l opérateur de déréférencement 3) Join Relationnel ou par opérateur de déréférencement 124

125 Remarques sur le type REF de SQL3 et le pointeur REF de l'odmg Dans SQL3 deux paradigmes cohabitent dans la TABLE : - «valeur» (algèbre/sql) - «pointeur» (Opérateurs REF/ DEREF) Pourquoi ne pas avoir clairement séparé les deux mondes (cf Manifeste de Date?) Note : «Spéciation» en biologie avec une vie faite de paliers COHERENCE? COMPLETUDE? FERMETURE? SQL3 (comme SQL2) n est pas un bon standard (qui évolue )! 125

126 Remarques sur les TIPS des Bases de Données Structures de données VALEURS vs POINTEURS (variables) Opérateurs associés ALGEBRE vs Opérateurs REF et DEREF 126

127 Paradigme RAT Remarques sur les paradigmes de développement et SQL Développement d application Nouveauté SQL2 Pointeur CURSOR Paradigme SAT (Record at a time) (Set at a time) Pointeur ligne ROWID (ref,deref)» Nouveauté SQL3 Paradigme POINTEUR Paradigme VALEUR (C++, CODASYL/DBTG, ODMG ) (Modèle Relationnel, SQL2/3) 127

128 Paradigme RAT Remarques sur les paradigmes de développement et SQL Développement d application Nouveauté SQL2 Pointeur CURSOR Paradigme SAT (Record at a time) (Set at a time) Pointeur ligne ROWID (ref,deref)» Nouveauté SQL3 Paradigme OAT (Object at a time) 128

129 Remarques sur les architectures «n-tier» Applications réparties sur Architectures «n-tier» Couplage Middleware FORT Couplage Middleware LACHE Approche «COMPOSANTS» Approche «SERVICES WEB» Standards Sstandards :: CORBA, COM+, RMI Sstandards : SOAP, UDDI, WSDL Environnements HOMOGENES Environnements HETEROGENES 129

130 Select e.questions From Etudiants e Where e.esprit = positif 130

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

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

1. Introduction. Introduction au langage SQL3 (SQL 99) Plan. Sources du cours. 1. Introduction La norme SQL3 et ses composants

1. Introduction. Introduction au langage SQL3 (SQL 99) Plan. Sources du cours. 1. Introduction La norme SQL3 et ses composants Introduction au langage SQL3 (SQL 99) Bernard ESPINASSE Professeur à Aix-Marseille Université (AMU) Ecole Polytechnique Universitaire de Marseille Avril 2013 La norme SQL3 Les triggers : normalisation

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

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

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

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

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

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

Exercices sur SQL server 2000

Exercices sur SQL server 2000 Exercices sur SQL server 2000 La diagramme de classe : Exercices sur SQL server 2000 Le modèle relationnel correspondant : 1 Créer les tables Clic-droit on Tables et choisir «New Table» Créer la table

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

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

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

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

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

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

Les Bases de Données et l Objet Introduction

Les Bases de Données et l Objet Introduction Les Bases de Données et l Objet Introduction Didier DONSEZ Université de Valenciennes Institut des Sciences et Techniques de Valenciennes donsez@univ-valenciennes.fr Plan Définitions d un Objet Propriétés

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

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

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

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

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

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

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

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

Bases de données Oracle Virtual Private Database (VPD) pour la gestion des utilisateurs d applications

Bases de données Oracle Virtual Private Database (VPD) pour la gestion des utilisateurs d applications Bases de données Oracle Virtual Private Database (VPD) pour la gestion des utilisateurs d applications P.-A. Sunier, HEG-Arc Neuchâtel avec le concours de J. Greub pierre-andre.sunier@he-arc.ch http://lgl.isnetne.ch/

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

Manifeste de Chris Date sur modèle «Objet Relationnel» (pour données structurées/sql)

Manifeste de Chris Date sur modèle «Objet Relationnel» (pour données structurées/sql) Manifeste de Chris Date sur modèle «Objet Relationnel» (pour données structurées/sql) Professeur Serge Miranda serge.miranda@unice.fr Directeur Master «MBDS» www.mbds-fr.org Plan Partie 1 Evolution de

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

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

Compétences Business Objects - 2014

Compétences Business Objects - 2014 Compétences Business Objects - 2014 «Mars-Juin 2014. Réf : Version 1 Page 1 sur 34 Sommaire CONTEXTE DE LA REMISE A NIVEAU EN AUTOFORMATION... 3 1. MODELISATION... 4 1.1 DESCRIPTION FONCTIONNEL DE L'APPLICATION

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

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

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

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

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 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

Modernisation, développement d applications et DB2 sous IBM i Technologies, outils et nouveautés 2013-2014. Volubis.fr

Modernisation, développement d applications et DB2 sous IBM i Technologies, outils et nouveautés 2013-2014. Volubis.fr Modernisation, développement d applications et DB2 sous IBM i Technologies, outils et nouveautés 2013-2014 13 et 14 mai 2014 IBM Client Center Paris, Bois-Colombes Volubis.fr Conseil et formation sur OS/400,

Plus en détail

Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées

Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées ANNEE 2014 / 2015 Désignation de l enseignement : Bases de données Nom du document : TP SQL sous PostgreSQL Rédacteur :

Plus en détail

Gestion de base de données

Gestion de base de données Université Libre de Bruxelles Faculté de Philosophie et Lettres Département des Sciences de l Information et de la Communication Gestion de base de données Projet : Take Off ASBL Cours de M. A. Clève STIC-B-505

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

Génie Logiciel avec Ada. 4 février 2013

Génie Logiciel avec Ada. 4 février 2013 Génie Logiciel 4 février 2013 Plan I. Généralités II. Structures linéaires III. Exceptions IV. Structures arborescentes V. Dictionnaires I. Principes II. Notions propres à la POO I. Principes Chapitre

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

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

Chapitre 3 LE MODELE RELATIONNEL ET SQL (DDL)

Chapitre 3 LE MODELE RELATIONNEL ET SQL (DDL) Chapitre 3 LE MODELE RELATIONNEL ET SQL (DDL) Un modèle de données définit un mode de représentation de l information selon trois composantes : 1. Des structures de données. 2. Des contraintes qui permettent

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

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

PHP 5. La base de données MySql. A. Belaïd 1

PHP 5. La base de données MySql. A. Belaïd 1 PHP 5 La base de données MySql A. Belaïd 1 Base de données C est quoi une base de données? Une base de données contient une ou plusieurs tables, chaque table ayant un ou plusieurs enregistrements Exemple

Plus en détail

Présentation Windows Azure Hadoop Big Data - BI

Présentation Windows Azure Hadoop Big Data - BI Présentation Windows Azure Hadoop Big Data - BI Sommaire 1. Architecture Hadoop dans Windows Azure... 3 2. Requête Hive avec Hadoop dans Windows Azure... 4 3. Cas d études... 5 3.1 Vue : Administrateur...

Plus en détail

1 Modélisation d une base de données pour une société de bourse

1 Modélisation d une base de données pour une société de bourse IN306 : Corrigé SID Christophe Garion 18 octobre 2010 Ce document est un corrigé succinct de l examen du module IN306. 1 Modélisation d une base de données pour une société de bourse Une

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

PL langage de programmation côté serveur. SQL à la base : types, expressions, requêtes

PL langage de programmation côté serveur. SQL à la base : types, expressions, requêtes Introduction à PL langage de programmation côté serveur installation nécessaire : CREATE LANGUAGE ou createlang interprété : erreurs de syntaxe possibles à l exécution SQL à la base : types, expressions,

Plus en détail

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object) Quelques patterns pour la persistance des objets avec DAO Ce cours présente des modèles de conception utilisés pour effectuer la persistance des objets Université de Nice Sophia-Antipolis Version 1.4 30/8/07

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

SQL sous SqlServer OLIVIER D. DEHECQ Olivier http://www.entraide-info.fr 0

SQL sous SqlServer OLIVIER D. DEHECQ Olivier http://www.entraide-info.fr 0 2013 SQL sous SqlServer OLIVIER D. DEHECQ Olivier http://www.entraide-info.fr 0 Table des matières Signalétique... 2 1 Les bases du SQL... 3 2 SQL server... 6 2 Références des exercices...21 DEHECQ Olivier

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

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

Introduction à SQL2. Professeur Serge Miranda Serge.miranda@unice.fr Directeur Master «MBDS» www.mbds-fr.org www.youtube. Introduction à SQL2 Professeur Serge Miranda Serge.miranda@unice.fr Directeur Master «MBDS» www.mbds-fr.org www.youtube.com/mbdsimagine Livre et Exemple 1 Plan Rappels sur le modèle relationnel de CODD

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

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

Corrigés détaillés des exercices

Corrigés détaillés des exercices Corrigés détaillés des exercices Diagramme des tables objet La figure suivante vous aidera dans la compréhension des manipulations des objets de la base. Client_type Client num nom adresse {telephone_vry}

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

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

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

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

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

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

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

Plan Général Prévisionnel (1/2) (non contractuel) Internet et Outils L1/IO2 2006-2007 S2-IO2 Bases de données: Jointures, Transactions

Plan Général Prévisionnel (1/2) (non contractuel) Internet et Outils L1/IO2 2006-2007 S2-IO2 Bases de données: Jointures, Transactions Général Prévisionnel (1/2) (non contractuel) Internet et Outils L1/IO2 2006-2007 S2-IO2 Bases de données: Jointures, Cours Internet et Outils: [1/12] Intro, Internet, Web, XHTML (2H) [2/12] XHTML(2H) [3/12]

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

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

Bases de données relationnelles & SQL

Bases de données relationnelles & SQL Bases de données relationnelles & SQL Objectifs Appréhender les concepts du modèle relationnel. Etre capable de concevoir un schéma relationnel. Etre capable de créer une base de données relationnelle

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

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

UML et les Bases de Données

UML et les Bases de Données CNAM UML et les Bases de Données UML et les Bases de Données. Diagramme de classes / diagramme d objets (UML)...2.. Premier niveau de modélisation des données d une application...2.2. Les éléments de modélisation...2.2..

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

Rappel sur les bases de données

Rappel sur les bases de données Rappel sur les bases de données 1) Généralités 1.1 Base de données et système de gestion de base de donnés: définitions Une base de données est un ensemble de données stockées de manière structurée permettant

Plus en détail

1. Base de données SQLite

1. Base de données SQLite Dans ce TP, nous allons voir comment créer et utiliser une base de données SQL locale pour stocker les informations. La semaine prochaine, ça sera avec un WebService. On repart de l application AvosAvis

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

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS Depuis SAS 9.2 TS2M3, SAS propose un nouveau langage de programmation permettant de créer et gérer des tables SAS : le DS2 («Data Step 2»). Ces nouveautés

Plus en détail

Once the installation is complete, you can delete the temporary Zip files..

Once the installation is complete, you can delete the temporary Zip files.. Sommaire Installation... 2 After the download... 2 From a CD... 2 Access codes... 2 DirectX Compatibility... 2 Using the program... 2 Structure... 4 Lier une structure à une autre... 4 Personnaliser une

Plus en détail

Pour les débutants. langage de définition des données

Pour les débutants. langage de définition des données Pour les débutants SQL : langage de définition des données Les bases de données sont très utilisées dans les applications Web. La création, l interrogation et la manipulation des données de la base sont

Plus en détail

Procédures Stockées WAVESOFT... 12 ws_sp_getidtable... 12. Exemple :... 12. ws_sp_getnextsouche... 12. Exemple :... 12

Procédures Stockées WAVESOFT... 12 ws_sp_getidtable... 12. Exemple :... 12. ws_sp_getnextsouche... 12. Exemple :... 12 Table des matières Les Triggers... 2 Syntaxe... 2 Explications... 2 Les évènements déclencheurs des triggers... 3 Les modes de comportements des triggers... 4 Les pseudo tables... 5 Exemple... 6 Les procédures

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

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

Bases de données - Modèle relationnel

Bases de données - Modèle relationnel Bases de données - Modèle relationnel Introduction SITE :http://www.univ-orleans.fr/lifo/members/mirian.halfeld/ BD - Mírian Halfeld-Ferrari p. 1 Les bases de données - Bibliographie Ullman and Widom,

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

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

IFT3030 Base de données. Chapitre 1 Introduction

IFT3030 Base de données. Chapitre 1 Introduction IFT3030 Chapitre 1 Introduction Plan du cours Introduction Architecture Modèles de données Modèle relationnel Algèbre relationnelle SQL Conception Fonctions avancées Concepts avancés Modèle des objets

Plus en détail

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013 NFA 008 Introduction à NoSQL et MongoDB 25/05/2013 1 NoSQL, c'est à dire? Les bases de données NoSQL restent des bases de données mais on met l'accent sur L'aspect NON-relationnel L'architecture distribuée

Plus en détail

Bases de Données Avancées PL/SQL

Bases de Données Avancées PL/SQL 1/170 Bases de Données Avancées Thierry Hamon Bureau H202 - Institut Galilée Tél. : 33 1.48.38.35.53 Bureau 150 LIM&BIO EA 3969 Université Paris 13 - UFR Léonard de Vinci 74, rue Marcel Cachin, F-93017

Plus en détail

Information utiles. cinzia.digiusto@gmail.com. webpage : Google+ : http://www.ibisc.univ-evry.fr/ digiusto/

Information utiles. cinzia.digiusto@gmail.com. webpage : Google+ : http://www.ibisc.univ-evry.fr/ digiusto/ Systèmes de gestion de bases de données Introduction Université d Evry Val d Essonne, IBISC utiles email : cinzia.digiusto@gmail.com webpage : http://www.ibisc.univ-evry.fr/ digiusto/ Google+ : https://plus.google.com/u/0/b/103572780965897723237/

Plus en détail

I4 : Bases de Données

I4 : Bases de Données I4 : Bases de Données Passage de UML au modèle relationnel Georges LOUIS Département Réseaux et Télécommunications Université de La Rochelle Module I4 2008-2009 1 G.Louis Sommaire 1 Des classes aux tables

Plus en détail

Partie 0 : Gestion des tablespace et des utilisateurs... 3

Partie 0 : Gestion des tablespace et des utilisateurs... 3 Sommaire Partie 0 : Gestion des tablespace et des utilisateurs... 3 1- Créer deux TableSpaces votre_nom-tbs et Votre_nom-TempTBS :... 3 2. Créer un utilisateur qui porte votre nom :... 3 3. Attribuer à

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

INTEGRITE ET BD ACTIVES

INTEGRITE ET BD ACTIVES INTEGRITE ET BD ACTIVES 1. INTRODUCTION Un SGBD doit garantir la cohérence des données lors des mises à jour de la base. En effet, les données d'une base ne sont pas indépendantes, mais obéissent à des

Plus en détail

Hala Skaf-Molli. Nancy-Université skaf@loria.fr 14 mai 2007

Hala Skaf-Molli. Nancy-Université skaf@loria.fr 14 mai 2007 Bases de données avancées Hala Skaf-Molli Maître de Conférence Nancy-Université skaf@loria.fr 14 mai 2007 1 Introduction Dans ce cours, nous allons étudier les bases de données Orienté objets, bases de

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

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