29
Web Science & Technologies University of Koblenz ▪ Landau, Germany Relational Data Model

Web Science & Technologies University of Koblenz ▪ Landau, Germany Relational Data Model

Embed Size (px)

Citation preview

Page 1: Web Science & Technologies University of Koblenz ▪ Landau, Germany Relational Data Model

Web Science & Technologies

University of Koblenz ▪ Landau, Germany

Relational Data Model

Page 2: Web Science & Technologies University of Koblenz ▪ Landau, Germany Relational Data Model

Steffen [email protected]

Advanced Data Modeling2 of 48

WeST

Overview

Relational data model; Tuples and relations; Schemas and instances; Named vs. unnamed perspective; Relational algebra;

Page 3: Web Science & Technologies University of Koblenz ▪ Landau, Germany Relational Data Model

Steffen [email protected]

Advanced Data Modeling3 of 48

WeST

Table

Player Birth Year

Andy 1980

Wim 1975

Liam 1985

Mike 1988

Bert 1971

Page 4: Web Science & Technologies University of Koblenz ▪ Landau, Germany Relational Data Model

Steffen [email protected]

Advanced Data Modeling4 of 48

WeST

Observations

The rows of the table contain pairs occurring in the relation player.

There are two columns, labeled respectively by “name” and “birth year”.

The values in each column belong to different domains of possible values.

Page 5: Web Science & Technologies University of Koblenz ▪ Landau, Germany Relational Data Model

Steffen [email protected]

Advanced Data Modeling5 of 48

WeST

How to specify a relation

1. specifying the names of the columns (also called fields or attributes);

2. specifying a domain of possible values for each column;

3. enumerate all tuples in the relation.

(1)–(2) refer to the schema of this relation, while (3) to an instance.

Page 6: Web Science & Technologies University of Koblenz ▪ Landau, Germany Relational Data Model

Steffen [email protected]

Advanced Data Modeling6 of 48

WeST

Domains and attributes

A set of domains (sets of values);

A set of corresponding domain names d1, d2, …

A set of attributes a1, a2, …

D1;D2

Page 7: Web Science & Technologies University of Koblenz ▪ Landau, Germany Relational Data Model

Steffen [email protected]

Advanced Data Modeling7 of 48

WeST

Relation Schema and Instances

Tuple: any finite sequence (v1, … , vn).

n is the arity of this tuple.

Relation schema:

r(a1:d1, …, an:dn)

where n ¸ 0, r is a relation name, a1, …, an are distinct attributes, d1, …, dn are domain names.

Relation instance: finite set of tuples (v1, …, vn) of arity n such that vi 2 Di for all i.

Page 8: Web Science & Technologies University of Koblenz ▪ Landau, Germany Relational Data Model

Steffen [email protected]

Advanced Data Modeling8 of 48

WeST

Observation

1. The attributes in each column must be unique.

2. A relation is a set. Therefore, when we represent a relation by a table, the order of rows in the table does not matter.

Let us add to this:

3. The order of attributes does not matter.

Page 9: Web Science & Technologies University of Koblenz ▪ Landau, Germany Relational Data Model

Steffen [email protected]

Advanced Data Modeling9 of 48

WeST

New notation for tuples

A tuple is a set of pairs { (a1, v1), …, (an, vn) } denoted by { a1=v1, …, an=vn } ,

Let d1, …, dn be domain names and be the corresponding domains.

The tuple conforms to a relation schema r(a1:d1, …, an:dn) if vi 2 Di for all i.

D1; : : : ;Dn

Page 10: Web Science & Technologies University of Koblenz ▪ Landau, Germany Relational Data Model

Steffen [email protected]

Advanced Data Modeling10 of 48

WeST

Relational data are structured

Note that in the relational data model tuples stored in a table are structured:

all tuples conform to the same relation schema; the values in the same column belong to the same domain.

Untyped perspective: there is a single domain, so the second condition can be dropped.

Page 11: Web Science & Technologies University of Koblenz ▪ Landau, Germany Relational Data Model

Steffen [email protected]

Advanced Data Modeling11 of 48

WeST

Typed or untyped?

Consider the relation admire: admirer admired

wim andy

mike wim

liam andy

liam arsenal

Page 12: Web Science & Technologies University of Koblenz ▪ Landau, Germany Relational Data Model

Steffen [email protected]

Advanced Data Modeling12 of 48

WeST

Database schema and instance

Relational database schema: a collection of relation schemas with distinct relation names.

Relational database instance conforming to a relational database schema S: a mapping I from the relation names of S to relation

instances such that • for every relation schema r(a1:d1, … , an:dn) in S

the relation instance I(r) conforms to this relation schema.

Page 13: Web Science & Technologies University of Koblenz ▪ Landau, Germany Relational Data Model

Steffen [email protected]

Advanced Data Modeling13 of 48

WeST

Unnamed perspective

No attributes

a tuple is simply a sequence (v_1, … , v_n) of values.

The components of tuples can therefore be identified by their position in the tuple.

Page 14: Web Science & Technologies University of Koblenz ▪ Landau, Germany Relational Data Model

Steffen [email protected]

Advanced Data Modeling14 of 48

WeST

From Unnamed to Named Perspective

Introduce a collection of attributes #1,#2, …,

identify tuple (v1, … , vn) with the tuple { #1 = v1, … ,#n = vn }.

Likewise, identify relation schema r(d1, … , dn) with r(#1:d1, … ,#n:dn).

Page 15: Web Science & Technologies University of Koblenz ▪ Landau, Germany Relational Data Model

Steffen [email protected]

Advanced Data Modeling15 of 48

WeST

Relational Algebra and SQL

1. Can define new relations from existing ones;

2. Uses a collection of operations on relations to do so.

Page 16: Web Science & Technologies University of Koblenz ▪ Landau, Germany Relational Data Model

Steffen [email protected]

Advanced Data Modeling16 of 48

WeST

Constant

{ (v11, … , v1n),

…..

(vk1, … , vkn) }

Page 17: Web Science & Technologies University of Koblenz ▪ Landau, Germany Relational Data Model

Steffen [email protected]

Advanced Data Modeling17 of 48

WeST

Union

R1 [ R2 =

{(c1, … , ck) | (c1, … , ck) 2 R1 or

(c1, … , ck) 2 R2 }

Page 18: Web Science & Technologies University of Koblenz ▪ Landau, Germany Relational Data Model

Steffen [email protected]

Advanced Data Modeling18 of 48

WeST

Set difference

R_1 - R2 =

{(c1, … , ck) | (c1, … , ck) 2 R1 and

(c1, … , ck) 2 R2 }

Page 19: Web Science & Technologies University of Koblenz ▪ Landau, Germany Relational Data Model

Steffen [email protected]

Advanced Data Modeling19 of 48

WeST

Cartesian product

R1 £ R2 =

{(c1, … , ck, d1, … , dm) |

(c1, … , ck) 2 R1 and

(d1, … , dm) 2 R2 }.

Page 20: Web Science & Technologies University of Koblenz ▪ Landau, Germany Relational Data Model

Steffen [email protected]

Advanced Data Modeling20 of 48

WeST

Projection

Let now R be a relation of arity k and i1, … , im be numbers in {1, … , k}.

¼i1, … ,im

(R) = {(ci1, … , cim

) | (c1, … , ck) 2 R }.

We say that ¼i1, … ,im

(R) is obtained from R

by projection (on arguments i1, … , im).

Page 21: Web Science & Technologies University of Koblenz ▪ Landau, Germany Relational Data Model

Steffen [email protected]

Advanced Data Modeling21 of 48

WeST

Selection

Assume formulas on domains with “variables” #1, #2, ….

For example, #1 = #2.

¾F (R) = {(c1, …, ck) |

(c1, …, ck) 2 R and

F holds on (c1, …, ck)}.

Page 22: Web Science & Technologies University of Koblenz ▪ Landau, Germany Relational Data Model

Steffen [email protected]

Advanced Data Modeling22 of 48

WeST

Overview

Relational algebra, named perspective SQL Integrity constraints (Aggregates and grouping)

Page 23: Web Science & Technologies University of Koblenz ▪ Landau, Germany Relational Data Model

Steffen [email protected]

Advanced Data Modeling23 of 48

WeST

Constant

{ { a1 = v11, … , an = v1n },

… … …

{ a1 = vk1, … , an = vkn } }

Page 24: Web Science & Technologies University of Koblenz ▪ Landau, Germany Relational Data Model

Steffen [email protected]

Advanced Data Modeling24 of 48

WeST

Union

Let R1, R2 be relations with the same attributes.

R1 [ R2 = { t | t 2 R1 or t2 R2 }

Page 25: Web Science & Technologies University of Koblenz ▪ Landau, Germany Relational Data Model

Steffen [email protected]

Advanced Data Modeling25 of 48

WeST

Union, example

A B

® 1

® 2

¯ 1

A B

® 1

® 2

¯ 1

¯ 3

A B

® 2

¯ 3

R1 R2 R1 [ R2

Page 26: Web Science & Technologies University of Koblenz ▪ Landau, Germany Relational Data Model

Steffen [email protected]

Advanced Data Modeling26 of 48

WeST

Renaming

Let R be a relation whose set of attributes is a1,…,an, c1,…,cm

Let b1, … , bn be distinct attributes such that

{b1, … , bn} Å { c1, … , cm} = ;

Then

½a1!b1, … , an!bn(R) =

{{b1 = v1, … , bn=vn , c1=w1 , … , cm=wm} |

{a1 = v1, … , an=vn , c1=w1 , … , cm=wm} 2 R}

Page 27: Web Science & Technologies University of Koblenz ▪ Landau, Germany Relational Data Model

Steffen [email protected]

Advanced Data Modeling27 of 48

WeST

SQL

SQL is based on set and relational operations with certain modifications and enhancements

A typical SQL query has the form:select a1, … , an

from R1, … , Rm

where P

This query is equivalent to relational algebra expression:

¼a1,…,an (¾P (R1£ … £ Rm))

The result of an SQL query is a relation.

Exceptions?

Page 28: Web Science & Technologies University of Koblenz ▪ Landau, Germany Relational Data Model

Steffen [email protected]

Advanced Data Modeling28 of 48

WeST

Integrity constraints

Domain constraints. Key constraints. Foreign key constraints.

More general, defined constraints.

How to translate them?

Page 29: Web Science & Technologies University of Koblenz ▪ Landau, Germany Relational Data Model

Steffen [email protected]

Advanced Data Modeling29 of 48

WeST

Query language

Allow one to define: Relation and database schemas; Relations through our relations; Integrity constraints; Updates.