Академический Документы
Профессиональный Документы
Культура Документы
Enseignante: AICHA AGGOUNE aggoune_ai@yahoo.fr Dpartement dinformatique Facult de mathmatique et dinformatique et sciences de la nature Universit 8 mai 45 de GUELMA
A.AGGOUNE
Niveau: Master2AC
Universit de Guelma
A.AGGOUNE
Niveau: Master2AC
Universit de Guelma
Plan du cours
1. Base de donnes: Rappels & Bilan
2. Motivations
A.AGGOUNE
Niveau: Master2AC
Universit de Guelma
A.AGGOUNE
Niveau: Master2AC
Universit de Guelma
Bases de Donnes
Un ensemble de donnes modlisant les objets dune partie du monde rel et servant de support une application informatique. Accessible par un LMD Stockage et mise jour de donnes Recherche de donnes multi-critres
Programmation logique
A.AGGOUNE
Niveau: Master2AC
Universit de Guelma
SGBD (DBMS)
Ensemble de logiciels systmes permettant :
La description des donnes et des relations (LDD) Linterrogation et la mise jour de la base (LMD) La gestion des transactions.
Principales fonctionnalits :
Contrle de la redondance dinformation Partage des donnes et confidentialit Gestion des accs concurrents Vrifications des contraintes dintgrit Scurit et reprise sur panne Indpendance des donnes: Niveau physique, logique et externe (vue)
Module: Base de Donnes Avance A.AGGOUNE Niveau: Master2AC Universit de Guelma
A.AGGOUNE A.AGGOUNE
Depuis 1995
Bases de donnes et internet Accs distant au contenu des BD Fdration et inter-opration des BD Transformations des donnes et des requtes Bases de donnes et dcisionnel Entreposage de donnes Analyse de donnes Qualit des donnes Bases de donnes rparties : Permettre dintgrer, dinterroger et de mettre jour des donnes provenant de sites rpartis gographiquement
Module: Base de Donnes Avance Module: Base de Donnes Avance A.AGGOUNE A.AGGOUNE Niveau: Master2AC Niveau: Master2AC Universit de Guelma Universit de Guelma
Depuis 1995
Bases de donnes et web: Etendre les possibilits des SGBD pour rpondre aux applications fonctionnant dans lenvironnement web Bases de donnes objet : Intgrer les concepts objets dans les SGBD (classe, objet) Bases de donnes dductives : Enrichir les SGBD de possibilits de dduction
Bases de donnes multimdia : Intgrer dans un SGBD la gestion de donnes textuelles, graphiques, images, sons etc..
Module: Base de Donnes Avance Module: Base de Donnes Avance A.AGGOUNE A.AGGOUNE Niveau: Master2AC Niveau: Master2AC Universit de Guelma Universit de Guelma
2. Motivations
Le modle relationnel connat un trs grand succs et s'avre trs adquat pour les applications traditionnelles des bases de donnes (gestion de stock, gestion des commandes, systmes de
rservation)
Nanmoins, ce modle est moins adapt aux nouvelles applications plus complexes telles que : CAD/CAM (Computer-Aided Design/Computer-Aided Manufacturing).
BD d'images et de graphiques.
BD gographiques (GIS : Geographic Information Systems). BD multimdia (son, image, texte, etc. combines).
2. Motivations
Ces nouvelles applications ont des caractristiques diffrentes, notamment : Structures d'objets plus complexes, des transactions de dure plus longue, nouveaux types de donnes pour le stockage d'images ou de gros documents de texte, la possibilit de dfinir des oprations non standards qui sont spcifiques aux applications.
A.AGGOUNE
Niveau: Master2AC
Universit de Guelma
A.AGGOUNE
Niveau: Master2AC
Universit de Guelma
Deux types d'alternatives sont proposs et qui sont inspirs de lapproche Objet
Module: Base de Donnes Avance A.AGGOUNE Niveau: Master2AC Universit de Guelma
Deux approches en BD
Le modle Orient Objet (OO) Le modle Objet Relationnel (OR)
Codd (70)
SQL SQL2 SQL3 SQL4
Oracle, Informix, Sybase, IBM, DB2, CA-OpenIngres
ANSI X3H2 ISO/IEC JTC1/ SC21/WG3
A.AGGOUNE
Niveau: Master2AC
Universit de Guelma
A.AGGOUNE
Niveau: Master2AC
Universit de Guelma
4. Le Relationnel Etendu
Le relationnel tendu (Objet-Relationnel) : Extension du modle relationnel, ajoute: Attributs multivalus : sacs, liste, tableau, ensemble, ... OBJET Hritage sur relations et types Dfinition dun type abstrait de donnes propre un utilisateur (structure cache + mthodes) Identit d'objets et utilisation deTypes rfrence (OID) Domaine
utilisateurs ADT et encapsulation Table Collections Attribut Cl Rfrence Hritage et relationnel Opration rutilisation Identifiant Hritage
Niveau: Master2AC Universit de Guelma
Rfrence et identit
Le
A.AGGOUNE
4. Le Relationnel Etendu
La compatibilit est ascendante : les anciennes applications relationnelles fonctionnent dans le monde OR La norme SQL99 (SQL3) reprend beaucoup dides du modle OR. Objet Personne
A.AGGOUNE
Niveau: Master2AC
Universit de Guelma
4. Le Relationnel Etendu
4.1. Les ADT: diffrentes catgories de Types 4.2. Cration de tables partir des types 4.3. Dfinition dattributs rfrence 4.4. Manipulation avance de BD 4.5. Langage SQL3 et SGBD Relationnel-objet
A.AGGOUNE
Niveau: Master2AC
Universit de Guelma
A.AGGOUNE
Niveau: Master2AC
Universit de Guelma
A.AGGOUNE
Niveau: Master2AC
Universit de Guelma
Attributs
Mthodes: fonctions ou procdures crites en PL/SQL ou JAVA et stockes dans la BD ou en C et stockes lextrieur de la BD
A.AGGOUNE
Niveau: Master2AC
Universit de Guelma
City CHAR(15),
Country CHAR(10)); Address Num Street City Country
A.AGGOUNE
Niveau: Master2AC
Universit de Guelma
Domaine de relation
Ex: CREATE TABLE LesPersonnes OF Person Chaque ligne de la table LesPersonnes: type Person
A.AGGOUNE
Niveau: Master2AC
Universit de Guelma
A.AGGOUNE
Niveau: Master2AC
Universit de Guelma
nom VARCHAR(10),
adresse VARCHAR(30), Date naissance DATE)
/
CREATE TYPE etudiant UNDER personne ( universite VARCHAR(20), no-etudiant INTEGER);
Module: Base de Donnes Avance A.AGGOUNE
Sous Type
Niveau: Master2AC Universit de Guelma
age
nom
phone Tel
Universit de Guelma
Niveau: Master2AC
A.AGGOUNE
Niveau: Master2AC
Universit de Guelma
Domaine de valeur dun attribut dun autre type dfini par lutilisateur
Syntaxe : CREATE TYPE nom_type1 AS TABLE OF nom_type2 ORCALE cre physiquement une table annexe dans laquelle il
stockera les tuples de l'attribut de type Nested table : NESTED TABLE nom-attribut-de-type-table-imbrique STORE AS nom-table-annexe ;
Module: Base de Donnes Avance A.AGGOUNE Niveau: Master2AC Universit de Guelma
Domaine de valeur dun attribut dun autre type dfini par lutilisateur Ex: CREATE TYPE ens_voiture AS TABLE OF Tvoiture;
(collection de collection)
Universit de Guelma
Niveau: Master2AC
Cration d'une table contenant les voitures: CREATE TYPE ens_voiture AS TABLE OF Tvoiture /
Cration de la table personne qui contient une colonne de type NESTED TABLE: CREATE TABLE Personne (nom VARCHAR (15), prenom liste_prenom, age INTEGER, voitures ens_voiture) % collection NESTED TABLE voitures STORE AS Toutes_voitures;
nom prenom age 35 40 voitures Id1 Id2 Nested_table_Id Id1 Id1 Id2 Id1
Niveau: Master2AC
Index
Module: Base de Donnes Avance A.AGGOUNE
Universit de Guelma
Exemple: personne (Num, nom, prnom , Date_naissance) Enfants (nom, prnom , Date_naissance, Num_p )
CREATE TYPE personne;
[(nom-col*)] [action]
CHECK (condition particulire sur les valeurs) Exemple: CREATE TABLE Person_table OF Person ( PRIMARY KEY (NumAssu));
Module: Base de Donnes Avance A.AGGOUNE Niveau: Master2AC Universit de Guelma
A.AGGOUNE
Niveau: Master2AC
Universit de Guelma
Remarque: SQL3 fournit aussi la notation .. pour dsigner un attribut dune colonne de type ADT. EX: e.adresse..numero = 24
Module: Base de Donnes Avance A.AGGOUNE Niveau: Master2AC Universit de Guelma
5. Consultation dune table Objet-relationnelle (SELECT) Exprimer le chemin qui permet de naviguer travers les objets.
SELECT <nom de table>.<nom type ADT>.<nom type> FROM <nom de table> Exemple : Dans la table employ, laffichage du nom et la rue dun employ est : SELECT nom, e. adresse_type.rue FROM employ e
Module: Base de Donnes Avance A.AGGOUNE Niveau: Master2AC Universit de Guelma
CREATE TABLE document ( Titre VARCHAR (30), Auteur VARCHAR (30), Anne INTEGER);
Nous voulons crer la table livre comme une sous table de la table document :
A.AGGOUNE
Niveau: Master2AC
Universit de Guelma
Accs en objet-relationnel
select p.effdate, p.name, p.vehicleyr from policy p where p.carmodel.model = ferrari
A.AGGOUNE
Niveau: Master2AC
Universit de Guelma
En SGBD Objet-relationnel:
OID= identificateur dobjet (Object IDentifier ) Indpendant de la valeur Unique Permanant Immuable
Module: Base de Donnes Avance A.AGGOUNE Niveau: Master2AC Universit de Guelma
Rfrence: Pointeur vers une instance d'une table objet Conserver dans les tables une rfrence une valeur, plutt
quune cl trangre.
Cas1: valeur structure (des objets) CREATE TABLE Habitant1 (Num INTEGER, Nom VARCHAR(20), Prnoms prnoms_type, Habite Tlogement)/ Cas 2: OID de lattribut Habite CREATE TABLE Habitant2 (Num INTEGER, Nom VARCHAR(20), Prnoms Tprnoms, Habite REF Tlogement);
Module: Base de Donnes Avance A.AGGOUNE Niveau: Master2AC Universit de Guelma
Oprateur REF
Utilisation de loprateur REF qui renvoie ladresse
n-uplet dans une table. 1. Insertion avec rfrence : dun
Exemple: Insrer dans TPersonnes une nouvelle personne: Duran ne le 16/02/1960 dont la liste des prnoms {Pierre, Paul, Jacques}, de voiture modle i30. INSERT INTO TPersonnes VALUES (Duran, liste_prnom(Pierre, Paul, Jacques), 16-05-1963, (SELECT REF(v) FROM TVoitures v WHERE v. modle = i30));
Module: Base de Donnes Avance A.AGGOUNE Niveau: Master2AC Universit de Guelma
Oprateur REF
2. Modification avec rfrence : UPDATE
Exemple: Changer le modle de voiture de lanne 2010 par I30. UPDATE Personnes p SET p.voiture = (SELECT REF(v) FROM TVoitures v WHERE v. modle = I30) WHERE p.voiture.annee =2010;
Rfrencer du vide
Rfrences qui n'existent plus. Pour tester lexistence dune instance rfrence :
Utilisation du prdicat IS DANGLING.
Exemple :
UPDATE Personnes SET voiture = NULL WHERE voiture IS DANGLING Ajouter la contrainte NOT NULL sur la colonne voiture: voiture REF voiture NOT NULL. Le type REF Tvoiture restreint le type rfrenc mais pas la table rfrence.
A.AGGOUNE
Niveau: Master2AC
Universit de Guelma
Rfrencer du vide
La clause SCOPE restreint la colonne rfrence ; elle peut
tre ajoute lors de la dfinition dune table.
voiture REF voiture_type SCOPE IS TVoiture.
A.AGGOUNE
Niveau: Master2AC
Universit de Guelma
Rfrences croises
Les rfrences croises consistent crer un type vide
pour tre rfrenc dans un second type et on modifie le premier type ensuite. On cre les tables en dernier. Exemple :
CREATE TYPE Tvoiture / CREATE TYPE Tpersonne AS OBJECT (nom VARCHAR2(15), prenoms liste_prenom, date_naissance DATE, voiture REF Tvoiture) / CREATE TYPE Tvoiture AS OBJECT (modele VARCHAR2(15), annee DATE, No INTEGER, personne REF Tpersonne) /
CREATE TABLE voitures OF Tvoiture; CREATE TABLE personnes OF Tpersonne;
Module: Base de Donnes Avance A.AGGOUNE Niveau: Master2AC Universit de Guelma
Oprateur DEREF
Loprateur DEREF permet de drfrencer une rfrence
pour obtenir lobjet rfrenc. Exemple: SELECT p.Nom, p.prnoms, DEREF(p.voiture) FROM TPersonne p WHERE p.voiture.anne > 2010;
Nom Dupond {Prnoms} prnoms_type Martine Robert Smith date_naissance 16-05-1963 @ voiture voiture_type (12584, Range Rover , 2012)
A.AGGOUNE
Niveau: Master2AC
Universit de Guelma
Oprateur VALUE
Pour obtenir la valeur dun objet, on utilise la fonction VALUE,
qui prend la rfrence dun objet et renvoie sa valeur.
Oprateur VALUE
Exemple 2: (type non rfrenc) CREATE TYPE Tprojet AS OBJECT ( Pno NUMBER, pnom VARCHAR2(20)) / CREATE TABLE Projets OF Tprojet; Select * from Projets; 1 Amber 2 Murmur' Select value(p) from Projets p; Tprojet(1, Amber) Tprojet(2, Murmur')
Module: Base de Donnes Avance A.AGGOUNE Niveau: Master2AC Universit de Guelma
A.AGGOUNE
Niveau: Master2AC
Universit de Guelma
CREATE TYPE nom-type AS OBJECT ( dclaration des attributs, dclaration des signatures des mthodes )
A.AGGOUNE
Niveau: Master2AC
Universit de Guelma
Le paramtre SELF
Toute mthode d'un type objet accepte une instance de
ce type comme premier paramtre (SELF).
SELF.nom_attribut
Cette
expression peut aussi bien apparatre dans une instruction (affectation, appel de fonction ou de procdure, ) que dans une requte SQL.
La mthode CONSTRUCTOR
Chaque objet est pourvu d'une mthode de construction
appele CONSTRUCTOR, dfinie par le systme avec le mme nom que le type objet.
A.AGGOUNE
Niveau: Master2AC
Universit de Guelma
BEGIN
SELF.numero := numero; END; MUMBER PROCEDURE ajouter_essence (quantite IN INTEGER)
BEGIN
SELF. quantit_essence := quantite; END; END;
Module: Base de Donnes Avance A.AGGOUNE Niveau: Master2AC Universit de Guelma
Les TRIGGERS
Un triggers
(ou dclencheur) est une rgle, dite active, de la forme : vnement-condition-action.
Les TRIGGERS
3. La spcification de contraintes lies lvolution de donnes. Exemple : un salaire ne peut quaugmenter. 4. De dfinir toutes rgles complexes lies lenvironnement dexcution (restrictions sur des horaires, des clients, . . .).
A.AGGOUNE
Niveau: Master2AC
Universit de Guelma
Les TRIGGERS
2. Test de la condition : si cette dernire nest pas vrifie, alors lexcution sarrte. 3. Si vrifie, laction est ralise avant ou aprs un vnement.
Un seul trigger utilis par vnement sur une table. La syntaxe suivante permet de crer un trigger :
CREATE TRIGGER <nom-trigger> BEFORE/AFTER <vnement> OF <Attribut> ON <Table> REFERENCING OLD/NEW AS <action> Pour supprimer un Trigger : DROP TRIGGER <nom de trigger>
Module: Base de Donnes Avance A.AGGOUNE Niveau: Master2AC Universit de Guelma
Les TRIGGERS
BEFORE/AFTER: la possibilit de dclencher avant ou aprs
l'vnement.
<vnement>
= INSERT, UPDATE, DELETE. Prcise le ou les vnements concerns par le dclenchement. Sil y a plusieurs vnements, on les spare avec OR.
CREATE TRIGGER augmenter-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 Exemple 2: Vrification quun prix ne peut pas baisser. CREATE TRIGGER pas_baisse_prix BEFORE UPDATE OF prixUnitaire ON Article FOR EACH ROW WHEN (OLD.prixUnitaire > NEW.prixUnitaire) BEGIN
raise_application_error(-20100, le prix dun article ne peut pas diminuer) ;
END ;
Module: Base de Donnes Avance A.AGGOUNE Niveau: Master2AC Universit de Guelma
Vues Objet-Relationnelles
Une
vue objet-relationnelle permet de visualiser les donnes diffremment de la faon dont elles sont organises.
tre construite sur une seule table ou rsulter de la jointure de plusieurs tables:
CREATE VIEW nom_vue AS [(att1_vue, att2_vue, )] AS SELECT att1, att2, Requte SQL FROM nom_table [, autre_table] [ WHERE condition selection et/ou jointure ]
Module: Base de Donnes Avance A.AGGOUNE Niveau: Master2AC Universit de Guelma
Vues Objet-Relationnelles
La cration dune vue objet-relationnelle se fait partir dune requte SELECT permettant dextraire les donnes de la table, ou des tables. CREATE VIEW nom_vue_or OF type_objet WITH OBJECT IDENTIFIER ( att_oid ) [UNDER nom_vue_mre ] AS SELECT att1, att2 [,CAST(MULTISET()] [, type_nuplet (att_np1, att_np2, )] [ REF(alias)] [ MAKE_REF(nom_autre_vue, att_oid)] FROM nom_table alias [, nom_table2 alias2]* WHERE condition(s)
Module: Base de Donnes Avance A.AGGOUNE Niveau: Master2AC Universit de Guelma
A.AGGOUNE
Niveau: Master2AC
Universit de Guelma
Requtes rcursives
Une requte rcursive est une requte dans laquelle une
requte initiale est excute de faon rpte pour retourner des sous-ensembles de donnes jusqu' l'obtention de l'ensemble de rsultats complet.
Elle permet de simplifier le code SQL3 : clause WITH RECURSIVE AS La rcursivit est utilise dans les applications:
Utilisant des graphes (Ex: Logistique, Rseau de transport, de tlcom,) Utilisant des donnes semi-structures (documents XML,..) Bases sur la dduction logique (systme expert,)
Module: Base de Donnes Avance Module: Base de Donnes Avance A.AGGOUNE A.AGGOUNE Niveau: Master2AC Niveau: Master2AC Universit de Guelma Universit de Guelma
Compagnie XYZ | -- Division XYZ | |-- Dpartement 1 | |-- Dpartement 2 | | |-- Poste X |-- Division XYW | |-- Dpartement 6 | | |-- Poste U | | |-- Poste W
Module: Base de Donnes Avance Module: Base de Donnes Avance A.AGGOUNE A.AGGOUNE Niveau: Master2AC Niveau: Master2AC Universit de Guelma Universit de Guelma
Le cycle de rcursion est fait par la jointure entre la table OR et la table tree. WITH tree (src, dest) AS (requetes) SELECT * FROM tree Dans lexemple prcdent:
WITH tree (desc, id) AS( SELECT Desc, fkNiveauParent FROM Travail WHERE Desc = "Poste X" UNION ALL SELECT Desc, fkNiveauParent FROM Travail w INNER JOIN tree ON tree.id = w.NiveauId ) SELECT * FROM tree
Module: Base de Donnes Avance Module: Base de Donnes Avance A.AGGOUNE A.AGGOUNE Niveau: Master2AC Niveau: Master2AC Universit de Guelma Universit de Guelma
Requtes rcursives
Rsultat Donne id --------------- ------ --Poste X 8 Dpart 2 6 Division XYZ 3 Compagnie XYZ NULL
Requtes prfrences
Requtes prfrences : requtes qui expriment des
proprits dsires sur les rsultats issus dun processus de recherche.
Intuitivement, est une relation binaire entre les tuples de la mme relation d'une BD.
Module: Base de Donnes Avance Module: Base de Donnes Avance A.AGGOUNE A.AGGOUNE Niveau: Master2AC Niveau: Master2AC Universit de Guelma Universit de Guelma
Requtes prfrences
On dit que le n-uplet t 1 domine (ou est prfrable ) le n-uplet
t 2 dans le contexte de la relation si t 1 t2
Si ni t1
Vers un SQL4.
A.AGGOUNE
Niveau: Master2AC
Universit de Guelma
SQL3 (SQL99)
SQL92 ne permet pas de crer de nouveaux types
manque de souplesse et une interface difficile avec les applications orientes objet
Utilisant les concepts objet Programmation intgre et modulaire Compatibilit avec le relationnel. Possibilit de structuration en modules (PSM) procedure storage module
A.AGGOUNE
Niveau: Master2AC
Universit de Guelma
SQL3 (SQL99)
De multiples facettes : Un langage de dfinition de types Un langage de programmation Un langage de requtes Un langage temporel ...
Manipulation avance: Dfinition des types complexes avec hritage Appels de mthodes en rsultat et qualification Imbrication des appels de mthodes Surcharge d'oprateurs Triggers
Module: Base de Donnes Avance A.AGGOUNE Niveau: Master2AC Universit de Guelma
A.AGGOUNE
Niveau: Master2AC
Universit de Guelma
A.AGGOUNE
Niveau: Master2AC
Universit de Guelma
Dfinition de types abstraits Possibilit de types avec ou sans OID Support dobjets complexes Constructeurs de types (tuples, set, list, ) Utilisation de rfrence (OID) Hritage Dfinition de sous-types Dfinition de sous-tables Support de large objets : Type BLOB (Binary Large Object). Ex: picture BLOB(12M) Type CLOB (Character Large Object). Ex: resume CLOB(75K)
A.AGGOUNE
Niveau: Master2AC
Universit de Guelma
SGBD objet-relationnels
Extension des SGBD relationnels:
SGBD objet-relationnels
Exemples : Nouveaux: Illustra, UniSQL, ODB II, Versant Relationnels tendus ("universels"): POSTGRES , Ingres, Oracle 9i, DB2 , Informix
A.AGGOUNE
Niveau: Master2AC
Universit de Guelma
La Fin