Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 32 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
32
Dung lượng
546,45 KB
Nội dung
Môhìnhquanhệ
(Relational model)
1
EE4509, EE6133 – HK2 2011/2012
TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội
Giới thiệu
Môhìnhquanhệ sử dụng lý thuyết tập
hợp và logic bậc nhất để biểu diễn dữ
liệu
CSDL được biểu diễn bằng một tập
các bảng:
Mỗi bảng là tập hợp các các bộ giá trị
Mỗi cột đều có cùng một kiểu dữ liệu
Mỗi hàng trong bảng là bộ các giá trị có
quan hệ với nhau
So sánh với môhình ER:
Mỗi bảng tương ứng với một tập thực
thể
Mỗi cột tương ứng một thuộc tính
Mỗi hàng trong bảng tương ứng với
một thực thể
2
EE4509, EE6133 – HK2 2011/2012
TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội
Họ tên
Tuổi
Giới tính
Trần Khánh Linh
25
Nam
Bill Gates
50
Nam
Lý Liên Kiệt
45
Nam
Lưu Diệc Phi
25
Nữ
Nguyễn Văn Bố
37
Nam
Lê Thị Mẹ
30
Nữ
…
…
…
…
…
…
…
…
…
Các định nghĩa
Một môhìnhquanhệ là tập hợp các quanhệ (relation)
Mỗi quanhệ gồm 2 phần:
Thể hiện (instance): là bảng các bộ giá trị (tuples)
Lược đồ (schema): chứa tên của quan hệ, cùng với tên và kiểu
từng cột của bảng
VD: Book(id: integer, title: string, author: string, pub-year: integer)
Số dòng của bảng: lực lượng (cardinality) của quanhệ
Số cột của bảng: bậc (degree) của quanhệ
VD:
Lực lượng: 3
Bậc: 4
3
EE4509, EE6133 – HK2 2011/2012
TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội
id
title
author
pub-year
1
The call of the wild
Jack London
1903
3
The universe in a nutshell
Stephen Hawking
2001
4
Hồng lâu mộng
Tào Tuyết Cần
1791
Định nghĩa bằng toán học
Lược đồ quanhệ R là tích Đề-các các miền giá trị của
các thuộc tính
Đầy đủ: Book(id: int, title: string, author: string, pub-year: int)
Ngắn gọn: Book(id, title, author, pub-year)
Book = dom(int) × dom(string) × dom(string) × dom(int)
(trong đó dom(…) ký hiệu tập giá trị của một kiểu)
Quanhệ r trên R: ký hiệu bằng r(R) là một tập con của R
my-books = my-books(Book) ⊂ Book
Một phần tử của r gọi là một thể hiện, một hàng, hay một
bộ giá trị
Chú ý: người ta thường gọi tắt “quan hệ” thay cho “thể
hiện của quan hệ”
4
EE4509, EE6133 – HK2 2011/2012
TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội
Khoá (key)
Các khái niệm về khoá của quanhệ cũng tương tự như
với thực thể trong môhình ER
Siêu khoá (superkey): tập các thuộc tính mà bộ giá trị
không lặp lại
Nếu K là một siêu khoá thì K’ = K ∪ a cũng là một siêu khoá, với a
là một thuộc tính của quanhệ
Khoá ứng viên (candidate key): là siêu khoá không cố
thuộc tính dư thừa (không tồn tại siêu khoá là tập con)
Một quanhệ có thể có 0, 1 hoặc nhiều siêu khoá
Khoá chính (primary key): là một khoá ứng viên được
người thiết kế CSDL lựa chọn
Mỗi quanhệ chỉ có nhiều nhất một khoá chính
5
EE4509, EE6133 – HK2 2011/2012
TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội
Ví dụ
K1 = {A} không phải khoá vì các giá trị có
lặp lại
K2 = {A, B} là siêu khoá vì không có bộ giá
trị nào lặp lại
K3 = {A, B, C} là siêu khoá vì K2 là siêu
khoá và K2 ⊂ K3
K2 là khoá ứng viên vì không có tập con
nào của K2 là siêu khoá
K3 không phải khoá ứng viên vì K2 ⊂ K3 là
một siêu khoá
6
EE4509, EE6133 – HK2 2011/2012
TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội
A
B
C
1
aa
x
1
ab
x
2
aa
y
2
ab
y
2
bb
y
3
ab
x
3
bb
x
4
aa
y
5
bb
x
Khoá ngoài (foreign key)
Một quanhệ r1 có chứa khoá chính K của quanhệ
r2 thì K gọi là khoá ngoài của r1 tham chiếu tới r2
Với mỗi thể hiện của r1, tồn tại ít nhất một thể hiện
của r2 có giá trị của K giống ở r1
Ví dụ:
o sv ⊂ SinhVien(id-sinh-vien, ten, nam-sinh)
diem ⊂ Diem(id-sinh-vien, mon-hoc, diem)
o id-sinh-vien là khoá ngoài của quanhệ diem tham chiếu
tới quanhệ sv
o mỗi giá trị của id-sinh-vien tồn tại trong quanhệ diem
cũng tồn tại trong quanhệ sv
7
EE4509, EE6133 – HK2 2011/2012
TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội
Sơ đồ CSDL
Một môhìnhquanhệ cũng có thể được biểu diễn
dưới dạng sơ đồ
8
EE4509, EE6133 – HK2 2011/2012
TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội
Tác giả
id-tác-giả: int
tên: string
năm-sinh: int
Bài hát
id-bài-hát: int
tên: string
id-tác-giả: int
năm-sáng-tác: int
id-thể-loại: int
Thể loại
id-thể-loại: int
tên: string
Ca sĩ
id-ca-sĩ: int
tên: string
năm-sinh: int
Biểu diễn
id-biểu-diễn: int
id-ca-sĩ: int
id-bài-hát: int
Đĩa nhạc
id-đĩa-nhạc: int
tên: string
năm-phát-hành: int
Chứa
id-đĩa-nhạc: int
id-biểu-diễn: int
số-thứ-tự: int
thời-gian: time
Biến thực thể quanhệ
Customer(cid, name, address, phone)
9
EE4509, EE6133 – HK2 2011/2012
TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội
Customer
cid: int
name: string
address: string
phone: string
Thực thể yếu
Book(bid, name, author, publisher, pub_date)
Chapter(ch_num, bid, title)
10
EE4509, EE6133 – HK2 2011/2012
TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội
Book
bid: int
name: string
author: string
publisher: string
Chapter
ch_num: int
bid: int
title: string
pub_date: date
[...]... bài-hát.id-tác-giả(σtên=“Trịnh Công Sơn”(tác-giả) × bài-hát)) Kết quả các biểu thức quanhệ là các quanhệ không có tên, phép toán rename cho phép đặt tên cho kết quả một biểu thức Ký hiệu: có 2 dạng ρtên -quan- hệ( E) đặt tên cho quanhệ kết quả của biểu thức E ρtên -quan- hệ( tên các thuộc tính)(E) đặt tên cho quanhệ và các thuộc tính kết quả của biểu thức E VD: ρđồ-uống-rẻ(σgiá < 30(đồ-uống)) ρnv-cn(tên-nhân-viên,... vào một quanhệ được định nghĩa thông qua phép hợp: r←r∪E trong đó r là quanhệ được thay đổi, E là quanhệ được thêm vào 28 EE4509, EE6133 – HK2 2011/2012 TS Đào Trung Kiên – ĐH Bách khoa Hà Nội Delete (xoá) Xoá dữ liệu mới từ một quanhệ được định nghĩa thông qua phép trừ: r←r–E trong đó r là quan hệ được thay đổi, E là quan hệ được xoá bớt từ r 29 EE4509, EE6133 – HK2 2011/2012 TS Đào Trung Kiên... thể tạo một quan hệ như sau: view1 ← Πtên, tuổi(nhân-viên) và chỉ để người dùng thao tác với view1 Câu lệnh: create view v as E trong đó v là tên view được tạo ra, và E là biểu thức quan hệ Phân biệt tạo view và phép gán: với phép gán, sau khi gán xong, nếu ta cập nhật các quan hệ trong biểu thức thì quanhệ được gán không thay đổi (còn với view thì có) Chú ý: một view cũng là một quan hệ, nên có... tên -quan- hệ. tên-thuộc-tính EE4509, EE6133 – HK2 2011/2012 TS Đào Trung Kiên – ĐH Bách khoa Hà Nội Biểu thức quanhệ và phép rename (đổi tên) Các phép toán quanhệ có thể được lồng nhau tạo thành biểu thức VD: Πtên, giá(σcalo . nghĩa Một mô hình quan hệ là tập hợp các quan hệ (relation) Mỗi quan hệ gồm 2 phần: Thể hiện (instance): là bảng các bộ giá trị (tuples) Lược đồ (schema): chứa tên của quan hệ, cùng với. Mô hình quan hệ (Relational model) 1 EE4509, EE6133 – HK2 2011/2012 TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội Giới thiệu Mô hình quan hệ sử dụng lý thuyết tập. o id-sinh-vien là khoá ngoài của quan hệ diem tham chiếu tới quan hệ sv o mỗi giá trị của id-sinh-vien tồn tại trong quan hệ diem cũng tồn tại trong quan hệ sv 7 EE4509, EE6133 – HK2 2011/2012