Presentation is loading. Please wait.

Presentation is loading. Please wait.

Object-oriented DBMSs

Similar presentations


Presentation on theme: "Object-oriented DBMSs"— Presentation transcript:

1 Object-oriented DBMSs
Chapter 1 Object-oriented DBMSs Chapters in Textbook

2 Overview Relational quick review Why OO? What is an Object?
What is an object ID? Classes, subclasses and inheritance UML ODL OQL OODBMS

3 Relational DBMS Quick Review
Data model: ER. Data is stored in tables. Each row is a record. Relationships between tables (PK-FK). Takes SID Student Course CID name year Sem name SID name Nora M Sara S Hala L SID CID year Sem CAP364 1425 1 CAP430 1426 2 CID name CAP364 DB2 CAP430 Security OODBMS

4 Weaknesses of RDBMS Poor Representation of “Real World” Entities.
Poor Support for Integrity and Enterprise Constraints. Homogeneous Data Structure. Limited Operations. Difficulty Handling Recursive Queries. Schema changes are difficult. RDBMSs are poor at navigational access. OODBMS

5 Why OO? Advanced DB Applications
Computer-Aided Design (CAD). Computer-Aided Manufacturing (CAM). Computer-Aided Software Engineering (CASE). Network Management Systems. Office Information Systems (OIS) and Multimedia Systems. Digital Publishing. Geographic Information Systems (GIS). Interactive and Dynamic Web sites. Other applications with complex and interrelated objects and procedural data – Read pages in book. OODBMS

6 What is an OODBMS anyway?
OODBMS (Object-oriented DB Management System) is a database with data stored in objects and collections NOT rows and tables. OO Concepts: Abstraction, encapsulation, information hiding. Objects and attributes. Object identity. Methods and messages. Classes, subclasses, superclasses, and inheritance. Overloading. Polymorphism and dynamic binding. OODBMS

7 OODBMS OODBMS Traditional DBS Persistence Sharing Transactions
Concurrency Control Recovery Control Security Integrity Querying Semantic Data Model Generalization Aggregation OOPS OID Encapsulation Inheritance Types & Classes Methods Complex objects Polymorphism Extensibility Special Requirements Versioning Schema Evolution OODBMS OODBMS

8 Object Uniquely identifiable entity that contains both
the attributes that describe the state of a real-world object and the actions associated with it. Object encapsulates both state and behavior; an entity only models state. Persistent objects vs. transient objects. Everything in an OODBMS is an object. OODBMS

9 Object Identity (OID) Object identifier (OID) assigned to object when it is created that is: System-generated. Unique to that object. Invariant. Independent of the values of its attributes (that is, its state). Invisible to the user (ideally). OODBMS

10 OID Alternative 1 In RDBMS, object identity is value-based: primary key is used to provide uniqueness. Why not use primary key in OODBMS? Primary keys do not provide type of object identity required in OO systems: key only unique within a relation, not across entire system; key generally chosen from attributes of relation, making it dependent on object state (simulated key). OODBMS

11 OID Alternative 2 In OO programming languages, use variable names and pointers/virtual memory addresses, which also compromise object identity. In OOPL, OID is physical address in process memory space, which is too small - scalability requires that OIDs be valid across storage volumes, possibly across different computers. Further, when object is deleted, memory is reused, which may cause problems. OODBMS

12 OID Advantages They are efficient. They are fast.
They cannot be modified by the user. They are independent of content. Identical objects vs. equal objects OODBMS

13 Encapsulation Object Attributes Method 1 Method 2 Method 4 Method 3
OODBMS

14 Class and Object (Instance)
BranchNo = B005 Street = 22 Deer Rd City = London Postcode = SW1 4EH BRANCH Attributes branchNo street city postcode BranchNo = B007 Street = 16 Argyll St City = Aberdeen Postcode = AB2 3SU Methods print() getPostCode() numberOfStaff() BranchNo = B003 Street = 163 Main St City = Glasgow Postcode = G11 9QX OODBMS

15 Subclasses, Superclasses and Inheritance
Inheritance allows one class of objects to be defined as a special case of a more general class. Special cases are subclasses and more general cases are superclasses. Process of forming a superclass is generalization; forming a subclass is specialization. Subclass inherits all properties of its superclass and can define its own unique properties. Subclass can redefine inherited methods (override). All instances of subclass are also instances of superclass. OODBMS

16 Single Inheritance PERSON STAFF MANAGER SALES STAFF OODBMS

17 Complex Objects A Complex object is something that can be viewed as a single thing in the real world but it actually consists of many sub-objects. 2 Types: Unstructured. Their structure hard to determine. Requires a large amount of storage. BLOB (Binary Large Objects): images & long test strings. Structured. Clear structure. Sub-objects in a part-of relationship. Will talk more about in next slide. OODBMS

18 Structured Complex Objects
An object that consists of sub-objects but is viewed as a single object. Objects participate in a A-PART-OF (APO) relationship. Contained object can be encapsulated within complex object, accessed by complex object’s methods. Or have its own independent existence, and only an OID is stored in complex object. M1 M3 M2 M4 Obj 2 Obj 1 M1 M3 M2 M4 Obj 1 OID 2 M1 M3 M2 M4 Obj 3 OID 2 Obj 2 OODBMS

19 Commercial OODBMs GemStone from Gemstone Systems Inc.,
Itasca from Ibex Knowledge Systems SA, Objectivity/DB from Objectivity Inc., ObjectStore from eXcelon Corp., Ontos from Ontos Inc., Poet from Poet Software Corp., Jasmine from Computer Associates/Fujitsu, Versant from Versant Object Technology. OODBMS

20 Components of OODBMS Object Model (OM): abstract modeling of objects and relationships. Unified Modeling Language (UML): used to describe OM. Object Definition Language (ODL): language to specify the schema for an OODBMS. Object Query Language (OQL): Language to query an OODBMS. C++, Smalltalk, and Java Language Binding. OODBMS

21 Object Model -- Collections
Contains a number of unnamed, homogeneous elements; each can be instance of atomic type, another collection, or a literal type. Types of Constructors: Set: unordered collection of objects without duplicates. Bag: unordered collection of objects that allows duplicates. List: ordered collection of objects that allows duplicates. Array: ordered collection of objects without duplicates. Dictionary: unordered sequence of key-value pairs without duplicate keys. OODBMS

22 OM – Object Relationships
A relationship between 2 objects can be: One-to-One One-to-Many Many-to-Many UML (Unified Modeling Language) is used to model objects and object relationships. OODBMS

23 UML Example PERSON STAFF POWNER CLIENT BRANCH MANAGER SALESTAFF
Name FName LName STAFF StaffNo position DOB salary POWNER OwnerNo address CLIENT ClientNo telNO prefType MaxRent MANAGER SALESTAFF BRANCH PROPERTY PropertyNo rooms rent BranchNo Manages WorksAt Offers Views Owns 1 OwnedBy N ViewedBy M M M 1 M Has 1 1 1 ManagedBy IsOfferedBy OODBMS

24 Object Definition Language -- ODL
module DreamHome Class Branch (extent branchOffices key branchNo) { attribute string branchNo; attribute struct BranchAddress {string street, string city, string postcode} address; relationship Manager ManagedBy inverse Manager::Manages; relationship set<SalesStaff> Has inverse SalesStaff:WorksAt; relationship set<PropertyForRent> Offers inverse PropertyForRent::IsOfferedBy; void takeOnPropertyForRent(in string propertyNo) raises(propertyAlreadyForRent); }; OODBMS

25 ODL class Person { attribute struct Pname {string fName, string lName} name; }; Class Staff extends Person (extent staff key staffNo) { attribute staffNo; attribute enum SexType {M, F} sex;; attribute date DOB; short getAge(); Void increaseSalary(in float increment); class Manager extends Staff (extent managers) relationship Branch Manages inverse Branch::ManagedBy; OODBMS

26 Object Query Language -- OQL
A Query language for OODBMS. OQL can be used for both associative and navigational access: Associative query returns collection of objects (like SQL). Navigational query accesses individual objects and object relationships used to navigate from one object to another. OODBMS

27 OQL SELECT [DISTINCT] <expression> FROM <fromList> [WHERE <expression>] [GROUP BY <attribute1: expression1, attribute2, expression2, ..>] [HAVING <predicate>] [ORDER BY <expression>] OODBMS

28 OQL vs. SQL: A Simple Example
Query: List the names of the children of employees working in the sales department. OQL SQL select c.fname, c.lname from Depts d, d.employs e, e.hasChildren c where d.name = “Sales” select c.fname, c.lname from Depts d, Employee e, Children c where d.name = “Sales” and d.deptID = e.deptID and c.parentID = e.empID OODBMS

29 OQL: Extents Find all branches in London: SELECT b.branchNo FROM branchOffices b WHERE b.address.city = “London”; This returns a type bag<string> but since branchNo is unique  set<string>. OODBMS

30 OQL: Traversal Paths Find the salaries of sales staff who work at the branches in London SELECT DISTINCT s.salary FROM BranchOffices b, b.WorksAt s WHERE b.address.city = “London”; This returns set<float>. OODBMS

31 OQL: Using Structures Get structured set containing name, sex, and age for all staff who live in London: SELECT struct (lName:s.name.lName, sex:s.sex, age:s.getAge()) FROM s IN Staff WHERE s.WorksAt.address.city = “London”; This returns bag<struct>. OODBMS

32 OQL: Order By Get structured set containing name, sex, and age for all staff who live in London ordered by their salaries: SELECT struct (lName:s.name.lName, sex:s.sex, age:s.getAge()) FROM s IN Staff WHERE s.WorksAt.address.city = “London” ORDER BY s.salary; This returns a type list<struct>. OODBMS

33 OQL: Aggregates How many staff work in branch number 003? 2 ways to query SELECT COUNT(s) FROM s IN salesStaff WHERE s.WorksAt.branchNo = “B003”; COUNT(SELECT s FROM s IN salesStaff WHERE s.WorksAt.branchNo = “B003”); Return staff who work in branches with more than 10 employees SELECT s FROM s IN salesStaff WHERE COUNT(s.WorksAt) > 10; COUNT can be used in any part of the OQL OODBMS

34 OQL: Creating Objects A type name constructor is used to create an object with identity: Manager(staffNo: “SL21”, fName: “John”, lName: “White”, address: “19 Taylor St, London”, position: “Manager”, sex: “M”, DOB: date“ ”, salary: 30000) OODBMS


Download ppt "Object-oriented DBMSs"

Similar presentations


Ads by Google