Académique Documents
Professionnel Documents
Culture Documents
Abdelhak BOULAALAM
http://boulaalam.usmba.ac.ma/
abdelhak.boulaalam@usmba.ac.ma
1
4/14/2021
M30- Object DB
M30- Object DB
2
4/14/2021
M30- Object DB
M30- Object DB
3
4/14/2021
M30- Object DB
M30- Object DB
4
4/14/2021
M30- Object DB
M30- Object DB
5
4/14/2021
M30- Object DB
Objet personne2
Objet personne1
A. BOULAALAM (USMBA/ENSA) BDA – BDO 11
M30- Object DB
6
4/14/2021
M30- Object DB
M30- Object DB
7
4/14/2021
M30- Object DB
class Person {
attribute int ID;
attribute string name;
attribute string address;
attribute string phone;
void setName(in string newName); // method
string getName( ); //method
...
}
M30- Object DB
premierPerson.setName(‘Abdelhak');
string getName( )
{
return name;
}
8
4/14/2021
M30- Object DB
premierPerson.setName(‘Abdelhak');
string getName( )
{
return name;
}
M30- Object DB
9
4/14/2021
M30- Object DB
Notation UML
Exemple:
MovieProfessional et
Celebrity EST UN
Person.
A. BOULAALAM (USMBA/ENSA) BDA – BDO 19
M30- Object DB
10
4/14/2021
M30- Object DB
Consortium ODMG
Créé en 1991 par Rick Cattell (SUN, Javasoft) en tant
que sous-groupe d'OMG (Object Management
Group) avec: 02 Tech., Objectivity, Object Design,
Ontos, Versant
OMG: UML, CORBA,…
Plus de 50 entreprises en 2000:
Lucent, Lockheed, CA, Microsoft, Baan, ...
OBJECTIFS:
Promotion des SGBD OO (Object-Oriented) ... , avant…
SQL3!
Création d'un standard d'objet pour la portabilité des
applications
A. BOULAALAM (USMBA/ENSA) BDA – BDO 21
M30- Object DB
Historique ODMG
1ère rencontre au SUN avec Rick Catell en
septembre 91
ODMG 1.0 (1993): 5 éditeurs
ODL, OQL, Interface C ++, Smalltalk
ODMG 2.0 (1996): 10 éditeurs
(Poet, Lucent, Windward, American Man, Barry)
Interface Java (Java Binding), Meta Model
11
4/14/2021
M30- Object DB
ODL et OIF:
langages de
spécification
M30- Object DB
ATTRIBUTS
MÉTHODES
12
4/14/2021
M30- Object DB
M30- Object DB
P: Persistency
S: Structuration (Schema)
13
4/14/2021
M30- Object DB
P: Persistency
S: Structuration (Schema)
M30- Object DB
E Encapsulation (Methods)
14
4/14/2021
M30- Object DB
M30- Object DB
15
4/14/2021
M30- Object DB
M30- Object DB
16
4/14/2021
M30- Object DB
M30- Object DB
TYPE: Hiérarchie
17
4/14/2021
M30- Object DB
ODMG: meta-model
M30- Object DB
INTERFACE CALCULATEUR {
CLEAR();
FLOAT ADD(IN FLOAT OPERAND);
FLOAT SUBSTRACT (IN FLOAT OPERAND);
FLOAT DIVIDE(IN FLOAT DIVISOR);
FLOAT MULTIPLY (IN FLOAT MULTIPLIER);
FLOAT TOTAL();}
A. BOULAALAM (USMBA/ENSA) BDA – BDO 36
18
4/14/2021
M30- Object DB
M30- Object DB
19
4/14/2021
M30- Object DB
M30- Object DB
20
4/14/2021
M30- Object DB
M30- Object DB
21
4/14/2021
M30- Object DB
M30- Object DB
22
4/14/2021
M30- Object DB
M30- Object DB
<<persistent>>
ClassSection
<<persistent>>
0..* sectionCode
Student
hasStudent schedule
credits 0..*
room
gpa takesClass
getStatus( )
addCredits( )
23
4/14/2021
M30- Object DB
M30- Object DB
24
4/14/2021
M30- Object DB
0..*
<<persistent>> hasSection
Student 0..* <<persistent>>
credits hasStudent 0..* ClassSection
gpa takesClass sectionCode
getStatus( ) schedule
addCredits( ) room
M30- Object DB
25
4/14/2021
M30- Object DB
M30- Object DB
26
4/14/2021
Exercice Semaine 2
Personne
nss
!! nom
prenom Appart
Voiture datenais
vieillir() étage
nveh no
couleur !! dormir() rue
marque code
km ville
rouler()
Employe Sportif
inferieur
fonction
type
salaire *
état
primes Sport
travailler() Pritiquer()
superieur * nom
champ
qualité
EmployeSportif
M30- Object DB
27
4/14/2021
M30- Object DB
M30- Object DB
28
4/14/2021
M30- Object DB
M30- Object DB
29
4/14/2021
M30- Object DB
M30- Object DB
30
4/14/2021
M30- Object DB
Course
M30- Object DB
31
4/14/2021
M30- Object DB
<<persistent>>
<<persistent>> ClassSection
Student 0..*
sectionCode
credits givenStudent
schedule
gpa
0..* room
getStatus( )
addCredits( ) earnedGrade
A. BOULAALAM (USMBA/ENSA) BDA – BDO 63
M30- Object DB
32
4/14/2021
M30- Object DB
M30- Object DB
Cela signifie que facId est une clé, socSecNo est une clé et
que la combinaison du nom et department est une clé.
En OODB les clés ne sont pas limitées aux attributs.
lister une relation ou même une méthode comme clé, à condition
qu'elle nous donne des valeurs uniques.
33
4/14/2021
M30- Object DB
M30- Object DB
34
4/14/2021
<<persistent>>
pId
Person <<persistent>>
name Course
address cNo
phone cTitle
birthdate credits
findAge() description
changeDesc( )
<<persistent>> <<persistent>> 1 1
Student Faculty hasTeacher isSection
credits 0..* 1 rank
gpa advises hasAdvisor salary
getStatus( ) giveRaise( )
addCredits( ) 0..*
0..*
hasStudent hasSection
<<persistent>>
ClassSection
<<persistent>> <<persistent>> 0..*
sectionCode 0..*
Undergraduate Graduate takesClass
schedule teaches
major program room
changeMajor( ) changeProgram( )
0..1
assists
<<persistent>>
TeachingAssistant 0..1
fundingSource hasTA
annualStipend
A. BOULAALAM (USMBA/ENSA) BDA – BDO 69
M30- Object DB
35
4/14/2021
M30- Object DB
M30- Object DB
36
4/14/2021
M30- Object DB
M30- Object DB
37
4/14/2021
M30- Object DB
M30- Object DB
38
4/14/2021
M30- Object DB
M30- Object DB
39
4/14/2021
M30- Object DB
M30- Object DB
40
4/14/2021
M30- Object DB
FROM Students s
FROM s IN Students
FROM Students AS s
A. BOULAALAM (USMBA/ENSA) BDA – BDO 81
M30- Object DB
41
4/14/2021
M30- Object DB
M30- Object DB
SELECT f.name
FROM Departments AS d, d.hasFaculty AS f
WHERE d.deptName = 'Biology';
42
4/14/2021
M30- Object DB
SELECT f.name
FROM (SELECT d
FROM d IN Departments
WHERE d.deptName = 'Biology') AS b,
b.hasFaculty AS f;
M30- Object DB
43
4/14/2021
M30- Object DB
M30- Object DB
COUNT ((SELECT u
FROM Undergrads AS u
WHERE u.majorsIn = 'Computer Science');
44
4/14/2021
M30- Object DB
M30- Object DB
45
4/14/2021
M30- Object DB
DEFINE Juniors AS
SELECT s
FROM s IN Undergrads
WHERE s.credits >= 60 AND s.credits<90;
// utilisation
SELECT j.pId, j.name FROM j IN Juniors;
46