Chapter 21 Object Database Standards, Languages, and Design Copyright © 2004 Pearson Education, Inc.

Slides:



Advertisements
Similar presentations
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 5 More SQL: Complex Queries, Triggers, Views, and Schema Modification.
Advertisements

Copyright © 2004 Pearson Education, Inc.. Chapter 9 More SQL: Assertions, Views, and Programming Techniques.
Chapter 15 Algorithms for Query Processing and Optimization Copyright © 2004 Pearson Education, Inc.
Object Databases Baochuan Lu. outline Concepts for Object Databases Object Database Standards, Languages, and Design Object-Relational and Extended-Relational.
Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Chapter 6 (Continued) The Relational Algebra and Calculus.
ODMG Standard: Object Model1 OBJECT-ORIENTED DATABASE SYSTEMS ODMG Standard: Object Model Susan D. Urban and Suzanne W. Dietrich Department of Computer.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 5 More SQL: Complex Queries, Triggers, Views, and Schema Modification.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 14 Web Database Programming Using PHP.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 3 The Basic (Flat) Relational Model.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 4 SQL: Data Definition, Constraints, and Basic Queries and Updates.
Object-Orientation in Query Languages By: Toan Nguyen Class: CS 157A.
Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide 4- 1.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 7 Data Modeling Using the Entity- Relationship (ER) Model.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 8 The Enhanced Entity- Relationship (EER) Model.
Chapter 20 Concepts for Object-Oriented Databases Copyright © 2004 Pearson Education, Inc.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 6 The Relational Algebra and Relational Calculus.
Programs with SQL Host language + Embedded SQL Preprocessor Host Language + function calls Host language compiler Host language program Preprocessor Host.
Object Oriented Databases - Overview
Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 11 Object and Object- Relational Databases.
Chapter 7 Relational Database Design by ER- and EER-to-Relational Mapping Copyright © 2004 Pearson Education, Inc.
1 Announcements Research Paper due Monday November 22.
Databases Illuminated Chapter 7 The Object-Oriented Model.
Object Oriented Data Base. Traditional Data Models : Hierarchical, Network (since mid- 60’s), Relational (since 1970 and commercially since 1982) Object.
EER vs. UML Terminology EER Diagram Entity Type Entity Attribute
Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide
Object and object-relational databases 1. Object databases vs. Object-relational databases Object databases Stores complex objects – Data + functions.
Advanced Database CS-426 Week 2 – Logic Query Languages, Object Model.
Object Oriented Data Base. Traditional Data Models : Hierarchical, Network (since mid- 60’s), Relational (since 1970 and commercially since 1982) Object.
Object Query Language (OQL) and Language Binding
DBMS Lecture 9  Object Database Management Group –12 Rules for an OODBMS –Components of the ODMG standard  OODBMS Object Model Schema  OO Data Model.
Chapter 21 A Object Data Model - Intro Copyright © 2004 Pearson Education, Inc.
Chapter 21 B Mapping to ODL Copyright © 2004 Pearson Education, Inc.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 7 Data Modeling Using the Entity- Relationship (ER) Model.
Chapter 20 Concepts for Object-Oriented Databases Copyright © 2004 Pearson Education, Inc.
Database Management COP4540, SCS, FIU Database Modeling A Introduction to object definition language (ODL)
Chapter 21 C OQL Copyright © 2004 Pearson Education, Inc.
Object Definition Language
Chapter 6 MORE SQL: Assertions, Views, and Programming Techniques Copyright © 2004 Pearson Education, Inc.
Databases Illuminated
Copyright © 2004 Pearson Education, Inc.. Chapter 21 Object Database Standards, Languages, and Design.
CSE 6331 © Leonidas Fegaras OODB1 Object-Oriented Databases and the ODMG Standard.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 7 Data Modeling Using the Entity- Relationship (ER) Model.
Chapter 6 The Relational Algebra Copyright © 2004 Ramez Elmasri and Shamkant Navathe.
Copyright © 2007 Ramez Elmasr and Shamkant B. Navathei Slide 3- 1.
Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide 6- 1.
Al-Maarefa College for Science and Technology INFO 232: Database systems Chapter 3 “part 2” The Relational Algebra and Calculus Instructor Ms. Arwa Binsaleh.
Object Relational Features
11-1 CHAPTER 11 Concepts for Object-Oriented Databases.
Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Chapter 7 Object-Oriented Database.
Chapter 15 Algorithms for Query Processing and Optimization Copyright © 2004 Pearson Education, Inc.
The ODMG Standard for Object Databases
© Shamkant B. Navathe CC Enhanced Entity-Relationship Copyright © 2004 Ramez Elmasri and Shamkant Navathe.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 7 Data Modeling Using the Entity- Relationship (ER) Model.
Chapter 20 Concepts for Object-Oriented Databases Copyright © 2004 Pearson Education, Inc.
Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Chapter 8 Object-Relational Database.
Copyright © 2016 Ramez Elmasri and Shamkant B. Navathe Chapter 12 Outline Overview of Object Database Concepts Object-Relational Features Object Database.
OOPSLA Lab1 Chapter 7 Java Binding Prof. Hyoung-Joo Kim OOPSLA Lab. Dept. of Computer Engineering Seoul National University.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 4 Basic SQL تنبيه : شرائح العرض (Slides) هي وسيلة لتوضيح الدرس واداة.
Chapter 21 Object Database Standards, Languages, and Design Copyright © 2004 Pearson Education, Inc.
CSE202 Database Management Systems
Enhanced Entity-Relationship (EER) Model
ODMG Object Model, Object Definition Language (ODL)
Object-Oriented Databases and the ODMG Standard
Entity- Relationship (ER) Model
Object – Oriented Databases
Chapter 12 Outline Overview of Object Database Concepts
Enhanced Entity-Relationship (EER) Modeling
Object Database Standards, Languages, and Design
Presentation transcript:

Chapter 21 Object Database Standards, Languages, and Design Copyright © 2004 Pearson Education, Inc.

Copyright © 2004 Ramez Elmasri and Shamkant Navathe Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Chapter 21-3 Chapter 21Outline 21.1 Overview of the ODMG’s Object Model 21.2 The Object Definition Language DDL 21.3 The Object Query Language OQL

Copyright © 2004 Ramez Elmasri and Shamkant Navathe Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Chapter The Object Model of ODMG Provides a standard model for object databases Supports object definition via ODL Supports object querying via OQL Supports a variety of data types and type constructors

Copyright © 2004 Ramez Elmasri and Shamkant Navathe Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Chapter 21-5 ODMG Objects and Literals The basic building blocks of the object model are –Objects –Literlas An object has four characteristics 1.Identifier: unique system-wide identifier (OID) 2.Name: unique within a particular database and/or program; it is optional 3.Lifetime: persistent vs transient 4.Structure: specifies how object is constructed by the type constructor and whether it is an atomic object

Copyright © 2004 Ramez Elmasri and Shamkant Navathe Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Chapter 21-6 ODMG Literals A literal has a current value but not an identifier Three types of literals 1.atomic: predefined; basic data type values (e.g., short, float, boolean, char ) 2.structured: values that are constructed by tuple constructor (Chapter 20). 3.collection: a collection (e.g., array) of values or objects

Copyright © 2004 Ramez Elmasri and Shamkant Navathe Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Chapter 21-7 ODMG Interface Definition: An Example Basic components of ODMG’s Object Model are shown in Figure 21.B (p. 669). Note: all of them inherit from the Object interface shown in Figure 21.A. Example: Date interface is shown below: interface Date:Object { enum weekday{sun,mon,tue,wed,thu,fri,sat}; enum Month{jan,feb,mar,…,dec}; unsigned short year(); unsigned short month(); unsigned short day(); … boolean is_equal(in Date other_date); };

Copyright © 2004 Ramez Elmasri and Shamkant Navathe Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Chapter 21-8 Built-in Interfaces for Collection Objects A collection object inherits the basic collection interface, for example: –cardinality() –is_empty() –insert_element() –remove_element() –contains_element() –create_iterator()

Copyright © 2004 Ramez Elmasri and Shamkant Navathe Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Chapter 21-9 Collection Types Collection objects are further specialized into types like a set, list, bag, array, and dictionary Each collection type may provide additional interfaces, for example, a set provides: –create_union() –create_difference() –is_subst_of( –is_superset_of() –is_proper_subset_of()

Copyright © 2004 Ramez Elmasri and Shamkant Navathe Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Chapter Object Inheritance Hierarchy

Copyright © 2004 Ramez Elmasri and Shamkant Navathe Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Chapter Atomic Objects Atomic objects are user-defined objects and are defined via keyword class An example : class Employee (extent all_emplyees key ssn) { attribute string name; attribute string ssn; attribute short age; relationship Department works_for inverse Department::has_emps; void reassign(in string new_name) raises(dname_not_found); }

Copyright © 2004 Ramez Elmasri and Shamkant Navathe Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Chapter Class Extents An ODMG object can have an extent defined via a class declaration Each extent is given a name and will contain all persistent objects of that class For Employee class, for example, the extent is called all_employees This is similar to creating an object of type Set and making it persistent

Copyright © 2004 Ramez Elmasri and Shamkant Navathe Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Chapter Class Key A class key consists of one or more unique attributes For the Employee class, the key is ssn Thus each employee is expected to have a unique ssn Keys can be composite, e.g., (key secNo, courseID)

Copyright © 2004 Ramez Elmasri and Shamkant Navathe Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Chapter Object Factory An object factory is used to generate individual objects via its operations An example: interface ObjectFactory { Object new (); }; new() returns new objects with an object_id One can create their own factory interface by inheriting the above interface

Copyright © 2004 Ramez Elmasri and Shamkant Navathe Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Chapter Interface and Class Definition ODMG supports two concepts for specifying object types: Interface Class There are similarities and differences between interfaces and classes Both have behaviors (operations) and state (attributes and relationships)

Copyright © 2004 Ramez Elmasri and Shamkant Navathe Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Chapter ODMG Interface An interface is a specification of the abstract behavior of an object type State properties of an interface (i.e., its attributes and relationships) cannot be inherited from Objects cannot be instantiated from an interface

Copyright © 2004 Ramez Elmasri and Shamkant Navathe Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Chapter ODMG Class A class is a specification of abstract behavior and state of an object type A class is Instantiable Supports “extends” inheritance to allow both state and behavior inheritance among classes. See Faculty class p.681. Multiple inheritance via “extends” is not allowed

Copyright © 2004 Ramez Elmasri and Shamkant Navathe Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Chapter Object Definition Language ODL is independent of any programming language ODL is used to create object specification (classes and interfaces) ODL is not used for database manipulation

Copyright © 2004 Ramez Elmasri and Shamkant Navathe Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Chapter ODL Examples (1) A Very Simple Class A very simple, straightforward class definition (all examples are based on the university schema graphically shown on page 680): class Degree { attribute string college; attribute string degree; attribute string year; };

Copyright © 2004 Ramez Elmasri and Shamkant Navathe Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Chapter ODL Examples (2) A Class With Key and Extent A class definition with “extent”, “key”, and more elaborate attributes; still relatively straightforward class Person (extent persons key ssn) { attribute struct Pname {string fname …} name; attribute string ssn; attribute date birthdate; … short age(); }

Copyright © 2004 Ramez Elmasri and Shamkant Navathe Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Chapter ODL Examples (3) A Class With Relationships Note extends (inheritance) relationship Also note “inverse” relationship Class Faculty extends Person (extent faculty) { attribute string rank; attribute float salary; attribute string phone; … relationship Department works_in inverse Department::has_faculty; relationship set advises inverse GradStudent::advisor; void give_raise (in float raise); void promote (in string new_rank); };

Copyright © 2004 Ramez Elmasri and Shamkant Navathe Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Chapter Inheritance via “:” – An Example interface Shape { attribute struct point {…} reference_point; float perimeter (); … }; class Triangle: Shape (extent triangles) { attribute short side_1; attribute short side_2; … };

Copyright © 2004 Ramez Elmasri and Shamkant Navathe Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Chapter Object Query Language OQL is ODMG’s query language OQL works closely with programming languages such as C++ Embedded OQL statements return objects that are compatible with the type system of the host language OQL’s syntax is similar to SQL with additional features for objects

Copyright © 2004 Ramez Elmasri and Shamkant Navathe Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Chapter Simple OQL Queries Basic syntax: select…from…where… SELECT d.dname FROM d in departments WHERE d.college = ‘Engineering’; An entry point to the database is needed for each query An extent name (e.g., departments in the above example) may serve as an entry point

Copyright © 2004 Ramez Elmasri and Shamkant Navathe Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Chapter Iterator Variables Iterator variables are defined whenever a collection is referenced in an OQL query Iterator d in the previous example serves as an iterator and ranges over each object in the collection Syntactical options for specifying an iterator: –d in departments –departments d –departments as d

Copyright © 2004 Ramez Elmasri and Shamkant Navathe Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Chapter Data Type of Query Results The data type of a query result can be any type defined in the ODMG model A query does not have to follow the select…from…where… format A persistent name on its own can serve as a query whose result is a reference to the persistent object, e.g., departments ; whose type is set

Copyright © 2004 Ramez Elmasri and Shamkant Navathe Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Chapter Path Expressions A path expression is used to specify a path to attributes and objects in an entry point A path expression starts at a persistent object name (or its iterator variable) The name will be followed by zero or more dot connected relationship or attribute names, e.g., departments.chair;

Copyright © 2004 Ramez Elmasri and Shamkant Navathe Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Chapter Sample Queries (1) select f.rank from f in departments.has_faculty where f.dname=‘CS’; The above query returns bag beause multiple faculty can have the same rank. To return a set that does not include duplicates: select distinct f.rank from f in departments.has_faculty where f.dname=‘CS’;

Copyright © 2004 Ramez Elmasri and Shamkant Navathe Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Chapter Sample Queries (2) select d.chair.advises from d in departments where d.dname=‘Computer Science’; returns set advised by chairman of the Computer Sience department. select struct (name:struct(last_name: s.name.lname,first_name: s.name.fname),degrees(select struct (degree: d.degree,year:d.year,college:d.college) from d in s.degrees) from s in (select d.chair.advises from d in departments where d.dname=‘Computer Science’);

Copyright © 2004 Ramez Elmasri and Shamkant Navathe Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Chapter Sample Queries (3) select struct(last_name: s.name.lname, first_name:s.name.fname, gpa: s.gpa) from s in (select d.has_majors from d in departments where d.dname=‘Computer Science’) where s.class =‘senior’; select struct(last_name: s.name.lname, first_name:s.name.fname, gpa: s.gpa) from s in (select d.has_majors from d in departments where d.dname=‘Computer Science’) where s.class =‘senior’ Order by gpa desc,last_name asc, first_name asc;

Copyright © 2004 Ramez Elmasri and Shamkant Navathe Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Chapter Views as Named Objects The define keyword in OQL is used to specify an identifier for a named query The name should be unique; if not, the results will replace an existing named query Once a query definition is created, it will persist until deleted or redefined A view definition can include parameters

Copyright © 2004 Ramez Elmasri and Shamkant Navathe Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Chapter An Example of OQL View A view to include students in a department who have a minor: define has_minor(dept_name) as select s from s in students where s.minor_in.dname=dept_name; has_minor can now be used in queries: select s.name.lname,s.name.fname from s in has_minor(‘Computer Science’);

Copyright © 2004 Ramez Elmasri and Shamkant Navathe Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Chapter Single Elements from Collections An OQL query returns a collection OQL’s element operator can be used to return a single element from a singleton collection that contains one element: element (select d from d in departments where d.dname = ‘Software Engineering’); If d is empty or has more than one elements, an exception is raised

Copyright © 2004 Ramez Elmasri and Shamkant Navathe Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Chapter Collection Operators OQL supports a number of aggregate operators that can be applied to query results The aggregate operators include min, max, count, sum, and avg and operate over a collection count returns an integer; others return the same type as the collection type

Copyright © 2004 Ramez Elmasri and Shamkant Navathe Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Chapter Examples of an OQL Aggregate Operator To return the numbr of students minoring in ‘Computer Science’: count (s in has_minors(‘Computer Science’)); To compute the average GPA of all seniors majoring in Business: avg (select s.gpa from s in students where s.class = ‘senior’ and s.majors_in.dname =‘Business’);

Copyright © 2004 Ramez Elmasri and Shamkant Navathe Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Chapter Examples of OQL Aggregate Operators What does this query return: select d.name from d in departments where count(d.has_majors) > 100;

Copyright © 2004 Ramez Elmasri and Shamkant Navathe Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Chapter Membership and Quantification OQL provides membership and quantification operators: –(e in c) is true if e is in the collection c –(for all e in c: b) is true if all e elements of collection c satisfy b –(exists e in c: b) is true if at least one e in collection c satisfies b

Copyright © 2004 Ramez Elmasri and Shamkant Navathe Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Chapter Examples of an OQL Membership “ Is Jeremy a computer science minor?”. Jeremy in has_minors(‘Cmputer Science’);

Copyright © 2004 Ramez Elmasri and Shamkant Navathe Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Chapter Examples of OQL Quantification What does this query return: select s.name.lname,s.name.fname from s in students where ‘Database Systems I’ in (select c.cname from c in s.completed_sections.section.of_course); What is the purpose of this query: for all g in (select s from s in grad_students where s.majors_in.dname=‘Computer Science’) : g.advisor in ( select d.has_faculty from d in departments where d.dname=‘Computer Science’);

Copyright © 2004 Ramez Elmasri and Shamkant Navathe Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Chapter Ordered Collections Collections that are lists or arrays allow retrieving their first, last, and ith elements OQL provides additional operators for extracting a sub-collection and concatenating two lists OQL also provides operators for ordering the results

Copyright © 2004 Ramez Elmasri and Shamkant Navathe Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Chapter An Example of Ordered Operation To retrieve the last name of the faculty member who earns the highest salary: first (select struct (faculty: f.name.lastname,salary: f.salary) from f in faculty ordered by f.salary desc);

Copyright © 2004 Ramez Elmasri and Shamkant Navathe Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Chapter An Example of Ordered Operation The following query returns the top three computer science majors based on gpa: (select struct(last_name: s.name.lname, first_name:s.name.fname, gpa: s.gpa) from s in (select d.has_majors from d in departments where d.dname=‘Computer Science’) order by gpa desc) [0:2];

Copyright © 2004 Ramez Elmasri and Shamkant Navathe Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Chapter Grouping Operator Example 1 OQL also supports a grouping operator called group by To retrieve the number of majors in each department: (select struct(deptname,numberOfMajors: count(partition)) from s in students group by deptname: s.majors_in.dname;

Copyright © 2004 Ramez Elmasri and Shamkant Navathe Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Chapter Grouping Operator Example 2 To retrieve the number of majors in each department but only for departments with > 100 majors: (select struct(deptname,numberOfMajors: count(partition)) from s in students group by deptname: s.majors_in.dname having count (partition) > 100;