Polycopie AGGOUNE
Polycopie AGGOUNE
Polycopie AGGOUNE
Polycopié de cours
Réalisé par :
2019-2020
Préface
Ce polycopié du cours de bases de données avancées s’adresse aux étudiants de
deuxième années master systèmes informatiques qui est offert au département
d’informatique de la faculté de mathématiques, informatique et sciences de la matières
à l’université 08 Mai 1945, Guelma, Algérie.
Le module de bases de données avancées est programmé dans l’unité
d’enseignement fondamentale UEF3. Il est caractérisé par un coefficient égal à 3 et un
crédit soit 5. Ce module s’organise selon trois séances par semaine : un cours
magistral, une séance de travaux dirigés (TD) et une séance de travaux pratiques (TP),
complétées par un travail personnel de 5 heures qui englobe principalement sur la
micro interrogation et la validation de projet final du TP sur le SGBD Oracle. La durée
d’enseignement du module de bases de données avancées est environ 67h30. La
pondération de ce module est comme suit : 60% Examen final, 20% TD (inclus une
micro interrogation, l’assiduité et la participation), 20% TP (inclus un projet final,
l’assiduité et la moyenne des TPs fourni durant les séances de TP).
Le polycopié de ce cours est structuré en six chapitres, chacun se termine par des
séries d’exercices TD et TP. Ces chapitres sont décrits ci-après :
Le présent polycopié se termine par une section qui regroupe les solutions de
toutes les séries de TD et TP proposées dans ce cours.
[email protected]
AVANT-PROPOS
1. 06
Introduction ................................................................................................................................................................................
2. Bref rappel sur les bases de données ................................................................................................................................
06
3. Evolutions des SGBD.................................................................................................................................................................
07
4. Limites du modèle relationnel ............................................................................................................................................
07
5. Le modèle relationnel étendu ..............................................................................................................................................
08
5.1. Avantages du modèle relationnel................................................................................................................................
08
5.2. Définition d’une base de données objet-relationnelle ........................................................................................ 08
6. Les types abstraits de données (ADT) ...............................................................................................................................
09
6.1. Type OBJECT .......................................................................................................................................................................
09
6.2. Type VARRAY ......................................................................................................................................................................
10
6.3. Type NESTED TABLE ......................................................................................................................................................
10
6.4. Type REF ...............................................................................................................................................................................
11
7. Le schéma relationnel étendu ..............................................................................................................................................
12
8. Langages de définition et de manipulation de données objet-relationnelles ................................................... 12
8.1. Langage de définition de données .............................................................................................................................
12
8.2. Langage de manipulation de données ......................................................................................................................
13
8.2.1. Insertion de données ...........................................................................................................................................
13
8.2.2. Suppression de données .....................................................................................................................................
14
8.2.3. Modification de données ....................................................................................................................................
14
8.2.4. Recherche de données ........................................................................................................................................
15
9. Manipulations avancées de données objet-relationnelles ........................................................................................ 15
9.1. Utilisation des méthodes ...............................................................................................................................................
15
9.2. Programmation PL/SQL ................................................................................................................................................
17
9.3. Les curseurs ........................................................................................................................................................................
18
9.4. Les vues objet-relationnelles .......................................................................................................................................
18
9.5. Les triggers .........................................................................................................................................................................
19
Série TD 01. Le relationnel Etendu ..........................................................................................................................................
21
Série TP 01. Création d’une base de données ORACLE .................................................................................................... 22
24
1. Introduction ................................................................................................................................................................................
2. Lacunes du modèle conceptuel ...........................................................................................................................................
24
3. Les modèles sémantiques pour la description des connaissances ........................................................................ 25
25
3.1. Les réseaux sémantiques ...............................................................................................................................................
25
3.2. Les graphes conceptuels ................................................................................................................................................
I
Table des Matières
25
3.3. Les thésaurus .....................................................................................................................................................................
25
3.4. Les topic maps ...................................................................................................................................................................
26
3.5. Les ontologies ....................................................................................................................................................................
4. Approches de conception de base de données à base ontologique ........................................................................ 27
27
4.1. Approche a posteriori .....................................................................................................................................................
28
4.2. Approche a priori .............................................................................................................................................................
28
5. Langages d’ontologie ...............................................................................................................................................................
28
5.1. RDF .........................................................................................................................................................................................
5.2. RDFS ......................................................................................................................................................................................
29
5.3. OWL .......................................................................................................................................................................................
30
31
5.4. SPARQL .................................................................................................................................................................................
Série TD 02. Les modèles sémantiques ..................................................................................................................................
33
Série TP 02. Manipulation des ontologies via Protégé 4.3.0 .......................................................................................... 34
35
1. Introduction ................................................................................................................................................................................
2. Définitions ...................................................................................................................................................................................
35
2.1. Base de données orientée objet ...............................................................................................................................
35
2.2. Système de gestion de base de données orienté objet .................................................................................... 36
3. Les éléments d’une BDOO .....................................................................................................................................................
36
3.1. Objet .....................................................................................................................................................................................
36
3.2. Classe d’objets ..................................................................................................................................................................
37
3.3. L’héritage ...........................................................................................................................................................................
37
3.4. Les constructeurs et les méthodes ...........................................................................................................................
38
3.5. Le polymorphisme ..........................................................................................................................................................
38
3.6. L’association "Relationship" .......................................................................................................................................
39
3.7. Le lien de composition ..................................................................................................................................................
39
4. Modélisation des BDOO par ODMG ....................................................................................................................................
40
5. Langages de définition et de manipulation des BDOO ............................................................................................... 40
5.1. ODL .......................................................................................................................................................................................
40
5.2. OQL ......................................................................................................................................................................................
41
Série TD 03. Les bases de données orientées objet ........................................................................................................... 45
1. 46
Introduction ................................................................................................................................................................................
2. Bref rappel sur la logique du premier ordre ..................................................................................................................
46
3. Base de données déductive ...................................................................................................................................................
47
4. SGBD déductif .............................................................................................................................................................................
48
5. Le langage DATALOG ...............................................................................................................................................................
49
5.1. Définition de données .....................................................................................................................................................
49
5.2. Evaluation de requêtes ...................................................................................................................................................
51
II
Table des Matières
1. 57
Introduction ................................................................................................................................................................................
2. Base de données répartie ......................................................................................................................................................
57
3. SGBD Réparti ..............................................................................................................................................................................
57
4. Conception d’une base de données répartie ..................................................................................................................
59
59
4.1. Approche de conception ascendante ........................................................................................................................
59
4.2. Approche de conception descendante .....................................................................................................................
5. Fragmentation ............................................................................................................................................................................
60
5.1. Fragmentation par répartition des relations ......................................................................................................... 60
5.2. Fragmentation horizontale ...........................................................................................................................................
60
5.3. Fragmentation verticale ................................................................................................................................................
60
5.4. Fragmentation hybride ..................................................................................................................................................
61
5.5. Fragmentation horizontale dérivée ..........................................................................................................................
61
6. Réplication ...................................................................................................................................................................................
61
7. Traitement de requêtes réparties ......................................................................................................................................
61
8. Gestion des transactions concurrentes ............................................................................................................................
62
Série TD 05. Les bases de données réparties .......................................................................................................................
64
Série TP 04. Manipulation de base de données répartie sous ORACLE .................................................................... 65
1. 67
Introduction ................................................................................................................................................................................
2.Les données multimédias ......................................................................................................................................................
67
3.Définition de base de données multimédia .................................................................................................................... 67
4.Types de données multimédias sous Oracle .................................................................................................................. 68
5.Manipulation de BDMM sous Oracle .................................................................................................................................
68
6.Les Bases de données NoSQL ...............................................................................................................................................
69
6.1. Les Bases de données MongoDB .................................................................................................................................
71
6.2. Manipulation de BD MongoDB ....................................................................................................................................
72
Série TD 06. Les bases de données multimédias ................................................................................................................ 73
Série TP 05. Manipulation de base de données multimédia sous ORACLE
JDeveloper .........................................................................................................................................................................................
74
III
Table des Matières
75
Solution de la série TD 01 ...........................................................................................................................................................
Solution de la série TP 01 ............................................................................................................................................................
77
78
Solution de la série TD 02 ...........................................................................................................................................................
79
Solution de la série TP 02 ............................................................................................................................................................
Solution de la série TD 03 ...........................................................................................................................................................
80
Solution de la série TD 04 ...........................................................................................................................................................
81
Solution de la série TP 03 ............................................................................................................................................................
82
Solution de la série TD 05 ...........................................................................................................................................................
83
Solution de la série TP 04 ............................................................................................................................................................
84
Solution de la série TD 06 ...........................................................................................................................................................
85
Solution de la série TP 05 ............................................................................................................................................................
86
REFERENCES BIBLIOGRAPHIQUES...........................................................................................................................................
87
IV
Liste des Figures
V
Chapitre 01. Le Relationnel Etendu
CHAPITRE
LE RELATIONNEL ÉTENDU
1. Introduction
Dans ce premier chapitre, nous étudierons le modèle objet-relationnel qui vise à remédier les
limites du modèle relationnel. Il s'agit d’une extension du modèle relationnel intégrant les
caractéristiques de l’approche orientée objet.
Ce chapitre présente dans un premier temps un bref rappel sur les bases de données. Il
présente également les limites du modèle relationnel. Le reste du chapitre est consacré à la
présentation du modèle relationnel étendu (ou objet-relationnel). Ce cours est enrichi par des
exemples en utilisant le meilleur SGBD professionnel "Oracle" version 11g Express Edition.
Georges Gardarin, définit une base de données comme étant « un ensemble de données
modélisant les objets d’une partie du monde réel avec le moins de redondance possible et
servant de support à une application informatique» [4].
Le modèle le plus populaire pour la description de bases de données (BD) est le modèle
relationnel qui a été proposé en 1970, par l’informaticien britannique Edgar Frank Codd [5].
Le modèle relationnel est fondé essentiellement sur la théorie des ensembles dont les tables
relationnelles sont vues comme des ensembles et l’utilisation des opérateurs ensemblistes sur
ces tables (intersection, union, produit cartésien et la différence). Il utilise également des
opérateurs propres aux bases de données telles que la sélection, la projection, la jointure et la
division [6].
Le SQL (Structured Query Language) est un langage déclaratif de manipulation de bases de
données, doté de quatre sous langages [7, 8] :
1. Langage de définition de données (LDD) : il permet de créer et de modifier la
structure de données (BD, table relationnelle, vues, index, etc.) par l’utilisation de trois
commandes qui sont: CREATE (création), ALTER (modification) et DROP
(suppression).
~6~
Cours. Bases de Données Avancées Dr. Aicha AGGOUNE
Le SQL3 est une extension de SQL2 développée par le groupe de normalisation ANSI X3
H2 et internationalisé au niveau de l’ISO par le groupe ISO/IEC JTC1/SC21/WG3 [9]. Il est
adopté depuis 1999 des nouveaux aspects, tels que l’intégration de l’objet au relationnel et la
représentation de données multimédias via les types de larges objets, etc. [9].
Le modèle relationnel bien que reste le modèle le plus puissant et le plus utiliser dans le
monde professionnel, des limites ont été relevées, les plus importantes sont [7, 9, 10]:
~7~
Chapitre 01. Le Relationnel Etendu
Pour pallier les lacunes du modèle relationnel, deux solutions ont été proposés : la
première appelée modèle relationnel étendu et la deuxième solution appelée le modèle
orientée objet qui sera présentée dans le chapitre 03.
Le modèle relationnel étendu, souvent appelé modèle objet-relationnel, est une extension du
modèle relationnel qui a pour but de remédier aux limites du modèle relationnel. Il vise à
combiner les avantages du modèle relationnel avec ceux de l’approche orientée objet.
~8~
Cours. Bases de Données Avancées Dr. Aicha AGGOUNE
Le modèle relationnel étendu introduit la notion de type abstrait de données baptisé ADT
(Abstract Data Type) pour définir de nouveaux types dépendant de l’application [4, 9].
CREATE [OR REPLACE] TYPE [nom schema.]<nom ADT> <corps>;/
Le mot clé REPLACE est utilisé pour modifier un type existant sans le supprimer et le recréer
à nouveau. Le corps du type est représenté d’une manière générale comme suit :
Il existe en général quatre types d’ADT : objet (OBJECT), tableau (VARRAY), table
imbriquée (NESTED TABLE) et type référence (REF).
Adresse_T
Num Rue Ville Pays
Un super type d’un sous type (Héritage), par exemple le type "Etudiant_T" hérite le type
"Personne_T".
~9~
Chapitre 01. Le Relationnel Etendu
Super type
Sous type
Remarque :
Le type abstrait ne possède qu’un seul super type (héritage simple).
Un type hérite les méthodes et les structures de données de son super type.
On peut assurer des imbrications d’héritage de types (type2 hérite type1 et type 3
hérite le type 2, etc.)
Exemple : La création de type Prenoms de chaîne de caractères est faite comme suit:
Exemple 01: on crée le type nested table "ens_diplomes" à partir le type "diplomes".
~ 10 ~
Cours. Bases de Données Avancées Dr. Aicha AGGOUNE
Exemple 02: création de table d’objets avec la table imbriquée Nested table.
Remarque :
Une Nested Table n’est pas une table objet ; elle ne possède pas d’OID.
Dans la définition de l’attribut de type REF, on peut limiter la portée de référence à une table
particulière en utilisant la commande SCOPE IS ou REFERENCES le nom de la table
référencée [3].
~ 11 ~
Chapitre 01. Le Relationnel Etendu
Le schéma relationnel étendu décrit les types ADT et les relations à travers le langage SQL
[4]. Nous distinguons deux modes d’associations [9, 10]:
Association symétrique : assure une imbrication partielle entre types. Dans ce mode,
deux relations sont dominantes. Il produit deux tables avec des références entre elles.
Association agrégation : dans ce mode d’association, l’un des types ADT domine
l’autre. Ce mode assure l’imbrication totale qui produit une seule table.
~ 12 ~
Cours. Bases de Données Avancées Dr. Aicha AGGOUNE
Table NF2: une table NF2 (Not First Normal Form) contenant des attributs complexes.
La création d’une table d’objet est faite par la commande suivante [4] :
La modification d’une table relationnelle classique ou table NF2 est faite par la commande
ALTER TABLE nom-table <Action>. Sachant que <Action> peut être : renommer,
supprimer (drop), ajouter (ADD) et modifier (MODIFY) les éléments de la table.
Modifier les attributs et méthodes d’une table d’objet revient à modifier son type d’objet par
la commande ALTER TYPE nom-type <Action>. Avec <Action> permet de : Ajouter,
Modifier, Supprimer et Mettre à jour des attributs, méthodes [4].
Exemple : ajouter au type adresse_T deux attributs "CodePostal" et "Code".
~ 13 ~
Chapitre 01. Le Relationnel Etendu
Dans cette expression, on peut insérer un nouvel objet sans utiliser son constructeur du
type d’objet (utilisation facultative) comme le constructeur Employe_T. Par contre,
l’utilisation du constructeur de type objet d’un attribut est obligatoire (cas de l’attribut
Adresse de type Adresse_T).
Dans le cas de l’insertion d’un tuple dans la table imbriquée, on utilise la clause TABLE.
Exemple : Ajouter à la personne "Djaber", une nouvelle voiture.
Dans le cas d’insertion d’un tuple dans une table contenant un attribut de type VARRAY, on
procède de la même manière que le NESTED TABLE.
Exemple :
L’insertion d’un n-uplet d’une table contenant un attribut référence (REF) sert à récupérer
l’OID de l’objet de la table référencée par l’utilisation d’une requête SELECT.
Exemple 01:
~ 14 ~
Cours. Bases de Données Avancées Dr. Aicha AGGOUNE
Exemple :
DEREF (OID) : opération inverse de REF, elle récupère la valeur d’objet à partir de son
identificateur OID.
~ 15 ~
Chapitre 01. Le Relationnel Etendu
Remarque :
Lors de définition des paramètres des méthodes, on utilise le mode IN pour les
fonctions et IN OUT pour les procédures.
Exemple :
~ 16 ~
Cours. Bases de Données Avancées Dr. Aicha AGGOUNE
Pour supprimer une méthode, on utilise dans la commande ALTER TYPE et la clause DROP
suivie par la signature d’une méthode. Comme on peut supprimer le corps d’un type objet par
la commande suivante :
DROP TYPE BODY nom_Type objet;
Exemple : un programme PL/SQL permet d’afficher les éléments d’un VARRAY nommée
"Numeros". Ces éléments sont des numéros de téléphones de type NUMBER.
~ 17 ~
Chapitre 01. Le Relationnel Etendu
Exemple :
~ 18 ~
Cours. Bases de Données Avancées Dr. Aicha AGGOUNE
Une vue objet-relationnelle offre la possibilité de créer des colonnes de types complexes tels
que le type NESTED TABLE, VARRAY et REF. Les opérateurs CAST et MULTISET
permettent de construire une colonne complexe (NESTED TABLE et VARRAY) à partir des
tables relationnelles ou NF2 par la syntaxe suivante :
CAST(MULTISET(SELECT…) AS <type>) AS <Alias>.
Exemple : soit la vue objet-relationnelle nommée Virtual, créée à partir d’une table
relationnelle nommée Personne. Nous voulons créer une colonne complexe (NESTED
TABLE) formée des matricules d’une deuxième table nommée Voiture pour récupérer pour
chaque personne la liste des matricules de ses voitures. La création de vue est comme suit :
Un trigger ou déclencheur est une procédure stockée dans la base de données qui est
déclenchée automatiquement par des événements spécifiés par le programmeur et ne
s’exécutant que lorsqu’une condition est satisfaite.
CREATE [OR REPLACE] TRIGGER nom_trigger BEFORE | AFTER
INSERT| DELETE| UPDATE [OF attributs] ON nom_table
[REFERENCING [OLD [AS] Nom_old] [NEW [AS] Nom_new]]
[FOR EACH ROW] [WHEN (condition)]]
bloc_pl/sql (code, requêtes SQL, affichage, etc.) ;
Remarque :
~ 19 ~
Chapitre 01. Le Relationnel Etendu
Finalement, plusieurs SGBD objet-relationnels ont été utilisés les plus importants sont:
Oracle, PostgreSQL, Informix et DB2. Une série d’exercices de TD et de TP en utilisant
Oracle 11g va être présentée dans les pages suivantes. Les corrections de ces exercices seront
décri à la fin de ce polycopié.
~ 20 ~
Série TD 01. Bases de données objet-relationnelles
Série TD N°1
(Bases de données Objet-Relationnelles)
Exercice 01.
Un centre de recherche veut stocker dans une base de données OR tous les documents qu'il
produit. Un document est caractérisé par un numéro, un titre, un type (rapport, article ou
livre), la date de création et le corps du document. Le corps est composé d'une suite de
paragraphes. Chaque paragraphe a un numéro, un titre et un contenu. Un document a été
rédigé par au moins un auteur. Un auteur est représenté par un identificateur, un nom, une
affiliation et l’adresse électronique.
Questions :
Définir le schéma objet relationnel (création des ADT et les tables).
~ 21 ~
Série TP 01. Création d’une base de données ORACLE
TP 01.
(Création d’une base de données ORACLE)
Objectifs
L’objectif principal du TP est d’apprendre comment créer manuellement
une base de données oracle. Une configuration du système d’exploitation
doit être effectuée avec une préparation importante des paramètres de la
BD.
~ 22 ~
Série TP 01. Création d’une base de données ORACLE
4. Travail à faire :
La base de données BDEU est prête pour accueillir des objets de schéma.
Remarque :
Les autres manipulations de données vues en cours (PL/SQL, trigger, séquences,
view, cursor, etc.) vont être étudiés dans le projet final de TP de ce module Bases de
données avancées.
~ 23 ~
Chapitre 02. Les Modèles Sémantiques
CHAPITRE
LES MODÈLES SÉMANTIQUES
1. Introduction
La définition du modèle relationnel (ou relationnel étendu) est basée sur des règles de passage
du modèle conceptuel vers le modèle logique [5]. Une grande partie de la sémantique portée
par le modèle conceptuel est disparu dans le modèle logique (cardinalités, la spécialisation, le
nom des associations, etc.). Le modèle relationnel (ou logique) résultant est alors devenu
incompréhensible surtout pour des grands modèles conceptuels.
Le modèle conceptuel étant une représentation de connaissance qui dépend à la fois les
besoins applicatifs pour lesquels il a été défini et les concepteurs qui ne produisent pas le
même modèle conceptuel adressé au même domaine. Les bases de données qui résulteront de
différents modèles conceptuels seront alors hétérogènes et s’engendrerons des conflits
sémantiques lors de toute tentative d’intégration des nouvelles données. Les principaux
conflits sont [12, 13] : les conflits de nommage (par exemple une table voiture et une table
véhicule), les conflits de structures (par exemple la table voiture peut être définie par des
~ 24 ~
Cours. Bases de Données Avancées Dr. Aicha AGGOUNE
propriétés de base et d’autre décrit par des propriétés détaillées), les conflits de granularité des
attributs (par exemple l’attribut adresse peut se définir par un type complexe ou une chaîne de
caractères), les conflits de type (par exemple l’attribut mois peut être défini par une chaîne de
caractères ou un entier entre 1 et 12), etc.
Pour pallier ces lacunes du modèle conceptuel, une solution consiste à attribuer aux bases
de données décrivant le même domaine, une description sémantique par l’utilisation d’un
modèle sémantique.
Pour tenir compte de la sémantique de données, des modèles sémantiques ont été proposés,
les plus connus sont [14]: les réseaux sémantiques, les graphes conceptuels, les thésaurus, les
topic maps et les ontologies.
~ 25 ~
Chapitre 02. Les Modèles Sémantiques
Une ontologie est donc une hiérarchie des concepts relient entre eux par des relations
prédéfinies telle que le lien de généralisation/spécialisation is-a, et d’autres relations
particulières à un domaine donné [21, 22]. Chaque concept se définit par un nom et un
ensemble de propriétés (ou slots) qui décrivent leur caractéristiques intéressantes [21, 22]. Ces
propriétés sont dotées des valeurs qui peuvent être restreindre par des restrictions appelées
facettes. Chaque concept est décrit par un ensemble d’individus (ou instances) représente les
connaissances.
~ 26 ~
Cours. Bases de Données Avancées Dr. Aicha AGGOUNE
Une base de données à base ontologique (BDBO) est une source de données composée de
deux structures différentes : une ou plusieurs ontologies décrivant la description sémantique
de données et une base de données contenant les instances ou individus des classes de ses
ontologies [23, 24].
Une BDBO est représentée par une table relationnelle contenant le schéma d’ontologie et
une ou plusieurs tables contenant les données tout en assurant le lien entre une donnée et sa
représentation sémantique à travers l’URI (Uniform Resource Identifier) de chaque élément
d’ontologies [2]. La figure suivante illustre la structure d’une BDBO.
~ 27 ~
Chapitre 02. Les Modèles Sémantiques
5. Langages d’ontologie
Plusieurs langages de représentation des ontologies ont été proposés afin d’en faire des
ontologies formelles facilement exploitables et partageables par des utilisateurs.
5.1. RDF
RDF (Resource Description Framework) est un langage de représentation d’ontologie qui a
été créé par le W3C1 pour décrire des ressources Web (document, site web, partie de page
web, page web, etc.) à l’aide d’une structure à base d’XML [27]. Ces ressources sont
représentées sous forme de triplet sujet-prédicat-objet, sachant que le sujet décrit la ressource
identifiée par son URI, le prédicat est une propriété ou relation entre deux sujets et l’objet est
une donnée (littéral) ou une autre ressource [27]. Un Sujet peut être objet dans un autre triplet.
Un ensemble de triplets forme un graphe RDF où les nœuds peuvent être des sujets ou des
objets et les arcs sont des prédicats [27].
Exemple: le graphe RDF modélisant la relation entre étudiant et le cours BDA est le suivant :
1
W3C (World Wide Web Consortium) une communauté internationale de définition des standards pour les
technologies liées aux web.
~ 28 ~
Cours. Bases de Données Avancées Dr. Aicha AGGOUNE
Le prédicat Est_inscrit décrit une relation sémantique entre le sujet "Etudiant" et l’objet
Cours, tandis que le prédicat rdf: type est un prédicat prédéfini par RDF appelé aussi
constructeur. Le rdf: type présente l’appartenance d’une instance à une classe ou même la
définition de relation d’héritage entre classes.
La représentation RDF/XML de ce graphe RDF est représentée dans la figure suivante.
Le document RDF/XML est une séquence d’éléments de type rdf :description permettant de
décrire les triplets d’ontologie sachant que [27]:
Rdf:type décrit la relation entre une classe et son instance. Il peut avoir comme valeur
rdf:Resource ou rdf:Property.
Rdf:datatype : décrit le domaine des valeurs en XSD, par exemple, le type chaîne de
caractères est exprimé par rdf :datatype=’&XSD :String’, ‘&xsd:Positiveinteger ’ pour
les entiers positifs, ‘&xsd:Boolean’ le type booléen, ‘&xsd:NonNegativeinteger’ pour
les entiers non négatifs, etc.
5.2. RDFS
Le RDFS (RDF Schema) ou RDF Schéma est une extension du RDF qui utilise ses
constructeurs et offre la possibilité de définir les classes par rdfs:Class, l’héritage entre classes
par rdfs:subClassOf, les propriétés par rdfs:Property, etc. [28]. Il offre aussi d’autre
~ 29 ~
Chapitre 02. Les Modèles Sémantiques
constructeurs tels que rdfs:comment pour documenter une ressource, et rdfs:label pour définir
un nom à une ressource [28].
Exemple :
5.3. OWL
Le langage OWL (Web Ontology Language) a été recommandé par le groupe WebOnt de
W3C dont le but d’étendre le RDFS par l’ajout des constructeurs permettant de décrire des
ontologies complexes tels que la définition des cardinalités entre relations, les relations
d’équivalence, de la symétrie, de l’inverse, etc. [29]. Le contenu du document OWL est défini
par les triplets RDF avec une description utilisant des mots-clés préfixés OWL [29]. OWL se
compose de trois sous-langages [29]: OWL-Lite (une version légère et moins complexe
d’OWL), OWL-DL (un vocabulaire riche basé sur la logique de description DL) et OWL-Full
(une version la plus complète et la plus expressive).
OWL demeure le langage le plus représentatif d’ontologies. Le graphe OWL contient :
Une super classe de tout appelée owl:Thing
D’autres constructeurs tels que la définition des restrictions, l’union, l’intersection, etc.
~ 30 ~
Cours. Bases de Données Avancées Dr. Aicha AGGOUNE
Les ontologies sont comme les bases de données, possèdent un langage de manipulation
appelé SPARQL permettant d’interroger le contenu d’ontologie.
5.4. SPARQL
SPARQL (SPARQL Protocol And RDF Query Language) est un langage proche de SQL,
permet de manipuler les ontologies à travers des requêtes [30].
Une requête SPARQL est composée de deux parties principales [30]:
Partie déclaration : est composée d’un ensemble des espaces de noms (name space) ou
encore des adresses IRI (Internationalized Resource Identifiers) qui généralisent et
internationalisent les adresses URI. Chaque espace de nom est préfixé par le mot-clé
PREFIX pour simplifier son utilisation dans la partie interrogation.
Les requêtes SPARQL sont définies par la clause SELECT qui contient soit le symbole *
pour sélectionner tous les composants du graphe ou bien un certain nombre de variables
préfixées par le symbole ‘?’ [30]. Elles peuvent contenir la clause WHERE délimitée par des
accolades et contient un ensemble de motifs séparés par un point et un certain nombre des
~ 31 ~
Chapitre 02. Les Modèles Sémantiques
conditions telles que: UNION entre deux conditions, FILTER pour filtrer les réponses selon
un critère donné, ORDER BY pour trier selon une variable, LIMIT pour limiter le nombre de
réponses, OFFSET indique à partir de quelle position dans la séquence on démarre, les
fonctions d’agrégat (COUNT, SUM, MIN, MAX, etc.), et la négation par le symbole ’!’, etc.
Exemple : chercher dix étudiants âgés de plus de 20 ans des facultés MISM et STECH, triés
par nom. Ces étudiants vont être sélectionnés à partir de 16ème réponse.
La requête SPARQL qui corresponde à cette question est illustrée dans la figure suivante.
Il existe plusieurs outils de gestion d’ontologies le plus important est Protégé 2000. Pour
implémenter et utiliser les BDBO, des outils doivent mettre en place dans des SGBD offrant
le stockage des métadonnées des ontologies dans les bases de données. Parmi ces outils, on
cite [2]: Jena, Sesame, RDFSuite, etc. Dans les séances de TP, nous nous focalisons sur
l’utilisation de l’éditeur Protégé 4.3.0 pour la création et la manipulation des ontologies.
~ 32 ~
Série TD 02. Les modèles sémantiques
Série TD N°2
(Les modèles sémantiques)
Parent Enfant
Nom Personne
Questions :
Traduisez ce graphe
1. En code RDF-XML.
2. En code RDFS.
Corrigé page 78
~ 33 ~
Série TP 02. Manipulation des ontologies via Protégé 4.3.0
TP 02.
(Manipulation des ontologies via Protégé 4.3.0)
Objectifs
L’objectif de ce TP est de créer à l’aide du l’éditeur Protégé 4.3.0 un modèle
sémantique de type ontologie. Ce TP permet d’apprendre comment
construire un schéma ontologique et comment l’interroger par SPARQL.
2. Travail demandé :
1.2. Définir le name space OntoTP qui contient l’URI de l’ontologie OntoTP et
traduire les questions suivantes en requêtes SPARQL :
~ 34 ~
Chapitre 3. Les Bases de Données Orientées Objet
CHAPITRE
LES BASES DE DONNÉES ORIENTÉES OBJET
1. Introduction
Dans le premier chapitre de ce polycopié de cours, nous avons dit qu’il existe deux solutions
pour combler les limites du modèle relationnel ; la première a été présentée dans le premier
chapitre appelée modèle relationnel étendu. La deuxième solution est purement orientée objet
qui sera l’objet de ce chapitre.
Nous définirons dans un premier temps la notion de base de données orientée objet
(BDOO) et les caractéristiques des SGBD orientés objet puis nous présenterons les éléments
d’une BDOO. Nous présenterons la modélisation ODMG qui dispose deux langages de
définition et de manipulations d’objets : ODL et OQL.
2. Définitions
Le modèle relationnel étendu bien qu’il conserve les caractéristiques du modèle relationnel,
son inconvénient majeur réside dans le fait qu’il présent deux niveaux d'abstraction différents:
le niveau relation et le niveau objet. Ces deux niveaux apportent des problèmes notamment la
perte de compatibilité relationnelle et le manque de compatibilité avec les langages de
programmation, etc.
~ 35 ~
Cours. Bases de Données Avancées Dr. Aicha AGGOUNE
6. La compatibilité avec les langages de programmation orienté objet tels que Java, C++.
Intégrité des données : les objets persistants respectent les contraintes d’intégrité.
3.1. Objet
L’objet est la structure principale qui définit les données d’une BDOO. Il est composé d’un
identificateur unique OID (Object Identifier), un ensemble d’attributs décrivant l’état d’objet
et une collection de méthodes forme le comportement d’objet.
Objet = OID + Etat (attributs) + Comportement (méthodes).
Un objet atomique est défini par des types littéraux atomiques. Un littéral est une donnée qui
n’a pas d’identificateur d’objet. Il ne peut être stocké directement de manière persistante. Les
littéraux atomiques sont: Long, Short, Float, Double, Char, String, Boolean, Enum
(énumération).
Un objet collection représente des attributs multivalués tels que ; Set<t>, Bag<t>, List<t>,
Array<t>, Dictionary<t, k>. Avec : t, k sont des types d’objets ou des types de littéraux.
Un objet structuré est un objet qui peut utiliser des types littéraux structurés tels que Date,
Interval, Time ou une série d’attributs définie par le constructeur "STRUCT" comme suit :
2
ODMG (Object Database Management Group) groupe de normalisation des systèmes de gestion de base de
données orientés objet.
~ 36 ~
Chapitre 3. Les Bases de Données Orientées Objet
Exemple :
TYPEDEF T_Affiliation STRUCT {STRING Depart, STRING Univ, STRING Lab, STRING
Pays, SHORT BP};
Remarque :
Une interface est une classe particulière qui ne peut être instanciée. Elle est
composée d’un ensemble d’attributs et une liste de méthodes sans implémentation.
3.3. L’héritage
L’héritage des classes permet de construire une hiérarchie des classes relient entre elles par
une relation de généralisation/spécialisation ou le lien IS_A ou encore relation de
subsomption.
~ 37 ~
Cours. Bases de Données Avancées Dr. Aicha AGGOUNE
Remarque :
La majorité des SGBD OO n'autorise que l'héritage simple (une seule classe mère).
Une méthode peut être une procédure avec le mot clé VOID qui indique que la méthode ne
rend pas de résultat ou une fonction en spécifiant le type de résultat.
Exemple : la méthode NouveauChercheur de la classe "Chercheur" permet d’ajouter un
nouveau chercheur. VOID NouveauChercheur(Chercheur C) ;
Le corps d’une méthode peut contenir des instructions de LPOO, des requêtes, invocation
de méthodes sur d'autres objets.
La création du corps d’une méthode se fait par la syntaxe suivante :
METHOD BODY <Type de résultat>/VOID <nom de méthode>
(type_param1 param1, …) IN CLASS <Nom_class> {
Code LPOO, requêtes, appels méthodes ;}
3.5. Le polymorphisme
Le polymorphisme permet de surcharger un nom de méthode dans le sens où plusieurs
méthodes ayant le même nom mais de corps et des types d’arguments différents [34].
~ 38 ~
Chapitre 3. Les Bases de Données Orientées Objet
Exemple :
Rédiger Auteurs
Chercheur Article
1:N 1:N
La définition de relationship entre ces deux classes est exprimée comme suit :
Class Chercheur Class Articles
(Extent LesChercheurs) { ... , (Extent LesArticles) { ...,
RELATIONSHIP SET Article Rédiger RELATIONSHIP SET Chercheur Auteurs
INVERSE Article::Auteurs; } INVERSE Chercheur::Rédiger ; }
Article Section
~ 39 ~
Cours. Bases de Données Avancées Dr. Aicha AGGOUNE
L’OMG3 propose un standard permettant la portabilité des schémas de base de données et des
programmes développés sur des SGBDOO appelé ODMG (Object Database Management
Group) [36]. L’ODMG dispose un langage graphique pour modéliser les bases de données
orientées objet dont les classes sont représentées par un rectangle associé avec le nom de
collection et la clé de classe. Les attributs et les méthodes sont attachés dans les classes par
des tirés.
Exemple : les classes Chercheur-permanent, Chercheur-Doctorant héritent la classe chercheur.
La classe 'Article' est liée avec la classe 'Chercheur'. La classe 'Article' est composée de
plusieurs objets de la classe 'Section'.
LesChercheurs Depart
Nom Univ
Affiliation Lab
Prénom Chercheur
ID (Key) Pays
Rédiger 0:N BP
LesChercheursP LesChercheursD
Chercheur-Permanent Chercheur-Doctorant Inscription
Auteurs
Prime () : double
Article Section
1:N LesArticles
La norme ODMG dispose des langages de définition et de manipulation de données les plus
importants sont: ODL et OQL. Nous nous basons sur les références [36-38].
5.1. ODL
Le langage ODL (Object Definition Language) permet de créer un schéma ODL décrivant une
BDOO par la création des classes, des interfaces, des objets et implémentations des méthodes.
Il permet aussi de compiler le schéma d’objets et de générer les données de la BDOO.
3
OMG : Object Management Group
~ 40 ~
Chapitre 3. Les Bases de Données Orientées Objet
5.2. OQL
L’OQL (Object Query Language) est un langage déclaratif de requêtes proche de SQL mais
non compatible avec SQL [37]. L’OQL fournit des primitives de haut niveau qui manipulent
les collections et les types structurés.
Exemple : on crée un objet persistant nommé de la classe Chercheur:
NAME SERIDI : Chercheur ; //déclaration d’une variable permanente nommée SERIDI
~ 41 ~
Cours. Bases de Données Avancées Dr. Aicha AGGOUNE
On peut accéder aux données structurées par l’utilisation de la notation pointée, par exemple,
SERIDI. Affiliation.Lab ;
L’OQL fournit un appel direct aux méthodes à travers l’objet nommé, par exemple
SERIDI.Age() ;.
De plus, l’OQL supporte l’affichage de tous les objets d’une collection via son nom, par
exemple, afficher tous les chercheurs par le nom de collection : LesChercheurs ;
Remarque :
La notation pointée est interdite pour accéder aux attributs d’une relation. L’accès
se fait via des requêtes OQL.
Exemple :
SERIDI. Rédiger. Titre N'EST PAS CORRECT
La requête OQL interroge via la clause FROM les collections d’objets définies par le mot clé
EXTENT plutôt que des classes d’objets et cela par l’utilisation du mot clé "IN".
Exemple 02: afficher la prime de chercheur Chantal Reynaud sachant que Prime() est une
fonction. L’invocation de cette méthode s’effectue par la notation pointée.
SELECT C.Prime()
FROM C IN LesChercheurs;
WHERE C.Nom='Reynaud' AND C.Prenom='Chantal';
== DOUBLE
~ 42 ~
Chapitre 3. Les Bases de Données Orientées Objet
Exemple : on définit une requête qui retourne l’ensemble des chercheurs algériens.
DEFINE Chercheur-Algérien AS
SELECT C
FROM C IN LesChercheurs
WHERE C. Affiliation.Pays='Algérie'.
Remarque :
On peut utiliser l’opérateur IN dans la clause WHERE comme dans le SQL.
Les quantificateurs logiques : on peut utiliser dans une requête OQL les quantificateurs
logiques qui sont : le quantificateur existentiel EXISTS…IN… et le quantificateur universel
FOR ALL…IN.... Ces opérateurs sont utilisés dans une clause conditionnelle telle que la
clause WHERE.
Exemple 01: afficher les titres des articles s’il y’a au moins une section dénommée Résumé.
SELECT A.Titre
FROM A IN LesArticles
WHERE EXISTS S IN A.Section: S.Titre='Résumé';
==Littéral SET STRING
~ 43 ~
Cours. Bases de données avancées
D’autres fonctions sont disponibles dans l’OQL. Dans ce cours, nous avons étudié les
fonctions les plus importantes citées précédemment. L’utilisation de SGBDOO est limitée
dans des applications du point de vue objet (CAO, SIG, etc.) et ils sont complètement absents
du monde professionnel. De plus, la majorité des SGBDOO sont commerciaux tels que
ObjectStore, Versant Object Technology, etc.
~ 44 ~
Série TD 03. Bases de données orientées objet
Série TD N°3
(Base de données orientée objet)
Question :
Traduire ce diagramme ODMG en schéma ODL.
Questions :
1. Ecrire le corps des méthodes suivantes :
1.1. NbrSeg permet de connaitre le nombre de segments existants.
1.2. Initialiser la longueur de segment par 1.
2. Ecrire en OQL les requêtes suivantes :
2.1. Affecter la personne suivante à la machine nommée MacJeux du numéro 18: Omar
Tahi du numéro 19, habitant à Guelma, rue 19 Juin, numéro 25.
2.2. Les noms des logiciels qui sont installés sur la machine 5.
~ 45 ~
Chapitre 04. Les Bases de Données Déductives
CHAPITRE
LES BASES DE DONNÉES DÉDUCTIVES
1. Introduction
Le succès des modèles relationnels résident dans le fait qu’ils reposent sur deux théories
mathématiques : la théorie des ensembles et la logique mathématique. Néanmoins, utiliser le
modèle relationnel pour faire des raisonnements et exprimer des règles déductives demeure
l’une de ses limites. De ce fait, une base de données déductive est apparue pour la
modélisation des bases de données relationnelles par la logique du premier ordre.
Ce chapitre se présente dans un premier temps un bref rappel sur la logique du premier
ordre puis il étudie les BD déductives en introduisant le langage standard appelé DATALOG.
Finalement, nous présenterons des séries de TD et TP en utilisant le SGBD déductif DES,
version 6.1.
~ 46 ~
Cours. Bases de Données Avancées Dr. Aicha AGGOUNE
antécédents (les littéraux situés avant l’implication) et les Qj sont les conséquents ou la tête de
la clause.
Une clause ayant un seul littéral en tête est dite clause de Horn de la forme [42]:
P1P2P3 …Pn Q
Exemple : soient x, y deux employés et s est un service. Si l’employé x est responsable à
l’employé y et que ces deux employés travaillent dans le même service alors x est le chef
service. Cette phrase est exprimée comme suit :
Responsable (x, y) Service (s, x) Service (s, y) Chef_Service(x).
On peut transformer l’implication d’une clause par la disjonction des négations de littéraux
qui forment la tête de clause [42]. La clause de Horn devient donc: P1P2P3 …PnQ.
Une règle d’inférence aussi appelée règle déductive est une application qui à partir de n>=1
expressions on déduit une formule bien formé. Elle est de la forme [43]:
∀t (h(t) ← ∃y(b1 (y)∧ · · · ∧ bn (y) ))
Exemple : la clause précédente s’écrit sous forme d’une règle déductive comme suit :
∀x Chef_Service(x) ←∃y ∃s (Responsable (x, y) Service (s, x) Service (s, y)).
Nous terminons cette section par quelques propriétés entre prédicats [43]:
P dépend directement de Q si Q est un antécédent et P est un conséquent.
P est récursif si P dépend de P.
P dépend strictement de Q si P dépend de Q et Q ne dépend pas de P.
Une règle déductive est récursive si son antécédent contient un prédicat qui dépend du
conséquent.
Une règle déductive est stricte si les littéraux figurants dans l’antécédent sont tous
positifs.
Une règle déductive stricte est équivalente à une clause de Horn : h(t) ∨ ¬b1 ∨ · · ∨ ¬bn.
Les bases de données déductives sont vues comme le résultat du couplage entre deux
domaines ; les bases de données et l’intelligence artificielle [43]. L'idée est d’intégrer dans
une base de données un ensemble de règles logiques (règles déductives) qui permettent d'en
déduire de l'information [43]. Une BD déductive se compose de deux types de prédicats :
Les prédicats extensionnels : ils correspondent aux relations du modèle relationnel
comme la relation Personne est un prédicat extensionnel. Les extensions des prédicats
sont souvent appelées les faits (Ex. Omar) qui sont des tuples de BD. L’ensemble de
~ 47 ~
Chapitre 04. Les Bases de Données Déductives
Alors, on peut définir une base de données déductive à partir d’une base de données
relationnelle comme suit : les prédicats extensionnels et leurs extensions sont le contenu de
cette base de données relationnelle avec la création des vues relationnelles qui vont être vues
comme des prédicats intentionnels sous forme des clauses de Horn permettant de déduire ou
d’inférer des informations à partir de faits stockés dans une base de données.
L’ensemble de règles déductives forme un graphe de dépendances dont les nœuds sont des
prédicats et les arcs entre prédicats représentent les règles déductives. S’il existe une règle
récursive alors le graphe de dépendances dispose un cycle. L’exemple le plus connu est
certainement la description des relations de parenté :
Ancêtre (x, y) ←Parent (x, y).
Ancêtre (x, y) ←Parent (x, z) Ancêtre (z, y).
Le graphe de dépendance qui correspond ces règles d’inférences est :
4. SGBD déductif
A la fin des années 70, Gallaire, Minker et Nicolas ont fait des travaux visant à rendre les
SGBD capables de : Définir des faits, Faire des raisonnements et Exprimer des règles
déductives en logique du premier ordre. Il s’agit d’un SGBD déductif qui comporte les
fonctionnalités d’un SGBD classique pour gérer les faits avec des opérateurs dérivés de la
logique du premier ordre pour assurer la définition et la manipulation de connaissances [44].
Il possède trois langages [44]:
Un langage de définition de base de données extensionnelle.
~ 48 ~
Cours. Bases de Données Avancées Dr. Aicha AGGOUNE
5. Le langage DATALOG
Le langage DATALOG (Data base Logic) signifie la logique pour les données, est un langage
déclaratif de requête et de règles pour les bases de données déductives.
DATALOG est un sous ensemble de langage de programmation logique PROLOG, dédié à la
description et à la manipulation de connaissances. Le DATALOG est composé des symboles
suivants [10, 46, 47]:
A partir de cette déclaration, on peut créer les extensions de prédicats comme suit :
nom-prédicat (valeur1, valeur2, …)).
Exemple : on utilise la BD déductive de SGBD DES qui décrit les relations de parenté.
La définition de prédicats Father et Mother se résume dans la figure suivante :
~ 49 ~
Chapitre 04. Les Bases de Données Déductives
Figure 4.1. Exemple de définition de prédicats extensionnels et les faits sous DES
Remarque :
La création des prédicats intensionnels sous forme des clauses de Horn se fait comme suit :
nom-prédicat :-nomPredicat1 (variables), nomPredicat2
(variables), opérations de comparaison.
Exemple : la figure suivante présente la définition de deux prédicats intentionnels Parent (x,y)
et Ancestor (x,y).
Comme dans le SQL, on peut définir des contraintes d’intégrité en DATALOG par le prédicat
INCORRECT_DB qui contient des règles incorrectes qui ne doivent pas figurer dans le
programme DATALOG.
~ 50 ~
Cours. Bases de Données Avancées Dr. Aicha AGGOUNE
La projection : par exemple: quels sont les noms et les prénoms des personnes.
En SQL: SELECT Distinct P.Nom, P.Prenom FROM Personne P.
En DATALOG : Personne(X, Y, _).
~ 51 ~
Chapitre 04. Les Bases de Données Déductives
On peut aussi créer deux règles déductives ayant la même tête nommé "Union".
Union (X, Y, Z, T):- Etudiant (X, Y, Z, T).
Union (X, Y, Z, T):- Employé (X, Y, Z, T).
La différence: par exemple, quels sont les étudiants non-salariés ?
On crée un prédicat intentionnel nommé "Différence" avec :
Différence (X, Y, Z, T) :- Etudiant (X, Y, Z, T), not (Employé (X, Y, Z, T)).
La jointure: soient Personne (num, nom, prenom) et Voiture (immatricule, marque, modèle,
num) deux relations. Soit la question suivante : qui possédait de voiture ?.
On crée un prédicat intentionnel dénommé "Joint" :
Joint (X, Y, Z, T, V, W) :- Personne (X, Y, Z), Voiture (T, V, W, X). Sachant que x désigne
l’argument numéro de personne.
Le produit cartésien: soient deux relations : Thésard (nom, prenom) et Thèse (intitulé,
domaine). Afficher tous les thésards et les thèses existants :
On crée un prédicat intentionnel dénommé "Produit" :
Produit (X, Y, Z, T) :- Thésard (X, Y), Thèse (Z, T).
Par ailleurs, le DATALOG supporte l’utilisation des fonctions d’agrégats telles que SUM,
MAX, MIN, AVG, COUNT, COUNT-DISTINCT. Pour résoudre une requête non récursive,
on construit l’arbre de recherche comme dans le PROLOG.
Exemple : Le but est : Parent(X, Fred). L’arbre de recherche donné par la figure suivante :
~ 52 ~
Cours. Bases de Données Avancées Dr. Aicha AGGOUNE
~ 53 ~
Chapitre 04. Les Bases de Données Déductives
pour la suppression d’un fait. Pour la mise à jour, DATALOG ne dispose pas une fonction de
mise à jour mais elle peut être interprétée par une suppression suivie par un ajout.
Exemple : Pour ajouter au père Tom le fils Anne, on exécute la règle suivante :
Finalement, malgré que le DATALOG permet de faire des raisonnements et déduire des
nouveaux faits à partir d’une grande base de données, il avait montré des limites telles que
l’expression des clauses GROUP BY et HAVING, etc. Le SQL reste toujours le langage le
plus professionnel et le plus performant pour la gestion efficace de bases de données.
~ 54 ~
Série TD 04. Bases de Données Déductives
Série TD N°4
(Bases de données déductives)
Questions :
Supposons que cette BD relationnelle dispose les n-uplets suivants :
Les n-uplets de fournisseur Les n-uplets de commande Les n-uplets d’Article
123, Fathi, Karim 0001, 01/09/2018,40.000, 456 485, bureau, 20.000, 0001
456, Ramdani, Said 0013, 19/10/2018,80.000, 101 361, imprimante, 30.000, 0013
789, Dridi, Yacine 0151, 22/08/2018,35.000, 123 211, PC, 80.000, 501
101, Kara, Hamza 501, 30/05/2018,97.000, 789 432, Onduleur, 10.000, 0151
1. Ecrire un programme DATALOG qui permet de créer une BD déductive sachant que
cette base contient le prédicat "Acceptation" décrivant les commandes acceptées par les
fournisseurs.
2. Evaluer le prédicat Chemin si les extensions du prédicat Arc sont représentées ci-
dessous.
Arc
3. Quel est le nombre d’extensions du prédicat Chemin ? 1 2
1 3
2 4
Corrigé page 81. 4 5
3 6
~ 55 ~
Série TP 03. Manipulation de base de données déductive par le SGBD DES v. 6.1
TP 03.
(Manipulation de base de données déductive par le SGBD
DES version 6.1)
Objectifs
L’objectif du TP est de vous amener à manipuler les bases de données
déductives via le SGBD DES, d’afficher le graphe de dépendance, de créer
des tables relationnelles et d’exprimer des requêtes en SQL et en DATALOG.
1. Travail demandé :
Le projet TPBDA comporte la base de données déductive de relations de parenté.
1. Afficher les tables relationnelles, les vues et les contraintes d’intégrités s’il
existe.
2. Afficher le graphe de dépendance du fichier Family.dl (sachant que dl est
l’extension du fichier datalog).
3. Ajouter les faits suivants : Father(peter, marck), Father (Marck, Bob), Mother
(Jina, Marck), Mother(Lila, bob).
4. Calculer les extensions de prédicats father et mother.
5. Exprimer les questions suivantes en DATALOG :
5.1. Qui sont les parents de marck ?
5.2. Quelles sont les familles existantes dans cette base ?
Corrigé page 82
~ 56 ~
Chapitre 05. Les Bases de Données Réparties
CHAPITRE
LES BASES DE DONNÉES RÉPARTIES
1. Introduction
Avec la croissance exponentielle du volume de bases de données rend leur gestion un travail
fastidieux. En effet, les utilisateurs ont besoin de partager les données d’une base de données
sur plusieurs sites tout en assurant la transparence et la disponibilité de données. L’objectif de
ce chapitre est donc de présenter les bases de données réparties en utilisant le SGBD Oracle.
Une base de données Répartie (Distributed database) est un ensemble de bases de données
logiquement liées et physiquement localisées sur différents sites (machines) et perçues par
l'utilisateur comme une base unique. Chaque base de données possède son schéma local. Le
schéma de la BD répartie constitue le schéma global qui n'est généralement pas matérialisé et
il peut servir du support de conception et d’expression de requêtes [49, 50].
Remarque :
Une base de données répartie ce n’est pas une base de données centralisée
accessible via le réseau.
3. SGBD Réparti
Un SGBD réparti permet de gérer les bases de données réparties en fournissant un moyen
d’accès rendant la distribution transparente [66]. Les principales fonctionnalités fournissant
par le SGBD réparti sont [49, 50]:
La fragmentation d’une base de données en plusieurs fragments.
La distribution et la localisation de fragments sur plusieurs sites.
La réplication (ou duplication) de données pour assurer la disponibilité en cas de panne.
La reconstruction de fragments.
Le traitement de requêtes réparties.
La gestion de transactions réparties.
~ 57 ~
Cours. Bases de Données Avancées Dr. Aicha AGGOUNE
Réseau
DATABASE LINK
BD1 BD2
Table 1 Table 2
Le SGBD réparti oracle assure la liaison des bases de données par la création d’un lien
unidirectionnel "DATABASE LINK" d’un serveur à un client via la commande suivante :
CREATE [SHARED|PUBLIC|PRIVATE] DATABASE LINK Nom_du_Lien
CONNECT TO {CURRENT_USER | Nom-utilisateur IDENTIFIED BY
mot_de_passe}
USING nom_de_service;
Le mot clé USING nom_de_service spécifie le nom de service d’une base distante qui se
trouve dans le fichier de configuration tnsnames.ora du serveur distant.
Exemple : Sur le site Serveur, on crée un DATABASE LINK nommé ServeurClient qui lie le
Serveur avec le client du compte Client avec le mot de passe C20182019 et le nom du service
est SITE1.
Pour référencer une base de données distante, on utilise le nom global ou le lien de base de
données défini par database link ou rendre la localisation purement transparente par
l’utilisation des synonymes.
~ 58 ~
Chapitre 05. Les Bases de Données Réparties
Pour supprimer un lien entre deux bases de données, on exécute la commande suivante :
DROP DATABASE LINK nom_du_lien;
~ 59 ~
Cours. Bases de Données Avancées Dr. Aicha AGGOUNE
5. Fragmentation
~ 60 ~
Chapitre 05. Les Bases de Données Réparties
6. Réplication
La réplication consiste à dupliquer et maintenir les fragments sur différents sites pour
augmenter la disponibilité de données, réduire la charge du réseau [51, 52].
Il existe plusieurs techniques de réplication de fragments telles que la commande Copy, la
création de clichés (Snapshot) et les vues matérialisées. Dans ce cours, nous nous focalisons
sur l’utilisation de vues matérialisées pour la réplication de fragments.
Les vues matérialisées (materialized views) est la technique la plus récente et la plus
utilisée pour la réplication de fragments [53].
Une transaction est une suite d’opérations menée sur une base de données qui doit être soit
validée par un COMMIT, soit annulée par un ROLLBACK.
Remarque :
Les opérations de mise à jour de données (insert, delete et update) démarrent par
défaut une transaction implicite avec un commit, sans une annulation rollback.
Remarque :
La gestion des transactions concurrentes permet d’assurer que l’exécution simultanée
des transactions produit le même résultat que leur exécution séquentielle
Un ensemble de transactions concurrentes {T1, …, Tn} pose des conflits sur les opérations de
Read et Write qui sont:
Perte de mise à jour lorsque deux transactions modifient simultanément la même valeur.
Lecture impropre lorsque une transaction annule l’écriture. Ex : r1(x), w1(x), r2(x),
w2(y), Rollback1, commit2. La transaction 2 lit une valeur de x mise à jour par la
transaction 1 mais qui ne sera finalement pas validée (Rollback1).
Lecture non reproductible lorsque une transaction lit deux valeurs différentes pour la
même variable. Ex : r1(x), r2(x), w1(x), r2(x). T2 lit deux valeurs de A différentes.
Objets fantômes destinées aux variables de type collection (liste, ensemble, table, etc.):
après la lecture deux fois de même collection, on observe des objets supplémentaires à
cause de mise à jour.
~ 62 ~
Chapitre 05. Les Bases de Données Réparties
Pour éviter les anomalies présentées précédemment, plusieurs solutions ont été proposées
telles que le verrouillage à travers un Verrou qui représente la technique la plus classique et
l’ordonnancement (scheduling) des transactions. Nous nous focalisons dans ce cours sur la
technique d’ordonnancement.
Un ordonnancement O est un ordre d’exécution des opérations aij des transactions Ti.
Exemple : Soit l’ordonnancement O suivant:
O=R1(A) W2(A)R2(A)R1(A) W1(A).
Donner le résultat de O pour la valeur initiale A=10 et W=A+1.
Réponse :
1) T1: A=10
2) T2: A=11
3) T2: A=11
4) T1: A=11
5) T1: A=12 Alors le résultat de O est A=12.
Remarque :
Un ordonnancement est Sérialisable si elle donne pour chaque transaction
participante, le même résultat que l’exécution en série de ces mêmes transactions.
Dans l’exemple précédent, O n’est pas sérailisable car A=11 (T1) et A=12 (T2) alors que dans
O A=12 (T1) et A=11 (T2).
Dans ce cours, nous avons présenté les notions fondamentales sur les bases de données
réparties et les SGBD réparti notamment le SGBD Oracle. Des exemples des SGBD répartis
comme : DB2, SQL Server, Sybase, Informix, Ingres.
Malgré les avantages des bases de données réparties notamment l’accroissement de vitesse
de traitement et la disponibilité de données, on trouve des inconvénients les plus importants
sont : administration complexe, distribution du contrôle, difficulté de migration et coût
important.
~ 63 ~
Série TD 05. Les bases de données réparties
Série TD N°5
(Bases de données réparties)
Questions :
1. Proposer une bonne conception descendante (top down design) de la base de données
sur ces trois universités en s’appuyant sur les deux hypothèses suivantes :
H1. Chaque université gère ses propres projets de recherche.
H2. Le numéro d’enseignant, son nom et son prénom sont des informations connues
dans toutes les universités comme informations d’un chercheur par contre les
attributs le grade, l’université et le code du projet sont privés.
2. Assurez-vous qu’on peut reconstruire le schéma global à partir de ces fragments.
3. Créer la vue matérialisée Ens-projet pour rendre disponible les données suivantes : pour
chaque titre de projet de l’université de Guelma, afficher la description du projet et la
liste des enseignants (le nom, le prénom). Assurer la mise à jour de données tous les
trois jours.
~ 64 ~
Série TP 04. Manipulation de Base de données répartie sous Oracle 11g
TP 04.
(Manipulation de base de données répartie sous ORACLE)
Objectifs
L’objectif principal du TP est de manipuler les bases de données réparties
sur plusieurs machines. De ce fait, on utilise le logiciel de virtualisation de
machines VMWare pour la création des sites clients. Une configuration
correcte du réseau entre machines est un travail principal pour réussir
l’accès à une base de données distante (remote database).
~ 65 ~
Série TP 04. Manipulation de Base de données répartie sous Oracle 11g
~ 66 ~
Chapitre 06. Les Bases de Données Multimédias
CHAPITRE
LES BASES DE DONNÉES MULTIMÉDIAS
1. Introduction
Les bases de données multimédias (BDMM) s’appuient le plus souvent sur des architectures
de base de données existantes, les plus utilisées étant le modèle relationnel et le modèle
~ 67 ~
Cours. Bases de Données Avancées Dr. Aicha AGGOUNE
orienté objet. Elles ont la capacité de stocker les descripteurs de données multimédias à savoir
les histogrammes de couleur pour les images.
Exemple : Dans une BD des films définie par des données classiques, telles que les titres de
films, des noms des acteurs, le nom du producteur, année de sortie, etc. et les films eux-
mêmes stockés dans un répertoire et représentés par le chemin de stockage de ces films. Cette
BD permet de représenter ce qu’on veut d’une manière atomique, par contre dans une
BDMM, ce qu’on veut, c’est travailler sur des éléments multimédia, par exemple, dans quel
film on a telle image d’acteur?
Le SGBD multimédias doit offrir les mêmes caractéristiques qu’un SGBD classique
(persistance, gestion des transactions, interrogation …) avec les fonctions suivantes [4]:
1. Le stockage de tous les types de données multimédia.
2. La manipulation de données multimédias.
3. La gestion efficace de données volumineuses.
4. La recherche par le contenu dont la requête peut contenir des objets multimédias.
C’est à partir de SQL3 qu’on peut manipuler les données multimédias par les types de large
objets, appelés les types LOB (Large OBject). Selon la localisation des LOB au niveau de la
BDMM, nous pouvons distinguer deux types de LOB [4, 12, 55] :
Les LOB internes sont stockés directement dans la table de la BDMM et référencés par
un pointeur logique appelé Locator qui pointe vers les données. Le type binaire BLOB
(Binary Large OBject) pour stocker les données binaires (vidéo, image et audio) et le
type de caractères longs CLOB (Character Large Object) pour stocker les données
textuelles. Le NCLOB (National CLOB) pour les chaînes de caractères Unicode.
Les LOB externe comme son nom l’indique, les données sont stockées dans un fichier
externe et référencées à l’aide d’un pointeur. Le BFILE (Binary File) est un LOB
externe où les données se trouvent dans un fichier externe à la base de données (sur
disque dure, etc.) et relient avec elle à travers Locator qui pointe vers ce fichier.
La déclaration d’un attribut de type LOB se fait comme une déclaration d’attribut de type
simple.
~ 68 ~
Chapitre 06. Les Bases de Données Multimédias
Exemple : Soit la table Fruit définit par un identificateur id, un nom du fichier image et
l’image de type Blob. La création de cette table se fait comme suit :
Dans l’attribut de type BLOB (attribut image), les valeurs qui sont des fichiers images sont
stockés dans un répertoire nommé DirFruit qui a été créé comme suit :
Quel que soit le type de LOB (LOB externe ou interne), sa manipulation nécessite
l’utilisation de programme PL/SQL et des méthodes du package DBMS_LOB telles que
empty_blob() pour initialiser le type blob, Loadfromfile() pour le chargement de données
multimédias à partir de fichier BFILE, etc.
Exemple. L’insertion de données BFILE se fait comme suit :
Les bases de données actuelles sont souvent volumineuses et qui ne suivent pas le même
modèle de données (XML, BDR, etc.). La gestion de ces grosses données (Big data) est
impossible via les SGBD existants. Le Bases de données NoSQL (Not Only SQL) ou non
seulement SQL, représente une alternative de bases de données SQL pour le stockage et le
traitement de Big data [56].
~ 69 ~
Cours. Bases de Données Avancées Dr. Aicha AGGOUNE
Les données NoSQL ne suivent pas tous le même schéma « SchemaLess ou Schema free ».
Le stockage de données est faite d’une manière souple contrairement aux données SQL qui
faite avec précaution selon un schéma fixé avec contraintes.
~ 70 ~
Chapitre 06. Les Bases de Données Multimédias
Dans ce polycopié de cours, nous nous focalisons sur l’une des bases de données NoSQL les
plus populaires qui est la base de données orientée document du système MongoDB.
~ 71 ~
Cours. Bases de Données Avancées Dr. Aicha AGGOUNE
La gestion de BD MongoDB est faite via des commandes shell, par exemple, Afficher la BD
courante en écrivant le mot clé db.
- Interrogation:
1. db.collection.find() pour afficher tous les documents.
2. db.collection.find().pretty() est comme 1 avec une amélioration d’affichage.
- Opérateur in:
- Condition:
- Recherche avec OR :
~ 72 ~
Série TD 06. Bases de Données Multimédias
Série TD N°6
(Bases de données multimédias)
Questions :
1. Donner le schéma objet-relationnel de cette base d’images et assurez-vous que
l’attribut Type ne doit prendre que les valeurs suivantes : Fleure, Plante externe et
Plante interne.
2. Créer le répertoire RMM du chemin C:\botanique pour stocker les images de plantes.
3. Ecrire une requête SQL3 qui permet d’insérer la plante d’intérieur AleoVera ayant le
code 113 avec un fichier image baptisé AleoVera.jpg.
4. Soient Q une image exemple donnée en requête représentée par le vecteur Q= (2, 0, 3,
5) et B1 et B2 deux images représentées par les vecteurs D1 = (2.6, 0, 3, 5) et D2 = (2,
0, 2.75, 5) respectivement. En utilisant la distance Euclidienne, quelle est l’image la
plus similaire à Q ?
Questions :
~ 73 ~
Série TP 05. Manipulation de Bases de données multimédias sous Oracle JDeveloper
TP 05.
(Manipulation de base de données multimédia sous
ORACLE JDeveloper)
Objectifs
Le but de ce TP est d’apprendre comment manipuler les bases de données
multimédias en utilisant le SGBD Oracle 11g et l’IDE Oracle JDeveloper
11g. Nous nous focalisons sur les données images afin de montrer
comment visualiser ce type de données dans un navigateur par le biais du
connecteur JDBC qui permet de connecter une base de données avec une
application, un applet ou servlet.
~ 74 ~
Solution de Série TD 01.
Exercice 02.
1.
2.
~ 75 ~
Solution de Série TD 01.
Exercice 03.
1.
2.
3.
Exercice 04.
1.
2.
~ 76 ~
Solution de Série TP 01.
~ 77 ~
Solution de Série TD 02.
~ 78 ~
Solution de Série TP 02.
2.
~ 79 ~
Solution de Série TD 03.
~ 80 ~
Solution de Série TD 04.
Num2.
INCORRECT_DB:- Article (Code1,
Désignation, Prix, Commande), Article
~ 81 ~
Solution de Série TP 03.
5.1
5.2
~ 82 ~
Solution de Série TD 05.
~ 83 ~
Solution de Série TP 04.
4. Requête répartie :
5. La vue matérialisée
~ 84 ~
Solution de Série TD 05.
2. Les requêtes :
2.1.
2.2.
~ 85 ~
Solution de Série TP 05.
Code java :
~ 86 ~
Références Bibliographiques
Références Bibliographiques
1. Aggoune, A., A. Bouramoul, and M.K. Kholladi, Mediation system for dealing with
semantic problems in databases. International Journal of Data Mining, Modelling and
Management, 2017. 9(2): p. 99-121.
2. Dehainsala, H., Explicitation de la sémantique dans les bases de données: Base de
données á base ontologique et le modéle OntoDB. 2007, Université de Poitiers.
3. Oracle. 25/07/2018]; Available from:
https://docs.oracle.com/cd/B28359_01/appdev.111/b28370/create_type.htm#LNPLS0137
5.
4. Gardarin, G., Bases de données. 2003: Editions Eyrolles.
5. Codd, E.F., A relational model of data for large shared data banks. Communications of
the ACM, 1970. 13(6): p. 377-387.
6. Connolly, T.M. and C.E. Begg, Database systems: a practical approach to design,
implementation, and management. 2005: Pearson Education.
7. Elmasri, R. and S. Navathe, Fundamentals of database systems. 2010: Addison-Wesley
Publishing Company.
8. Nijssen, G.M. and T.A. Halpin, Conceptual Schema and Relational Database Design: a
fact oriented approach. 1989: Prentice Hall Sydney.
9. Delmal, P., SQL2-SQL3: applications à Oracle. 2000: De Boeck Supérieur.
10. Gardarin, G. and P. Valduriez, SGBD avancés: bases de données objets, déductives,
réparties. 1990: Eyrolles.
11. Loney, K., Oracle Database 11g The Complete Reference. 2008: McGraw-Hill, Inc.
12. AGGOUNE, A., Traitement de L'hétérogénéité Sémantique pour L'exploration des
Sources des Donnés Multimédias. 2017, Abdelhamid Mahri Constantine 2 -Algérie -.
13. Kim, W. and J. Seo, Classifying schematic and data heterogeneity in multidatabase
systems. Computer, 1991. 24(12): p. 12-18.
14. Berners-Lee, T., J. Hendler, and O. Lassila, The semantic web. Scientific american, 2001.
284(5): p. 34-43.
15. Woods, W.A., WHAT'S IN A LINK: Foundations for Semantic Networks, in
Representation and Understanding, D.G. Bobrow and A. Collins, Editors. 1975, Morgan
Kaufmann: San Diego. p. 35-82.
16. Sowa, J.F., Conceptual structures: information processing in mind and machine. 1984.
17. Roberts, N., The pre-history of the information retrieval thesaurus. Journal of
documentation, 1984. 40(4): p. 271-285.
18. Caussanel, J., et al., Les Topic Maps sont-ils un bon candidat pour l'ingénierie du Web
Sémantique? Actes des 13e journées francophones d'ingénierie des connaissances (IC).
Prix AFIA de la meilleure présentation, 2002.
19. Welty, C. and N. Guarino, Supporting ontological analysis of taxonomic relationships.
Data & Knowledge Engineering, 2001. 39(1): p. 51-74.
20. Studer, R., V.R. Benjamins, and D. Fensel, Knowledge engineering: principles and
methods. Data and knowledge engineering, 1998. 25(1): p. 161-198.
21. Guarino, N., D. Oberle, and S. Staab, What is an ontology?, in Handbook on ontologies.
2009, Springer. p. 1-17.
22. Teitsma, M., et al., Engineering ontologies for question answering. Applied Ontology,
2014. 9(1): p. 1-25.
23. Dehainsala, H. Base de données à base ontologique. in Proc. du 23ème congrès Inforsid.
2004.
24. Pierra, G., et al. Base de données à base ontologique: le modèle OntoDB. in BDA. 2004.
~ 87 ~
Références Bibliographiques
25. Roldan-Garcia, M., I. Navas-Delgado, and J.F. Aldana-Montes. A design methodology for
semantic web database-based systems. in Information Technology and Applications,
2005. ICITA 2005. Third International Conference on. 2005. IEEE.
26. Sugumaran, V. and V.C. Storey, The role of domain ontologies in database design: An
ontology management and conceptual modeling environment. ACM Transactions on
Database Systems (TODS), 2006. 31(3): p. 1064-1094.
27. Lassila, O. and R.R. Swick, Resource description framework (RDF) model and syntax
specification. 1998.
28. McBride, B., The resource description framework (RDF) and its vocabulary description
language RDFS, in Handbook on ontologies. 2004, Springer. p. 51-65.
29. McGuinness, D.L. and F. Van Harmelen, OWL web ontology language overview. W3C
recommendation, 2004. 10(10): p. 2004.
30. Pérez, J., M. Arenas, and C. Gutierrez. Semantics and Complexity of SPARQL. in
International semantic web conference. 2006. Springer.
31. Khoshafian, S. and R. Abnous, Object orientation: concept, analysis and design,
languages, databases, graphical user interfaces, standards. 1995: John Wiley & Sons,
Inc.
32. Amiel, E., et al., Etude de la persistance dans les SGBDOO. 1992, INRIA.
33. Adiba, M. and C. Collet, Objets et bases de données: le SGBD O2. 1993, Editions
Hermes.
34. Zdonik, S.B. and D. Maier, Readings in object-oriented database systems. 1990: Morgan
Kaufmann.
35. Rumbaugh, J., et al., Object-oriented modeling and design. Vol. 199. 1991: Prentice-hall
Englewood Cliffs, NJ.
36. ODMG. 16/06/2018]; Available from: http://www.odbms.org/odmg-standard/.
37. Jordan, D., C++ Object Databases: Programming with the ODMG standard. Vol. 456.
1998: Addison-Wesley.
38. Cattell, R.G.G., et al., The object database standard: ODMG 2.0. Vol. 131. 1997:
Morgan Kaufmann Publishers Los Altos, CA.
39. Gallaire, H., J. Minker, and J.M. Nicolas, An overview and introduction to logic and data
bases, in Logic and Data Bases. 1978, Springer. p. 3-30.
40. Cori, R. and D. Lascar, Logique mathématique: cours et exercices. Calcul propositionnel,
algèbres de Boole, calcul des prédicats. 1993: Masson.
41. Gochet, P. and P. Gribomont, " Logique", méthodes pour l'informatique fondamentale.
Revue de Métaphysique et de Morale, 1992. 97(4): p. 573.
42. Horn, A., On sentences which are true of direct unions of algebras. The Journal of
Symbolic Logic, 1951. 16(1): p. 14-21.
43. Gallaire, H., J. Minker, and J.-M. Nicolas, Logic and databases: A deductive approach,
in Readings in Artificial Intelligence and Databases. 1988, Elsevier. p. 231-247.
44. HACID, M.-S. and J. KOULOUMDJIAN, Bases de données déductives. Techniques de
l'ingénieur. Informatique, 1997(H2048): p. H2048. 1-H2048. 11.
45. Nicolas, J.-M. and K. Yazdanian, Integrity checking in deductive data bases, in Logic and
data bases. 1978, Springer. p. 325-344.
46. Sagiv, Y., Optimizing datalog programs, Foundations of deductive databases and logic
programming. 1988, Morgan Kaufmann Publishers Inc., San Francisco, CA.
47. Gottlob, G., E. Grädel, and H. Veith, Datalog LITE: A deductive query language with
linear time model checking. ACM Transactions on Computational Logic (TOCL), 2002.
3(1): p. 42-79.
48. Rolston, D.W., Principles of artificial intelligence and expert systems development. 1988.
~ 88 ~
Références Bibliographiques
49. Bernstein, P.A., et al., Query processing in a system for distributed databases (SDD-1).
ACM Transactions on Database Systems (TODS), 1981. 6(4): p. 602-625.
50. Ceri, S., Distributed databases. 2017: Tata McGraw-Hill Education.
51. Özsu, M.T. and P. Valduriez, Principles of distributed database systems. 2011: Springer
Science & Business Media.
52. CABANAC, G., et al., Bases de données réparties. 2014(15/08/2018).
53. Gabillaud, J., Oracle 11g: SQL, PL/SQL, SQL* Plus. 2009: Editions ENI.
54. Bulterman, D.C.A., SMIL 2.0. 2. Examples and comparisons. IEEE MultiMedia, 2002.
9(1): p. 74-84.
55. Nwosu, K.C., B. Thuraisingham, and P.B. Berra, Multimedia Database Systems: design
and implementation strategies. 2012: Springer Science & Business Media.
56. Sadalage, P.J. and M. Fowler, NoSQL distilled: a brief guide to the emerging world of
polyglot persistence. 2013: Pearson Education.
57. AGGOUNE, A. and M.S. NAMOUNE. A Method for Transforming Object-relational to
Document-oriented Databases. in 2020 2nd International Conference on Mathematics
and Information Technology (ICMIT). 2020. IEEE.
~ 89 ~