() , OID . , , . - , ( , ), . (OID) . , .
, , : , .
( ). , , . . -, , . -, .
. , , . , , , . , .
. , , . : (.. ) , , , . , . , , , . , .
|
|
ODMG
, , , . SQL, , . . ODMG (Object Database Management Group), , - , .
:
;
(object definition language ODL);
(object query language OQL);
- (C++, Java, Smalltalk, ).
, , .., , , , . , OID attribute, key, relationship, extent .. . SQL - , . , , :
class Person (extent persons, key ssn) {
attribute struct Pname { string fname, string mname, string (name } name;
attribute string ssn;
attribute date birthdate;
attribute enum Gender{M, F) sex;
attribute struct Address { short no, string street, short aptno, string city, string state,
short zip} address;
short age(); };
class Student extends Person(extent students) {
attribute string class;
attribute Department minors_in;
relationship Department majors_in inverse Department::has_majors;
relationship set <Grade> completed_sections inverse Grade::student;
void change_major(in string dname) raises (dname_not_valid);
float gpa();
void register(in short secno) raises (section_not_valid);
void assign_grade(in short secno; in GradeValue grade)
raises (section_not_valid, grade_not_valid); };
( 3)
. 2.14.
OpenODB (Hewlett Packard), O2 (Ardent Software) Object Store (Object Design).