Download Chapter 1: Introduction

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Serializability wikipedia , lookup

Open Database Connectivity wikipedia , lookup

IMDb wikipedia , lookup

Registry of World Record Size Shells wikipedia , lookup

Encyclopedia of World Problems and Human Potential wikipedia , lookup

Oracle Database wikipedia , lookup

Extensible Storage Engine wikipedia , lookup

Entity–attribute–value model wikipedia , lookup

Ingres (database) wikipedia , lookup

Microsoft Jet Database Engine wikipedia , lookup

Functional Database Model wikipedia , lookup

Database wikipedia , lookup

Concurrency control wikipedia , lookup

Versant Object Database wikipedia , lookup

Clusterpoint wikipedia , lookup

ContactPoint wikipedia , lookup

Database model wikipedia , lookup

Relational algebra wikipedia , lookup

Relational model wikipedia , lookup

Transcript
Chapter 2: Introduction to Relational
Model
 Structure of Relational Databases
 Fundamental Relational-Algebra-Operations
Database System Concepts - 6th Edition
2.1
Example of the instructor Relation
attributes
(or columns)
tuples
(or rows)
Database System Concepts - 6th Edition
2.2
Attribute Types
 A relation is represented as a table. The term attribute (屬性) refers to a
column of a table.

屬性一般指稱物件的特性, 或欲處理的資料.
 The set of allowed values for each attribute is called the domain of the
attribute
 Attribute values are (normally) required to be atomic; that is, indivisible (分
割後沒有意義)

multivalued attribute values are not atomic (see page 1.17)
For example: author = {{Smith, Jones}, {Jones, Frick}}

composite attribute values are not atomic
For example: publisher = {(McGraw-Hill, New York), (Oxford, London)}
 The special value null is a member of every domain, which signifies that the
value is unknown or does not exist.

The null value causes complications in the definition of many operations,
and will be discussed later.
Database System Concepts - 6th Edition
2.3
Relation Schema and Instance
 A1, A2, …, An are attributes
 R = (A1, A2, …, An ) is a relation schema
Example:
instructor = (ID, name, dept_name, salary)
 Formally, given sets D1, D2, …. Dn, a relation r is a subset of
D1 x D2 x … x Dn
Thus, a relation is a set of n-tuples (a1, a2, …, an) where each ai  Di
 Example:
D1 = {a, b, c}, D2 = {1, 2}, D1XD2 = {(a, 1), (a, 2), (b, 1), (b, 2), (c, 1), (c, 2)}
 The current values (relation instance) of a relation are specified by a
table
 An element t of r is a tuple, represented by a row in a table.
Database System Concepts - 6th Edition
2.4
Relations are Unordered
 Order of tuples is irrelevant (tuples may be stored in an arbitrary order)
資料的排序方式屬physical level, 非logical level
寫query時不知資料如何排序;
 Example: instructor relation with unordered tuples
Database System Concepts - 6th Edition
2.5
Database
 A database consists of multiple relations
 Information about an enterprise is broken up into parts, where each
relation storing one part of the information
 The university database example:

instructor (ID, name, dept_name, salary)

department (dept_name, building, budget)

student (ID, name, dept_name, tot_cred)

course (course_id, title, dept_name, credits)

prereq (course_id, prereq_id)
 Bad design: (c.f. page 1.15)
univ (instructor_ID, name, dept_name, salary, student_Id, ..)
Normalization theory (Chapter 8) deals with how to design “good”
relational schemas.
Database System Concepts - 6th Edition
2.6
Keys
 Let K  R
 K is a superkey of R if values for K are sufficient to identify a unique
tuple of each possible relation r(R)

Example: {ID}, {name}, and {ID,dept_name} are all superkeys of
instructor. (see page 2.5)
 Superkey K is a candidate key if K is minimal
Example: {ID} , {name} are both candidate keys for Instructor
 One of the candidate keys is selected to be the primary key.

which one? 通常依一般使用習慣,找最有代表性的.

Another example: {系別, 年級,班級,座號}, {學號}, {身分證字號)都是同
學的candidate key, 選 {學號}做為primary key.
 注意:
SK

Key通常做為物件的代表性屬性

屬性值的唯一性會隨表格表示的資料不同而改變.,
如下一頁的dept_name
Database System Concepts - 6th Edition
2.7
CK
PK
Foreign Keys
•Foreign key constraint: Value in one relation must appear in another
•Referencing relation: e.g., instructor
•Referenced relation: e.g., department
Will discuss this again in Chapter 3 and Chapter 4.
 department
 instructor
Database System Concepts - 6th Edition
2.8
Schema Diagram for University Database
Database System Concepts - 6th Edition
2.9
Relational Query Languages
 Language in which user requests information from the database.
 Categories of languages

Procedural

non-procedural, or declarative
 “Pure” languages:

Relational algebra: procedural

Tuple (Domain) relational calculus: declarative
 “Algebra” is based on operators.

Example of arithmetic algebra: 1 + 5*3
 How to write a query

Determine which relations to use

Determine which operators to use
Database System Concepts - 6th Edition
2.10
Relational Algebra
 Relational operators

select: 

project: 

Natural join:

Cartesian product: x

union: 

Intersection: 

set difference: –
 The operators take one or two relations as inputs and produce a new
relation as a result.
Database System Concepts - 6th Edition
2.11
Selection of tuples
 Relation r
 Selection
σ 限制式(r)
 Select tuples with
A=B and D > 5

σ A=B ^ D > 5 (r)
Database System Concepts - 6th Edition
2.12
Selection of Columns (Attributes)
 Relation r:
 Projection
 屬性名稱 (r)
 Select columns A and C
  A, C
(r)
-> duplicates are removed
Database System Concepts - 6th Edition
2.13
More Examples
 Return those instructors whose salaries are more than 85000.
(see page 2.5, page2.6)
σ salary>=85000 (instructor)
 Output the attributes ID and Salary of instructors.
Π ID, salary (instructor)
 Find the ID and salary for those instructors
who have salary greater than $85000.
Π ID, salary (σ salary>=85000 (instructor))
<- composition
Database System Concepts - 6th Edition
2.14
Joining two relations – Cartesian Product
 Relations r, s:
 r x s:
 Example: instructor X department => 12*7 = 84 tuples
(see page 2.8)
Database System Concepts - 6th Edition
<-會希望同一列的dept_name要一樣!
2.15
Joining two relations – Natural Join
 Let r and s be relations on schemas R and S respectively.
Then, the “natural join” of relations r and s is a relation on
schema R  S obtained as follows:

Consider each pair of tuples tr from r and ts from s.

If tr and ts have the same value on each of the attributes
in R  S, add a tuple t to the result, where

t has the same value as tr on r

t has the same value as ts on s
 Example:
R = (A, B, C, D)
S = (E, B, D)

Result schema = (A, B, C, D, E)

r
s is defined as:
r.A, r.B, r.C, r.D, s.E (r.B = s.B  r.D = s.D (r x s))
Database System Concepts - 6th Edition
2.16
Natural Join Example
 Relations r, s:
 Natural Join

r
s
Database System Concepts - 6th Edition
2.17
Example
 Instructor
department (c.f., page 2.8)
 Example: Output the attributes ID and building of instructors.

 ID, building (Instructor
Database System Concepts - 6th Edition
department)
2.18
Union of two relations
 Relations r, s:
 r  s:
 Find the names of instructors and students.

name (instructor)
Database System Concepts - 6th Edition
  name (student)
2.19
Set difference of two relations
 Relations r, s:
 r – s:
 Find the departments which do not hire instructors.

dept _ name (department)
Database System Concepts - 6th Edition
–  dept _ name (instructor)
2.20
Set Intersection of two relations
 Relation r, s:
 rs
 Find the instructors who are also students.

name (instructor)
Database System Concepts - 6th Edition
  name (student)
2.21