Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Object Based Databases

4,859 views

Published on

This presentation provides a summary of chapter 22 of book "Database System Concepts" by Abraham Silberschatz and et al.

Published in: Education
  • Login to see the comments

Object Based Databases

  1. 1. Fall 2013 insert into 'Advanced_Database_Course’ ('Title','Author') values( ‘Object-Based Databases‘, ‘Farzad Nozarian‘ );
  2. 2. •Summary Overview1 Complex Data Types2 Structured Types and Inheritance in SQL 3 Structured Types3.1 Type Inheritance3.2
  3. 3. •Summary Table Inheritance4 Array and Multiset Types in SQL5 Querying Collection-Valued Attributes 5.2 Nesting and Unnesting5.3 Creating and Accessing Collection Values 5.1
  4. 4. Overview
  5. 5. • richer type system including complex data types and object orientation •Overview Obstacles using the relational data model Object-relational database systems • limited type system support • difficulty in accessing database data from in C++ or Java Object-relational data model • migrate for users who wish to use object-oriented features
  6. 6. •Overview Persistence Storage management Concurrency Recovery Querying DBMS Object-Oriented Database complex objects object identity encapsulation types & classes class hierarchy extensibility Computational completeness overriding & overloading Object-Oriented System +
  7. 7. •Overview • Motivation for the development of complex data types • Object-relational database systems • Supporting persistence for data • object-oriented database system • object-relational mapping • Object-relational approach Vs. object-oriented approach
  8. 8. Overview Complex Data Types
  9. 9. •Complex Data Types Example1 : addresses Example 2: phone numbers (street, address, city, state, postal code) Atomic data item of type string A better alternative structured data types The alternative of normalization by creating a new relation is expensive and artificial for this example. Using normalization ?!
  10. 10. •Complex Data Types A library application satisfies 4NF Several domains will be non-atomic
  11. 11. •Complex Data Types The 4NF design requires queries to join multiple relations, whereas the non-1NF design makes many types of queries easier. The typical user or programmer of an information-retrieval system thinks of the database in terms of books having sets of authors, as the non-1NF design models.
  12. 12. Overview Complex Data Types Structured Types and Inheritance in SQL
  13. 13. •Structured Types and Inheritance in SQL Structured Types Allow composite attributes of E-R designs to be represented directly create type Name as (firstname varchar(20), lastname varchar(20)) final; create type Address as(street varchar(20), city varchar(20), zipcode varchar(9)) not final;
  14. 14. •Structured Types and Inheritance in SQL Structured Types We can now use these types to create composite attributes in a relation create table person( name Name, address Address, dateOfBirth date); The components of a composite attribute can be accessed using a “dot” notation
  15. 15. •Structured Types and Inheritance in SQL Structured Types We can also create a table whose rows are of a user-defined type create type PersonType as ( name Name, address Address, dateOfBirth date) not final create table person of PersonType;
  16. 16. •Structured Types and Inheritance in SQL Structured Types An alternative way of defining composite attributes in SQL is to use types. create table person_r( name row (firstname varchar(20),lastname varchar(20)), address row (street varchar(20),city varchar(20),zipcode varchar(9)), dateOfBirth date); select name.lastname,address.city from person; name and address have rows of the table also have an ! finds the last name and city of each person
  17. 17. •Structured Types and Inheritance in SQL Structured Types create type PersonType as ( name Name, address Address, dateOfBirth date) not final method ageOnDate(onDate date) returns interval year; A structured type can have methods defined on it !
  18. 18. •Structured Types and Inheritance in SQL Structured Types Can I create the method body separately ? create instance method ageOnDate(onDate date) returns interval year for PersonType begin return onDate−self.dateOfBirth; end • which type this method is for can contain procedural statements! • refers to the Person instance on which the method is invoked • this method executes on an instance of the Person type Yes !
  19. 19. How to find the age of each person ? •Structured Types and Inheritance in SQL Structured Types select name.lastname, ageOnDate(current_date) from person;
  20. 20. create function Name( firstname varchar(20), lastname varchar(20) ) returns Name begin set self.firstname = firstname; set self.lastname = lastname; end •Structured Types and Inheritance in SQL Structured Types constructor functions are used to create values of structured types How we can create a value of Name type ? new Name(’John’, ’Smith’)
  21. 21. •Structured Types and Inheritance in SQL Structured Types Example : Create a new tuple in the Person relation insert into Person values ( new Name(’John’, ’Smith’), new Address(’20 Main St’, ’New York’, ’11001’), date ’1960-8-22’); Note ! By default every structured type has a constructor with no arguments, which sets the attributes to their default values
  22. 22. •Structured Types and Inheritance in SQL Type Inheritance create type Person (name varchar(20), address varchar(20)); create type Student under Person (degree varchar(20), department varchar(20)); create type Teacher under Person (salary integer, department varchar(20));
  23. 23. •Structured Types and Inheritance in SQL Type Inheritance Can you create a TeachingAssistant type ? Methods of a structured type are inherited by its subtypes using overriding method The keyword final says that subtypes may not be created from the given type not final says that subtypes may be created. create type TeachingAssistant under Student, Teacher; Yes !
  24. 24. •Structured Types and Inheritance in SQL Type Inheritance any problem ?! name address in department in Person Teacher Student create type TeachingAssistant under Student with(department as student_dept), Teacher with(department as teacher_dept); Note! The SQL standard does not support multiple inheritance
  25. 25. Overview Complex Data Types Structured Types and Inheritance in SQL Table Inheritance
  26. 26. •Table Inheritance Subtables in SQL correspond to the E-R notion of specialization/generalization. create table people of Person; create table students of Student under people; create table teachers of Teacher under people;
  27. 27. •Table Inheritance Question delete from people where P ;only people
  28. 28. Array and Multiset Types in SQL Overview Complex Data Types Structured Types and Inheritance in SQL Table Inheritance
  29. 29. •Array and Multiset Types in SQL SQL supports two collection types arrays multisets SQL:1999 SQL:2003 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;
  30. 30. •Array and Multiset Types in SQL Creating and Accessing Collection Values An array of values can be created in SQL:1999 in this way: array[’Silberschatz’, ’Korth’, ’Sudarshan’] A multiset of keywords can be constructed as follows: multiset[’computer’, ’database’, ’SQL’] insert into books values (’Compilers’, array[’Smith’, ’Jones’], new Publisher(’McGraw-Hill’, ’New York’), multiset [’parsing’, ’analysis’] ); But, How we can access or update elements of an array ?
  31. 31. •Array and Multiset Types in SQL Querying Collection-Valued Attributes find all books that have the word “database” as one of their keywords select title from books where ’database’ in ( unnest (keyword_set) ); select author_array[1],author_array[2],author_array[3] from books where title = ’Database System Concepts’;
  32. 32. •Array and Multiset Types in SQL Querying Collection-Valued Attributes select B.title, A.author from books as B, unnest (B.authorarray) as A(author); select title, A.author, A.position from books as B, unnest(B.author_array) with ordinality as A(author, position);
  33. 33. Thanks

×