1. Trang chủ
  2. » Cao đẳng - Đại học

Hướng dẫn tự học môn cơ sở dữ liệu đại học kinh tế quốc dân

66 1,1K 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 66
Dung lượng 1,14 MB

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

Nội dung

© Khoa Tin học Kinh tếKẾ HOẠCH GIẢNG DẠY HỌC PHẦN STT Nội dung Tổng số tiết Trong đó Ghi chú Lý thuyết Bài tập, thảo luận, kiểm tra 1 Chương 1: Cơ sở dữ liệu và các mô hình cơ

Trang 1

© Khoa Tin học Kinh tế

CƠ SỞ DỮ LIỆU

© Khoa Tin học Kinh tế

Trường Đại học Kinh tế Quốc dân

National Economics University

1 Họ tên giảng viên:

2 Địa chỉ: Văn phòng Khoa Tin học kinh tế - Phòng 4.3 nhà

Trang 2

© Khoa Tin học Kinh tế

KẾ HOẠCH GIẢNG DẠY HỌC PHẦN

STT Nội dung Tổng số

tiết

Trong đó

Ghi chú

Lý thuyết Bài tập, thảo

luận, kiểm tra

1 Chương 1: Cơ sở dữ liệu và các mô

hình cơ sở dữ liệu

Phòng máy tính có kết nối Internet và cài đặt

bộ phần mềm SQL và Microsoft Office

2 Chương 2: Một số ngôn ngữ khai thác

Trường Đại học Kinh tế Quốc dân

National Economics University

1 Thời điểm kiểm tra học phần: Tuần 10 hoặc 11

2 Phương pháp đánh giá học phần:

- Điểm lên lớp, thảo luận, thuyết trình: 10%

- Điểm kiểm tra: 20%

- Điểm thi kết thúc học phần: 70%

3 Yêu cầu của giảng viên:

Trang 3

© Khoa Tin học Kinh tế

• CHƯƠNG 1: CƠ SỞ DỮ LIỆU VÀ MỘT SỐ MÔ HÌNH CƠ

• CHƯƠNG 5 TỐI ƯU HOÁ TRUY VẤN (CÂU HỎI)

• CHƯƠNG 6: AN TOÀN VÀ TOÀN VẸN DỮ LIỆU

© Khoa Tin học Kinh tế

TÀI LIỆU THAM KHẢO

+ Jeffrey Ullman, Nguyên lý các hệ cơ sở dữ liệu và cơ sở

tri thức (3 tập) – NXB Thống kê

+ Nguyễn Kim Anh Nguyên lý của các hệ cơ sở dữ liệu

Nhà xuất bản Đại học Quốc gia Hà nội, 2004

+ Nguyễn An Tuế Giáo trình Nhập môn Cơ sở dữ liệu quan

hệ Khoa CNTT, ĐHKHTN, Đại học Quốc gia TP HCM, 1996

+ Nguyễn Bá Tường Cơ sở dữ liệu: Lý thuyết và thực hành

Nhà xuất bản khoa học và kỹ thuật, 2001

+ Lê Tiến Vương Nhập môn Cơ sở dữ liệu quan hệ Nhà

xuất bản khoa học và kỹ thuật, 2000

Trang 4

© Khoa Tin học Kinh tế

Chương này giới thiệu các khái niệm chung

của một hệ cơ sở dữ liệu như: Cơ sở dữ liệu

là gì, phân loại CSDL, các đối tượng sử dụng

CSDL, hệ quản trị CSDL, các mức biểu diễn

CSDL, kiến trúc tổng quan của một hệ quản

trị CSDL, tính độc lập giữa CSDL và chương

trình Các mô hình cơ sở dữ liệu

1.1 Tổng quan về cơ sở dữ liệu

- Dư thừa dữ liệu và tính không nhất quán

(Data redundancy and inconsistency)

- Khó khăn trong việc truy xuất dữ liệu

- Sự cô lập dữ liệu (Data isolation)

- Các vấn đề về tính toàn vẹn

- Tính bất thường trong truy xuất cạnh tranh

- Vấn đề an toàn (Security problems)

CHƯƠNG 1 Cơ sở dữ liệu và một số mô hình

cơ sở dữ liệu

Trang 5

© Khoa Tin học Kinh tế

1.1 Tổng quan về cơ sở dữ liệu

1.1.2 Lịch sử phát triển của cơ sở dữ liệu

• 60 Mô hình mạng và cây phân cấp Đối tượng

Không Riêng biệt

• 70 Mô hình quan hệ Giá trị Có Riêng biệt

• 80 Mô hình cơ sở hướng đối tượng Đối tượng

Không Tích hợp

• 90 Mô hình cơ sở tri thức Giá trị Có Tích hợp

• Nay Mô hình cơ sở dữ liệu Web Giá trị Có Tích hợp

© Khoa Tin học Kinh tế

CHƯƠNG 1 Cơ sở dữ liệu và một số mô hình

cơ sở dữ liệu

1.1 Tổng quan về cơ sở dữ liệu

1.1.3 Các khái niệm cơ bản về cơ sở dữ liệu

Trang 6

© Khoa Tin học Kinh tế

1.1 Tổng quan về cơ sở dữ liệu

1.1.3 Các khái niệm cơ bản về cơ sở dữ liệu

+ Cơ sở dữ liệu

• Ưu điểm của CSDL

• Vấn đề cần giải quyết

• Các đối tượng sử dụng cơ sở dữ liệu

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

• Các thành phần của hệ QTCSDL

• + Hệ cơ sở dữ liệu

CHƯƠNG 1 Cơ sở dữ liệu và một số mô hình

cơ sở dữ liệu

1.1 Tổng quan về cơ sở dữ liệu

1.1.4 Phân loại các hệ cơ sở dữ liệu

Trang 7

© Khoa Tin học Kinh tế

1.2 Các mức biểu diễn của một cơ sở dữ liệu

1.2.1 Lược đồ và các thể hiện

© Khoa Tin học Kinh tế

CHƯƠNG 1 Cơ sở dữ liệu và một số mô hình

cơ sở dữ liệu

1.2 Các mức biểu diễn của một cơ sở dữ liệu

+Vấn đề cần giải quyết

• Dữ liệu gì, được lưu trữ thế nào?

• Ở đâu? (đĩa từ, băng từ, track, sector,… nào?)

•Cần các chỉ mục gì?

Trang 8

© Khoa Tin học Kinh tế

1.2 Các mức biểu diễn của một cơ sở dữ liệu

+ CSDL cần lưu giữ bao nhiêu loại dữ liệu?

+ Đó là những dữ liệu gì?

+ Mối quan hệ giữa các dữ liệu này như thế nào?

CHƯƠNG 1 Cơ sở dữ liệu và một số mô hình

tin trong CSDL

Trang 9

© Khoa Tin học Kinh tế

1.3 Kiến trúc tổng quát của một hệ quản trị CSDL

© Khoa Tin học Kinh tế

CHƯƠNG 1 Cơ sở dữ liệu và một số mô hình

cơ sở dữ liệu

1.3 Kiến trúc tổng quát của một hệ quản trị CSDL

Trang 10

© Khoa Tin học Kinh tế

1.3 Kiến trúc tổng quát của một hệ quản trị CSDL

CHƯƠNG 1 Cơ sở dữ liệu và một số mô hình

cơ sở dữ liệu

1.4 Các mô hình cơ sở dữ liệu

1.4.1 Mô hình thực thể - liên kết (mô hình ER)

- Các khái niệm cơ sở

Trang 11

© Khoa Tin học Kinh tế

1.4 Các mô hình cơ sở dữ liệu

1.4.2 Mô hình dữ liệu quan hệ

• Khi đó, r là quan hệ xác định trên tập thuộc tính U nếu

r dom(A 1 ) x dom(A 2 ) x… x dom(A n ) Lúc đó U là một lược đồ quan

hệ và nói quan hệ r xác định trên lược đồ U

© Khoa Tin học Kinh tế

CHƯƠNG 1 Cơ sở dữ liệu và một số mô hình

cơ sở dữ liệu

1.4 Các mô hình cơ sở dữ liệu

1.4.1 Mô hình dữ liệu quan hệ

Trang 12

© Khoa Tin học Kinh tế

1.4 Các mô hình cơ sở dữ liệu

1.4.2 Mô hình dữ liệu quan hệ

• Khóa: U = {A1 , A 2 ,…, A n } Một tập K U đƣợc gọi là khóa

của quan hệ r nếu với bất kỳ hai bộ t 1 , t 2 với t 1 ≠ t 2 , đều

tồn tại một thuộc tính A thuộc K sao cho t 1 [A] ≠ t 2 [A]

1.4 Các mô hình cơ sở dữ liệu

1.4.2 Mô hình dữ liệu quan hệ

Biến đổi các sơ đồ ER sang mô hình quan hệ

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

- Biến đổi các liên kết

- Các khóa của các sơ đồ quan hệ

Trang 13

© Khoa Tin học Kinh tế

Trong chương này sẽ tìm hiểu về các ngôn ngữ cho phép

định nghĩa các đối tượng của một CSDL và biểu diễn các

yêu cầu trên CSDL đó mà một HQTCSDL có thể hỗ trợ Cụ

thể, sẽ xem xét ba cách tiếp cận chính đối với việc thiết kế

các ngôn ngữ biểu diễn các yêu cầu trên CSDL quan hệ

Các ký hiệu được sử dụng để biểu diễn các yêu cầu Các

khía cạnh không truy vấn của một ngôn ngữ thao tác dữ

liệu quan hệ liên quan đến các thao tác thêm, xóa, sửa đổi

các bộ Do vậy, các ngôn ngữ thao tác dữ liệu trước đây đôi

khi còn được gọi là ngôn ngữ truy vấn

Các ngôn ngữ truy vấn đối với mô hình quan hệ được chia

làm hai lớp

1/ Các ngôn ngữ đại số

2/ Các ngôn ngữ tính toán vị từ

© Khoa Tin học Kinh tế

CHƯƠNG 2: Một số ngôn ngữ khai thác cơ

sở dữ liệu 2.1 Đại số quan hệ

2.1.1 Phép hợp

Phép hợp của hai quan hệ khả hợp r và s, ký hiệu là r s, là

tập tất cả các bộ thuộc r hoặc thuộc s hoặc thuộc cả hai

quan hệ

r s = {t | t r t s}

Trang 14

© Khoa Tin học Kinh tế

2.1 Đại số quan hệ

2.1.2 Phép giao

Phép giao của hai quan hệ khả hợp r và s, ký hiệu là r s,

là tập tất cả các bộ thuộc hai quan hệ r và s

r s = {t | t r t s}

CHƯƠNG 2: Một số ngôn ngữ khai thác cơ

sở dữ liệu 2.1 Đại số quan hệ

2.1.3 Phép trừ

Phép trừ của hai quan hệ khả hợp r và s, ký hiệu r – s, là tập

tất cả các bộ thuộc r nhưng không thuộc s

r – s = {t | t r t s}

Trang 15

© Khoa Tin học Kinh tế

2.1 Đại số quan hệ

2.1.4 Phép tích Đề-các

Tích Đề-các của hai quan hệ r và s, ký hiệu r x s là tập tất cả

các (n+m)-bộ có n thành phần đầu tiên là một bộ thuộc r và

m thành phần sau là một bộ thuộc s

r x s = {t | t = (a 1 , a 2 ,…, a n , b 1 , b 2 , b m) (a 1 , …, a n ) r (b 1 , …, b m ) s}

© Khoa Tin học Kinh tế

CHƯƠNG 2: Một số ngôn ngữ khai thác cơ

sở dữ liệu

2.1 Đại số quan hệ

2.1.5 Phép chiếu

Phép chiếu của quan hệ r trên tập thuộc tính X, ký hiệu x (r), là

tập các bộ của r xác định trên tập thuộc tính X

x (r) = {t[X] | t r}

VD : Với X = {Tên, NS, QQ}

và Y = {Môn, Tiết}

Trang 16

© Khoa Tin học Kinh tế

2.1 Đại số quan hệ

2.1.6 Phép chọn

Cho r là một quan hệ và F là một biểu thức logic trên các

thuộc tính của r Phép chọn trên quan hệ r với biểu thức

Trang 17

© Khoa Tin học Kinh tế

2.1 Đại số quan hệ

2.1.8 Phép chia

Cho r là một quan hệ n ngôi xác định trên tập thuộc

tính U và s là một quan hệ m ngôi xác định trên tập

thuộc tính V, với n > m và s ≠ , có nghĩa là lực lượng

của s # 0 hay s có ít nhất 1 bộ Giả thiết V U Phép

chia quan hệ r cho quan hệ s, ký hiệu r s, là tập tất

cả các bộ t sao cho với mọi bộ v s thì t ghép với v

thuộc r

r s = {t | v s (t, v) r}

© Khoa Tin học Kinh tế

CHƯƠNG 2: Một số ngôn ngữ khai thác cơ

sở dữ liệu 2.2 Phép tính vị từ biến bộ

2.2.1 Định nghĩa hình thức

Là ngôn ngữ truy vấn phi thủ tục, mô tả thông tin

mong muốn mà không chỉ ra thủ tục đặc biệt để đạt

được các thông tin

Một biểu thức phép tính vị từ biến bộ có dạng {t|P(t)}

P: là một công thức, một số biến bộ có thể xuất hiện

trong một công thức Một biến bộ là một biến tự do

nếu không bị lượng hóa bởi một lượng từ hay Do

vậy trong {t| v s (t,v) r}

Trang 18

© Khoa Tin học Kinh tế

2.2 Phép tính vị từ biến bộ

2.2.1 Định nghĩa hình thức

Một công thưc phép tính vị từ biến bộ được thiết lập từ

các công thức nguyên tố, có một trong các dạng:

• u r: u là một biến bộ; r là một quan hệ

• u[x] v[y]: u, v là các biến bộ; x là một thuộc tính mà

trên đó u xác định và y là một thuộc tính mà trên đó

y xác định; là phép toán so sánh

• u[x] c: u là một biến bộ; x là một thuộc tính mà trên

đó x xác định; c là một hằng trong miền xác định của

x; là một phép so sánh

CHƯƠNG 2: Một số ngôn ngữ khai thác cơ

sở dữ liệu 2.2 Phép tính vị từ biến bộ

2.2.1 Định nghĩa hình thức

Việc thiết lập các công thức nguyên tố

• Một công thức nguyên tố là một công thức

• Nếu P 1 là một công thức thì P 1 và (P 1 ) cũng là công

thức

• Nếu P 1 và P 2 là công thức thì P 1 P 2 , P 1 P 2 và

P 1 P 2 cũng là công thức

• Nếu P 1 là công thức chứa một biến bộ tự do u, và r là

một quan hệ thì u r (P 1 (u) và u r (P 1 (u)) cũng

là các công thức

Trang 19

© Khoa Tin học Kinh tế

© Khoa Tin học Kinh tế

CHƯƠNG 2: Một số ngôn ngữ khai thác cơ

sở dữ liệu 2.2 Phép tính vị từ biến bộ

2.2.2 Tính an toàn của các biểu thức

Biểu thức phép tính vị từ biến bộ có thể sinh ra một

quan hệ vô hạn => để hạn chế cần phải có khái niệm

miền của công thức

Miền của P: dom(P) – là tập hợp tất cả các giá trị được

tham chiếu bởi P

• Các giá trị được viết ra trong chính P

• Giá trị xuất hiện trong một bộ của quan hệ được viết

ra trong P

dom((t r)) là tập các giá trị xuất hiện trong r, do

quan hệ của r được viết ra trong biểu thức

Trang 20

© Khoa Tin học Kinh tế

x1,…, xn biểu diễn các biến miền

P biểu diễn một công thức được hợp thành từ các

công thức nguyên tố

CHƯƠNG 2: Một số ngôn ngữ khai thác cơ

sở dữ liệu 2.3 Phép tính vị từ biến miền

Trang 21

© Khoa Tin học Kinh tế

2.3 Phép tính vị từ biến miền

2.3.1 Định nghĩa hình thức

Thiết lập công thức từ các công thức nguyên tố

• Một công thức nguyên tố là một công thức

• Nếu P 1 là một công thức thì P 1 và (P 1 ) cũng là công

© Khoa Tin học Kinh tế

CHƯƠNG 2: Một số ngôn ngữ khai thác cơ

sở dữ liệu 2.3 Phép tính vị từ biến miền

2.3.2 Tính an toàn cho biểu thức

Để đảm bảo tính an toàn cho biểu thức cần có các luật

Giả sử {<x 1 ,…, x n > | P(x 1 , …, x n )} là an toàn nếu

• Tất cả các giá trị xuất hiện trong các bộ của biểu thức là

các giá trị từ dom(P)

• Với mỗi công thức con ‘tồn tại’ có dạng x (P 1 (x), công

thức này đúng nếu và chỉ nếu có một giá trị trong

dom(P 1 ) sao cho P 1 (x) là đúng

• Với mỗi công thức ‘với mọi’ có dạng x (P 1 (x), công thức

này đúng nếu và chỉ nếu P 1 (x) là đúng với tất cả các giá

trị x từ dom(P 1 )

Trang 22

© Khoa Tin học Kinh tế

2.4 Ngôn ngữ đại số quan hệ thuần túy

2.4 2 Các ví dụ về truy vấn bằng ngôn ngữ đại số

Trang 23

© Khoa Tin học Kinh tế

2.5 SQL – Structure Query Language

SELECT – FROM – WHERE

SELECT A 1 , A 2 ,…, A n FROM r 1 , r 2 ,…., r n WHERE P

SELECT [DISTINCT] <d/s cột>|*|<biểu thức số học>

FROM <d/s tên bảng>|<d/sách các view>

[WHERE <biểu thức điều kiện>]

[GROUP BY <d/s tên cột> [HAVING <biểu thức điều

kiện>]]

[ORDER BY <d/s tên cột>|<biểu thức> [ASC|DESC]]

[UNION|INTERSECT|MINUS<câu truy vấn con>]

1 , , ( ( 1 2 ) )

n

    

© Khoa Tin học Kinh tế

CHƯƠNG 2: Một số ngôn ngữ khai thác cơ

sở dữ liệu 2.5 SQL – Structure Query Language

Trong đó WHERE có thể được biểu diễn dưới các dạng

• WHERE [NOT] <Biểu thức> <phép so sánh> <biểu thức>

• WHERE [NOT] <tên cột> [NOT] LIKE <xâu ký tự>

• WHERE [NOT] <biểu thức> [NOT] IN ({danh sách| câu truy

vấn}]

• WHERE [NOT] EXISTS (<câu truy vấn con>)

• WHERE [NOT]<biểu thức><phép so

sánh>{SOME|ANY|ALL( truy vấn con)}

• WHERE [NOT] <biểu thức logic>

• WHERE [NOT] <biểu thức logic> {AND|OR} [NOT] <biểu

thức logic>

Trang 24

© Khoa Tin học Kinh tế

• Truy vấn trên 1 bảng

• SELECT Ten FROM SV

• SELECT DISTINCT Ten FROM SV

• Ký hiệu * để chỉ ra tất cả các cột được đưa ra

• SELECT * FROM SV

• SELECT * FROM SV, MON

• Truy vấn có điều kiện

• SELECT MASV FROM DIEM WHERE MAMON = ‘CSDL’

• SELECT MASV FROM DIEM WHERE KQUA BETWEEN 6

• Truy vấn với điều kiện có chứa xâu ký tự

Ký hiệu % : Thay thế cho 1 xâu con nào đó (nhóm ký tự

bất kỳ)

Ký hiệu _ : Thay thế cho 1 ký tự bất kỳ

LIKE : Xử lý các xâu ký tự gần đúng khi người sử dụng

không rõ giá trị cụ thể chính xác

• SELECT * FROM SV WHERE Ten LIKE ‘Ba%’

• Truy vấn trên nhiều bảng

• SELECT Ten

FROM SV, DIEM

WHERE SV.MASV = DIEM.MASV AND MAMON=’CSDL’

Trang 25

© Khoa Tin học Kinh tế

• Phép đổi tên OLD_NAME AS NEW_NAME

• SELECT MASV, MAMON AS THILAI FROM DIEM WHERE

KQUA <5

• Truy vấn có sắp xếp

• SELECT TENMON FROM MON WHERE NHOM =’Tự chọn’

ORDER BY TENMON ASC

• Truy vấn với các phép toán tập hợp

• UNION, INTERSECT và MINUS tương ứng với các phép toán

, , –SELECT MASV FROM SV MINUS SELECT MASV

FROM DIEM

= SELECT MASV FROM SV WHERE MASV<>ALL(SELECT

MASV FROM DIEM)

• SELECT TEN FROM SV WHERE TUOI >=ALL(SELECT TUOI

FROM SV)

© Khoa Tin học Kinh tế

CHƯƠNG 2: Một số ngôn ngữ khai thác cơ

sở dữ liệu 2.5.2 Các hàm thư viện

• AVG, COUNT, SUM, MAX, MIN

• SELECT AVG(SOTIET) FROM MON WHERE

NHOM=’Tự chọn’

• Lưu ý : SUM và AVG thì đối số phải là tập hợp các

giá trị số, còn các hàm khác có thể phi số Với SUM

và AVG không được sử dụng từ khóa DISTINCT cho

dù kết quả không có sự thay đổi

• SELECT MASV, COUNT(MAMON) FROM DIEM

GROUP BY MASV

Trang 26

© Khoa Tin học Kinh tế

DELETE FROM <tên bảng> [WHERE <biểu thức điều kiện>]

DELETE FROM MON WHERE SOTIET > 60

• Sửa dữ liệu

• UPDATE <tên bảng> SET <tên cột> =<biểu thức>,…

[WHERE <biểu thức điều kiện>]

• UPDATE MON SET SOTIET = 45 WHERE NHOM=’Tự chọn’

CHƯƠNG 2: Một số ngôn ngữ khai thác cơ

sở dữ liệu 2.2.4 Các lệnh định nghĩa dữ liệu

- Các kiểu dữ liệu trong SQL

Trang 27

© Khoa Tin học Kinh tế

• Các lệnh đối với bảng

+ Tạo bảng

• CREATE TABLE <tên bảng> (<tên cột><kiểu dữ liệu>

[NOT NULL],…) [CONSTRAINT <tên ràng buộc><kiểu

ràng buộc>….])

• CREATE TABLE DIEM (MASV CHAR(8) NOT NULL,

MAMON CHAR(4), KQUA INT) CONSTRAINT Khóa

PRIMARY KEY (MASV, MAMON)

+ Thêm một cột cho bảng

• ALTER TABLE <tên bảng> ADD COLUMN <tên cột>

<kiểu dữ liệu> [NOT NULL]

• ALTER TABLE DIEM ADD COLUMN GHICHU

VARCHAR(20)

© Khoa Tin học Kinh tế

CHƯƠNG 2: Một số ngôn ngữ khai thác cơ

sở dữ liệu

• Các lệnh đối với bảng

+ Sửa kiểu dữ liệu của một cột trong bảng

• ALTER TABLE <tên bảng> CHANGE COLUMN <tên

cột><kiểu dữ liệu mới>

• ALTER TABLE DIEM CHANGE COLUMN GHICHU

CHAR (10)

+ Xóa bảng

• DROP TABLE <tên bảng>

Trang 28

© Khoa Tin học Kinh tế

2.5.5 SQL dạng nhúng

Chuẩn SQL định nghĩa các dạng nhúng của SQL trong

các ngôn ngữ lập trình khác (ngôn ngữ chủ) và các cấu

trúc SQL được phép trong ngôn ngữ chủ này cấu

thành dạng nhúng

EXEC SQL <chỉ thị SQL dạng nhúng> AND-EXEC

Cú pháp chính xác đối với các yêu cầu SQL dạng

nhúng phụ thuộc vào ngôn ngữ chủ

- Các biến của ngôn ngữ chủ sử dụng trong chỉ thị

SQL phải đạt trước dấu (:)

- Để truy vấn trên một CSDL cần dung chỉ thị declare

cursor Dùng open và fetch để được bộ kết quả

CHƯƠNG 3 Lý thuyết thiết kế cơ sở dữ liệu

quan hệ

Mô hình CSDL quan hệ là một trong những mô

hình biểu diễn dữ liệu thông dụng nhất có các ứng

dụng thực tiễn Chương 3 trình bày các vấn đề về

Lý thuyết thiết kế cơ sở dữ liệu quan hệ như: Phụ

thuộc hàm, định nghĩa phụ thuộc hàm, các hệ tiên

đề cho phụ thuộc hàm, khoá của lược đồ quan hệ,

các vấn đề về chuẩn hoá lược đồ quan hệ, rút gọn

tập phụ thuộc hàm, tách lược đồ quan hệ Trong

chương trình bày các thuật toán và các ví dụ minh

họa để thể hiện các vấn đề lý thuyết thiết kế CSDL

quan hệ đã nêu trên

Trang 29

© Khoa Tin học Kinh tế

3.1 Đặt vấn đề

Mục đích của thiết kế CSDL quan hệ là sản sinh ra tập

các lược đồ quan hệ cho phép lưu trữ các thông tin

không dư thừa đồng thời cho phép tìm kiếm thông tin

dễ dàng

SV(MaSV, TenSV, Tuoi, Diachi, Lop, Tenmon, Diem)

- Dư thừa dữ liệu (Redundancy)

- Không nhất quán (Inconsistency)

- Dị thường khi thêm bộ (Insertion anomalies)

- Dị thường khi xóa bộ (Deletion anomalies)

© Khoa Tin học Kinh tế

CHƯƠNG 3 Lý thuyết thiết kế cơ sở dữ liệu

quan hệ 3.1 Đặt vấn đề

3.1.1 Tập thuộc tính

- Xét U = {A 1 , A 2 , ,An} là tập hữu hạn khác rỗng Mỗi

phần tử trong U được gọi là một thuộc tính (attribute)

- AU, tồn tại một miền trị tương ứng với thuộc tính

A, kí hiệu dom(A) dom(A) có thể là hữu hạn hay vô hạn

các phần tử

- Với mỗi thuộc tính A i ta có miền giá trị tương ứng

dom(A i ) = d i , ký hiệu D = Thứ tự của các thuộc tính

trong U là không quan trọng

Trang 30

© Khoa Tin học Kinh tế

3.1 Đặt vấn đề

Tập thuộc tính

Quan hệ r trên tập thuộc tính U là 1 tập ánh xạ t: U

D với t(Ai) Di Mỗi quan hệ được xem là một

tập hữu hạn Mỗi ánh xạ t là một bộ của quan hệ r

Ta có thể viết quan hệ r là tập con của tích Đề-các

của các miền giá trị của các thuộc tính:

r D1 x D2 x….x Dn

CHƯƠNG 3 Lý thuyết thiết kế cơ sở dữ liệu

quan hệ 3.2 Phụ thuộc hàm

3.2.1 Định nghĩa

R(U) với U={A 1 , A 2 ,…., A n ) X và Y là hai tập con của U, X xác

định hàm cho Y hay Y phụ thuộc hàm và X và ký hiệu X Y

nếu với mọi quan hệ r xác định trên R(U) và với 2 bộ

t 1 [X] = t 2 [X] thì t 1 [Y] = t 2 [Y]

Các hệ tiên đề cho phụ thuộc hàm

F trên R(U) và X Y, X, Y U Nói rằng X Y được suy diễn

logic từ F nếu với mỗi quan hệ r xác định trên R(U) thỏa

mãn các phụ thuộc hàm trong F thì cũng thỏa mãn X Y

Chẳng hạn F = {AB, BC} thì A C được suy diễn logic

từ F

Trang 31

© Khoa Tin học Kinh tế

3.2 Phụ thuộc hàm

3.2.2 Hệ tiên đề Amstrong đối với các phụ thuộc hàm

Gọi R (U) là lược đồ quan hệ với U=(A 1 , A 2 ,…., A n ) là tập các

thuộc tính và X, Y, Z, W U và ký hiệu XY = XY

• Phản xạ: (reflexivity): Nếu YXU thì XY

• Tăng trưởng (augmentation): Nếu XY, ZU thì XZ YZ

• Bắc cầu (transitivity): Nếu XY, YZ thì XZ

Ví dụ: Cho R = (A, B, C) và F={ABC, CA} Chứng minh

BCABC

CA (giả thiết) => BC BA

AB C (giả thiết) thì ABABC

BC ABC (bắc cầu)

© Khoa Tin học Kinh tế

CHƯƠNG 3 Lý thuyết thiết kế cơ sở dữ liệu

quan hệ 3.2 Phụ thuộc hàm

3.2.2 Hệ tiên đề Amstrong đối với các phụ thuộc hàm

Trang 32

© Khoa Tin học Kinh tế

3.2 Phụ thuộc hàm

3.2.2 Hệ tiên đề Amstrong đối với các phụ thuộc hàm

Một số bổ đề:

Bổ đề 1: “Hệ tiên đề Amstrong là đúng

Có nghĩa là nếu X  Y là một phụ thuộc hàm được suy

dẫn từ F nhờ hệ tiên đề Amstrong thì X  Y là đúng

trên một quan hệ thỏa mãn các phụ thuộc hàm trong F

Bổ đề 2: “X  Y được suy dẫn từ hệ tiên đề Amstrong

khi và chỉ khi X+  Y”

CHƯƠNG 3 Lý thuyết thiết kế cơ sở dữ liệu

quan hệ 3.2 Phụ thuộc hàm

3.2.3.Tính toán bao đóng

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

Định nghĩa

Cho một lược đồ quan hệ = <U, F> và một tập thuộc

tính X U Bao đóng tập thuộc tính X trên U là tất cả

các thuộc tính A U sao cho: X A F + , ký hiệu là X +

.

Ta có thể biểu diễn bao đóng của tập thuộc tính X :

X +

F = { A | A U , X A F + }

Trang 33

© Khoa Tin học Kinh tế

© Khoa Tin học Kinh tế

CHƯƠNG 3 Lý thuyết thiết kế cơ sở dữ liệu

quan hệ 3.2 Phụ thuộc hàm

3.2.3.Tính toán bao đóng

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

Thuật toán:

Đầu vào: Cho = <U,F> và X U;

Đầu ra: Bao đóng X+ của tập thuộc tính X ;

Phương pháp: Tính liên tiếp tập các thuộc tính X0, X1, X2, …theo các

bước sau:

Bước 1: Đặt X0 = X

Bước 2: Lần lượt xét các phụ thuộc hàm của F

Nếu Y Z và Y Xi thì Xi+1 = Xi Z

Loại bỏ phụ thuộc hàm Y Z khỏi F

Bước 3: Vì U hữu hạn nên sẽ tồn tại một chỉ số i nào đó mà

Xi = Xi+ 1 thì Xi chính là bao đóng của X (có thể viết X+ = Xi )

Ngày đăng: 22/01/2017, 11:57

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

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