21.03.2013 Views

Object-Oriented Databases Need for Complex Data Types - CWI

Object-Oriented Databases Need for Complex Data Types - CWI

Object-Oriented Databases Need for Complex Data Types - CWI

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Data</strong>base System Concepts<br />

<strong>Data</strong>base System Concepts<br />

ODMG C++OML: <strong>Data</strong>base and <strong>Object</strong><br />

Functions<br />

Class d_<strong>Data</strong>base provides methods to<br />

open a database: open(databasename)<br />

give names to objects: set_object_name(object, name)<br />

look up objects by name: lookup_object(name)<br />

rename objects: rename_object(oldname, newname)<br />

close a database (close());<br />

Class d_<strong>Object</strong> is inherited by all persistent classes.<br />

provides methods to allocate and delete objects<br />

method mark_modified() must be called be<strong>for</strong>e an object is<br />

updated.<br />

Is automatically called when object is created<br />

8.33<br />

ODMG C++ OML: Example<br />

int create_account_owner(String name, String Address){<br />

<strong>Data</strong>base bank_db.obj;<br />

<strong>Data</strong>base * bank_db= & bank_db.obj;<br />

bank_db =>open(“Bank-DB”);<br />

d.Transaction Trans;<br />

Trans.begin();<br />

}<br />

d_Ref account = new(bank_db) Account;<br />

d_Ref cust = new(bank_db) Customer;<br />

cust->name - name;<br />

cust->address = address;<br />

cust->accounts.insert_element(account);<br />

... Code to initialize other fields<br />

Trans.commit();<br />

8.34<br />

©Silberschatz, Korth and Sudarshan<br />

©Silberschatz, Korth and Sudarshan<br />

17

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!