Database System Concepts, 5th Ed. ©Sang Ho Lee Chapter 9: Object-Based Databases.

Slides:



Advertisements
Similar presentations
Chapter 10: Designing Databases
Advertisements

Database System Concepts ©Silberschatz, Korth and Sudarshan See for conditions on re-usewww.db-book.com ©Silberschatz, Korth and SudarshanDatabase.
Overview of Data Structures and Algorithms
©Silberschatz, Korth and Sudarshan9.1Database System Concepts Chapter 9: Object-Relational Databases Nested Relations Complex Types and Object Orientation.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 3 The Basic (Flat) Relational Model.
DB and DBMS Adapted from Silberschatz, Korth and Sudarshan.
Chapter 9: Object-Relational Databases
Object-Oriented Databases
A Guide to SQL, Seventh Edition. Objectives Understand the concepts and terminology associated with relational databases Create and run SQL commands in.
Fundamentals, Design, and Implementation, 9/e Chapter 16 Object-Oriented Database Processing.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 11 Object and Object- Relational Databases.
©Silberschatz, Korth and Sudarshan2.1Database System Concepts Reduction of an E-R Schema to Tables A database which conforms to an E-R diagram can be represented.
Database System Concepts, 6 th Ed. ©Silberschatz, Korth and Sudarshan See for conditions on re-usewww.db-book.com Chapter 22: Object-Based.
Advanced Database CS-426 Week 13 – Object Relational Databases.
EER vs. UML Terminology EER Diagram Entity Type Entity Attribute
Chapter 14: Object-Oriented Data Modeling
Object-Based Databases. 2 Complex Data Types and Object Orientation Structured Data Types and Inheritance in SQL Table Inheritance Array and Multiset.
Object-Relational Databases By Dr.S.Sridhar, Ph.D.(JNUD), RACI(Paris, NICE), RMR(USA), RZFM(Germany) DIRECTOR ARUNAI ENGINEERING COLLEGE TIRUVANNAMALAI.
22.1Database System Concepts - 6 th Edition Chapter 22: Object-Based Databases Complex Data Types and Object Orientation Structured Data Types and Inheritance.
©Silberschatz, Korth and SudarshanDatabase System Concepts.
Database System Concepts ©Silberschatz, Korth and Sudarshan Database System Concepts Chapter 9: Object-Based Databases.
Database System Concepts, 6 th Ed. ©Silberschatz, Korth and Sudarshan Lecture-02,03 Introduction –Data Models Lectured by, Jesmin Akhter.
DBMS Lecture 9  Object Database Management Group –12 Rules for an OODBMS –Components of the ODMG standard  OODBMS Object Model Schema  OO Data Model.
Object-Based Databases Ghazal Mostofi Sadri. Outline 1.Overview 2.Complex Data Types 3.Structured Types and Inheritance in SQL 4.Table Inheritance 5.Array.
Concepts and Terminology Introduction to Database.
1 Advanced Databases (CM036): Lecture # 5 ( Object-Relational and Nested-Relational Databases) Introduction to Object-Relational features of Oracle 9i.
Object-Based Databases Jose Reyes Jose. Overview Object-relational data model extends the relational data model by providing a richer type system including.
PowerPoint Presentation for Dennis, Wixom, & Tegarden Systems Analysis and Design with UML, 4th Edition Copyright © 2009 John Wiley & Sons, Inc. All rights.
©Silberschatz, Korth and Sudarshan9.1Database System Concepts Chapter 9: Object-Oriented Databases Nested Relations Complex Types and Object Orientation.
Database System Concepts ©Silberschatz, Korth and Sudarshan See for conditions on re-usewww.db-book.com ©Silberschatz, Korth and SudarshanDatabase.
Relational Data Model Ch. 7.1 – 7.3 John Ortiz Lecture 3Relational Data Model2 Why Study Relational Model?  Most widely used model.  Vendors: IBM,
Chapter 18 Object Database Management Systems. McGraw-Hill/Irwin © 2004 The McGraw-Hill Companies, Inc. All rights reserved. Outline Motivation for object.
©Silberschatz, Korth and Sudarshan1Database System Concepts Lecture 7: Introduction to Database Management Systems - Object-Oriented Databases Lecturer:
EXAMPLE. Subclasses and Superclasses Entity type may have sub-grouping that need to be represented explicitly. –Example: Employee may grouped into.
Object Relational Features
CSE314 Database Systems Lecture 3 The Relational Data Model and Relational Database Constraints Doç. Dr. Mehmet Göktürk src: Elmasri & Navanthe 6E Pearson.
11-1 CHAPTER 11 Concepts for Object-Oriented Databases.
Object-Relational Model. Review: Data Models Hierarchical Network ER (Pure) Relational (Pure) Object-oriented (ODMG) Object-relational (since SQL:1999)
Database System Concepts, 6 th Ed. ©Silberschatz, Korth and Sudarshan See for conditions on re-usewww.db-book.com Other Topics 1: Object.
Chapter 10 Designing Databases. Objectives:  Define key database design terms.  Explain the role of database design in the IS development process. 
Chapter 18 Object Database Management Systems. Outline Motivation for object database management Object-oriented principles Architectures for object database.
PowerPoint Presentation for Dennis, Wixom, & Tegarden Systems Analysis and Design with UML, 5th Edition Copyright © 2015 John Wiley & Sons, Inc. All rights.
©Silberschatz, Korth and Sudarshan7.1Database System Concepts - 6 th Edition Chapter 7: Entity-Relationship Model.
Database System Concepts, 6 th Ed. ©Silberschatz, Korth and Sudarshan See for conditions on re-usewww.db-book.com Module C: Beyond Relational.
Copyright © 2016 Ramez Elmasri and Shamkant B. Navathe Chapter 12 Outline Overview of Object Database Concepts Object-Relational Features Object Database.
1 10 Systems Analysis and Design in a Changing World, 2 nd Edition, Satzinger, Jackson, & Burd Chapter 10 Designing Databases.
Chapter 9: Object-Relational Databases Nested Relations Complex Types and Object Orientation Querying with Complex Types Creation of Complex Values and.
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 The Relational Model Chapter 3.
Database System Concepts, 5th Ed. ©Silberschatz, Korth and Sudarshan See for conditions on re-usewww.db-book.com Chapter 1: Introduction.
Object Relational Databases
Object-Oriented Databases By Dr.S.Sridhar, Ph.D.(JNUD), RACI(Paris, NICE), RMR(USA), RZFM(Germany) DIRECTOR ARUNAI ENGINEERING COLLEGE TIRUVANNAMALAI.
Mapeo Objeto Relacional
More SQL: Complex Queries, Triggers, Views, and Schema Modification
Object Relational and Extended Relational Databases
Object-Oriented Databases
Object-Relational DBMSs
Chapter 12 Outline Overview of Object Database Concepts
Module 1 Part 2: Object-Based Databases
Chapter 9: Object-Based Databases
Chapter 9: Object-Relational Databases
Lec 3: Object-Oriented Data Modeling
Structured Types (9-12-2) Structured types allow composite attributes of E-R diagrams to be represented directly. Unnamed row types can also be used in.
Chapter 22: Object-Based Databases
Chapter 9: Object-Based Databases
Chapter 9: Object-Based Databases
Chapter 29: Object-Based Databases
Chapter 9: Object-Based Databases
Chapter 9: Object-Based Databases
Object – relational database
Chapter 29: Object-Based Databases
Presentation transcript:

Database System Concepts, 5th Ed. ©Sang Ho Lee Chapter 9: Object-Based Databases

9.2Database System Concepts - 5 th Edition©Sang Ho Lee Chapter 9: Object-Based Databases Complex Data Types and Object Orientation Structured Data Types and Inheritance in SQL Table Inheritance Array and Multiset Types in SQL Object Identity and Reference Types in SQL Implementing O-R Features Persistent Programming Languages Comparison of Object-Oriented and Object-Relational Databases

9.3Database System Concepts - 5 th Edition©Sang Ho Lee Historically speaking…. 1980’s: Relational data model and systems prevail Late 80’s: object-oriented data model emerges Early 90’s: Early versions of object-oriented database systems appear in the market Mid 90’s: Attempts to accommodate object-oriented data model into relational data model (object-relational data model) 00’s: Venders started to ship “object-relational” database systems Standard SQL, SQL3, is finalized

9.4Database System Concepts - 5 th Edition©Sang Ho Lee Object-Relational Data Models Extend the relational data model by including object orientation and constructs to deal with added data types. Allow attributes of tuples to have complex types, including non-atomic values such as nested relations. Preserve relational foundations, in particular the declarative access to data, while extending modeling power. Upward compatibility with existing relational languages.

9.5Database System Concepts - 5 th Edition©Sang Ho Lee OO vs. ER Modeling primitives in ER Entity (entity set) Relationship (relationship set) Properties  Attribute Modeling primitives in OO Object (class) Properties  Attribute  Relationship  Method

9.6Database System Concepts - 5 th Edition©Sang Ho Lee Complex Data Types Motivation: Permit non-atomic domains (atomic  indivisible) Example of non-atomic domain: set of integers or set of tuples Allows more intuitive modeling for applications with complex data Intuitive definition: allow relations whenever we allow atomic (scalar) values — relations within relations Retains mathematical foundation of relational model Violates first normal form.

9.7Database System Concepts - 5 th Edition©Sang Ho Lee Example of a Nested Relation Example: library information system Each book has title, a set of authors, Publisher, and a set of keywords Non-1NF relation, books

9.8Database System Concepts - 5 th Edition©Sang Ho Lee 1NF Version of Nested Relation 1NF version of books, flat-books flat-books

9.9Database System Concepts - 5 th Edition©Sang Ho Lee 4NF Decomposition of Nested Relation Remove awkwardness of flat-books by assuming that the following multivalued dependencies hold: title author title keyword title pub-name, pub-branch Decompose flat-books into 4NF using the schemas: (title, author ) (title, keyword ) (title, pub-name, pub-branch )

9.10Database System Concepts - 5 th Edition©Sang Ho Lee 4NF Decomposition of flat–books

9.11Database System Concepts - 5 th Edition©Sang Ho Lee Problems with 4NF Schema 4NF design requires users to include joins in their queries. 1NF relational view flat-books defined by join of 4NF relations: eliminates the need for users to perform joins, but loses the one-to-one correspondence between tuples and documents. And has a large amount of redundancy Nested relations representation is much more natural here.

9.12Database System Concepts - 5 th Edition©Sang Ho Lee Complex Types and SQL:1999 Extensions to SQL to support complex types include: Collection and large object types  Nested relations are an example of collection types Structured types  Nested record structures like composite attributes Inheritance Object orientation  Including object identifiers and references Our description is mainly based on the SQL:1999 standard Not fully implemented in any database system currently But some features are present in each of the major commercial database systems  Read the manual of your database system to see what it supports

9.13Database System Concepts - 5 th Edition©Sang Ho Lee Structured Types and Inheritance in SQL Structured types can be declared and used in SQL create type Name as (firstname varchar(20), lastname varchar(20)) final create type Address as (street varchar(20), city varchar(20), zipcode varchar(20)) not final Note: final and not final indicate whether subtypes can be created Structured types can be used to create tables with composite attributes create table customer ( nameName, addressAddress, dateOfBirth date) Dot notation used to reference components: name.firstname

9.14Database System Concepts - 5 th Edition©Sang Ho Lee Structured Types (cont.) User-defined row types create type CustomerType as ( name Name, address Address, dateOfBirth date) not final Can then create a table whose rows are a user-defined type create table customer of CustomerType

9.15Database System Concepts - 5 th Edition©Sang Ho Lee Methods Can add a method declaration with a structured type. method ageOnDate (onDate date) returns interval year Method body is given separately. create instance method ageOnDate (onDate date) returns interval year for CustomerType // note, type name (not relation name) begin return onDate - self.dateOfBirth; // “self” refers to the Customer instance on which the method is invoked end We can now find the age of each customer: select name.lastname, ageOnDate (current_date) from customer

9.16Database System Concepts - 5 th Edition©Sang Ho Lee Structured Types Structured types allow composite attributes of E-R diagrams to be represented directly. Unnamed row types can also be used in SQL:1999 to define composite attributes E.g. we can omit the declaration of type Publisher and instead use the following in declaring the type Book publisher row (name varchar(20), branch varchar(20)) Similarly, collection types allow multivalued attributes of E-R diagrams to be represented directly.

9.17Database System Concepts - 5 th Edition©Sang Ho Lee Structured Types (Cont.) We can create tables without creating an intermediate type For example, the table books could also be defined as follows: create table books (title varchar(20), author-array varchar(20) array[10], pub-date date, publisher Publisher keyword-list setof(varchar(20))) Methods can be part of the type definition of a structured type: create type Employee as ( name varchar(20), salary integer) method giveraise (percent integer) We create the method body separately create method giveraise (percent integer) for Employee begin set self.salary = self.salary + (self.salary * percent) / 100; end

9.18Database System Concepts - 5 th Edition©Sang Ho Lee Creation of Values of Complex Types Values of structured types are created using constructor functions E.g. Publisher(‘McGraw-Hill’, ‘New York’) Note: a value is not an object SQL:1999 constructor functions E.g. create function Publisher (n varchar(20), b varchar(20)) returns Publisher begin set name=n; set branch=b; end Every structured type has a default constructor with no arguments, others can be defined as required Values of row type can be constructed by listing values in parantheses E.g. given row type row (name varchar(20), branch varchar(20)) We can assign (`McGraw-Hill’,`New York’) as a value of above type

9.19Database System Concepts - 5 th Edition©Sang Ho Lee Type Inheritance Reusability !!! Suppose that we have the following type definition for people: create type Person (name varchar(20), address varchar(20)) Using inheritance to define the student and teacher types create type Student under Person (degree varchar(20), department varchar(20)) create type Teacher under Person (salary integer, department varchar(20)) Subtypes can redefine methods by using overriding method in place of method in the method declaration

9.20Database System Concepts - 5 th Edition©Sang Ho Lee Multiple Inheritance SQL:1999 and SQL:2003 do not support multiple inheritance If our type system supports multiple inheritance, we can define a type for teaching assistant as follows: create type Teaching Assistant under Student, Teacher To avoid a conflict between the two occurrences of department we can rename them create type Teaching Assistant under Student with (department as student_dept ), Teacher with (department as teacher_dept )

9.21Database System Concepts - 5 th Edition©Sang Ho Lee Table Inheritance Table inheritance allows an object to have multiple types by allowing an entity to exist in more than one table at once. E.g. people table: create table people of Person We can then define the students and teachers tables as subtables of people create table students of Student under people create table teachers of Teacher under people Each tuple in a subtable (e.g. students and teachers) is implicitly present in its supertables (e.g. people) If a query uses the table “people”, it will return tuples in “people”, “students” and “teachers” (only those attributes that present in people can be accessed) SQL:1999 provides a keyworld “only” (for example, “only people”) to search the table only

9.22Database System Concepts - 5 th Edition©Sang Ho Lee Consistency Requirements for Subtables Consistency requirements on subtables and supertables. Each tuple of the supertable (e.g. people) can correspond to at most one tuple in each of the subtables (e.g. students and teachers) Additional constraint in SQL:1999: All tuples corresponding to each other (that is, with the same values for inherited attributes) must be derived from one tuple (inserted into one table).  That is, each entity must have a most specific type  We cannot have a tuple in people corresponding to a tuple each in students and teachers

9.23Database System Concepts - 5 th Edition©Sang Ho Lee Array and Multiset Types in SQL Example of array and multiset declaration: create type Publisher as (name varchar(20), branch varchar(20)) create type Book as (title varchar(20), author-array varchar(20) array [10], pub-date date, publisher Publisher, keyword-set varchar(20) multiset ) create table books of Book Similar to the nested relation books, but with array of authors instead of set

9.24Database System Concepts - 5 th Edition©Sang Ho Lee Creation of Collection Values Array construction array [‘Silberschatz’,`Korth’,`Sudarshan’] Multisets multiset [‘computer’, ‘database’, ‘SQL’] To create a tuple of the type defined by the books relation: (‘Compilers’, array[`Smith’,`Jones’], Publisher (`McGraw-Hill’,`New York’), multiset [`parsing’,`analysis’ ]) To insert the preceding tuple into the relation books insert into books values (‘Compilers’, array[`Smith’,`Jones’], Publisher (`McGraw-Hill’,`New York’), multiset [`parsing’,`analysis’ ])

9.25Database System Concepts - 5 th Edition©Sang Ho Lee Querying Collection-Valued Attributes To find all books that have the word “database” as a keyword, select title from books where ‘database’ in (unnest(keyword-set )) Collection-valued attributes can be treated much like relations using the keyword “unnest” We can access individual elements of an array by using indices E.g.: If we know that a particular book has three authors, we could write: select author-array[1], author-array[2], author-array[3] from books where title = `Database System Concepts’ To get a relation containing pairs of the form “title, author-name” for each book and each author of the book select B.title, A.author from books as B, unnest (B.author-array) as A (author ) To retain ordering information we add a with ordinality clause select B.title, A.author, A.position from books as B, unnest (B.author-array) with ordinality as A (author, position )

9.26Database System Concepts - 5 th Edition©Sang Ho Lee Unnesting The transformation of a nested relation into a form with fewer (or no) relation-valued attributes is called unnesting. E.g. select title, A as author, publisher.name as pub_name, publisher.branch as pub_branch, K.keyword from books as B, unnest(B.author_array ) as A (author ), unnest (B.keyword_set ) as K (keyword )

9.27Database System Concepts - 5 th Edition©Sang Ho Lee Nesting Nesting is the opposite of unnesting, creating a collection-valued attribute NOTE: SQL:1999 does not support nesting Nesting can be done in a manner similar to aggregation, but using the function collect() in place of an aggregation operation, to create a multiset To nest the flat-books relation on the attribute keyword: select title, author, Publisher (pub_name, pub_branch ) as publisher, collect (keyword) as keyword_set from flat-books group by title, author, publisher // See fig 9.4 in the textbook To nest on both authors and keywords: select title, collect (author ) as author_set, Publisher (pub_name, pub_branch) as publisher, collect (keyword ) as keyword_set from flat-books group by title, publisher

9.28Database System Concepts - 5 th Edition©Sang Ho Lee A Partially Nested Version of the flat-books Relation To nest the flat-books relation on the attribute keyword (fig. 9.4 of textbook)

9.29Database System Concepts - 5 th Edition©Sang Ho Lee 1NF Version of Nested Relation 1NF version of books flat-books

9.30Database System Concepts - 5 th Edition©Sang Ho Lee Nesting (Cont.) Another approach to creating nested relations is to use subqueries in the select clause. select title, array ( select author from authors as A where A.title = B.title order by A.author) as author_array, Publisher (pub-name, pub-branch) as publisher, multiset (select keyword from keywords as K where K.title = B.title) as keyword_set from books4 as B

9.31Database System Concepts - 5 th Edition©Sang Ho Lee Reference Types Object-oriented languages provide the ability to create and refer to objects. In SQL:1999 References are to tuples, and References must be scoped,  I.e., can only point to tuples in one specified table

9.32Database System Concepts - 5 th Edition©Sang Ho Lee Object-Identity and Reference Types Define a type Department with a field name and a field head which is a reference to the type Person, with table people as scope: create type Department ( name varchar (20), head ref (Person) scope people) // Person: type name // people: table name We can then create a table departments as follows create table departments of Department We can omit the declaration scope people from the type declaration and instead make an addition to the create table statement: create table departments of Department (head with options scope people)

9.33Database System Concepts - 5 th Edition©Sang Ho Lee System Generated Identifiers SQL:1999 requires a special attribute (called self-referential attribute) to be declared to store the object identifier SQL:1999 does not support the ref() function of Oracle The self-referential attributes can be generated either by the system or the user The self-referential attribute is declared by adding a ref is clause to the “create table” statement: create table people of Person ref is person_id system generated Here, person_id is an attribute name, not a keyword.

9.34Database System Concepts - 5 th Edition©Sang Ho Lee Initializing Reference-Typed Values To create a tuple with a reference value, we can first create the tuple with a null reference and then set the reference separately: insert into departments values (`CS’, null) update departments set head = (select p.person_id // ref(p) in Oracle from people as p where name = `John’) where name = `CS’ Department(name, head) CS People(person_id, name, address) John

9.35Database System Concepts - 5 th Edition©Sang Ho Lee User Generated Identifiers The type of the object-identifier must be specified as part of the type definition of the referenced table, and The table definition must specify that the reference is user generated create type Person (name varchar(20) address varchar(20)) ref using varchar(20) create table people of Person ref is person_id user generated When creating a tuple, we must provide a unique value for the identifier: insert into people (person_id, name, address ) values (‘ ’, ‘John’, `23 Coyote Run’) We can then use the identifier value when inserting a tuple into departments Avoids need for a separate query to retrieve the identifier: insert into departments values(`CS’, ` ’)

9.36Database System Concepts - 5 th Edition©Sang Ho Lee User Generated Identifiers (Cont.) Can use an existing primary key value as the identifier: create type Person (name varchar (20) primary key, address varchar(20)) ref from (name) create table people of Person ref is person_id derived When inserting a tuple for departments, we can then use insert into departments values(`CS’,`John’)

9.37Database System Concepts - 5 th Edition©Sang Ho Lee Path Expressions Find the names and addresses of the heads of all departments: select head –>name, head –>address from departments An expression such as “head–>name” is called a path expression Path expressions help avoid explicit joins If department head were not a reference, a join of departments with people would be required to get at the address Makes expressing the query much easier for the user

9.38Database System Concepts - 5 th Edition©Sang Ho Lee Implementing O-R Features Similar to how E-R features are mapped onto relation schemas Subtable implementation Each table stores primary key and those attributes defined in that table or, Each table stores both locally defined and inherited attributes

9.39Database System Concepts - 5 th Edition©Sang Ho Lee Object-Oriented Languages Object-oriented concepts can be used in different ways Object-orientation can be used as a design tool, and be encoded into, for example, a relational database  analogous to modeling data with E-R diagram and then converting to a set of relations) The concepts of object orientation can be incorporated into a programming language that is used to manipulate the database.  Object-relational systems – add complex types and object- orientation to relational language.  Persistent programming languages – extend object-oriented programming language to deal with databases by adding concepts such as persistence and collections.

9.40Database System Concepts - 5 th Edition©Sang Ho Lee Persistent Programming Languages Persistent Programming languages allow objects to be created and stored in a database, and used directly from a programming language allow data to be manipulated directly from the programming language  No need to go through SQL. No need for explicit format (type) changes  format changes are carried out transparently by system  Without a persistent programming language, format changes becomes a burden on the programmer –More code to be written –More chance of bugs allow objects to be manipulated in-memory  no need to explicitly load from or store to the database –Saved code, and saved overhead of loading/storing large amounts of data

9.41Database System Concepts - 5 th Edition©Sang Ho Lee Persistent Prog. Languages (Cont.) Drawbacks of persistent programming languages Due to power of most programming languages, it is easy to make programming errors that damage the database. Complexity of languages makes automatic high-level optimization more difficult. Do not support declarative querying as well as relational databases

9.42Database System Concepts - 5 th Edition©Sang Ho Lee Persistence of Objects Approaches to make transient objects persistent include establishing Persistence by Class – declare all objects of a class to be persistent; simple but inflexible. Persistence by Creation – extend the syntax for creating objects to specify that that an object is persistent. Persistence by Marking – an object that is to persist beyond program execution is marked as persistent before program termination. Persistence by Reachability - declare (root) persistent objects; objects are persistent if they are referred to (directly or indirectly) from a root object.  Easier for programmer, but more overhead for database system

9.43Database System Concepts - 5 th Edition©Sang Ho Lee Object Identity and Pointers Degrees of permanence of object identity Intraprocedure: only during execution of a single procedure  Example: local variables within procedures Intraprogram: only during execution of a single program or query  Example: global variables in programming languages Interprogram: across program executions, but not if data-storage format on disk changes  Example: pointers to file-system data on disk Persistent: interprogram, plus persistent across data reorganizations

9.44Database System Concepts - 5 th Edition©Sang Ho Lee Object Identity and Pointers (cont.) Persistent versions of C++ and Java have been implemented C++  ODMG C++  ObjectStore, Versant Java  Java Database Objects (JDO)

9.45Database System Concepts - 5 th Edition©Sang Ho Lee Object Identity and Pointers (Cont.) In O-O languages such as C++, an object identifier is actually an in- memory pointer. Persistent pointer – persists beyond program execution can be thought of as a pointer into the database  E.g. specify file identifier and offset into the file Problems due to database reorganization have to be dealt with by keeping forwarding pointers

9.46Database System Concepts - 5 th Edition©Sang Ho Lee Comparison of O-O and O-R Databases Relational systems simple data types, powerful query languages, high protection. Persistent-programming-language-based OODBs complex data types, integration with programming language, high performance. Object-relational systems complex data types, powerful query languages, high protection. Note: Many real systems blur these boundaries E.g. persistent programming language built as a wrapper on a relational database offers first two benefits, but may have poor performance.

Database System Concepts, 5th Ed. ©Sang Ho Lee End of Chapter