Modern Database Techniques with the Postrelational DBMS Caché Part 1: Object Oriented Databases.

33
Modern Database Techniques with the Postrelational DBMS Caché Part 1: Object Oriented Databases

Transcript of Modern Database Techniques with the Postrelational DBMS Caché Part 1: Object Oriented Databases.

Page 1: Modern Database Techniques with the Postrelational DBMS Caché Part 1: Object Oriented Databases.

Modern Database Techniques with the

Postrelational DBMS Caché

Part 1:

Object Oriented Databases

Page 2: Modern Database Techniques with the Postrelational DBMS Caché Part 1: Object Oriented Databases.

2

Object Oriented Databases (OODB)

1. Why OODB? A real world example

2. Concepts of Object Oriented Programming Revisited

3. Different Kinds of OODB

4. Object Oriented Concepts and Databases

5. Application Development

Page 3: Modern Database Techniques with the Postrelational DBMS Caché Part 1: Object Oriented Databases.

3

1. Why OODB? An Example

Lecture and exercises based upon an application:Foreign Cash Exchange (FCE) at Automated Teller Machines (ATMs).

A Bank has many Branches. Branches provide various currencies to ATMs. Users can exchange one currency for another at

ATMs. Costomers of the Bank can use their accounts. Exchanges may be prepared online.

Foreign Cash Exchange (FCE) at Automated Teller Machines (ATMs).

Page 4: Modern Database Techniques with the Postrelational DBMS Caché Part 1: Object Oriented Databases.

6

Sample Scenario: Use Case

User comes to ATM User requests exchange User provides information:

requested currency, supplied currency, supplied amount, name, …

ATM sends information to DB-Server.

DB-Server tests stock of requested curr. in ATM, and calculates amount of supplied currency.

The Server sends all order data back to ATM

User accepts data, hits OK button, and supplies money. If supplied money is ok, ATM gives requested amount.

DB-Server reflects all actions of the real ATM: decrease balance of requested currency and increase balance of supplied currency.

Page 5: Modern Database Techniques with the Postrelational DBMS Caché Part 1: Object Oriented Databases.

7

Sample Scenario

Object Types Description

Branches of the Bank

Name, Location, Opening Hours, Phone Number, Provided Currencies with actual Amounts

ATMs Location, Status, Brand, Type , Serial Number Provided Currencies with actual Amounts

Persons Name, Date of Birth, Email, List of Phone Numbers (Number, Type), List of Addresses (State, City, Street or PO Box, ZIP, Type)

Employees of bank

Like Persons, additionally

Task, Salary, SSN, Branch, Supervisor, …

Relation: Employees advise Customers

Addresses Country, State, City, Street or PO Box, Zip, Type

Page 6: Modern Database Techniques with the Postrelational DBMS Caché Part 1: Object Oriented Databases.

8

Sample Scenario (Cont.)

Object Types Description

Customers of the Bank

Customers can be Persons or Companies

CustomerNr, CostomerSince, CreditRating

Persons as Customers

Like Persons and Customers

Companies as Customers

Like Customers, additionally

Name, Set of Representatives (Persons)

Accounts Account Nr, Account Type, Currency, Actual Amount, Start Date, End Date, List of Interest Rates, List of Transactions

Page 7: Modern Database Techniques with the Postrelational DBMS Caché Part 1: Object Oriented Databases.

9

Sample Scenario (Cont.)

Object Types Description

Currency Orders Date and Time Stamp, Supplied Currency, Supplied Amount, Requested Currency, Requested Amount, Exchange Rate, Fee

Different Types of Curr. Orders

Payment as Cash, Credit Card, or Account

Account Payment Like Currency Order, additionally Account

Credit Card Payment

Like Currency Order, additionally

Card Nr, Card Organization, Expiration Date

Page 8: Modern Database Techniques with the Postrelational DBMS Caché Part 1: Object Oriented Databases.

10

Relational Implementation Person

Practice: Find possible relational implementations for Person A person may have many addresses, e.g. PO box, home

address, working address A person may have many phone numbers

Find possible relational implementations for Employee Employees are persons Most employees have supervisor, who is an employee

Use pure relational model without enhancements like object-relational techniques

Page 9: Modern Database Techniques with the Postrelational DBMS Caché Part 1: Object Oriented Databases.

11

Relational Implementation (2)

Difficulties with Name One column difficult search and ordering Columns for First Name, Last Name, Title, …

no connection between the names' parts Extra table for Names complicated structure

Difficulties with Phone Numbers (Addresses) One column with one string, numbers separated by a

separator (; or |) difficult search (LIKE) Extra rows for each number redundancy Extra table (1st normal form) complicated structure,

bad performance

Page 10: Modern Database Techniques with the Postrelational DBMS Caché Part 1: Object Oriented Databases.

12

Relational Model: Disadvantages

Addresses and Phone Numbers of one Person not in one table.

Information of one Person distributed. Keys, foreign keys and integrity constraints

necessary to maintain consistency. Natural keys are often long redundancy

artificial keys must be used Connection between structured attributes not

evident

Page 11: Modern Database Techniques with the Postrelational DBMS Caché Part 1: Object Oriented Databases.

13

Conclusion 1

Attributes, consisting of value sets orof many components,

can be simulated,

but not directly represented.

Physical data indipendance violated

!

Page 12: Modern Database Techniques with the Postrelational DBMS Caché Part 1: Object Oriented Databases.

14

Relational Implementation Employee

Problem: Employees are persons

Possible solutions Table Person with additional columns for attributes of

employee and Person Type Many NULL-values

Employees in table Employee, other persons in table Person Loss of information: employees are also personsTable Address has to reference two tables

Table Employee has only additional columns, relation to table Person by foreign key Join necessary to get all data of an employee

Page 13: Modern Database Techniques with the Postrelational DBMS Caché Part 1: Object Oriented Databases.

15

Relational Implementation Employee (cont.)

Problem: Supervisor of employees

Possible solution Relation from table Employee to table Employee by a

foreign key

Page 14: Modern Database Techniques with the Postrelational DBMS Caché Part 1: Object Oriented Databases.

16

Conclusion 2

Foreign keys have different meanings: Multi valued attributes of an object-type

e.g. Address.PNr Person.PNr Specialization of an object-type

e.g. Employee.PNr Person.PNr components of an object-type

e.g. Employee.Super-PNr Employee.PNr

The different meanings cannot be distinguished.

!

Page 15: Modern Database Techniques with the Postrelational DBMS Caché Part 1: Object Oriented Databases.

17

Relational Implementation Relationship Employee Customer

Practice: Find possible relational implementations for the relationship"Employee advises Customer"

A customer is assigned to employees who advise him e.g. when he wants to save money

Page 16: Modern Database Techniques with the Postrelational DBMS Caché Part 1: Object Oriented Databases.

18

Relational Implementation (3)

Many-to-many relationship To avoid redundancy and anomalies transform into

Boyce-Codd Normal Form Create connection-table "Advises" with foreign

keys to Employee and Customer Disadvantage:

Customer wants to see a list of employees who advise him

Employee wants to see a list of customers he advises Join operations necessary to construct these lists

Page 17: Modern Database Techniques with the Postrelational DBMS Caché Part 1: Object Oriented Databases.

19

Queries using SQL (1)

Practice: Define an SQL-query which gives all information of an Employee: Name, addresses, phone numbers, date of birth, Position, Salary, SSN, … Supervisor (with phone numbers), List of Customers

How clear is the result of the query What happens if the information contains NULL-

values?

Page 18: Modern Database Techniques with the Postrelational DBMS Caché Part 1: Object Oriented Databases.

20

Queries (1): Result

SELECT *FROM Employee E, Person PE, Employee SE,

Person PS, Customer C, Person PC, advise Adv, Address EA, Phone EP, Phone SP

WHERE E.PNr = PE.PNr AND E.PNr = EA.PNrAND E.PNr = EP.PNrAND E.Super_PNr = SE.PNrAND SE. PNr = PS.PNrAND PS.PNr = SP.PNrAND E.PNr = Adv.E_PNrAND C.PNr = Adv.C_PNrAND C.PNr = PC.PNr;

Page 19: Modern Database Techniques with the Postrelational DBMS Caché Part 1: Object Oriented Databases.

21

Queries (1): Disadvantages

Query must join all artificially scattered information. Virtual copies of the tables are needed

(e.g. Person PE, Person PS, Person PC). Complicated foreign key and join conditions

necessary. NULL-Values: e.g. an employee does not advise

any customer this employee not in result. Remedy: more complicated Outer-Joins Result is difficult to read due to redundant

information extra program or report necessary

Page 20: Modern Database Techniques with the Postrelational DBMS Caché Part 1: Object Oriented Databases.

22

Page 21: Modern Database Techniques with the Postrelational DBMS Caché Part 1: Object Oriented Databases.

25

Queries (2)

Find all persons (only PNr) with the same work-address as the person with PNr = 2

SELECT PNrFROM Address A1WHERE A1.Type = 'work' AND

(A1.ZIP, A1.City, A1.Street, A1.State) =(SELECT A2.ZIP,A2.City,A2.Street,A1.State

FROM Address A2 WHERE A2.PNr = 2 AND A2.Type = 'work' );

Disadvantage: SQL does not support structured attributes.

Page 22: Modern Database Techniques with the Postrelational DBMS Caché Part 1: Object Oriented Databases.

26

Queries (3)

Practice: Find an employee (only PNr) who advises Mr. Joseph Frick (PNr = 15) and Mrs. Susan Seller (PNr =20)

Wrong solution:SELECT EmpNr FROM advise WHERE CustNr = 15 AND CustNr = 20;

(One) correct Solution:(SELECT EmpNr FROM advise WHERE CustNr = 15 ) INTERSECT(SELECT EmpNr FROM advise WHERE CustNr = 20);

Page 23: Modern Database Techniques with the Postrelational DBMS Caché Part 1: Object Oriented Databases.

27

Queries (3): Disadvantages

Reason for wrong solution: You think about an employee as an object. This object has as property the set of customers the

employee advises.

Page 24: Modern Database Techniques with the Postrelational DBMS Caché Part 1: Object Oriented Databases.

28

Queries (4)

Find all persons with the same phone numbers as John Smith (PNr = 1)

Wrong solution:SELECT PNr, FirstName, LastNameFROM Person WHERE (SELECT PhoneNr From Phone WHERE Phone.PNr = 1) = (SELECT PhoneNr From Phone WHERE Phone.PNr = Person.PNr)

Not allowed in SQL

Page 25: Modern Database Techniques with the Postrelational DBMS Caché Part 1: Object Oriented Databases.

29

Queries (4): Disadvantages

In SQL there are good, bad and not further usable tables.

SELECT ... FROM ... WHERE defines a table, but a bad table

It may be used in a query's WHERE-part as a sub-query, but not in the FROM-part.

Comparison of two sets (relations, tables) in the WHERE-part like '=' or '' is not possible

A UNION-query is again a table, but this table can't be further used.

Page 26: Modern Database Techniques with the Postrelational DBMS Caché Part 1: Object Oriented Databases.

30

SQL is not a complete programming language

Tasks of SQL-DML: insert, update, delete and search for data

SQL cannot do complex computations Conditional statements Loop statements Function definition and recursion

To perform complex tasks like interest calculation on accounts embed SQL in programming languages

Page 27: Modern Database Techniques with the Postrelational DBMS Caché Part 1: Object Oriented Databases.

31

Disadvantages application development

Application programs even if part of the data model must be developed separately.

Parts of the data models semantic is separated, database is not aware of that.

Interest calculation

Accounts

RelationalDatabase

Accounts

Interest calculation

Object-orientedDatabase

Page 28: Modern Database Techniques with the Postrelational DBMS Caché Part 1: Object Oriented Databases.

32

Disadvantages application development (2)

Object relational mismatch: Data-types of databases and programming languages

don't fit Problems with NULL-values in databases: indicator

variables necessary. Set results of SQL-queries and single value variables of

programming languages don't fit. Using OODBs, application programming and

database access build a unit.

Page 29: Modern Database Techniques with the Postrelational DBMS Caché Part 1: Object Oriented Databases.

33

Data modification (Insert, Update, Delete)

Example: new person as customer (with 2 addresses and 2 phone numbers)

7 rows must be inserted into 5 tables. Integrity constraints must check foreign keys

decrease of performance In OODBs one new object with all its properties is

created.

Page 30: Modern Database Techniques with the Postrelational DBMS Caché Part 1: Object Oriented Databases.

34

Modification of key values

Keys can change e. g. license plate of a car when sold.

All corresponding foreign keys must be changed in the same transaction.

Many rows must be locked.

Page 31: Modern Database Techniques with the Postrelational DBMS Caché Part 1: Object Oriented Databases.

35

Problem: Mutual foreign keys

Example: Every employee has the branch number he works at as foreign key;Every branch has the PNr of its manager as foreign key.

Insert a new branch but manager does not yet exist in DB foreign key constraint violated

Insert a new manager but branch does not yet exist in DB foreign key constraint violated

Page 32: Modern Database Techniques with the Postrelational DBMS Caché Part 1: Object Oriented Databases.

36

Conclusion 3 (SQL)

SQL is a powerful language for searching data for manipulating many data with one statement

Disadvantages Concept of tables defined by SELECT not

consistent (disadvantage of SQL, not of relational concept)

Complex, complicated statements due to scattered information

Connection to other languages necessary Application and database development separated

!

Page 33: Modern Database Techniques with the Postrelational DBMS Caché Part 1: Object Oriented Databases.

37

Conclusion: Relational Databases

Advantages One simple model even for most complex

applications Simple mathematical theory: relational calculus If front-end is not necessary relational databases

can be built with little programming effort

Disadvantages Information is scattered Bad performance for complex queries Natural object view of world not well supported Difficult application development

!