1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài tập Cơ sở dữ liệu (Tài liệu tham khảo)

320 33 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 320
Dung lượng 1,79 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Cuốn Cơ sở dữ liệu này tóm tắt lại cho người học những kiến thức lý thuyết như mô hình thực thể - liên hệ, mô hình cơ sở dữ liệu quan hệ, ngôn ngữ cơ sở dữ liệu SQL, thiết kế cơ sở dữ liệu. Sau mỗi phần tóm tắt lý thuyết sẽ là phần bài tập kèm theo lời giải tóm tắt để giúp các bạn sinh viên có thể nắm bắt và rèn luyện kỹ năng làm bài tập được tốt hơn. Mời các bạn cùng tham khảo.

Trang 1

Mục lục

Chương 1 MÔ HÌNH THỰC THỂ - LIÊN HỆ

A TÓM TẮT LÝ THUYẾT 6

1.1 Các khái niệm và kiến thức cơ bản 6

1.1.1 Khái niệm cơ sở dữ liệu 6

1.1.2 Hệ cơ sở dữ liệu 6

1.1.3 Các mức trừu tƣợng trong cơ sở dữ liệu 6

1.1.4 Lƣợc đồ (Scheme) và Thể hiện (Instance) 6

1.2 Mô hình thực thể liên hệ (Entity- Relationship model) 7

1.2.1 Thực thể 7

1.2.2 Tập thực thể 7

1.2.3 Thuộc tính và khoá 7

1.2.4 Phân cấp ISA (là một) 7

1.2.5 Mối liên hệ 7

1.2.6 Thuộc tính khoá vay mƣợn 8

1.2.7 Sơ đồ thực thể liên hệ 8

1.2.8 Tính chất hàm của mối liên hệ 8

1.2.9 Biểu diễn tính chất hàm trong các sơ đồ thực thể - liên hệ 9

B BÀI TẬP 12

Chương 2 MÔ HÌNH CƠ SỞ DỮ LIỆU QUAN HỆ A TÓM TẮT LÝ THUYẾT 21

2.1 Các khái niệm cơ bản 21

2.1.1 Mô hình cơ sở dữ liệu (Relation model) 21

2.1.2 Các khái niệm quan hệ 21

2.2 Biến đổi sơ đồ thực thể - liên hệ sang mô hình quan hệ 21

2.2.1 Biến đổi các tập thực thể 22

2.2.2 Biến đổi mối liên hệ 22

2.3 Khoá của các quan hệ 22

2.4 Quan hệ có khoá chung 23

2.5 Một số phép toán đại số quan hệ 24

Trang 2

2.5.1 Phép hợp 24

2.5.2 Phép giao 24

2.5.3 Phép trừ 24

2.5.4 Phép tích Đề - Các 24

2.5.5 Phép chiếu (Projection ) 25

2.5.6 Phép chọn (Selection ) 25

2.5.7 Phép kết nối (Join) 25

2.6 Đại số quan hệ - một ngôn ngữ vấn tin 25

2.7 Tối ưu hoá các biểu thức đại số quan hệ 27

2.7.1 Các chiến lược tối ưu tổng quát 27

2.7.2 Biểu thức tương đương 27

2.7.3 Các phép biến đổi tương đương của đại số quan hệ 28

B BÀI TẬP 37

Chương 3 NGÔN NGỮ CƠ SỞ DỮ LIỆU SQL A TÓM TẮT LÝ THUYẾT 57

3.1 Tạo bảng 57

3.1.1 Mệnh đề tạo cấu trúc của bảng có dạng tổng quát như sau: 57

3.1.2 Vào dữ liệu cho bảng 57

3.2 Khối SELECT 58

3.2.1 Tìm kiếm theo câu hỏi đơn giản (tìm kiếm trên một bảng) 59

3.2.2 Tìm kiếm với câu hỏi phức tạp 65

3.3 Các mệnh đề cập nhật dữ liệu 70

3.3.1 Thêm bản ghi vào cuối bảng 70

3.3.2 Xóa bảng 70

3.4 Tạo view của người sử dụng 72

3.5 Các mệnh đề về an toàn dữ liệu 72

3.5.1 Trao quyền truy nhập 72

3.5.2 Huỷ bỏ quyền truy nhập 72

B BÀI TẬP 73

Trang 3

Chương 4 THIẾT KẾ CƠ SỞ DỮ LIỆU

A TÓM TẮT LÝ THUYẾT 99

4.1 Phụ thuộc hàm 99

4.1.1 Khái niệm phụ thuộc hàm 99

4.1.2 Hệ tiên đề cho phụ thuộc hàm 100

4.1.3 Bao đóng của tập thuộc tính 100

4.1.4 Khóa của lƣợc đồ quan hệ 102

4.1.5 Phủ của tập các phụ thuộc hàm 104

4.2 Phép tách các lƣợc đồ quan hệ 106

4.2.1 Khái niệm phép tách một lƣợc đồ quan hệ 106

4.2.2 Phép tách kết nối không mất thông tin 106

4.2.3 Phép tách bảo toàn phụ thuộc hàm 109

4.3 Chuẩn hoá lƣợc đồ quan hệ 110

4.3.1 Khái niệm lƣợc đồ đƣợc chuẩn hoá và chuẩn hoá lƣợc đồ quan hệ 110

4.3.2 Dạng chuẩn thứ nhất (First Normal Form, viết tắt là 1NF) 110

4.3.3 Dạng chuẩn thứ hai (Second Normal Form, viết tắt là 2NF) 111

4.3.4 Dạng chuẩn thứ ba (Third Normal Form, viết tắt là 3NF) 111

4.3.2 Dạng chuẩn Boye-Codd (BCNF) 114

B BÀI TẬP 117

4.1 Bài tập về phụ thuộc hàm 117

4.2 Bài tập về phép tách lƣợc đồ quan hệ 194

4.3 Bài tập về chuẩn hóa sơ đồ quan hệ 203

4.4 Bài tập tổng hợp 213

Trang 4

Chương 1

MÔ HÌNH THỰC THỂ - LIÊN HỆ

A TÓM TẮT LÝ THUYẾT

1.1 Các khái niệm và kiến thức cơ bản

1.1.1 Khái niệm cơ sở dữ liệu

Cơ sở dữ liệu là tập hợp các thông tin có quan hệ với nhau được lưu trữ trong

máy tính theo một quy định nhất định nhằm phục vụ cho một mục đích nào đó

1.1.2 Hệ cơ sở dữ liệu

Hệ cơ sở dữ liệu là một hệ thống gồm bốn thành phần:

- Cơ sở dữ liệu hợp nhất;

- Những người sử dụng;

- Hệ quản trị cơ sở dữ liệu;

- Các thiết bị nhớ ngoài được sử dụng để lưu trữ cơ sở dữ liệu

1.1.3 Các mức trừu tượng trong cơ sở dữ liệu

1) Mức cơ sở dữ liệu vật lý

Là tập hợp các tệp dữ liệu, các chỉ mục hoặc những cấu trúc lưu trữ khác như

heap, bảng băm (hash table), … dùng để truy xuất dữ liệu; nó mô tả dữ liệu được

lưu trữ một cách thực sự như thế nào trên các thiết bị nhớ ngoài

2) Mức cơ sở dữ liệu khái niệm

Là các mô tả những dữ liệu nào được lưu trữ trong cơ sở dữ liệu và các mối

quan hệ nào tồn tại giữa các dữ liệu này

3) Mức cơ sở dữ liệu khung nhìn

Là cách nhìn của người sử dụng đối với cơ sở dữ liệu, là một đối tượng

tưởng tượng được xây dựng từ cơ sở dữ liệu khái niệm nhưng thực sự không tồn tại

trong cơ sở dữ liệu đó

1.1.4 Lược đồ (Scheme) và Thể hiện (Instance)

1) Lược đồ (Schem ) là bộ khung hay cấu trúc của cơ sở dữ liệu

2) Thể hiện (Instance) là dữ liệu hiện có trong cơ sở dữ liệu

Trang 5

1.2 Mô hình thực thể liên hệ (Entity- Relationship model)

Là mô hình cho phép sử dụng các tên để mô tả dữ liệu - các tập thực thể thông

qua các thuộc tính và mối liên hệ giữa các tập thực thể Nó được dùng làm công cụ

thiết kế lược đồ cơ sở dữ liệu khái niệm

Các đặc tính của tập thực thể gọi là các thuộc tính Mỗi thuộc tính của tập thực

thể được đặt bởi một tên và lấy giá trị trên một miền dành cho thuộc tính đó

2) Khóa

Một hoặc một tập các thuộc tính dùng để xác định một cách duy nhất mỗi

thực thể trong một tập thực thể gọi là khóa đối với tập thực thể đó

1.2.4 Phân cấp ISA (là một)

A ISA B (A là một B) nếu tập thực thể A là một loại B đặc biệt hoặc tương

đương tập thực thể B là sự tổng quát hóa của tập thực thể A Mục đích chính của

việc khai báo mối liên hệ ISA giữa các tập thực thể A và B là A có thể kế thừa các

thuộc tính của B, nhưng A có thể có thêm những thuộc tính khác mà B không có

1.2.5 Mối liên hệ

Mối liên hệ (Relationship) R giữa các tập thực thể E1, E2, E3, , EK là một

danh sách có thứ tự R(E1, E2, E3, , EK) của các tập thực thể đó Nó là tập hợp các

bộ thực thể (e1, e2, e3, , ek) với ei  Ei và e1, e2, e3, , ek có quan hệ R với nhau

(Một tập thực thể đặc biệt có thể xuất hiện nhiều lần trong danh sách)

Trang 6

1.2.6 Thuộc tính khoá vay mượn

Là khoá của tập thực thể A được sử dụng làm các thuộc tính của tập thực thể

B; nhờ đó mà với mỗi thực thể a trong A ta xác định được các thực thể b trong B có

quan hệ với a

1.2.7 Sơ đồ thực thể liên hệ

Quy ước:

1) Các hình chữ nhật biểu diễn các tập thực thể, bên trong ghi tên tập thực thể

2) Các hình dạng tròn biểu diễn các thuộc tính, bên trong ghi tên thuộc tính

Chúng được nối với các tập thực thể bằng các cạnh (vô hướng) Các thuộc tính là

các thành phần của một khóa cho một tập thực thể được gạch dưới Trường hợp đặc

biệt nếu một tập thực thể chỉ có một thuộc tính thì có thể gọi tập thực thể đó bằng

tên thuộc tính của nó Khi đó tập thực thể sẽ được biểu diễn là một hình dạng tròn

chứ không phải là hình chữ nhật và nó được nối với các mối liên hệ mà tập đó hàm

chứa

3) Các hình thoi biểu diễn các mối liên hệ, bên trong ghi tên mối liên hệ

Chúng được nối với các các tập thành viên tham gia vào mối liên hệ đó bởi các cạnh

vô hướng hoặc có hướng (các cung)

1.2.8 Tính chất hàm của mối liên hệ

1) Mối liên hệ một – một

Một mối liên hệ R giữa các tập thực thể E1 và E2 được gọi là mối liên hệ một -

một (one to one ralationship) nếu trong mối liên hệ đó mỗi thực thể của tập thực thể

E1 chỉ tương ứng với nhiều nhất với một thực thể của tập thực thể E2 và mỗi thực thể

của tập thực thể E2 chỉ tương ứng nhiều nhất với một thực thể của tập thực thể E1

2) Mối liên hệ nhiều – một

Một mối liên hệ R giữa các tập thực thể E1 và E2 được gọi là mối liên hệ

nhiều – một (many - one relationship) nếu trong mối liên hệ đó mỗi thực thể của tập

thực thể E1 có thể tương ứng với nhiều nhất một thực thể trong tập thực thể E2 và

mỗi thực thể trong tập thực thể E2 có thể tương ứng với không hoặc một hoặc nhiều

thực thể trong tập thực thể E1

Trang 7

Khái niệm mối liên hệ nhiều – một tổng quát hóa trong trường hợp mối liên

hệ giữa ba tập thực thể trở lên như sau:

Mối liên hệ R giữa các tập thực thể E1, E2, , Ek, Ek+1 (k > 1) được gọi là mối

liên hệ nhiều – một giữa các tập thực thể E1, E2, ., Ek và tập thực thể Ek+1; nếu

trong mối liên hệ đó, mỗi bộ các thực thể (e1, e2, , ek) với ei  Ei và i = 1, , k của

các tập thực thể E1, E2, , Ek có thể tương ứng với nhiều nhất một thực thể của tập

thực thể Ek+1 và mỗi thực thể của tập thực thể Ek+1 có thể tương ứng với không hoặc

một hoặc nhiều các bộ thực thể (e1, e2, , ek) với ei  Ei và i = 1, , k của các tập

thực thể E1, E2, , Ek

3) Mối liên hệ nhiều – nhiều

Mối liên hệ R giữa các tập thực thể E1 và E2 được gọi là mối liên hệ nhiều – nhiều (many - many ralationship) nếu trong mối liên hệ đó mỗi thực thể

trong tập thực thể E1 có thể tương ứng với không hoặc một hoặc nhiều thực thể

trong tập thực thể E2 và mỗi thực thể trong tập thực thể E2 có thể tương ứng với

không hoặc một hoặc nhiều thực thể trong tập thực thể E1

Khái niệm mối liên hệ nhiều – nhiều tổng quát hóa trong trường hợp mối

liên hệ giữa ba tập thực thể trở lên như sau:

Mối liên hệ R giữa các tập thực thể E1, E2, , Ek, Ek+1 (k > 1) được gọi là mối

liên hệ nhiều – nhiều giữa các tập thực thể E1, E2, ., Ek và tập thực thể Ek+1;nếu

trong mối liên hệ đó, mỗi bộ các thực thể (e1, e2, , ek) với eiEi và i = 1, , k của

các tập thực thể E1, E2, , Ek có thể tương ứng với không hoặc một hoặc nhiều thực

thể của tập thực thể Ek+1 và mỗi thực thể của tập thực thể Ek+1 có thể tương ứng với

không hoặc một hoặc nhiều các bộ thực thể (e1, e2, , ek) với ei  Ei và i = 1, , k

của các tập thực thể E1, E2, , Ek

1.2.9 Biểu diễn tính chất hàm trong các sơ đồ thực thể - liên hệ

- Nếu mối liên hệ R giữa các tập thực thể A và B là nhiều – một thì đặt một

cung vô hướng từ mối liên hệ R đến tập thực thể A (bên nhiều) và một cung có

hướng từ mối liên hệ R đến tập thực thể B (bên một)

Trong trường hợp tổng quát có một mối liên hệ R giữa nhiều hơn một tập

thực thể và thuộc loại nhiều - một vào một tập thực thể A nào đó thì vẽ một cung có

Trang 8

hướng từ mối liên hệ R đến tập thực thể A và các cung vô hướng từ mối liên hệ R

đến các tập thực thể khác

- Nếu R là mối liên hệ một – một giữa các tập thực thể A và B thì vẽ một

cung có hướng từ mối liên hệ R đến tập thực thể A và một cung có hướng khác từ

mối liên hệ R đến tập thực thể B Ngoại lệ, nếu A ISA B thì chỉ vẽ một cung có

hướng từ mối liên hệ ISA đến tập thực thể B còn từ mối liên hệ ISA đến tập thực thể

A là một cung vô hướng

- Nếu mối liên hệ R là nhiều - nhiều giữa các tập thực thể thì ta vẽ các cung

vô hướng từ mối liên hệ R tất cả các tập thực thể tham gia vào mối liên hệ

Ví dụ:

Một cửa hàng mua bán vật tư xây dựng muốn quản lý công việc kinh doanh

của mình bằng máy tính và có ý định thiết kế một hệ thống cơ sở dữ liệu lưu trữ các

thông tin cần thiết cho hoạt động kinh doanh Nhân viên quản trị cơ sở dữ liệu hệ

thống là SVA - một sinh viên khoa CNTT trường ĐHSPKT Nam Định và làm việc

cho cửa hàng đã phân tích và triển khai một sơ đồ thực thể – liên hệ như sau:

Cơ sở dữ liệu nhằm phục vụ cho việc quản lý nhập hàng từ các nhà cung cấp

và bán hàng cho khách hàng

Để quản lý được việc nhập hàng từ các nhà cung cấp thì cơ sở dữ liệu nhằm

phục vụ cho việc trả lời các câu hỏi chính:

- “Cửa hàng nhập các mặt hàng nào của các nhà cung cấp hàng nào, theo các

lần cung cấp nào, vào ngày nào, với số lượng và đơn giá là bao nhiêu ?”

Vì vậy, SVA quyết định trong cơ sở dữ liệu có một tập thực thể NCC (các

nhà cung cấp) gồm các thuộc tính Mancc (Mã - số hiệu nhà cung cấp - khoá),

tenNcc (họ tên nhà cung cấp), DCNCC (địa chỉ nhà cung cấp)

Một vấn đề quan trọng liên quan đến các nhà cung cấp là các mặt hàng họ

cung cấp, do đó SVA đã đưa ra một tập thực thể MATH (các mặt hàng) gồm các

thuộc tính MaMh (Mã - số hiệu mặt hàng - khoá), TenMh (tên mặt hàng), DVT

(đơn vị tính)

Cửa hàng nhập các mặt hàng thông qua các hoá đơn nhập hàng từ các nhà

cung cấp Mỗi hoá đơn nhập hàng (HDNH) gồm: số hiệu hoá đơn nhập hàng

(ShHDN), ngày nhập hàng (NgayN), thông tin về nhà cung cấp hàng và một danh

Trang 9

sách các mặt hàng, số lƣợng, đơn giá của từng mặt hàng mà cửa hàng yêu cầu,

thành tiền, tổng số tiền Thành tiền, tổng số tiền là các thuộc tính tính toán nên ta có

thể bỏ đi Các thuộc tính của tập thực thể HDNH là ShHDN, NgayN Vì các nhà

cung cấp khác nhau vẫn có thể có cách ghi ShHDN giống nhau nên tập thực thể

HDNH phải vay mƣợn thuộc tính Mancc để kết hợp với ShHDN làm khóa Nội

dung thực sự của HDNH đƣợc biểu diễn qua mối liên hệ nhiều - một CTHDNH

(chi tiết hoá đơn nhập hàng) giữa các tập thực thể: HDNH, MATH ( các mặt hàng),

SLN (số lƣợng nhập) chỉ có một thuộc tính SLN – khoá, DGN (đơn giá nhập) chỉ có

một thuộc tính DGN – khoá đến NCC (các nhà cung cấp hàng)

Để quản lý đƣợc việc bán hàng cho các khách hàng thì cơ sở dữ liệu nhằm

phục vụ cho việc trả lời các câu hỏi chính:

- “Cửa hàng bán các mặt hàng nào cho các khách hàng nào, vào các lần bán

hàng nào, vào ngày nào với số lƣợng và đơn giá là bao nhiêu ?”

Nhƣ vậy, ta thấy ngay một tập thực thể quan trọng khác là KHH (các khách

hàng) với các thuộc tính MaKh (mã - số hiệu khách hàng - khóa), TenKh (tên khách

hàng), DcKh (địa chỉ khách hàng), GT (giới tính)

Các khách mua hàng thông qua các hoá đơn bán hàng của cửa hàng cho các

khách hàng Mỗi hoá đơn bán hàng (HDBH) gồm: số hiệu hoá đơn bán hàng

(ShHDB), ngày bán hàng (NgayB), thông tin về các khách hàng và một danh sách

các mặt hàng, số lƣợng, đơn giá của từng mặt hàng mà khách hàng yêu cầu, thành

tiền, tổng số tiền Thành tiền, tổng số tiền là các thuộc tính tính toán nên ta có thể

bỏ đi Các thuộc tính của tập HDBH là ShHDB - khoá, NgayB (vì trong một cửa

hàng thì chỉ quy định một cách ghi ShHDB Nội dung thực sự của HDBH đƣợc biểu

diễn qua mối liên hệ nhiều - một CTHDBH (chi tiết hoá đơn bán hàng) giữa các tập

thực thể: HDBH, MATH ( các mặt hàng), SLB (số lƣợng bán) chỉ có một thuộc tính

SLB – khoá, DGB (đơn giá bán) chỉ có một thuộc tính DGB – khoá đến KhHang

(các khách hàng)

Trang 10

Từ đó, ta có sơ đồ thực thể liên hệ nhƣ hình vẽ sau:

Hình 1.1 Sơ đồ thực thể - liên hệ của CSDL mua bán vật tư

B BÀI TẬP

1.1 Hãy sử dụng mô hình thực thể - liên hệ để mô tả dữ liệu cho hệ thống quản lý

điểm của một lớp, sau đó vẽ sơ đồ thực thể - liên hệ cho cơ sở dữ liệu đó

Giải tóm tắt:

Cơ sở dữ liệu nhằm phục vụ cho việc trả lời câu hỏi chính “sinh viên nào học

môn học nào và điểm của họ ra sao , môn học đó học ở kỳ nào?” Nên trong cơ sở

dữ liệu có các tập thực thể:

- SVgồm các thuộc tính: Masv (khóa), Hoten, Ns, Gt, Qq

- Monhoc gồm các thuộc tính: Mamh (khóa), tenmon, Sht

- Hocky chỉ có một thuộc tính: Hocky (khóa)

- Diem chỉ có một thuộc tính: Diem (khóa)

và các mối liên hê:

- Sv_Mh_Diem(SV, Monhoc, Diem) với ý nghĩa “sinh viên nào học môn học

nào và điểm của họ ở môn học đó ra sao” Đây là mối liên hệ nhiều - một, từ SV,

Trang 11

- Mh_Ky(Monhoc, hocky) với ý nghĩa “môn hoc nào đƣợc bố trí học ở học

kỳ nào” Đây là mối liên hệ nhiều - một từ Monhoc đến Hocky

Từ đó ta có sơ đồ thực thể liên hệ:

Hình 1.2 Sơ đồ thực thể liên hệ của CSDL quản lý điểm

1.2 Hãy sử dụng mô hình thực thể - liên hệ để mô tả dữ liệu cho hệ thống quản lý

tiền quỹ của một lớp, sau đó vẽ sơ đồ thực thể - liên hệ cho cơ sở dữ liệu đó

Giải tóm tắt:

Cơ sở dữ liệu nhằm phục vụ cho việc trả lời câu hỏi chính “ sinh viên nào

Chi hay đóng khoản tiền gì vào ngày nào với số tiền là bao nhiêu?” Nên trong cơ

sở dữ liệu có các tập thực thể:

- SVgồm các thuộc tính: Masv (khóa), Hoten

- KhoanTC - khoản thu chi chỉ có một thuộc tính: KhoanTc (khóa)

- ThuChi - thu hay chi chỉ có một thuộc tính: Thuchi (khóa)

- Ngay - ngày thu hay chi chỉ có một thuộc tính: ngay (khóa)

- Sotien - số tiền thu hay chi chỉ có một thuộc tính: Sotien (khóa)

Ở đây, Ta có thể chỉ ra mối liên hệ tổng quát Soquy(SV, KhoanTC, ThuChi,

Ngay, Sotien ) với ý nghĩa “sinh viên nào Chi hay đóng khoản tiền gì, vào

ngày nào với số tiền là bao nhiêu” Ta có sơ đồ thực thể liên hệ:

SHT

Trang 12

Hình 1.3 Sơ đồ thực thể liên hệ của CSDL quản lý quỹ

1.3 Hãy sử dụng mô hình thực thể - liên hệ để mô tả dữ liệu cho hệ thống quản lý

vi phạm luật giao thông của một tỉnh, sau đó vẽ sơ đồ thực thể - liên hệ cho cơ

sở dữ liệu

Giải tóm tắt:

Cơ sở dữ liệu nhằm phục vụ cho việc trả lời câu hỏi chính “ai điều khiển

phương tiện gì, phương tiện đó của ai, vi phạm lỗi gì, ở đâu, vào thời gian nào, bị

phạt bao nhiêu tiền, ai là người xử phạt ?” Nên trong cơ sở dữ liệu có các tập thực

- PT – phương tiện gồm các thuộc tính: Sbdk – số biển đăng ký (khóa), Loai

– loại phương tiện, Mac – mác của phương tiện, nuoc – nước sản xuất

- LoiVp – lỗi vi phạm chỉ có một thuộc tính: LoiVp(khóa)

- Diadiem – Địa điểm vi phạm chỉ có một thuộc tính: Diadiem(khóa)

- ThoiGian – ngày, giờ vi phạm chỉ có một thuộc tính: Thoigian(khóa)

- Sotien - số tiền bị phạt chỉ có một thuộc tính: Sotien(khóa)

+ NgXL – người xử lý gồm các thuộc tính: MaNXL – số hiệu người xử lý

(khóa), hoten, Capbac – cấp bậc, Chucvu – Chức vụ

Ở đây, Ta có thể chỉ ra một mối liên hệ Vipham(Nvp, PT, LoiVP, Thoigian,

Diadiem, Sotien, NgXL) với ý nghĩa “người nào sử dụng phương tiện nào, vi phạm

lỗi gì; ở đâu, vào thời gian nào, bị phạt bao nhiêu tiền và ai là người xử phạt” Mối

liên hệ này thuộc loại nhiều – nhiều giữa các tập thực thể Một mối liên hệ khác là

Trang 13

SoHuu(ChuPT, PT) với ý nghĩa “ai là chủ phương tiện vi phạm” Đây cũng là mối

liên hệ nhiều nhiều giữa ChuPt và PT

Ta có sơ đồ thực thể liên hệ

Hình 1.4 Sơ đồ thực thể liên hệ của CSDL quản lý vi phạm luật giao thông

1.4 Hãy sử dụng mô hình thực thể - liên hệ để mô tả dữ liệu cho hệ thống quản lý

điện của một tổ kinh doanh điện trong một năm, sau đó vẽ sơ đồ thực thể - liên

hệ cho cơ sở dữ liệu đó

Giải tóm tắt:

Mô hình thực thể liên hệ mô tả dữ liệu của hệ thống quản lý điện của một tổ kinh

doanh diện trong một năm

Cơ sở dữ liệu nhằm phục vụ cho việc trả lời câu hỏi chính “Chủ hộ nào có

hợp đồng thuê điện nào và hàng tháng có lượng điện tiêu thụ là bao nhiêu và phải

trả là bao nhiêu tiền mỗi tháng ?” Nên trong cơ sở dữ liệu có các tập thực thể:

- Chuho – Chủ hộ gồm các thuộc tính: MaCh (khóa), Hoten, Gt, Diachi

- Congto – công tơ gồm các thuộc tính: ShCT (khóa), nuocSX, Vitri ( nơi

treo công tơ, chisodau (chỉ số công tơ ban đầu)

- Hopdong - hợp đồng gồm các thuộc tính: Shd (số hợp đồng - khoá),

Ngayhd (ngày hợp đồng), ngkyhd (người ký hợp đồng)

- Thangsd – tháng sử dụng điện chỉ có một thuộc tính: Thang (khóa)

ThoiGian ChuPT

SoHuu

PT

Scmtvp

Diachivp Hotenvp

NgXL

Chucvu MaNXL

hoten Capbac Sotien

Trang 14

- Ngayghi - ngày ghi số chỉ có một thuộc tính: ngayghi (khóa)

- ChisoCT – chỉ số công tơ chỉ có một thuộc tính: ChisoCT (khóa)

Ở đây, Ta có thể chỉ ra các mối liên hệ :

- CH_HD(Chuho, hopdong) là mối liên hệ một - một giữa hai thực thể

Chuho, hopdong với ý nghĩa “chủ hộ nào có hợp đồng mua điện nào”

- HD_CT(hopdong, congto) là mối liên hệ một - một giữa hai thực thể

hopdong và cong to với ý nghĩa “hợp đồng mua điện nào được cấp công tơ nào”

- Sudungdien(Congto, Thangsd, ChisoCT) là mối liên hệ nhiều - một từ

congto, thangsd đến ChisoCT với ý nghĩa “công tơ nào, trong tháng nào có chỉ số

công tơ trong tháng là bao nhiêu ”

- GhiCT(Congto, Thangsd, Ngayghi) là mối liên hệ nhiều - một từ congto,

thangsd đến Ngayghi với ý nghĩa “công tơ nào, trong tháng nào có ngày ghi chỉ số

công tơ là ngày nào”

Và ta có sơ đồ thực thể liên hệ:

Hình 1.5 Sơ đồ thực thể liên hệ của CSDL quản lý điện

1.5 Hãy sử dụng mô hình thực thể - liên hệ để mô tả dữ liệu cho hệ thống quản lý

nước của một công ty nước trong một năm, sau đó vẽ sơ đồ thực thể - liên hệ

cho cơ sở dữ liệu đó

CH_HD

Thangsd Chisodau

Sudungdien

Trang 15

Hướng dẫn:

Hoàn toàn tương tự như bài 1.4

1.6 Hãy sử dụng mô hình thực thể - liên hệ để mô tả dữ liệu cho hệ thống quản lý

việc cho thuê truyện của một cửa hiệu cho thuê truyện, sau đó vẽ sơ đồ thực thể

- liên hệ cho cơ sở dữ liệu đó

Giải tóm tắt:

Cơ sở dữ liệu nhằm phục vụ cho việc trả lời câu hỏi chính “người nào mượn

quyển truyện nào, trong thời gian nào và phải trả số tiền là bao nhiêu?” Nên trong

cơ sở dữ liệu có các tập thực thể:

+ Docgia – đọc giả gồm các thuộc tính: Madg (khóa), Hoten, Gt, Diachi, sdt

- số điện thoại

+ Truyen – gồm các thuộc tính: MaTr (khóa), TenTr – tên truyện, TacGia –

tên tác giả, NXB –nhà xuất bản, Vitri – nơi để truyện

+ Thoigian - gồm các thuộc tính: NgayM – ngày mượn, NgayHT – ngày hẹn

trả, NgayTr – ngày trả Cả ba thuộc tính này mới làm thành khóa của thực thể thời

gian

DonGia – Giá tiền thuê mỗi cuốn truyện, một ngày chỉ có một thuộc tính

DonGia(khóa)

Ở đây, Ta có thể chỉ ra mối liên hệ Thuetruyen(Docgia, Truyen, Thoigian)

với ý nghĩa “người nào thuê cuốn truyện nào, vào thời gian nào” và một mối liên

hệ khác GiaThue(Truyen, DonGia) với ý nghĩa “cuốn truyện này có đơn giá thuê là

bao nhiêu” Trong trường hợp này, cùng một cuốn truyện giá thuê các lần khác nhau

phải là giống nhau.Mối liên hệ này thuộc loại nhiều – một từ Truyen đến Dongia

Ta có sơ đồ thực thể liên hệ

Trang 16

Hình 1.6 Sơ đồ thực thể liên hệ của CSDL quản lý thuê truyện

1.7 Hãy sử dụng mô hình thực thể - liên hệ để mô tả dữ liệu cho hệ thống quản lý

tín dụng của một quỹ tín dụng, sau đó vẽ sơ đồ thực thể - liên hệ cho cơ sở dữ

liệu

Hướng dẫn

Cơ sở dữ liệu nhằm phục vụ cho việc trả lời câu hỏi chính “Khách hàng nào có

khế ước vay nào”

1.8 Hãy sử dụng mô hình thực thể - liên hệ để mô tả dữ liệu cho hệ thống quản lý

lương của phòng tài vụ của một trường đại học, sau đó vẽ sơ đồ thực thể - liên

hệ cho cơ sở dữ liệu

Giải tóm tắt:

Cơ sở dữ liệu nhằm phục vụ cho việc trả lời câu hỏi chính “người nào ở đơn

vị nào, hàng tháng được lĩnh tiền lương là bao nhiêu” Nên trong cơ sở dữ liệu có

các tập thực thể:

+ Nhanvien – nhân viên gồm các thuộc tính: MaNv (khóa), Hoten, Gt,

Diachi

+ Donvi – đơn vị công tác gồm các thuộc tính: Madv (khóa), TenDv, Vitri

+ Chucvu – chức vụ gồm các thuộc tính: MaCv (khóa), Chvu, HsPc – hệ số

Vitri Thoigian

Trang 17

+ NgayLL – ngày, tháng, năm lên lương hoặc vượt khung lần cuối chỉ gồm

có một thuộc tính NgayLL (khóa)

+ XLthidua – xếp loại thi đua chỉ gồm có một thuộc tính XLthidua (khóa)

+ Tháng chỉ có một thuộc tính: thang(khóa)

Ta có thể chỉ ra các mối liên hệ

+ Lamviec(Nhanvien, Donvi) với ý nghĩa “người nào làm việc ở đơn vị nào”

là một mối liên hệ nhiều - một từ Nhanvien đến Donvi

+ Quanly(Nhanvien, Chucvu) với ý nghĩa “nhân viên nào giữ chức vụ quản

lý cao nhất là gì” là một mối liên hệ nhiều - một từ Nhanvien đến Chucvu

+ Luong(Nhanvien, HsL, NgayLL) với ý nghĩa “người nào hiện có hệ số

lương bằng bao nhiêu và ngày lên lương lần cuối là ngày nào” là một mối liên hệ

nhiều - một từ cặp HsL, Nhanvien đến NgayLL

+ Thidua(Nhanvien, thang, XLthidua) với ý nghĩa “người nào trong tháng

nào được xếp loại thi đua nào” là một mối liên hệ nhiều - một từ cặp Nhanvien,

thang

Donvi

Vitri HsL

Luong

NgayLL

Trang 18

1.9 Hãy sử dụng mô hình thực thể - liên hệ để mô tả dữ liệu cho hệ thống quản lý

mua bán xe máy của một cửa hàng kinh doanh xe máy, sau đó vẽ sơ đồ thực thể -

liên hệ cho cơ sở dữ liệu

Hướng dẫn:

Tương tự như ví dụ quản lý kinh doanh vật tư xây dựng của một cửa hàng

1.10 Hãy sử dụng mô hình thực thể - liên hệ để mô tả dữ liệu cho hệ thống quản lý

ký túc xá của một trường đại học, sau đó vẽ sơ đồ thực thể - liên hệ cho cơ sở dữ

liệu

Hướng dẫn:

Cơ sở dữ liệu nhằm phục vụ cho việc trả lời câu hỏi chính “ sinh viên nào ở

phòng nào, phòng có bao nhiêu chỗ ở, hiện tại đã sử dụng bao nhiêu chỗ, ai là

trưởng phòng, lượng điện, nước tiêu thụ hàng tháng là bao nhiêu, số tiền phải trả

hàng tháng của mỗi phòng?”

Trang 19

Chương 2

MÔ HÌNH CƠ SỞ DỮ LIỆU QUAN HỆ

A TÓM TẮT LÝ THUYẾT

2.1 Các khái niệm cơ bản

2.1.1 Mô hình cơ sở dữ liệu ( Relation model)

Là mô hình cho phép sử dụng các tên để mô tả dữ liệu - các bảng dữ liệu và

tập các phép toán của tập hợp và ánh xạ để thao tác với dữ liệu

2.1.2 Các khái niệm quan hệ

- Quan hệ (Relation) là một tập con của tích Đề - Các của một hoặc nhiều miền

- Quan hệ là tập các ánh xạ từ tên các thuộc tính đến các giá trị trong miền

của thuộc tính

Như vậy, có thể hình dung quan hệ là một bảng dữ liệu nó bao gồm các dòng

và các cột Trong đó: mỗi bảng, mỗi cột được đặt bởi một tên; mỗi cột lấy giá trị

trên một miền; mỗi dòng là một bộ các giá trị và mỗi giá trị thuộc về một cột

Nhưng quan hệ khác với bảng dữ liệu thông thường là trong quan hệ không cho

phép hai dòng trùng nhau

2.2 Biến đổi sơ đồ thực thể - liên hệ sang mô hình quan hệ

- Tập các lược đồ quan hệ dùng để biểu diễn thông tin gọi là lược đồ cơ sở dữ

liệu quan hệ (Relational Database sheme) và cùng với những giá trị hiện hành của

các quan hệ tương ứng tạo ra cơ sở dữ liệu quan hệ

- Khi thiết kế có thể tự do tạo ra các quan hệ với tập thuộc tính nào đó như một

lược đồ quan hệ Tuy nhiên có một khuôn mẫu điển hình bằng cách chuyển đổi các

sơ đồ thực thể - liên hệ sang các lược đồ cơ sở dữ liệu quan hệ Dữ liệu của sơ đồ

thực thể - liên hệ được biểu diễn bởi hai loại quan hệ: quan hệ biểu diễn cho tập

thực thể và quan hệ biểu diễn cho mối liên hệ

Trang 20

2.2.1 Biến đổi các tập thực thể

Một tập thực thể E có thể được biểu diễn bởi một quan hệ có cùng tên là E

mà lược đồ quan hệ của nó chứa tất cả các thuộc tính của tập thực thể đó Mỗi bộ

của quan hệ biểu diễn một thực thể trong thể hiện hiện hành của E

2.2.2 Biến đổi mối liên hệ

- Mối liên hệ R giữa các tập thực thể E1, E2, , Ek được biểu diễn bởi một quan

hệ có tên là R và có lược đồ quan hệ chứa các thuộc tính trong các khoá của mỗi tập

E1, E2, , Ek Có thể đặt lại tên cho các thuộc tính (nếu cần) để tránh trùng tên ngay

cả khi hai thực thể này chỉ là một Một bộ t trong quan hệ này biểu diễn cho một

danh sách các thực thể e1, e2, , ek trong đó ei là một thực thể của tập thực thể Ei

Nghĩa là ei là một thực thể duy nhất của tập thực thể Ei mà giá trị của thuộc tính

khoá của Ei có trong thành phần của bộ t ở những thuộc tính này Sự có mặt của bộ t

trong quan hệ chỉ ra rằng danh sách các thực thể (e1, e2, , ek) là phần tử hiện hành

của mối liên hệ R

2.3 Khoá của các quan hệ

- Cho quan hệ R(A1, A2, ,An);   K  { A1, A2, , An } K là khoá của R

khi và chỉ khi K thoả mãn các tính chất sau đây:

1) Với bất kỳ 2 bộ t1, t2  R đều tồn tại một thuộc tính AK sao cho

t1[A]  t2[A]

 t1[K]  t2[K]

2) Không có tập con thực sự nào của K có tính chất 1

Do vậy mỗi giá trị của khoá K là duy nhất

- Nếu K chỉ có tính chất 1 Thì K được gọi là khoá bao hàm – siêu khoá (Super key)

- Khoá phụ thuộc vào lược đồ quan hệ; không phụ thuộc vào thể hiện của

quan hệ

- Một quan hệ có thể có nhiều khoá

- Khoá được thực hiện bởi người thiết kế cơ sở dữ liệu sau khi đã xem xét và

cân nhắc kỹ lưỡng các dữ liệu và những ràng buộc mà dữ liệu phải tuân theo

Trang 21

- Khi một quan hệ có nhiều khoá, ta nên chọn một khoá xem như là một khoá

duy nhất, khoá đó gọi là khoá chính (Primary key) Tập các khoá có trong quan hệ

gọi là các khoá dự kiến (dự tuyển - Candidate key)

- Nếu các khoá được chọn cho các tập thực thể là khoá nhỏ nhất (nghĩa là

không có tập con nào của nó có thể làm khoá) thì ta có thể xác định khoá của quan

hệ theo các quy tắc sau:

+ Nếu một quan hệ xuất phát từ một tập thực thể thì khoá của tập thực thể sẽ

là khoá của quan hệ

+ Nếu một quan hệ xuất phát từ một mối liên hệ nhiều – nhiều thì khoá của

quan hệ thường là tập tất cả các thuộc tính của quan hệ

+ Nếu một quan hệ xuất phát từ mối liên hệ một - một giữa các tập thực thể

E và F thì cả khoá của E và khoá của F đều là khoá của quan hệ

+ Nếu một quan hệ xuất phát từ mối liên hệ loại nhiều - một giữa E1, E2, ,

Ek-1 đến Ek thì hợp các khoá của E1, E2, , Ek-1 sẽ là khoá của quan hệ

2.4 Quan hệ có khoá chung

Khi hai quan hệ có chung một khoá dự tuyển (dự kiến) ta có thể gộp hai lược

đồ quan hệ này thành một lược đồ quan hệ có các thuộc tính là khóa chung của hai

lược đồ quan hệ và các thuộc tính còn lại là các thuộc tính khác khóa chung ở cả hai

lược đồ

Ví dụ:

Chuyển sơ đồ thực thể liên hệ của cơ sở dữ liệu mua bán vật tư (hình 1.1) sang

lược đồ cơ sở dữ liệu quan hệ

- Các lược đồ quan hệ biểu diễn cho các tập thực thể:

- Các lược đồ quan hệ biểu diễn cho các mối liên hệ:

+ CTHDNH(SHHDN, MaNCC, MaMH, SLN, DGN, MaNCC)

Trang 22

+ CTHDNH(SHHDB, MaMH, SLB, DGB, MaKH)

Chuyến sơ đồ thực thể liên hệ của cơ sở dữ liệu mua bán vật tư (hình 1b) sang

lược đồ cơ sở dữ liệu quan hệ hoàn toàn tương tự

2.5 Một số phép toán đại số quan hệ

Hai quan hệ R và S gọi là khả hợp nếu chúng cùng ngôi và sau khi biến đổi

(bằng cách đặt lại tên các thuộc tính; đặt một thứ tự cố định cho các thuộc tính trước

khi thực hiện các phép toán) thì chúng có cùng lược đồ

2.5.1 Phép hợp

Hợp của hai quan hệ R và S khả hợp là một quan hệ, ký hiệu là RS bao

gồm tất cả các bộ t sao cho t thuộc R hoặc t thuộc S

Biểu diễn hình thức:

R  S = { t / t  R hoặc t S }

2.5.2 Phép giao

Giao của hai quan hệ R và S khả hợp là một quan hệ, ký hiệu là R  S bao

gồm tất cả các bộ t sao cho t thuộc R và t thuộc S

Biểu diễn hình thức:

R  S = t / tR và t S

2.5.3 Phép trừ

Hiệu của hai quan hệ R và S khả hợp là một quan hệ ký hiệu là R- S bao gồm

tất cả các bộ t sao cho t thuộc R nhưng t không thuộc S

Biểu diễn hình thức:

R - S = t / tR và t S

2.5.4 Phép tích Đề - Các

R là quan hệ n ngôi và S là quan hệ m ngôi Tích Đề - Các của hai quan hệ R

và S ký hiệu là RS là một quan hệ (n+m) ngôi gồm tất cả các bộ của R ghép với

các bộ của S

Biểu diễn hình thức có dạng

Trang 23

RS = {t / t có dạng ( a1, a2, , an, b1, b2, , bm ), trong đó ( a1, , an)  R và

(b1, , bm ) S}

2.5.5 Phép chiếu ( Projection )

Cho quan hệ R(A1, A2, , An), X  { A1, A2, , An } Phép chiếu quan hệ R

trên tập thuộc tính X là một quan hệ trên tập thuộc tính X, ký hiệu là

X (R) gồm các bộ t của R chỉ giữ lại các thành phần thuộc X

Biểu diễn hình thức là:

X (R) =  t[X]  t  R

2.5.6 Phép chọn ( Selection )

Cho quan hệ R(A1, A2, , An), F(t) là giá trị của biểu thức logic F đối với bộ

t Phép chọn quan hệ R với đối với điều kiện F là một quan hệ ký hiệu là F(R) bao

gồm tất cả các bộ của R thoả mãn điều kiện F

Biểu diễn hình thức là:

F(R) =  t R  F (t) = đúng 

2.5.7 Phép kết nối (Join)

Gọi  là một trong các phép so sánh { =, >, >=, <, <=, <>}

Phép kết nối  của quan hệ R đối với thuộc tính A và quan hệ S đối với thuộc

tính B là một quan hệ được ký hiệu là R S gồm những bộ t của tích Đề - các

R  S sao cho t[A]  t[B]

Biểu diễn hình thức là:

R S = { t t R  S và t[A]  t[B] } = A  B (RS)

Trường hợp đặc biệt:

- Nếu  là phép toán = thì ta có phép kết nối bằng;

- Nếu phép kết nối bằng trên hai thuộc tính cùng tên và kết quả kết nối ta bỏ

đi một thuộc tính cùng tên đó thì ta có phép kết nối tự nhiên và ký hiệu là * .

2.6 Đại số quan hệ - một ngôn ngữ vấn tin

Các phép toán đại số quan hệ có thể dùng để tìm kiếm thông tin trên các quan

hệ

A  B

A  B

Trang 24

Ví dụ:

Cho ba quan hệ:

S (SNO, SNAME, SEX, STATUS, CITY ): Các nhà cung cấp;

P ( PNO, PNAME, COLOR, WEIGHT) : Các mặt hàng;

SP ( SNO, PNO, QTY, SDATE , PRICE ): Các mặt hàng đã cung cấp

Trong đó: SNO - Số hiệu nhà cung cấp; SNAME -Tên nhà cung cấp; SEX - Giới

tính; STATUS - Tình trạng; CITY- Địa chỉ nhà cung cấp; PNO - Số hiệu mặt

hàng; PNAME - Tên mặt hàng; COLOR- Màu sắc; WEIGHT - Trọng lƣợng;

PRICE -Đơn giá mặt hàng; QTY- Số lƣợng; SDATE - Ngày nhập hàng

1- Tìm số hiệu của những nhà cung cấp đã cung cấp mặt hàng có số hiệu mặt

SNO(PNO=‟P1 (SP)) SNO(PNO=‟P2 (SP))

4 - Tìm số hiệu các nhà cung cấp không cung ứng mặt hàng nào

SNO(S)) - SNO(SP)

5 - Tìm số hiệu các nhà cung cấp không cung cấp mặt hàng có số hiệu là P1

SNO(S)) - SNO(PNO=‟P1(SP))

6 - Tìm số hiệu của những nhà cung cấp đã cung cấp ít nhất là một mặt hàng

màu đỏ

SNO(COLOR=  RED (P*SP))

7 - Tìm số hiệu của những nhà cung cấp đã cung cấp mặt hàng màu đỏ,

nhƣng không cung cấp mặt hàng màu xanh

SNO(COLOR=  RED (P*SP)) - SNO(COLOR=  BLUE (P*SP))

8 - Cho biết tên các nhà cung cấp đã cung cấp mặt hàng có số hiệu mặt hàng

là P1 nhƣng họ không có địa chỉ ở NAM DINH

Trang 25

SNANE(PNO= P1 (S* SP)) - SNANE (ADD= NAM DINHPNO= P1 (S* SP)

9 - Tìm số hiệu, tên của những nhà cung cấp đã cung cấp các mặt hàng màu đỏ

SNO, SNAME(COLOR= RED(P*SP*S))

10 - Tìm số hiệu, tên của những nhà cung cấp đã cung cấp các mặt hàng màu

đỏ và màu xanh

SNO, SNAME(COLOR= RED(P*SP*S)) SNO, SNAME(COLOR= Blue(P*SP*S))

11 - Đưa ra số hiệu nhà cung cấp, tên nhà cung cấp, số hiệu mặt hàng, tên

mặt hàng, màu mặt hàng, số lượng, đơn giá mà các nhà cung cấp đã cung cấp một

mặt hàng trong mỗi lần có màu đỏ hoặc xanh

SNO, SNAME, PNO, PNAME, COLOR, QTY, PRICE((COLOR= RED)  (COLOR= Blue)(P*SP*S))

2.7 Tối ưu hoá các biểu thức đại số quan hệ

2.7.1 Các chiến lược tối ưu tổng quát

1) Thực hiện phép chọn và phép chiếu sớm như có thể

2) Tổ hợp những phép chọn xác định với phép tích Đề - Các thành phép

3) Tổ hợp dãy các phép toán một ngôi (phép chọn và phép chiếu)

Một dãy các phép toán một ngôi (phép chọn hoặc phép chiếu) mà kết quả của

chúng chỉ phụ thuộc vào các bộ của một quan hệ độc lập thì có thể nhóm các phép

toán đó lại

4) Tìm các biểu thức con chung trong một biểu thức

Biểu thức con chung là biểu thức xuất hiện nhiều hơn một lần trong một

biểu thức đại số quan hệ

5) Xử lý các tệp trước khi thực hiện các phép toán

6) Ước lượng chi phí và lựa chọn thứ tự thực hiện các phép toán

2.7.2 Biểu thức tương đương

Hai biểu thức đại số quan hệ E1 và E2 được gọi là tương đương (equivalent),

viết tắt là E1  E2 nếu thay thế cùng một quan hệ cho tên các lược đồ tương ứng ở

hai biểu thức cho ra cùng một kết quả

Trang 26

2.7.3 Các phép biến đổi tương đương của đại số quan hệ

1) Các phép biến đổi tương đương

Trang 27

( )

11 - Phép kết nối kề với phép chiếu

- XR SX R  S; nếu Attr(FR)  X (Attr(FR) là các

thuộc tính trong R của phép kết nối và X  Attr(R)

- X1X2R SX1 R  X2(S);

nếu Attr(F)  X1  X2 và X1  Attr(R) và X2  Attr(S) (Attr(F) là các

thuộc tính trong R và S của phép kết nối)

14 - Phép kết nối đi sau phép hợp

Trang 28

2) Cây toán tử của biểu thức đại số quan hệ

Cây toán tử (operator tree) là dạng biểu diễn trực quan cho các biểu thức đại

số quan hệ; giúp dễ dàng theo dõi các phép biến đổi trên các biểu thức đó

Trong cây toán tử:

- Các nút lá biểu diễn cho các quan hệ;

- Mỗi nút trung gian (nút trong) biểu diễn cho một phép toán (một ngôi

hoặc hai ngôi);

- Nút gốc biểu diễn cho phép toán phải thực hiện cuối cùng

Một cây đi từ ngọn đến gốc xác định thứ tự bộ phận mà trong đó các phép toán

phải được thực hiện để cho ra kết quả truy vấn

Ví dụ: Cây toán tử biểu diễn cho truy vấn có biểu thức đại số quan hệ tương ứng là

PNAME(CITY=„Nam Định‟  QTY >25 (S*SP*P))

Hình 2.1 Cây toán tử biểu diễn biểu thức đái số quan hệ

3) Phương pháp tối ưu hóa các biểu thức đại số quan hệ

Để tối ưu hóa các biểu thức đại số quan hệ bằng cách áp dụng các phép biến

đổi tương đương; ta có các chiến thuật tối ưu hóa sau:

1- Sử dụng tính lũy đẳng của phép chọn và phép chiếu để tạo ra các phép

chọn và phép chiếu tương đương đối với mỗi quan hệ toán hạng

2- Sử dụng các phép biến đổi tương đương và đẩy các phép chọn và phép

chiếu xuống phía dưới cây nếu có thể được

Trang 29

Các chiến thuật trên được xuất phát từ việc khảo sát các phép toán hai ngôi và

đặc biệt là các phép kết nối và phép tích Đề- Các là các phép toán tốn kém thời gian

nhất trong các hệ cơ sở dữ liệu; do đó cần phải giảm kích thước của các toán hạng

(ở đây là các quan hệ) của các phép toán hai ngôi trước khi thực hiện chúng

Cần chú ý khi một phép chiếu di chuyển xuống dưới qua một phép kết nối thì

các thuộc tính trong điều kiện kết nối phải có trong các thuộc tính chiếu của phép

Trang 30

Hình 2.2 Quá trình biến đổi cây toán tử để tối ưu hóa biểu thức đại số quan

Trang 31

4) Cây toán tử và xác định biểu thức con chung

Một vấn đề quan trọng trong việc áp dụng các phép biến đổi tương đương

cho một biểu thức đại số quan hệ là tìm ra các biểu thức con chung của nó, nghĩa là

các biểu thức xuất hiện nhiều lần trong các truy vấn Rõ ràng là sẽ tiết kiệm thời

gian thực hiện của truy vấn nếu các biểu thức con chung chỉ được thực hiện một lần

Một phương pháp để nhận biết ra chúng là việc biến đổi cây toán tử bằng cách:

trước tiên gộp các nút lá giống nhau của cây (nghĩa là các quan hệ toán hạng giống

nhau); sau đó gộp các nút nhánh khác của cây tương ứng với cùng các phép toán và

có cùng các toán hạng

Ví dụ:

Với biểu thức đại số quan hệ

 SNAME( PRICE > 10  QTY > 25(S*SP) -  SNAME( PRICE <10  QTY > 25(S*SP)

Áp dụng các phép biến đổi tương đương và tìm biểu thức con chung

Trang 32

*

 SNAME PRICE < 10

PRICE < 10

Trang 33

_

 SNAME

PRICE > 10

 SNAME 

Trang 34

Hình 2.3 Quá trình biến đổi cây toán tử để tối ưu hóa biểu thức đại số quan hệvà tìm biểu thức con chung

Trang 35

Gộp (2) và (4) vì có chung khoá MaMh ta có lƣợc đồ quan hệ (2a):

- Monhoc(MaMh, tenmon , SHT, Hocky) (2a)

2) Từ sơ đồ hình1.2, ta có lƣợc đồ cơ sở dữ liệu quan hệ:

- SV(Masv, Hoten)

- Soquy(Masv, KhoanTC, ThuChi, Ngay, Sotien )

3) Từ sơ đồ hình 1.3, ta có lƣợc đồ cơ sở dữ liệu quan hệ:

- Nvp(Scmtvp, Hotenvp, Gt vp, tuoivp, Diachivp)

- ChuPT(Scmt, Hoten, Gt, tuoi, Diachi)

- PT (Sbdk, Loai, Mac, nuoc)

- NgXL(MaNXL, hoten, Capbac, Chucvu)

- SoHuu(Scmtvp, Scmt)

- ViPham(Scmt, Sbdk, LoiVp, Diadiem, ThoiGian, Sotien, MaNXL)

4) Từ sơ đồ hình 1.4, ta có lƣợc đồ cơ sở dữ liệu quan hệ:

- Chuho(MaCh, Hoten, Gt, Diachi) (1)

- Congto(ShCT, nuocSX, Vitri, Chisodau) (2)

- Hopdong(SHD, NgKyHD, NgayHd) (3)

- CH_HD(MaCH, SHD) có hai khoá MaCh và SHD (4)

- HD_CT(SHD, ShCT) có hai khoá SHD và ShCT (5)

- Sudungdien(ShCT, ThangSd, ChisoCT) (6)

- GhiCT(ShCT, ThangSd, NgayGhi) (7)

Gộp (1), (4), (3), (5) và (2) vì có chung khoá; ta có lƣợc đồ quan hệ (4a):

Trang 36

Hopdong(SHD, NgKyHD, NgayHd, MaCh, Hoten, Gt, Diachi, ShCT,

nuocSX, Vitri, Chisodau) – có 3 khoá Ta có thể chọn SHD là khoá chính

Gộp (6) và (7) ta có lược đồ quan hệ (6a):

Sudungdien(ShCT, ThangSd, ChisoCT, Ngayghi)

5) Hoàn toàn tương tự như 4)

6) Từ sơ đồ hình 1.6, ta có lược đồ cơ sở dữ liệu quan hệ:

- Docgia(Madg, Hoten, Gt, Diachi, sdt) (1)

- Truyen(MaTr, TenTr, TacGia, NXB, Vitri ) (2)

- Thoigian(NgayM, NgayHT, NgayTr) (3)

- Thuetruyen(Madg, MaTr, NgayM, NgayHT, NgayTr) (4)

- GiaThue(MaTr, DonGia) (5)

Gộp (2) và (5) ; ta có Lược đồ quan hệ (2a) :

Truyen(MaTr, TenTr, TacGia, NXB, Vitri, DonGia) (2)

7) Tương tự như ví dụ trong phần tóm tắt lý thuyết

8) Từ sơ đồ hình 1.8, ta có lược đồ cơ sở dữ liệu quan hệ:

- Nhanvien(MaNv, Hoten, Gt, Diachi) (1)

- Donvi(Madv, TenDv, Vitri) (2)

Trang 37

2.2 Thực hiện các phép toán và các biểu thức đại số quan hệ

1) Cho hai quan hệ R và S:

Ngày đăng: 22/11/2021, 14:27

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w