3 - Basis Data Relational
3 - Basis Data Relational
atribut
(atau kolom)
tuple
(atau baris)
Database System Concepts - 6th Edition 2.2 ©Silberschatz, Korth and Sudarshan
Jenis Atribut
Database System Concepts - 6th Edition 2.3 ©Silberschatz, Korth and Sudarshan
Relation Schema and Instance
A1, A2, …, An merupakan atribut-atribut
Database System Concepts - 6th Edition 2.4 ©Silberschatz, Korth and Sudarshan
Relations are Unordered
Urutan tuple tidak relevan (tupel dapat disimpan dalam urutan arbitrer)
Contoh: relasi instructor dengan tupel yang tidak berurutan
Database System Concepts - 6th Edition 2.5 ©Silberschatz, Korth and Sudarshan
Keys
Misalkan K R
K adalah superkey dari R jika nilai-nilai untuk K dipenuhi untuk
mengidentifikasi sebuah tupel unik dari tiap kemungkinan relasi r(R)
Contoh: {ID} dan {ID,name} keduanya superkeys dari instructor.
Superkey K adalah suatu candidate key jika K adalah minimal
Contoh: {ID} is a candidate key untuk Instructor
Salah satu candidate keys dipilih untuk menjadi primary key.
which one?
Foreign key constraint: Nilai didalam suatu relasi harus muncul didalam
relasi lainnya.
Referencing relation
Referenced relation
Contoh – dept_name dalam instructor merupakan sebuah foreign key
dari instructor referencing department
Database System Concepts - 6th Edition 2.6 ©Silberschatz, Korth and Sudarshan
Schema Diagram Untuk Basis Data Universitas
Database System Concepts - 6th Edition 2.7 ©Silberschatz, Korth and Sudarshan
Relational Query Languages
Procedural vs .non-procedural, atau declarative
“Pure” languages (Bahasa Murni):
Relational algebra (Aljabar Relasional)
Tuple relational calculus
Domain relational calculus
The above 3 pure languages are equivalent in computing power
We will concentrate in this chapter on relational algebra
Not turning-machine equivalent
consists of 6 basic operations
Database System Concepts - 6th Edition 2.8 ©Silberschatz, Korth and Sudarshan
Select Operation – selection of rows (tuples)
Relation r
Database System Concepts - 6th Edition 2.9 ©Silberschatz, Korth and Sudarshan
Project Operation – selection of columns (Attributes)
Relation r:
A,C (r)
Database System Concepts - 6th Edition 2.10 ©Silberschatz, Korth and Sudarshan
Union of two relations
Relations r, s:
r s:
Database System Concepts - 6th Edition 2.11 ©Silberschatz, Korth and Sudarshan
Set difference of two relations
Relations r, s:
r – s:
Database System Concepts - 6th Edition 2.12 ©Silberschatz, Korth and Sudarshan
Set intersection of two relations
Relation r, s:
rs
Note: r s = r – (r – s)
Database System Concepts - 6th Edition 2.13 ©Silberschatz, Korth and Sudarshan
joining two relations -- Cartesian-product
Relations r, s:
r x s:
Database System Concepts - 6th Edition 2.14 ©Silberschatz, Korth and Sudarshan
Cartesian-product – naming issue
Relations r, s: B
r x s: r.B s.B
Database System Concepts - 6th Edition 2.15 ©Silberschatz, Korth and Sudarshan
Renaming a Table
Allows us to refer to a relation, (say E) by more than one name.
x (E)
Relations r
Database System Concepts - 6th Edition 2.16 ©Silberschatz, Korth and Sudarshan
Composition of Operations
Can build expressions using multiple operations
Example: A=C (r x s)
rxs
A=C (r x s)
Database System Concepts - 6th Edition 2.17 ©Silberschatz, Korth and Sudarshan
Joining two relations – Natural Join
Database System Concepts - 6th Edition 2.18 ©Silberschatz, Korth and Sudarshan
Natural Join Example
Relations r, s:
Natural Join
r s
Database System Concepts - 6th Edition 2.19 ©Silberschatz, Korth and Sudarshan
Notes about Relational Languages
Each Query input is a table (or set of tables)
Each query output is a table.
All data in the output table appears in one of the input tables
Relational Algebra is not Turning complete
Can we compute:
SUM
AVG
MAX
MIN
Database System Concepts - 6th Edition 2.20 ©Silberschatz, Korth and Sudarshan
Summary of Relational Algebra Operators
Symbol (Name) Example of Use
σ
(Selection) σ salary > = 85000 (instructor)
Return rows of the input relation that satisfy the predicate.
Π
(Projection) Π ID, salary (instructor)
Output specified attributes from all rows of the input relation. Remove
duplicate tuples from the output.
x
(Cartesian Product) instructor x department
Output pairs of rows from the two input relations that have the same value on
all attributes that have the same name.
∪
(Union) Π name (instructor) ∪ Π name (student)
Output the set difference of tuples from the two input relations.
⋈
(Natural Join) instructor ⋈ department
Output pairs of rows from the two input relations that have the same value on
all attributes that have the same name.
Database System Concepts - 6th Edition 2.21 ©Silberschatz, Korth and Sudarshan
Terima Kasih