96
1 Chap. 8 Object-Oriented Databases 서서서서서 서서서서서서 SNU Internet Data Base Lab 서서 서 서 서 O BJEC T-O R IEN TATIO N by Khoshafian and Abnous

1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

Embed Size (px)

Citation preview

Page 1: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

1

Chap. 8 Object-Oriented Databases

서울대학교 컴퓨터공학부SNU Internet Data Base Lab

교수 김 형 주

OBJECT-ORIENTATION by Khoshafian and Abnous

Page 2: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

2

Contents

Introduction Foundation and Evolution of OODBs Persistence in OODBs Transactions & Concurrency Control in OODBs Recovery in OODBs Versioning Client/Server Architecture and OODBs

Page 3: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

3

Introduction

Object-Oriented Databases

Object Orientation

Abstract Data TypingInheritanceObject Identity

Database Capabilities

PersistenceConcurrencyTransactionsRecoveryQueryingVersioningIntegritySecurityPerformance

Page 4: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

4

Overview of DBMS Concepts (1)

Persistence the ability of objects to persist different program

invocations

Transactions units are executed either entirely or not at all

(atomicity).

Concurrency control to guarantee database and transaction

consistency

Page 5: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

5

Overview of DBMS Concepts (2) Recovery

three types of failures: transaction failure system failure media failure

Querying queries are used to select subsets and subobjects fro

m database collection objects or sets Versioning

consists of tools & constructs to automate or simplify the construction & organization of versions or configuration

Page 6: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

6

Overview of DBMS Concepts (3)

Integrity the predicates that capture the consistency of

a database

Security Encryption algorithms User access control mechanism

Performance issues indexes or accelerators clustering techniques query optimization

Page 7: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

7

Approaches to OODB (1)

Novel database data model/data language approach the most aggressive approach for incorporating OO capabiliti

es into DB ODMG93: ODL, OQL. OML

Extending an existing DB language with OO capabilities e.g. extending SQL with object-oriented constructs Intelligent SQL UniSQL

Page 8: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

8

Approaches to OODB (2)

Extending an existing OOPL with DB capabilities e.g. OODB extensions have been incorporated in C++

and Smalltalk as language extension Gemstone’s OPAL (Smalltalk extension)

Providing extendible OODBMS system libraries C++ client library for database management Ontos, Versant

Page 9: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

9

Approaches to OODB (3)

Embedding OODB language constructs in a host language e.g. O2 provides embedded extensions for C and

Basic

Application-specific products with an underlying OO DBMS Echelon: OODBMS for XML Multimedia content server

Page 10: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

10

Approaches to OODBs: Summary

Novel database data model/data language approach

Extending an existing DB languages with OO capabilities

Extending an existing OOPL with database capabilities

Providing extendible OODBMS libraries Embedding OODB language constructs in a host

language Application-specific products with an underlying

OODBMS

Page 11: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

11

Contents

Introduction Foundation and Evolution of OODBs Persistence in OODBs Transactions & Concurrency Control in OODBs Recovery in OODBs Versioning Client/Server Architecture and OODBs

Page 12: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

12

Foundation and Evolution of OODBs

The hierarchical data model The network data model The relational data model Set-and-Tuple complex object models Semantic data models

Page 13: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

13

Hierarchical Data Model

This model represents the structures of the persistent DB as a collection of tree node ( a set of objects of the same type ) relationship ( one-to-many (parent: child) )

70’s: IBM IMS

COBOL, PL/I

Page 14: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

14

Parent

Child #1 Child #N………….

< The hierarchical data model >

Page 15: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

15

Desktop 2 Desktop 1

Folder 13Folder 12

Document 112

Document 111

Folder 11

A hierarchical representation of desktops, folders, documents

Page 16: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

16

Network Model

This model is more general than the hierarchical model. same record type can be

owner (parent) member (child)

70’s: System 2000

COBOL, PL/I

Page 17: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

17

Owner #1 Owner #n

Member B

………………..

< The network model >

Member A Member C

Page 18: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

18

Desktop

Folder

Drawer

Cabinet

Contains

Contains

Contains

Contains

1 N

1

NN

1N

1

1-to-M relationships supported by the network model

Page 19: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

19

Relational Model Navigational (how)

in a hierarchical or a navigational DB Declarative (what)

in a relational DB Constitution of RDB

relation(table) : row+column

1970, E.F. Codd (IBM) Relational Calculus, Relational Algebra

1976: Ingres (UC Berkely), System/R (IBM SanJose)

Page 20: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

20

FoldersDesktops

Documents

Intelligent Office Tables

C1 C2 CN

Columns

Ro

ws

Relational DB for Intelligent offices

Page 21: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

21

Set-&-Tuple complex object Model

1985: Khoshafisian & Bancillon Set-&-Tuple complex object model

have been proposed to the relational model with nested relations attribute values can be tuples or sets

Set valued attributes Relation valued attributes

Extending SQL extending relational calculus permitting sets extending relational algebra permitting sets

Page 22: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

22

Semantic Data Model Semantic data model

node --- entity, object link --- relationship

semantic v.s. object-oriented model entity type v.s. class entity v.s. instance attribute v.s. instance variable

So many proposals (1980-1986) GEM, Association Model, SDM, RM/T, ……

Page 23: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

23

Integrity Constraints for OODBs

Unique/primary key constraints Existential constraint NOT NULL constraint Integrity rules Triggers Pre- and postconditions for methods Disjointness constraint Covering constraint

Page 24: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

24

Contents

Introduction Foundation and Evolution of OODBs Persistence in OODBs Transactions & Concurrency Control in OODBs Recovery in OODBs Versioning Client/Server Architecture and OODBs

Page 25: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

25

Persistence in OODBs Ways to create and maintain persistent objects

3 strategies to create & identify persistent objects: persistent classes and class extensions persistence through reachability persistence instances

Page 26: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

26

Persistent classes and class extensions

System built-in persistent classes Subclasses of built-in persistent classes are persistent

Understand as ADT constructor and Container classes

Most cases: COLLECTION classes (set, bag, list, array) Iterators (for navigating persistent instances)

Page 27: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

27

PersistentObject Space

TransientObject Space

DB X Y

Z

Application’s Object Space

Persistence through Reachability

Page 28: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

28

ArchivalDocuments

Accounts

Invoices

Query Result

New Folder

Persistent Instances Transient Instances

Declaring Persistent & Transient instances

Page 29: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

29

Main Stream to Manipulate Persistent OODBs

Strategies for persistence in OODBs extending a DB language with OO capability

extending SQL with OO features IntelligentSQL, UniSQL

extending an OO language with DB capabilities language extension: making Smalltalk an OODBMS extendible library: Ontos, Versant

Page 30: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

30

Extending SQL with OO

SQL standards SQL-89 SQL-92

Currently SQL-3 standardization effort incorporates OO features user-defined abstract data typing inheritance set, collection types object identity

Page 31: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

31

Case Study (ORDB): Intelligent SQL

Prototype developed at Ashton-Tate that extended SQL and the InterBase DB engine

Main concepts of object orientation abstract data types inheritance tuples and object identity extended dot “.” notation identity

Page 32: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

32

Intelligent SQL: Abstract Data Type

CREATE CLASS Stack[T] { INSTANCE VARIABLE ( ARRAY StArr[M] of T, Top INTEGER); METHODS ( push ….. ( ……); pop ….. (…….); }

CREATE TABLE Account( AccountNumber INTEGER, Location CHAR(20) Payables Stack[Dollar])

SELECT AccountNumber, Pop(Payables) FROM AccountWHERE Location = “New York”

Page 33: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

33

Intelligent SQL: Inheritance

CREATE TABLE OfficeWorker ( Name CHAR(20), Address CHAR(100), Workeroffice CHAR(10), Salary FLOAT, DateOfBirth DATE)

CREATE TABLE Manager SPECIALIZES OfficeWorker ( Title CHAR(10))

CREATE TABLE VicePresident SPECIALIZES Manager (AdminAssistant CHAR(20))

SELECT Address FROM Manager WHERE Salary > 60K

CREATE TABLE HighlyPaidWorker SPECIALIZES OfficeWorkers WHERE Salary > 60,000

Page 34: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

34

Intelligent SQL: Tuple and OID

CREATE TUPLE ADDRESS ( Number INTEGER, StrtName CHAR (20), AptNo INTEGER, City CHAR(20), State CHAR(20), Zip INTEGER);

CREATE TABLE Persons ( Name CHAR (20), Age INTEGER, HomeAddr ADDRESS);

CREATE TABLE Persons( Name CHAR(20), Age INTEGER, HomeAddr TUPLE ( Number INTEGER, StrtName CHAR (20), AptNumber INTEGER, City CHAR(20), State CHAR(20), Zip INTEGER) )

Page 35: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

35

Case Study (ORDB): UniSQL

Won Kim at UniSQL, Inc. SQL/X is an extension of the SQL-89 with OO extensi

ons direct reference to table records ability to associate procedures or methods with table definit

ions support of table inheritance support of collection types in relations

Page 36: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

36

UniSQL

CREATE CLASS IMAGE ( Size INTEGER, Type INTEGER, Content …)

CREATE CLASS PERSON ( Name CHAR (32), … Picture IMAGE);

CREATE CLASS MAP ( MapName CHAR(32), MapRegion CHAR(32); MapImage set IMAGE)

Page 37: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

37

Extending OOPL with DB Capabilities Two alternatives

use language extensions that enrich the OO language with database capabilities GemStone’s OPAL by ServioLogic

provide extendible OODBMS libraries C++ libraries for database management by Ontos, Versant,

Objectivity, and ObjectDesign

Page 38: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

38

Case Study (PL Ext): OPAL

Making Smalltalk as a DB language OPAL is the GemStone’s DDL and DML Defining a class in OPAL

Receiving_class_name subclass ‘Name_subclass’ instVarName: ListofInstanceVariables

classVars: ListofClassVariables poolDictionaries: ListofCommonVariables inDictionary: DictionaryName constraints: ListofDomainConstraints InstanceInvariant: False/True isModifiable: False/True

Page 39: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

39

Case Study (PL Ext): OPAL

Richworker := Workers select: {:aworker | aworker.salary > 60000}

Jones := Workers select: { :aworker | (aWorker.age > 21) & (aWorker.name.last = “Jones”)}

Page 40: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

40

C++ Classes for DB capabilities

Class libraries supporting persistence and DB capabilities constructors new with various parameters methods to destroy the persistent object methods to read/write object from/to DB methods to lock/unlock the object predicate to check the object’s modification

Persistent classes are defined by their inheritance from a root persistent class

Page 41: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

41

PersistentObject

PersistentFolder PersistentWorker PersistentPeripheral

PersistentAccountFolder

PersistentSalesPersion

PersistentScanner

< Persistent classes routed at PersistentObject >

Page 42: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

42

Case Study (Library): Versant

OODBMS from Versant Object Technology Supports C, C++, and Smalltalk interface Persistent root class PObject provides

new operator delete method className(), isPersistent(), isInstanceOf(),... object management methods version management methods

Page 43: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

43

Case Study (Library): ObjectStore (1)

ObjectStore ODBMS from ObjectDesign, Inc. A number of high-performance capability Any object type can be persistent or transient

// Create an instance of office_typeOfficeapp *officeobject = new(officedb, office_type)

// Declare binding of a variable to a databaseDatabase *officedb;……………..officedb = os_database::open(“/office/officedb”);

Page 44: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

44

Case Study (Library): ObjectStore (2)

Collections and Querying in ObjectStore ObjectStore collection classes :

os_Collection, os_Set, os_Bag, os_List The general form for executing a query is :

<collection-object>.os_query( <element type name>, <query string>, <database> )

corporateOffices[: size > 200 :];

Page 45: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

45

Persistent Complex Object Storage Strategies(Fast Object Access!!!)

Two complementary storage techniques indexing to accelerate the searches

conventional indexing techniques are applicable B-tree, primary/secondary index, hashing, etc.

clustering to store objects that are accessed together as close as possible graph structured object space are mapped onto physical

storage units such as pages, segments

Page 46: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

46

Persistent Object Space

Page 1

Page 2

Physical Disk Pages

…………..

Mapping complex object spaces onto secondary-storage disk pages

Page 47: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

47

Case Study (Clustering): ObjectStore

ObjectStore persistent address space

concurrently sharable its size is larger than that of virtual address space

theoretical 2^29 bytes/DB Main memory < Virtual Memory < Persistent Memory Several disks can be used for persistent memory A database can have many segments Clustering objects in the segments improve the performa

nce

Page 48: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

48

Physical memory

VMPersistentMemory

OS Paging System

ObjectStore & VM extend views of memory in similar way

Page 49: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

49

Case Study (Clustering): GemStone

GemStone specify how objects should be clustered

(e.g.) MyObject cluster

clusterPersonself cluster.name cluster.age cluster.Soc-sec-num cluster.Address cluster.

address streetNum clusteraddress streetName clusteraddress State cluster

Page 50: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

50

Contents

Introduction Foundation and Evolution of OODBs Persistence in OODBs Transactions & Concurrency Control in OODBs Recovery in OODBs Versioning Client/Server Architecture and OODBs

Page 51: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

51

Transactions in OODBMS (1)

Constructs begin transaction end(commit) transaction abort transaction

to undo all work and terminate the transacation without its updates

Page 52: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

52

Transactions in OODBMS(2)

Properties(ACID) Atomicity: a program that either is executed

entirely or is not executed at all Consistency: all associated semantic integrity

constraints are satisfied Isolation: the safeguard provided by the

database system against mutual interference between concurrent transactions

Durability: preserve the effects of all committed transactions as well as db consistency in the presence of system and media failures

Page 53: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

53

Folders

Documents

Workers

State S1

All integrity constraintsare satisfied

Folders

Documents

Workers

State S2

All integrity constraintsare satisfied

Transaction

Transactions maintain consistency

Page 54: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

54

Long Transactions

Advanced database applications CAD, CAM, GIS, telecommunication, etc.

Issues on long transactions on a failure, the entire transactions has to be rolled

back the more complex and large a transaction, the

more conflicts with other transactions computer supported cooperative work

Long transaction management techniques nested transaction cooperating transaction

Page 55: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

55

SD1 SD1

SD1 SD1

First Draft

DocumentOutline

SubdocumentsIntegrated for

First Draft

Second Draft Draft 2

FinalDraft

Reviews cumulating in 2nd Drft

Integrating Figures,Charts, Etc. , for

Final Draft

The multiple steps to complete a complex document

+

Page 56: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

56

Nested Transactions

Introduced by Moss (1981) Transactions have a tree structure

ST1

ST12ST11

ST2

ST21 ST22

Top Level Transaction

Page 57: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

57

FinalDraft

Draft 2

Draft 1

Subtransaction for Draft 2:integrate annotations

……...

Subtransaction for Graphics

Subtransaction forGraphics

Integrate

Subtransaction forDraft 1

Final DraftTop-level Transaction

Nested transaction in document-preparation example

Page 58: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

58

Cooperating Transactions

Some advanced application involve users who need to cooperate

Each workers come up with rules to regulate the coordination synchronize their individual subtransactions

Page 59: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

59

Concurrency Control

The activity of synchronizing the actions of transactions occurring at the same time Protocol

Algorithms based on Locking: Two-phase locking, Multiple-granularity

locking Timestamp ordering Commit time certification

Page 60: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

60

Lock based Concurrency Control

Two-phase locking protocol separate the transaction into a growing phase and a s

hrinking phase Multigranularity locking

physical storage organization classes and instances class hierarchy locking complex or composite object locking

Page 61: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

61

Other Concurrency Control Mechanisms

Multiversion concurrency control creates a new version of a database for each update tra

nsaction garbage collection to get rid of old versions

Optimistic concurrency control perform any operation on a database object determine whether a transaction’s commit can be safely

processed

Page 62: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

62

Case Study (Concurrency control)

GemStone both optimistic and pessimistic (locking) concurrency control read (Shared), write, exclusive lock modes

Versant write, intention write, update, read, intention read, and null lock mod

es Objectivity/DB

read, update lock modes multiple granularity locking check-in/check-out protocol

ONTOS both optimistic and pessimistic (locking) concurrency control read, write, and write intent lock

Page 63: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

63

Contents

Introduction Foundation and Evolution of OODBs Persistence in OODBs Transactions & Concurrency Control in OODBs Recovery in OODBs Versioning Client/Server Architecture and OODBs

Page 64: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

64

Recovery in OODBs (1)

Types of failures transaction failures

a transaction fails to commit systems failures

hardware or software problems media failures

hard disk crashes or other nonrecoverable errors on the hard disk

Page 65: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

65

Recovery in OODBs (2)

Recovery manager log

is used to record & store the before & after image of updated objects

Undo log Redo log

data replication or mirroring shadowing

Page 66: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

66

Case Study (Recovery)

GemStone create replicas of the persistent database

SystemRepository replicateWith: <file name> all replicas are updated before the transaction commi

ts

ODB-II from Fusitsu transaction recovery with roll back system recovery with log

Page 67: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

67

Contents

Introduction Foundation and Evolution of OODBs Persistence in OODBs Transactions & Concurrency Control in OODBs Recovery in OODBs Versioning Client/Server Architecture and OODBs

Page 68: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

68

Versioning

System facility for keeping track of previous states or alternate states of objects

A version set contains all the versions of the object

Important in design-oriented environment Operations

Create a version, derive a version Retrieve a version, update a version, delete a version Check-in/out

check-in : from private DB to public DB check-out : from public DB to private DB

Page 69: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

69

``

Workstation Server: Private DB

Designer’s PC:Public DB

Check-out

Check-in

< Check-in & check out in versioning >

Page 70: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

70

Version Set of O1:

V1: Original Version

V2 V3

V4 V5 V6

V7:Final Version

Alternative Versions

Design Object: O1

{V1,V2,V3,V4,V5,V6,V7} : the version set of O1V1-V3-V6-V7 : a linear version of O1{V2,V3} : alternative version of V1

Page 71: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

71

Version Creation

Language constructs Check-out and check-in object versions retrieve successors or predecessors of versions

Different approaches for creating versioned objects inheritance from Version class explicit property with versioned declaration

Page 72: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

72

class class

MethodSignatureInheritance

(is-a)Method Name

PersistentObject

Folder Version

VersionFolder

Retrieve predecessor

Retrieve successor

Version Version

Version Version

Versioned objects through multiple inheritance

Page 73: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

73

Configuration

Collections of objects that must be maintained mutually consistently

A unit for locking and versioning Each object within the configuration can

have a history of versions Version percolation: If a new version of

any component object in a configuration is derived, a new version of the configuration is also derived.

Page 74: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

74

Object 1

V1 V2 V3 V4

Object 2

V1 V2 V3 V4

Object 3

V1 V2 V3 V4

Time

Object 1V1 V2 V3 V4

Object 2V1 V2 V3 V4

Object 3 V1 V2 V3 V4

Configuration 1 Configuration 2

Versions of objects & configurations

Page 75: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

75

Check-out/Check-in Model and Versioning

Algorithm for accessing objects concurrently in client/server architectures step1. begin transaction step2. navigate or locate the object(s) to be manipulated step3. check out the objects with either read or write lock,

depending on intent step4. manipulate the object(s), possibly updating it step5. check in object(s) back to common area (repository),

possibly creating a new version

step6. commit transaction

Page 76: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

76

Versioning in OODBs

ITASCA automatic versioning of objects tagged as versioned

ONTOS versioning and alternative mechanisms configuration objects

ObjectDesign configurations and versioning with alternatives

Page 77: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

77

Contents

Introduction Foundation and Evolution of OODBs Persistence in OODBs Transactions & Concurrency Control in OODBs Recovery in OODBs Versioning Client/Server Architecture and OODBs

Page 78: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

78

Client/Server Architectures and OODBs

Client/Server architecture file servers database servers

Distributed databases homogeneous distributed database heterogeneous distributed database

Standardization effort CORBA(Common Object Request Broker

Architecture) by OMG Client/Server Paradigm + OO Paradigm

Page 79: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

79

C/S Architecture: File Servers

Concurrent resource sharing among multiple users

File servers file, block, page level I/O buffering, locking, concurrent access back-up, authorization, transaction

The client side execution of the application

Page 80: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

80

Application

DBMS(Front End)

ClientOS

Network OS API

Application

DBMS(Front End)

ClientOS

Network OS API

Data FilingComputationsGUI Front End

< File server architecture >

Page 81: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

81

C/S Architecture: Database Servers

Programming interfaces to database servers tools or programs used to interact with the server constitute the client side of the software that is

used to interact with the server

Partitioning functions between clients and server peer-to-peer architecture

each node has the potential of becoming both a client and a server

local and personal databases check-out/check-in model of application development

Page 82: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

82

Client/Server and OODBMS

Partition of functionality between C/S of OODBMS object-server architecture

the server manages objects queries and methods can be executed on the server node thin client

page-server architecture the server does not process queries or execute methods,

these are performed on the client side heavy client

file-server architecture

Page 83: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

83

Two types of object accesses

Navigational variable “reachable” objects are accessed through attr

ibute values or elements of referencing or parent objecs

Query(or declarative) access a search mechanism through a query

Page 84: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

84

A (possible) layered Architecture of OODBMS

Query Manager,Accessor/Update Manager

Query Optimizer

Complex Object Manager

Storage and Index Manager

Buffer Manager

Physical I/O

Concurrency Controland Transaction Manager

Recovery Manager

Page 85: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

85

Alternative strategies on the server side

Query and accessor/update/method interface the highest level that could be supported by the server

Complex object interface the server provides a slightly lower level interface than t

he query or method access option Storage and index manager layer interface Physical file and block I/O

is similar file server architectures except that the management and concurrency control of the the I/O blocks is performed by OODBMS

Page 86: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

86

Server process:Query and Evaluate

Client process:SELECT ….

< Server processing high-level query statements >

Descriptor(Result)

High-level Query

Page 87: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

87

Case Study (Client/Server)

Objectivity/DB : page server architecture Server does page read/write and lock based

concurrency control Client does other modules Heavy client

Versant : object server architecture Server does most parts of processing Dual buffer: Server cache, Client cache Thin client

Page 88: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

88

Client

Cache

Server

Cache

ObjectObject

Requests

< Versant’s client/object server architecture >

Page 89: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

89

Distributed Databases

Interconnected LANs/ Mulitple Servers Characteristics

Autonomy: the degree to which sites within the distributed database system may operate independently

Distribution transparency: the extent to which the distribution of data to sites is shielded from users and application

Heterogeneity: different hardware and operating system may use different data representation

Total isolation: each site in the distributed database system is a stand-alone server and is unaware of the other sites

Page 90: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

90

LAN

DBServer

FileServer

LAN

DBServer

FileServer

LAN

DBServer

FileServer

LAN/WANInterconnect

< Distributed database on interworked LANs >

Page 91: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

91

Client

Server #1:Folders

Server #2:Workers

Server #3:Peripherals

DATABASE: Folders Workers Peripherals

< One logical database distributed across various servers >

Page 92: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

92

Distributed transaction management

Requirements for atomic commitment each participant must arrive at the same

commit or abort decision each participant has veto power each participant must not reverse its decision

once a unanimous decision is reached

Two-phase commit protocol

Page 93: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

93

Coordinator

Site #1

Site #2

Site #3

prepare

OK

OK

OKPhase I

Coordinator

Site #1

Site #2

Site #3

Commit

CommitCommitPhase II

COMMIT in 2-phase commit protocol for distributed transactions

Page 94: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

94

Coordinator

Site #1

Site #2

Site #3

prepare

OK

Failed

OKPhase I

Coordinator

Site #1

Site #2

Site #3

Abort

AbortAbortPhase II

ABORT in 2-phase commit protocol for distributed transactions

Page 95: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

95

Case Study (Distributed OODB)

ONTOS object database database can be physically distributed to

many servers two-phase commit protocol

Open ODB from HP the server part: An object manager and

underlying RDB engine (ALLBASE/SQL) two-phase commit protocol

Page 96: 1 Chap. 8 Object-Oriented Databases 서울대학교 컴퓨터공학부 SNU Internet Data Base Lab 교수 김 형 주

96

Contents

Introduction Foundation and Evolution of OODBs Persistence in OODBs Transactions & Concurrency Control in OODBs Recovery in OODBs Versioning Client/Server Architecture and OODBs