Transactions, Relational Algebra, XML February 11 th, 2004.

38
Transactions, Relational Algebra, XML February 11 th , 2004

Transcript of Transactions, Relational Algebra, XML February 11 th, 2004.

Page 1: Transactions, Relational Algebra, XML February 11 th, 2004.

Transactions, Relational Algebra, XML

February 11th, 2004

Page 2: Transactions, Relational Algebra, XML February 11 th, 2004.

Transactions

• Transaction = group of statements that must be executed atomically

• Transaction properties: ACID– ATOMICITY = all or nothing– CONSISTENCY = leave database in consistent state– ISOLATION = as if it were the only transaction in the

system– DURABILITY = store on disk !

Page 3: Transactions, Relational Algebra, XML February 11 th, 2004.

Transactions in SQL

• In “ad-hoc” SQL:– Default: each statement = one transaction

• In “embedded” SQL:BEGIN TRANSACTION

[SQL statements]

COMMIT or ROLLBACK (=ABORT)

Page 4: Transactions, Relational Algebra, XML February 11 th, 2004.

Transactions: Serializability

Serializability = the technical term for isolation

• An execution is serial if it is completely before or completely after any other function’s execution

• An execution is serializable if it equivalent to one that is serial

• DBMS can offer serializability guarantees

Page 5: Transactions, Relational Algebra, XML February 11 th, 2004.

Serializability

• Enforced with locks, like in Operating Systems !• But this is not enough:

LOCK A[write A=1]UNLOCK A. . .. . .. . .. . .LOCK B[write B=2]UNLOCK B

LOCK A[write A=1]UNLOCK A. . .. . .. . .. . .LOCK B[write B=2]UNLOCK B

LOCK A[write A=3]UNLOCK ALOCK B[write B=4]UNLOCK B

LOCK A[write A=3]UNLOCK ALOCK B[write B=4]UNLOCK B

User 1 User 2

What is wrong ?

time

Page 6: Transactions, Relational Algebra, XML February 11 th, 2004.

Serializability

• Solution: two-phase locking– Lock everything at the beginning– Unlock everything at the end

• Read locks: many simultaneous read locks allowed

• Write locks: only one write lock allowed• Insert locks: one per table

Page 7: Transactions, Relational Algebra, XML February 11 th, 2004.

Isolation Levels in SQL

1. “Dirty reads”SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED

2. “Committed reads”SET TRANSACTION ISOLATION LEVEL READ COMMITTED

3. “Repeatable reads”SET TRANSACTION ISOLATION LEVEL REPEATABLE READ

4. Serializable transactions (default):SET TRANSACTION ISOLATION LEVEL SERIALIZABLE

Reading assignment: chapter 8.6

Page 8: Transactions, Relational Algebra, XML February 11 th, 2004.

Relational Algebra

• Formalism for creating new relations from existing ones

• Its place in the big picture:

Declartivequery

language

Declartivequery

languageAlgebraAlgebra ImplementationImplementation

SQL,relational calculus

Relational algebraRelational bag algebra

Page 9: Transactions, Relational Algebra, XML February 11 th, 2004.

Relational Algebra• Five operators:

– Union: – Difference: -– Selection:– Projection: – Cartesian Product:

• Derived or auxiliary operators:– Intersection, complement– Joins (natural,equi-join, theta join, semi-join)– Renaming:

Page 10: Transactions, Relational Algebra, XML February 11 th, 2004.

1. Union and 2. Difference

• R1 R2

• Example: – ActiveEmployees RetiredEmployees

• R1 – R2

• Example:– AllEmployees -- RetiredEmployees

Page 11: Transactions, Relational Algebra, XML February 11 th, 2004.

What about Intersection ?

• It is a derived operator

• R1 R2 = R1 – (R1 – R2)

• Also expressed as a join (will see later)

• Example– UnionizedEmployees RetiredEmployees

Page 12: Transactions, Relational Algebra, XML February 11 th, 2004.

3. Selection

• Returns all tuples which satisfy a condition

• Notation: c(R)

• Examples– Salary > 40000 (Employee)

– name = “Smithh” (Employee)

• The condition c can be =, <, , >, , <>

Page 13: Transactions, Relational Algebra, XML February 11 th, 2004.

Selection Example

EmployeeSSN Name DepartmentID Salary999999999 John 1 30,000777777777 Tony 1 32,000888888888 Alice 2 45,000

SSN Name DepartmentID Salary888888888 Alice 2 45,000

Find all employees with salary more than $40,000.Salary > 40000 (Employee)

Page 14: Transactions, Relational Algebra, XML February 11 th, 2004.

4. Projection

• Eliminates columns, then removes duplicates

• Notation: A1,…,An (R)

• Example: project social-security number and names:– SSN, Name (Employee)

– Output schema: Answer(SSN, Name)

Page 15: Transactions, Relational Algebra, XML February 11 th, 2004.

Projection Example

EmployeeSSN Name DepartmentID Salary999999999 John 1 30,000777777777 Tony 1 32,000888888888 Alice 2 45,000

SSN Name999999999 John777777777 Tony888888888 Alice

SSN, Name (Employee)

Page 16: Transactions, Relational Algebra, XML February 11 th, 2004.

5. Cartesian Product

• Each tuple in R1 with each tuple in R2

• Notation: R1 R2

• Example: – Employee Dependents

• Very rare in practice; mainly used to express joins

Page 17: Transactions, Relational Algebra, XML February 11 th, 2004.

Cartesian Product Example Employee Name SSN John 999999999 Tony 777777777 Dependents EmployeeSSN Dname 999999999 Emily 777777777 Joe Employee x Dependents Name SSN EmployeeSSN Dname John 999999999 999999999 Emily John 999999999 777777777 Joe Tony 777777777 999999999 Emily Tony 777777777 777777777 Joe

Page 18: Transactions, Relational Algebra, XML February 11 th, 2004.

Relational Algebra• Five operators:

– Union: – Difference: -– Selection:– Projection: – Cartesian Product:

• Derived or auxiliary operators:– Intersection, complement– Joins (natural,equi-join, theta join, semi-join)– Renaming:

Page 19: Transactions, Relational Algebra, XML February 11 th, 2004.

Renaming

• Changes the schema, not the instance

• Notation: B1,…,Bn (R)

• Example:– LastName, SocSocNo (Employee)

– Output schema: Answer(LastName, SocSocNo)

Page 20: Transactions, Relational Algebra, XML February 11 th, 2004.

Renaming Example

EmployeeName SSNJohn 999999999Tony 777777777

LastName SocSocNoJohn 999999999Tony 777777777

LastName, SocSocNo (Employee)

Page 21: Transactions, Relational Algebra, XML February 11 th, 2004.

Natural Join• Notation: R1 R2⋈

• Meaning: R1 R2 = ⋈ A(C(R1 R2))

• Where:– The selection C checks equality of all

common attributes– The projection eliminates the duplicate

common attributes

Page 22: Transactions, Relational Algebra, XML February 11 th, 2004.

Natural Join Example

EmployeeName SSNJohn 999999999Tony 777777777

DependentsSSN Dname999999999 Emily777777777 Joe

Name SSN DnameJohn 999999999 EmilyTony 777777777 Joe

Employee Dependents = Name, SSN, Dname( SSN=SSN2(Employee x SSN2, Dname(Dependents))

Page 23: Transactions, Relational Algebra, XML February 11 th, 2004.

Natural Join

• R= S=

• R ⋈ S=

A B

X Y

X Z

Y Z

Z V

B C

Z U

V W

Z V

A B C

X Z U

X Z V

Y Z U

Y Z V

Z V W

Page 24: Transactions, Relational Algebra, XML February 11 th, 2004.

Natural Join

• Given the schemas R(A, B, C, D), S(A, C, E), what is the schema of R ⋈ S ?

• Given R(A, B, C), S(D, E), what is R ⋈ S ?

• Given R(A, B), S(A, B), what is R ⋈ S ?

Page 25: Transactions, Relational Algebra, XML February 11 th, 2004.

Theta Join

• A join that involves a predicate

• R1 ⋈ R2 = (R1 R2)

• Here can be any condition

Page 26: Transactions, Relational Algebra, XML February 11 th, 2004.

Eq-join

• A theta join where is an equality

• R1 ⋈A=B R2 = A=B (R1 R2)

• Example:– Employee ⋈SSN=SSN Dependents

• Most useful join in practice

Page 27: Transactions, Relational Algebra, XML February 11 th, 2004.

Semijoin

• R ⋉ S = A1,…,An (R ⋈ S)

• Where A1, …, An are the attributes in R

• Example:– Employee ⋉ Dependents

Page 28: Transactions, Relational Algebra, XML February 11 th, 2004.

Semijoins in Distributed Databases

• Semijoins are used in distributed databases

SSN Name

. . . . . .

SSN Dname Age

. . . . . .

EmployeeDependents

network

Employee ⋈ssn=ssn (age>71 (Dependents))Employee ⋈ssn=ssn (age>71 (Dependents))

T = SSN age>71 (Dependents)R = Employee T⋉

Answer = R ⋈ Dependents

Page 29: Transactions, Relational Algebra, XML February 11 th, 2004.

Complex RA Expressions

Person Purchase Person Product

name=fred name=gizmo

pid ssn

seller-ssn=ssn

pid=pid

buyer-ssn=ssn

name

Page 30: Transactions, Relational Algebra, XML February 11 th, 2004.

Operations on Bags

A bag = a set with repeated elements

All operations need to be defined carefully on bags• {a,b,b,c}{a,b,b,b,e,f,f}={a,a,b,b,b,b,b,c,e,f,f}• {a,b,b,b,c,c} – {b,b,c,c,c,d} = {a,b}

• C(R): preserve the number of occurrences

• A(R): no duplicate elimination

• Cartesian product, join: no duplicate elimination

Important ! Relational Engines work on bags, not sets !

Reading assignment: 5.3 – 5.4

Page 31: Transactions, Relational Algebra, XML February 11 th, 2004.

Finally: RA has Limitations !

• Cannot compute “transitive closure”

• Find all direct and indirect relatives of Fred• Cannot express in RA !!! Need to write C program

Name1 Name2 Relationship

Fred Mary Father

Mary Joe Cousin

Mary Bill Spouse

Nancy Lou Sister

Page 32: Transactions, Relational Algebra, XML February 11 th, 2004.

XML

Page 33: Transactions, Relational Algebra, XML February 11 th, 2004.

XML

• eXtensible Markup Language

• XML 1.0 – a recommendation from W3C, 1998

• Roots: SGML (a very nasty language).

• After the roots: a format for sharing data

Page 34: Transactions, Relational Algebra, XML February 11 th, 2004.

Why XML is of Interest to Us

• XML is just syntax for data– Note: we have no syntax for relational data– But XML is not relational: semistructured

• This is exciting because:– Can translate any data to XML– Can ship XML over the Web (HTTP)– Can input XML into any application– Thus: data sharing and exchange on the Web

Page 35: Transactions, Relational Algebra, XML February 11 th, 2004.

XML Data Sharing and Exchange

application

relational data

Transform

Integrate

Warehouse

XML Data WEB (HTTP)

application

application

legacy data

object-relational

Specific data management tasks

Page 36: Transactions, Relational Algebra, XML February 11 th, 2004.

From HTML to XML

HTML describes the presentation

Page 37: Transactions, Relational Algebra, XML February 11 th, 2004.

HTML

<h1> Bibliography </h1>

<p> <i> Foundations of Databases </i>

Abiteboul, Hull, Vianu

<br> Addison Wesley, 1995

<p> <i> Data on the Web </i>

Abiteoul, Buneman, Suciu

<br> Morgan Kaufmann, 1999

<h1> Bibliography </h1>

<p> <i> Foundations of Databases </i>

Abiteboul, Hull, Vianu

<br> Addison Wesley, 1995

<p> <i> Data on the Web </i>

Abiteoul, Buneman, Suciu

<br> Morgan Kaufmann, 1999

Page 38: Transactions, Relational Algebra, XML February 11 th, 2004.

XML

<bibliography>

<book> <title> Foundations… </title>

<author> Abiteboul </author>

<author> Hull </author>

<author> Vianu </author>

<publisher> Addison Wesley </publisher>

<year> 1995 </year>

</book>

</bibliography>

<bibliography>

<book> <title> Foundations… </title>

<author> Abiteboul </author>

<author> Hull </author>

<author> Vianu </author>

<publisher> Addison Wesley </publisher>

<year> 1995 </year>

</book>

</bibliography>XML describes the content