Académique Documents
Professionnel Documents
Culture Documents
Chapitre III
Introduction
BDOO
SGBDOO
Modélisation de BDOO par ODMG
Introduction
BDOO
[1]
SGBDO
[2]
[2] [3]
SGBDO
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:
Objet structuré
Relation binaire nommée sans attribut, avec de cardinalité qui peut être
(1:1), (1:N), (N:M) [5], la définition de relationship se fait comme suit:
Exemple: relationship entre classes
Exemple (suite)
Le lien de composition
Exemple
Le représentation textuelle du diagramme précédent:
Modélisation de BDOO par ODMG
L’OMG (Object Management Group) 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) [5].
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 des rectangles associés avec le nom de collection et la clé de la classe.
Les attributs et les méthodes sont attachés dans les classes par des tirés
Modélisation de BDOO par ODMG
Langage de définition et de
manipulation des BDDOO
L’attribut ‘’Rédiger’’ est une relation avec plusieurs objets de type ‘’Article’’
La définition des valeurs de cet attribut se fait par: (le constructeur)SET, et le
constructeur de la classe référencée Article,
L’OQL permet d’accéder directement aux données d’une BDOO à partir d’un
objet nommé ou collection d’objets:
Exemple: SERIDI.Nom, SERIDI.Prenom
On peut accéder aux attributs structurés on utilisant la notation pointée:
SERIDI.Affiliation.Lab
L’OQL fournit un appelle direct aux méthodes à travers l’objet nommé, par
exemple: SERIDI.Age()
OQL permet d’afficher tous les objets d’une collections via son nom, exemple
afficher tous les chercheurs par le nom de la collection: LesChercheurs
OQL
La notation pointée est interdite aux attributs d’une relation, l’accès se fait
via des requêtes OQL.
Exemple: SERIDI.Rediger.titre n’est pas correcte ça doit être une requête
OQL peut contenir:
Des opérateurs ensemblistes: union, intersect, except
Quantificateurs: for all, exists
Les fonctions d’agrégation: count(collection), sum(collection), min(collection),
max(collection, min(collection), avg (collection)
Autres: order by, group, having, define
Requêtes OQL
Pour accéder aux attributs de type structuré, on utilise la notation pointé:
Exemple: afficher le nom du laboratoire où le chercheur Hamid SERIDI est
membre:
SELECT C.AFFILIATION.LAB
FROM C IN LesChercheurs
WHERE C.nom=‘SERIDI’ et C.prenom=‘HAMID’
= litéral <String>
La notation pointillé est interdite pour les attributs de relations: on utilise
une jointure dans la clause FROM,
Exemple: afficher les titres de sarticles du chercheur Codd Philipe:
SELECT A.titre
FROM C IN LesChercheurs, A IN C.Rédiger
WHERE C.nom=‘CODD’ et C.prenom=‘PHILIP’
= litéral SET <String>
OQL: les requêtes
On peut utiliser dans une requête OQL les quantificateurs logiques qui
sont:
EXISTS …… IN ……
FOR ALL….. IN ……
Ces opérateurs sont utilisés dans une clause conditionnelle telle que
WHERE
Exemple
Afficher les titres des articles ayant au moins une section nommée Résumé:
Exemple
Le résultat
Références
1.
1.
2.
3.
4.
5.
6.
7.
8.