Lec17OODatabase1

Download Report

Transcript Lec17OODatabase1

Object-Oriented Database Systems
(part 1)
CS263 Lecture 17
LECTURE PLAN
OBJECT DATABASE SYSTEMS
PART ONE
 Advanced database application areas
 Problems associated with RDBMSs
 Third Generation DBMSs
 What is Object Orientation?
 What is an OODBMS?
DATABASES
ADVANCED APPLICATION AREAS
 Computer-Aided Design (CAD).
 Computer-Aided Manufacturing (CAM).
 Computer-Aided Software Engineering (CASE).
 Office Information Systems (OIS).
 Multimedia Systems.
 Digital Publishing.
 Geographic Information Systems (GIS).
 Scientific and Medical Systems.
RELATIONAL DBMSs
PROBLEMS
 Poor representation of ‘real world’ entities.
 Semantic overloading.
 Poor support for integrity and business constraints.
 Homogeneous data structure.
 Limited operations.
 Difficulty handling recursive queries.
 Impedance mismatch.
 Difficulty with ‘Long Transactions’.
RELATIONAL DBMSs
PROBLEMS
 Poor representation of ‘real world’ entities.
 Semantic overloading.
 Poor support for integrity and business constraints.
 Homogeneous data structure.
 Limited operations.
 Difficulty handling recursive queries.
 Impedance mismatch.
 Difficulty with ‘Long Transactions’.
RELATIONAL DBMSs
PROBLEMS - REAL-WORLD OBJECTS
ER Diagram - Car
C#
CAR
Part of
W#
C#
WHEEL
Part of
T#
W#
TRIM
Has
Has
Part of
Has
S#
C#
SEAT
RELATIONAL DBMSs
PROBLEMS - REAL-WORLD OBJECTS
NORMALISATION
Car {C#, Chassis#, NoWheels, NoSeats, etc…}
Wheel {W#, C#, Size, Pressure, etc…}
Trim {T#, W#, Material, Cost, etc…}
Seat {S#, C#, Material, Size, Cost,, etc…}
To find out all details about a Car we would have to carry out a large
number of (expensive) JOIN operations.
Select *
From Car, Wheel, Trim, Seat
Where Car.C# = Wheel.C#
And Car.C# = Seat.C#
And Wheel.W# = Trim.W#;
RELATIONAL DBMSs
PROBLEMS
 Poor representation of ‘real world’ entities.
 Semantic overloading.
 Poor support for integrity and business constraints.
 Homogeneous data structure.
 Limited operations.
 Difficulty handling recursive queries.
 Impedance mismatch.
 Difficulty with ‘Long Transactions’.
RELATIONAL DBMSs
PROBLEMS - SEMANTIC OVERLOADING
ER Diagram
D#
Oversees
P#
D#
DOCTOR
Overseen by
PATIENT
D#
Kills
P#
DOCTOR
Killed by
D#
PATIENT
Doctor {D#, Name, Surgery, etc…}
Patient {P#, D#, Name, Address, DOB, etc…}
We do not record the
nature of the
relationship between
doctor and patient!
RELATIONAL DBMSs
PROBLEMS
 Poor representation of ‘real world’ entities.
 Semantic overloading.
 Poor support for integrity and business constraints.
 Homogeneous data structure.
 Limited operations.
 Difficulty handling recursive queries.
 Impedance mismatch.
 Difficulty with ‘Long Transactions’.
RELATIONAL DBMSs
PROBLEMS
 Poor representation of ‘real world’ entities.
 Semantic overloading.
 Poor support for integrity and business constraints.
 Homogeneous data structure.
 Limited operations.
 Difficulty handling recursive queries.
 Impedance mismatch.
 Difficulty with ‘Long Transactions’.
RELATIONAL DBMSs
PROBLEMS - HOMOGENEOUS DATA STRUCTURE
ACCOUNT TABLE
ACCOUNT
CUSTOMER BRANCH
200
324
345
350
400
456
JONES
GRAY
SMITH
GREEN
ONO
KHAN
STRATFORD
BARKING
STRATFORD
BARKING
BARKING
STRATFORD
BALANCE
1000.00
200.00
23.17
340.14
500.00
333.00
ALL ROWS HAVE THE SAME NUMBER OF ATTRIBUTES
ALL VALUES IN A COLUMN ARE OF THE SAME TYPE
ALL ATTRIBUTE VALUES ARE ATOMIC
RELATIONAL DBMSs
PROBLEMS
 Poor representation of ‘real world’ entities.
 Semantic overloading.
 Poor support for integrity and business constraints.
 Homogeneous data structure.
 Limited operations.
 Difficulty handling recursive queries.
 Impedance mismatch.
 Difficulty with ‘Long Transactions’.
RELATIONAL DBMSs
PROBLEMS
 Poor representation of ‘real world’ entities.
 Semantic overloading.
 Poor support for integrity and business constraints.
 Homogeneous data structure.
 Limited operations.
 Difficulty handling recursive queries.
 Impedance mismatch.
 Difficulty with ‘Long Transactions’.
RELATIONAL DBMSs
PROBLEMS - RECURSIVE QUERIES
Question - Who does SMITH work for?
Select E2.ENAME From EMP E1, EMP E2
Where E1.MGR = E2.EMPNO And E1.ENAME = “SMITH”;
?
KING
First Level Answer – SMITH works for FORD
Select E3.ENAME From EMP E1, EMP E2, EMP E3
Where E1.MGR = E2.EMPNO And E2.MGR = E3.EMPNO
And E1.ENAME = “SMITH”;
JONES
FORD
Second Level Answer - SMITH works for JONES
Select E4.ENAME From EMP E1, EMP E2, EMP E3, EMP E4
Where E1.MGR = E2.EMP And E2.MGR = E3.EMPNO
And E3.MGR = E4.EMPNO And E1.ENAME = “SMITH”;
Third Level Answer – SMITH works for KING
SMITH
RELATIONAL DBMSs
PROBLEMS
 Poor representation of ‘real world’ entities.
 Semantic overloading.
 Poor support for integrity and business constraints.
 Homogeneous data structure.
 Limited operations.
 Difficulty handling recursive queries.
 Impedance mismatch.
 Difficulty with ‘Long Transactions’.
RELATIONAL DBMSs
PROBLEMS - IMPEDANCE MISMATCH
SQL is a declarative, set-based language that is not
computationally complete!
Database applications require the use of a computationally
complete, record-based, procedural language such as C,
C++, Java, and PL/SQL.
We therefore have to map sets of data into records using
memory structures such as cursors.
This is expensive in terms of application processing time
and programming effort, accounting for around 30% of some
projects!
RELATIONAL DBMSs
PROBLEMS
 Poor representation of ‘real world’ entities.
 Semantic overloading.
 Poor support for integrity and business constraints.
 Homogeneous data structure.
 Limited operations.
 Difficulty handling recursive queries.
 Impedance mismatch.
 Difficulty with ‘Long Transactions’.
THIRD GENERATION DBMSs
THIRD GENERATION DBMSs
MAIN AIMS
• Support Complex Active Objects
Allow both data and its associated behaviour to be
modelled to any level of complexity.
• Improve Extensibility
Allow for the dynamic extension of both allowable data
types and the behaviour associated with these types.
• Reduce the Impedance Mismatch
Ensure that there is a seamless integration between the
DBMS data model and that of the programming language
accessing the data.
OBJECT ORIENTATION
Object Model
WHAT IS AN ATOMIC (LITERAL) OBJECT?
An atomic object is a container for a fixed value and serves the
same purpose as a constant in a programming language.
An atomic object cannot change its own state.
Examples of atomic types and atomic objects
Integer - e.g. 1, 2, 3, -5, -45, etc.....
Float - e.g. 1.52, -0.3456, 2.000, etc...
Boolean - i.e. True or False
Char - e.g. a, b, c, @, #, !, etc...
String - e.g. “Mark”, “Database Systems”
Object Model
WHAT IS A (MUTABLE) OBJECT?
UNIQUE OBJECT IDENTIFIER (OID)
I am an
object!
ATTRIBUTES
State
NAME MARK
DOB
14/02/1964
JOB
LECTURER
RELATIONSHIPS
BEHAVIOUR
Methods
CHANGE JOB
GET AGE
Object Model
WHAT IS A CLASS?
MARK
I am an
object!
I am also
an object!
IAN
Object Model
WHAT IS A CLASS?
PERSON CLASS
MARK
I am a
Person!
So am I!
PERSON
NAME
DOB
JOB
CHANGE JOB
GET AGE
IAN
Object Model
WHAT IS AN OBJECT IDENTIFIER (OID)?
Each object is uniquely identifiable from all other objects.
When an object is first created it is assigned a value to
identify it. This value is called its Object Identifier.
 System generated.
 Unique to that object.
 Invariant in that it cannot be altered.
 Independent of its attribute values.
 Invisible to the user.
Object Model
WHAT IS ENCAPSULATION?
GET AGE
CHANGE JOB
METHOD
NAME: MARK
DOB:
14/02/64
JOB:
LECTURER
GET AGE
METHOD
OBJECT
CHANGE JOB
Object Model
WHAT IS A COMPLEX OBJECT?
Is a Car a Complex Object?
Yes, it’s an object that is made up of other objects!
Wheels, Seats, Chassis, Exhaust, Steering Wheel, etc, etc...
And… a wheel itself is also a complex object!
Tire, Trim, Hub Cap, etc, etc...
Object Model
WHAT IS A COMPLEX OBJECT?
TIRE
TIRE
HUB
CAP
HUB
CAP
TRIM
WHEEL
SEAT
TIRE
HUB
CAP
TRIM
WHEEL
SEAT
REGISTRATION
NUMBER
WHEEL
CAR
SEAT
CHASSIS
WHEEL
SEAT
TRIM
TIRE
HUB
CAP
TRIM
Object Model
WHAT IS A COMPLEX OBJECT?
TIRE
A Wheel IS-PART-OF a Car
HUB
CAP
TRIM
WHEEL
SEAT
TIRE
HUB
CAP
TRIM
WHEEL
SEAT
REGISTRATION
NUMBER
TIRE
HUB
CAP
WHEEL
CAR
SEAT
CHASSIS
WHEEL
SEAT
A Car has a COLLECTION of Wheels
TRIM
TIRE
HUB
CAP
TRIM
Object Model
WHAT IS A COMPLEX OBJECT?
CAR
REG-NUMBER:
CHASSIS:
WHEELS:
SEATS:
WHEEL
TIRE:
STRING
WHEEL
HUB CAP: STRING
STRING
TIRE:
WHEEL
TRIM:
STRING
HUB
CAP: STRING
STRING
TIRE:
WHEEL
TRIM:
STRING
HUB
CAP:STRING
STRING
TIRE:
TRIM:
STRING
HUB
CAP: STRING
TRIM:
STRING
STRING
STRING
SET<WHEEL>
SET<SEAT>
SEAT
TIRE:
STRING
SEAT
HUB CAP: STRING
STRING
TIRE:
SEAT
TRIM:
STRING
HUB
CAP: STRING
STRING
TIRE:
SEAT
TRIM:
STRING
HUB
CAP:STRING
STRING
TYPE:
TRIM:
STRING
COLOUR:
STRING
POSITION: STRING
Object Model
WHAT IS A COLLECTION - SET?
SET - An unordered collection of
distinct objects of the same type
e.g, Customers : SET <Customer>;
BILL
An instance of
CUSTOMERS
MARK
HILDA
MARIE
CAROLINE
Object Model
WHAT IS A COLLECTION - BAG?
BAG - An unordered collection of
objects of the same type
e.g, Phone_calls : BAG <TelephoneNumber>;
555-9999
An instance of
PHONE_CALLS
444-3333
555-9999
111-3333
444-3333
Object Model
WHAT IS A COLLECTION - LIST?
LIST - An ordered collection of
objects of the same type
e.g, MachineFaults : LIST <Fault>;
Fault at 11:00:01
Fault at 11:00:20
An instance of
MachineFaults
Fault at 11:31:00
Fault at 11:44:33
Fault at 12:00:00
Object Model
WHAT IS A COLLECTION - ARRAY?
ARRAY – Each object is stored at a particular position
e.g, StudySchedule : ARRAY <Task>;
An instance of StudySchedule
0
1
2
3
4
5
6
7
8
9
10 11
12 13
Object Model
WHAT IS A STRUCTURE?
A fixed number of named slots, each of which can contain an
object of a particular type.
e.g, CustomersDetails : STRUCTURE <
forenames : List < String>,
family_name : String,
customer_no : Integer >
Marie
An instance of
CustomerDetails
Rebecca
Campbell
9603456
family_name
customer_no
Caroline
forenames
Object Model
WHAT IS INHERITANCE?
IS-A
Person
name
address
telephone_no
change_name (...)
change_address (...)
Employee
employee_no
promote(...)
pay_employee (...)
IS-A
Customer
customer_no
place_order(...)
make_payment(...)
IS-A
TradeCustomer
trade_discount%
place_order(...)
make_payment(...)
Object Model
WHAT IS MULTIPLE INHERITANCE?
Person
name
address
telephone_no
change_name (...)
change_address (...)
Employee
employee_no
promote(...)
pay_employee (...)
Customer
customer_no
place_order(...)
make_payment(...)
IS-A
IS-A
Employee_Customer
staff_discount_card
place_order(...)
make_payment(...)
TradeCustomer
trade_discount%
place_order(...)
make_payment(...)
Object Model
WHAT ARE OBJECT RELATIONSHIPS?
Husband
....
....
1
husband_of
wife_of
1
Wife
....
....
one-to-one
Child
....
....
*
child_of
1
mother_of
Mother
....
....
one-to-many
Child
....
....
*
child_of
parent_of
*
many-to-many
Parent
....
....
Object Model
WHAT ARE METHODS AND MESSAGES?
NAME: MARK
DOB:
14/02/64
JOB:
LECTURER
CHANGE JOB
METHOD
BODY
DISK
GET AGE
METHOD
BODY
OBJECT
Object Model
WHAT IS POLYMORPHISM?
ANALOGUE
CLOCK
...
CLOCK
...
SetTime ()
SetAlarm ()
ShowTime ()
SetTime ()
SetAlarm ()
ShowTime ()
DIGITAL
CLOCK
...
SetTime ()
SetAlarm ()
ShowTime ()
DIFFERENT TYPES OF
OBJECT RESPOND
DIFFERENTLY TO THE
SAME MESSAGE
11:00
PM
Object Model
WHAT IS OVERIDING?
When a sub-class’s method body is used rather than the body
of the super-class’s method it is known as overriding.
CUSTOMER
Customer No.
PlaceOrder()
MakePayment()
METHOD BODY
1. Create order details
2. Calculate total cost
IS-A
TRADE
CUSTOMER
TradeDiscount%
PlaceOrder()
METHOD BODY
1. Create order details
2. Calculate total cost
3. Apply Trade Discount
Object Model
WHAT IS LATE BINDING?
Late or dynamic binding is the ability of the runtime system
to determine which method body to execute depending on the
type of an object.
Customers := SET <Customer>
CUSTOMER
TIRE: Customer
STRING
Trade
HUB CAP: STRING
STRING
TIRE:
CUSTOMER
TRIM:
STRING
HUB
CAP: STRING
TIRE:
Trade
Customer
TRIM:
STRING
HUB
CAP: NO
CUSTOMER
TRIM:
STRIN
PLACE_ORDER
MAKE_PAYMENT
FOR x IN Customers
DO
x.PLACE_ORDER
END
Where x := an individual
Customer Object!
It doesn’t matter if a customer is a trade customer, late binding
ensures the appropriate PLACE_ORDER method body is called!
OODBMS
OODBMS
WHAT IS AN OODBMS?
Object Oriented Database Management Systems (OODBMSs) are an attempt
at marrying the power of Object Oriented Programming Languages with the
persistence and associated technologies of a DBMS.
OBJECT ORIENTED DATABASE MANAGEMENT SYSTEM
OOPLs
DBMSs
Complex Objects
Object Identity
Methods & Messages
Inheritance
Polymorphism
Extensibility
Computational Completeness
Persistence
Disc Management
Data Sharing
Reliability
Security
Ad Hoc Querying
OODBMS
WHAT AN OODBMS SHOULD SUPPORT?







Atomic and complex objects
Methods and messages
Object Identity
Single inheritance
Polymorphism - overloading and late-binding
Persistence
Shared Objects
In addition an OODBMS can optionally support





Multiple inheritance
Exception messages
Distribution
Long Transactions
Versions