0
Object Oriented Database <ul><li>Group 4 </li></ul><ul><li>Mathieu Metz </li></ul><ul><li>Palani Kumaresan </li></ul><ul><...
Outline <ul><li>Object definitions </li></ul><ul><li>Object Structures </li></ul><ul><li>Object-oriented concepts </li></u...
Definition of an object <ul><li>Objects – User defined complex data types </li></ul><ul><li>An object has structure or sta...
Object Structure <ul><li>The state (current value) of a complex object may be constructed from other objects (or other val...
Object-Oriented Concepts <ul><li>Abstract Data Types  </li></ul><ul><ul><li>Class definition, provides extension to comple...
What is Object Oriented Database? (OODB) <ul><li>A database system that incorporates all the important object-oriented con...
Advantages of OODBS <ul><li>Designer can specify the structure of objects and their behavior (methods) </li></ul><ul><li>B...
Object Query Language (OQL) <ul><li>Declarative query language </li></ul><ul><ul><li>Not computationally complete </li></u...
Example of OQL query <ul><li>The following is a sample query  </li></ul><ul><li>“ what are the names of the black product?...
Result of the query (SQL) - The statement queries a relational database.  => Returns a table with rows. Result Original ta...
Result of the query (OQL) - The statement queries a object-oriented database => Returns a collection of objects. Result Or...
Comparison  <ul><li>Queries look very similar in SQL and OQL, sometimes they are the same </li></ul><ul><li>In fact, the r...
SQL3 “Object-oriented SQL” <ul><li>Foundation for several OO database management systems – ORACLE8, DB2, etc </li></ul><ul...
User defined Data Types <ul><li>Creating a “row type” </li></ul><ul><ul><li>Example: </li></ul></ul><ul><ul><li>create row...
Creating Data Types (contd.) <ul><li>Creating “Table” </li></ul><ul><li>create table  Address  of type  AddressType; </li>...
Sample Query <ul><li>Find the names and street addresses of those MovieStars who stay in the city “Columbus”: </li></ul><u...
Complex Data and Queries <ul><li>A Water Resource Management example </li></ul><ul><li>A database of state wide water proj...
Complex Data and Queries (contd.) <ul><li>Addressing these queries </li></ul><ul><ul><li>Linking this database to landmark...
Creating Functions <ul><li>create   function  one()  returns   int4   </li></ul><ul><li>as  ‘ select  1  as  RESULT'  </li...
Creating “tables” with “methods” <ul><li>Implementation </li></ul><ul><li>create table  slides ( </li></ul><ul><li>id int,...
Creating Tables (Contd.) <ul><li>create table  landmarks( </li></ul><ul><li>name varchar (30), </li></ul><ul><li>location ...
Implementation (contd.) <ul><li>Sample query – find a picture of a reservoir with low water level which is in “Sacramento”...
Upcoming SlideShare
Loading in...5
×

215 oodb

245

Published on

oodb

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
245
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
8
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • 1) In SQL, this statement will query a relational database, i.e., a set of table-like structures (see Section 2.2, Second generation database technology), and return a table, the rows of which are rows of the table called products in which the column called colour has the value &amp;quot;black&amp;quot;. If the relational database contains the products table in Figure 6.2 (a), the result of the query will be the Figure 6.2 (b) table.   2) In OQL this statement will query an object database and return a collection-object which contains objects contained in the collection object called products for which the value of the colour attribute is the literal &amp;quot;black&amp;quot;. Given the object database in Figure 6.1, this OQL statement will return the object represented in Figure 6.3. 1) That which is interpreted as a table name in SQL, is interpreted as a collection-object name in OQL; 2) That which is interpreted as the name of a column of a table in SQL is interpreted as an object characteristic name (an attribute, relationship, or operation name) in OQL.
  • Transcript of "215 oodb"

    1. 1. Object Oriented Database <ul><li>Group 4 </li></ul><ul><li>Mathieu Metz </li></ul><ul><li>Palani Kumaresan </li></ul><ul><li>Napa Gavinlertvatana </li></ul><ul><li>Kristine Pei Keow Lee </li></ul><ul><li>Prabhu Ramachandran </li></ul>
    2. 2. Outline <ul><li>Object definitions </li></ul><ul><li>Object Structures </li></ul><ul><li>Object-oriented concepts </li></ul><ul><li>OODBS </li></ul><ul><li>OQL with an example </li></ul><ul><li>SQL3 with examples </li></ul>
    3. 3. Definition of an object <ul><li>Objects – User defined complex data types </li></ul><ul><li>An object has structure or state (variables) and methods (behavior/operations) </li></ul><ul><li>An object is described by four characteristics </li></ul><ul><li>Identifier: a system-wide unique id for an object </li></ul><ul><li>Name: an object may also have a unique name in DB (optional) </li></ul><ul><li>Lifetime: determines if the object is persistent or transient </li></ul><ul><li>Structure: Construction of objects using type constructors </li></ul>
    4. 4. Object Structure <ul><li>The state (current value) of a complex object may be constructed from other objects (or other values) by using certain type constructors </li></ul><ul><li>Can be represented by (i,c,v) </li></ul><ul><ul><li>i is an unique id </li></ul></ul><ul><ul><li>c is a type constructor </li></ul></ul><ul><ul><li>v is the object state </li></ul></ul><ul><li>Constructors </li></ul><ul><ul><li>Basic types: atom, tuple and set </li></ul></ul><ul><ul><li>Collection type: list, bag and array </li></ul></ul>
    5. 5. Object-Oriented Concepts <ul><li>Abstract Data Types </li></ul><ul><ul><li>Class definition, provides extension to complex attribute types </li></ul></ul><ul><li>Encapsulation </li></ul><ul><ul><li>Implementation of operations and object structure hidden </li></ul></ul><ul><li>Inheritance </li></ul><ul><ul><li>Sharing of data within hierarchy scope, supports code reusability </li></ul></ul><ul><li>Polymorphism </li></ul><ul><ul><li>Operator overloading </li></ul></ul>
    6. 6. What is Object Oriented Database? (OODB) <ul><li>A database system that incorporates all the important object-oriented concepts </li></ul><ul><li>Some additional features </li></ul><ul><ul><li>Unique Object identifiers </li></ul></ul><ul><ul><li>Persistent object handling </li></ul></ul>
    7. 7. Advantages of OODBS <ul><li>Designer can specify the structure of objects and their behavior (methods) </li></ul><ul><li>Better interaction with object-oriented languages such as Java and C++ </li></ul><ul><li>Definition of complex and user-defined types </li></ul><ul><li>Encapsulation of operations and user-defined methods </li></ul>
    8. 8. Object Query Language (OQL) <ul><li>Declarative query language </li></ul><ul><ul><li>Not computationally complete </li></ul></ul><ul><li>Syntax based on SQL (select, from, where) </li></ul><ul><li>Additional flexibility (queries with user defined operators and types) </li></ul>
    9. 9. Example of OQL query <ul><li>The following is a sample query </li></ul><ul><li>“ what are the names of the black product?” </li></ul><ul><li>Select distinct p.name </li></ul><ul><li>From products p </li></ul><ul><li>Where p.color = “black” </li></ul><ul><ul><li>Valid in both SQL and OQL, but results are different. </li></ul></ul>
    10. 10. Result of the query (SQL) - The statement queries a relational database. => Returns a table with rows. Result Original table Black Mercedes SLK P3 Green Toyota Celica P2 Black Ford Mustang P1 Color Name Product no Ford Mustang Mercedes SLK Name
    11. 11. Result of the query (OQL) - The statement queries a object-oriented database => Returns a collection of objects. Result Original table Black Mercedes SLK P3 Green Toyota Celica P2 Black Ford Mustang P1 Color Name Product no Ford Mustang String Mercedes SLK String
    12. 12. Comparison <ul><li>Queries look very similar in SQL and OQL, sometimes they are the same </li></ul><ul><li>In fact, the results they give are very different </li></ul><ul><li>Query returns: </li></ul>Tuple Table Object Collection of objects SQL OQL
    13. 13. SQL3 “Object-oriented SQL” <ul><li>Foundation for several OO database management systems – ORACLE8, DB2, etc </li></ul><ul><li>New features – “relational” & “Object oriented” </li></ul><ul><li>Relational Features – new data types, new predicates, enhanced semantics, additional security and an active database </li></ul><ul><li>Object Oriented Features – support for functions and procedures </li></ul>
    14. 14. User defined Data Types <ul><li>Creating a “row type” </li></ul><ul><ul><li>Example: </li></ul></ul><ul><ul><li>create row type AddressType( </li></ul></ul><ul><ul><li>street char (50), </li></ul></ul><ul><ul><li>city char (20)); </li></ul></ul><ul><ul><li>create row type StarType( </li></ul></ul><ul><ul><li>name char (30), </li></ul></ul><ul><ul><li>address AddressType); </li></ul></ul>
    15. 15. Creating Data Types (contd.) <ul><li>Creating “Table” </li></ul><ul><li>create table Address of type AddressType; </li></ul><ul><li>create table MovieStar of type StarType; </li></ul><ul><li>Instances of Row types are tuples in tables </li></ul>
    16. 16. Sample Query <ul><li>Find the names and street addresses of those MovieStars who stay in the city “Columbus”: </li></ul><ul><li>select MovieStar.name, MovieStar.address.street </li></ul><ul><li>from MovieStar </li></ul><ul><li>where MovieStar.address.city = “Columbus”; </li></ul>
    17. 17. Complex Data and Queries <ul><li>A Water Resource Management example </li></ul><ul><li>A database of state wide water projects </li></ul><ul><li>Includes a library of picture slides </li></ul><ul><li>Indexing according to predefined concepts – prohibitively expensive </li></ul><ul><li>Type of queries </li></ul><ul><ul><li>Geographic locations </li></ul></ul><ul><ul><li>Reservoir levels during droughts </li></ul></ul><ul><ul><li>Recent flood conditions, etc </li></ul></ul>
    18. 18. Complex Data and Queries (contd.) <ul><li>Addressing these queries </li></ul><ul><ul><li>Linking this database to landmarks on a topographic map </li></ul></ul><ul><ul><li>Examining the captions for each slide </li></ul></ul><ul><ul><li>Implementing image-understanding programs </li></ul></ul><ul><ul><li>Inspecting images and ascertaining attributes </li></ul></ul><ul><li>These type of queries necessitate dedicated “methods” </li></ul>
    19. 19. Creating Functions <ul><li>create function one() returns int4 </li></ul><ul><li>as ‘ select 1 as RESULT' </li></ul><ul><li>language 'sql'; </li></ul><ul><li>select one() as answer; </li></ul>answer 1
    20. 20. Creating “tables” with “methods” <ul><li>Implementation </li></ul><ul><li>create table slides ( </li></ul><ul><li>id int, </li></ul><ul><li>date date, </li></ul><ul><li>caption document, </li></ul><ul><li>picture CD_image, </li></ul><ul><li>method containsName </li></ul><ul><li>(name varchar) </li></ul><ul><li>returns boolean </li></ul><ul><li>as external name ‘matching’ </li></ul><ul><li>language ‘C’ ); </li></ul>
    21. 21. Creating Tables (Contd.) <ul><li>create table landmarks( </li></ul><ul><li>name varchar (30), </li></ul><ul><li>location point); </li></ul>
    22. 22. Implementation (contd.) <ul><li>Sample query – find a picture of a reservoir with low water level which is in “Sacramento” </li></ul><ul><li>select P.id </li></ul><ul><li>from slides P, landmarks L </li></ul><ul><li>where IsLowWaterLevel (P.picture) and </li></ul><ul><li>P.containsName (L.name) and L.name = “Sacramento”; </li></ul>
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×