Mà vấn đề phụ thuộc hàm, phụ thuộc đa trị là nguyên nhân cho các van dé nay sinh không đáng có trong thiết kế CSDL nên nghiên cứu về phụ thuộc hàm và phụ thuộc đa trị trong xây dựng CSDL
Trang 1Lời nói đầu Ngày nay, hơn lúc nào hết sự thành công của một cơ quan phụ thuộc vào khả năng
thu thập kịp thời, đầy đủ và chính xác những dữ liệu cần thiết, xử lí, quản lí va sử
dụng chúng một cách có hiệu quả để phân tích tình hình và đề ra những phương hướng hành động cho tương lai Mà khi lượng thông tin ngày càng gia tăng nên
khối lượng thu thập được cần được lưu trữ, nhưng do không gian lưu trữ có hạn
Nghịch lí này đã làm nảy sinh ra nhu cầu phải xây dựng cơ sở đữ liệu (CSDL) phù
hop Dé có thé quản lí tối ưu kho dữ liệu thì những người sử dụng phải có các công
cụ làm đơn giản hoá nhiệm vụ quản lí dữ liệu(DL) Yêu cầu đặt ra cho những người
thiết kế là nghiên cứu những tính chất cơ bản để xây dựng cấu trúc CSDL tối ưu
nhất Mà vấn đề phụ thuộc hàm, phụ thuộc đa trị là nguyên nhân cho các van dé nay sinh không đáng có trong thiết kế CSDL nên nghiên cứu về phụ thuộc hàm và phụ thuộc đa trị trong xây dựng CSDL đề xây dựng tập các sơ đồ quan hệ cho phép người dùng lưu trữ các thông tin một cách không dư thừa đồng thời cho phép tìm
kiếm thông tin một cách dễ dàng
Mục đích nghiên cứu của đề tài trước hết trang bị thêm kiến thức phục vụ cho thiết kế CSDL đồng thời kiến thức học hỏi được sẽ trở thành một công cụ dé sinh
viên và những lập trình viên sử dụng cho công việc thiết kế của mình có cái nhìn đúng đắn và mang lại hiệu quả tốt nhất trong xây dựng CSDL Đối tượng nghiên cứu trong đề tài của em là phụ thuộc hàm, phụ thuộc đa trị và ứng dụng trong xây
dựng CSDL Và khi thiết kế một CSDL quan hệ phải nghiên cứu các tính chất cơ
bản cũng như các thuật toán đề có thể nhận được những tập sơ đồ phù hợp, tốt nhất cho công việc
Đề tài được chia làm ba phần lớn:
Phần thứ nhất là cái nhìn tổng quan về CSDL quan hệ là phạm vi nghiên cứu của dé tai
Phan thir hai: trinh bày nội dung chính của đề tài , trong phần này giúp cho người sử dụng hiểu rõ mục đích và tầm quan trọng của việc thiết kế CSDL và ứng dụng trong thực tế
Phần cuối cùng là kết luận, qua đề tài để làm tối ưu quá trình xây dựng
CSDL và trang bị cho người sử dụng thêm kiến thức cần thiết phục vụ cho ứng
Trang 2dụng ,và tìm hiểu để có những lựa chọn phù hợp nhất cho công việc của mình với
mô hình quan hệ nào là tốt nhất
Qua đề tài nghiên cứu mong rằng sẽ trang bị cho người đọc những kiến thức bổ ích giúp ích cho những ai muốn tìm hiểu về phụ thuộc hàm,phụ thuộc đa trị có thêm những kiến thức mới bổ sung cho quá trình tìm hiểu của mình
A Cơ sở lí luận
I Khái quát CSDL:
1 Khải niệm CSDL:
Cơ sở dữ liệu là lĩnh vực của tin học nghiên cứu các cơ chế „nguyên lí,
phương pháp tổ chức các nhóm DL trên các vật mang tin ngoài(các loại đĩa trống
từ, quang học ) nhằm phục vụ cho việc khai thác dữ liệu trong các hệ thống tin học ứng dụng như các hệ lưu trữ và tra cứu thông tin ,các hệ quản trị xí nghiệp hoặc
mainframe và các hệ siêu máy tính Trong các chương trình xây dựng máy tính thế
hệ mới , mô hình quan hệ được quan tâm đáng kể
Sở dĩ mô hình quan hệ được phát triển rộng rãi như vậy là vì nó được xây dựng
trên một cơ sở toán học chặt chẽ _ lí thuyết về các quan hệ và có hình ảnh trực quan
gần với quan niệm thông thường của người dùng cuối Các ngôn ngữ thao tác trên
các CSDL quan hệ khá dễ học và có hiệu suất phục vụ cao.Trong mô hình quan hệ
thì giá trị đưa vào mỗi cột phải là đơn nhất, các giá trị đưa vào một cột phải cùng
một miền dữ liệu và mỗi dòng trong bảng phải là duy nhất nên việc quản li dé dang
hơn
Vậy CSDL là một tập các DL về các đối tượng cần quản lí, được lưu trữ đồng
thời trên các vật mang tin của máy tính điện tử và được quản lí theo một cơ chế thông nhất gọi là hệ quản lí CSDL nhằm thực hiện ba chức năng sau đây một cách
tối ưu: mo tả DL, cập nhật DL, tìm kiếm DL.
Trang 3CSDL là một bộ phận không thể thiếu được trong các hệ lưu trữ và tìm kiếm
thông tin, các hệ thống quản lí kinh tế các ngành các cấp, các hệ thống quản lí kho hàng, tư liệu, các hệ thống phục vụ công cộng như ngân hàng, bán vé máy bay và các phương tiện giao thông , các hệ thống thiết kế tự động
2 Hệ quản trị CSDL:
Đó là hệ thống phần mềm giúp cho người sử dụng khai thác các CSDL theo ba
chức năng nói trên Còn các CSDL là đối tượng quản lí của các HCSDL Chúng
được tạo lập và lưu trữ trên các vật mang tin ngoài Hệ QTCSDL có nhiệm vụ rất
quan trọng, như một bộ miễn dịch với ngôn ngữ bậc cao nhằm giúp người sử dụng
có thê dùng được hệ thống mà ít nhiều không cần quan tâm đến thuật toán chỉ tiết hoặc biéu dién DL trong may
CSDL có người quản trị CSDL Người quản trị CSDL có nhiệm vụ quản lí và
theo dõi toàn bộ các thủ tục sau đây :
_ Nạp DL vào CSDL
_ Xoá DL ra khỏi CSDL
_ Sửa DL trong CSDL
_ Tao lap CSDL
_Tim kiém va xuat DL
_ Bao tri DL trong CSDL không bị sai hỏng do các truy nhập không được phép
hoặc không đúng qui cách dẫn đến sự sai lệch hoặc mat mat DL
CSDL có một lớp người sử dụng cũng được phép thực hiện các thao tác như người quản trị nhưng giới hạn ở góc độ khai thác DL Người sử dụng tuỳ theo vai trò ,trách nhiệm của mình được người quản trị cho phép sử dụng một phần nào đó
của CSDL và với phần đó họ được phép thực hiện một số thao tác nhất định Nếu
người sử dụng là một nhân viên bán hàng tại một quầy nào đó thì có thể thông qua MTĐT theo dõi những mặt hàng bán được tại quầy của mình bao gồm các mục : mã
hàng, tên hàng , giá đơn vị , thành tiền, số lượng còn lại , tổng số tiền đã bán Và
được phép nạp DL, sửa ,xóa DL phản ánh đúng biến động của các mặt hàng có trong quầy của mình Còn các DL khác , mặc dù được lưu trữ trên cùng một MTĐT
thậm chí lưu trữ trong cùng một CSDL sẽ là” khuất “đối với người này DL khuất
Trang 4có thể là thông tin về các quầy khác, tổng thu chi của cửa hàng, danh sách và thông tin chỉ tiết về các nhân viên
Tóm lại, mặc dù DL được lưu trữ chung trong một CSDL nhưng mỗi người sử
dụng chỉ được nhìn vào CSDL qua một cái chung và họ cảm thấy CSDL chỉ vào cái
khung đó thôi, như là dành riêng cho họ vậy
Hệ QTCSDL là những chương trình máy tính giúp cho ta thực hiện các thao tác trên Vậy là các phần mềm như DBASE, FOXBASE, SYSTEM-R, IMS_ là những
HCSDL Các đối tượng do hệ thống trên tạo lập là các CSDL
3 Kiến trúc một HCSDL
Một CSDL được phân nhánh các mức khác nhau như hình dưới Ở đây cá thể
xem như chỉ có một CSDL đơn giản và có một hệ phần mềm QTCSDL
Phần mềm CSDL vật lí là tập các tệp DL theo một cấu trúc nào đó được lưu trên các thiết bị nhớ thứ cấp ( đĩa, băng từ ) CSDL mức khái niệm là một sự biểu
dién trừu tượng của CSDL vật lí Các khung nhìn là cách nhìn là quan niệm của từng người sử dụng đối với CSDL mức khái niệm thực chất là không lớn
TgưỜI sit dung l Khung nhìn I
Trang 5Thể hiện
Một khi CSDL đã được thiết kế , thường người ta quan tâm tới “bộ khung” hay
còn gọi là “mẫu” của CSDL DL hiện có trong CSDL gọi là thể hiện CSDL, mặc đù khi DL thay đổi thao một chu kì thời gian nào đó thì “bộ khung” của CSDL vẫn
không thay đổi
Lược đồ
Thường “bộ khung” nêu trên bao gồm một số danh mục , hoặc chỉ tiêu hoặc một
số kiểu của các thực thể trong CSDL Giữa các thực thể có thể có một mối quan hệ
nào đó với nhau Ở đây sử dụng thuật ngữ “lược đồ” đề thay cho khái niệm “ bộ
khung”
Lược đồ khái niệm là bộ khung của CSDL khái niệm ,còn lược đồ vật lí dùng cho
bộ khung của CSDL mức vật lí, khung nhìn được gọi là Lươc đồ con
Tính độc lập DL
Theo hình trên từ khung nhìn tới CSDL khái niệm và CSDL vật lí cho thấy có
hai mức “ độc lập DL” Thứ nhất : Lược đồ vlí có thể thay đổi do người quản trị
CSDL mà không cần thay đổi lược đồ khái niệm hoặc các lược đồ con việc tổ chức
lại CSDL vật lí có thể làm thay đổi hiệu quả tính toán của các chương trình ứng dụng nhưng không đòi hỏi phải viết lại các chương trình đó tính độc lập này gọi là
độc lập DL mức vật lí
Mối quan hệ giữa các khung nhìn và lược đồ khái niệm cho thêm một loại độc lập nữa, gọi là độc lập DL Iogic.khi sử dụng một CSDL , có thé cần thiết phải thay đổi lược đồ khái niệm như thêm thông tin về các loại khác nhau của các thực thể hoặc bớt, xóa các thông tin về các thực thể đang ton tai trong CSDL viéc thay đôi
lược đồ khái niệm không làm ảnh hưởng tới các lược đồ con đang tồn tại , do đó không cần thiết phải thay đổi các chương trình ứng dụng
Vì thế, tính độc lập DL là mục tiêu chủ yếu của các hệ CSDL Có thể định nghĩa tính độc lập CSDL là “ tính bat biến của các hệ ứng dụng đối với các thay đồi trong cấu trúc lưu trữ và chiến lược truy nhập”
Có ba loại mô hình CSDL cơ bản là mô hình lưới , mô hình phân cấp, mô hình
quan hệ Trong ba loại mô hình này thì mô hình quan hệ có nhiều ưu điểm và được
nhiều người quan tâm nhất, bởi lẽ mô hình quan hệ có tính độc lập DL cao,lại dễ
Trang 6dàng sử dụng Điều quan trọng hơn cả, mô hình quan hệ được hình thức hoá toán
học tốt , do đó được nghiên cứu, phát triển và cho được nhiều kết quả lí thuyết cũng
như ứng dụng trong thực tiễn
Trên cơ sở mô hình DL quan hệ , đến nay đã phát triển thêm một số loại mô hình khác nhằm mô tả và thể hiện thế giới thực một cách chính xác và phù hợp hơn như
mô hình quan hệ thực thể , mô hình DL hướng đối tượng
1I.Một số vấn đề khi thiết kế CSDL:
Phụ thuộc đữ liệu là các mối ràng buộc có thể có giữa các giá trị hiện hữu của các lược đồ, chang hạn thuộc tính này xác định duy nhất thuộc tính kia Chúng ta
xét lược đồ quan hệ sau và xem xét các vấn đề nảy sinh để qua đó có thể thiết kế
một CSDL thế nào là tối ưu nhất Ví dụ về việc phân công lái máy bay:
phanCong (PHICONG, MAYBAY, NGAYKH, GIOKH)
Với các thuộc tính : tên phi công(PHICONG), số máy bay(MAYBAY), ngày khởi hanh(NGAYKH), gio khdi hanh(GIOKH)
1 Dư thừa dữ liệu:
Dễ dàng thấy một phi công sẽ lái nhiều máy bay nên tên của phi công sẽ lặp lại trong nhiều bộ quan hệ trên lược đồ này Cụ thê là tên của người này sẽ lặp lại trong quan hệ
2 Không nhất quán:
Là hệ quả của việc dư thừa DL, vì khi tên của phi công lặp lại trong nhiều
bộ ,khi sửa thì chỉ có thể sửa ở một bộ nào đó còn các bộ khác vẫn giữ nguyên
Khi đó xảy ra hiện tượng một phi công có nhiều tên
3 Bắt thường khi thêm bộ:
Nếu một phi công mới tuyên chưa lái một máy bay nào cả, khi thêm một
bộ giá trị về phi công này đề theo dõi thì nhà quản lí không biết phải đưa giá trị gì
vào thuộc tính máy bay và ngày, giờ khởi hành
4 Bắt thường khi xoá bộ :
Nếu một phi công vì một lí do nào đó mà chỉ lái một máy bay nhất định
thì khi đó trong quan hệ chỉ có một bộ lưu trữ DL về phi công này Khi muốn xoá
DL về chuyến bay này thì sẽ làm mắt thông tin về phi công này
Trang 7Qua các vấn đề nảy sinh khi thiết kế CSDL cần tìm ra một sự thay thế tốt
mà nội dung nghiên cứu đề tài sẽ cho phép giải đáp cho những vấn đề trên
Ví dụ: a= <u,F> với u= ABCD, F= { AB C, BD AC, C D}
Quan hệ R được gọi là quan hệ có lược đồ a nếu tập thuộc tính của R là
u và thoả tập phụ thuộc hàm F
2.Phép tách các lược đô quan hệ:
Phép tách một lược đồ quan hệ R={A1,A2, An} là việc thay thế lược
đồ quan hệ R bằng các lược đồ{ R1, R2, ,Rn}, trong đó Ri € R,i=I, k và
R=RI U R2 U U Rk Ở đây không đòi hói các lược đồ Ri phải là phân biệt Mục tiêu của phéo tách chủ yêu là loại bỏ các bất thường DL gây ra như đã nêu ở trên
3 Chuẩn hoá lược đồ quan hệ:
Do việc cập nhập DL gây nên những bắt thường cho nên các quan hệ cần thiết phải được biến đổi thành các dạng phù hợp Quá trình đó được gọi là quá
trình chuẩn hoá, quan hệ được chuẩn hoá thì mỗi miền của thuộc tính chỉ chứa
những giá trị nguyên tố tức là không thể phân nhỏ được nữa Quan hệ có chứa các miền giá trị là không nguyên tố gọi là quan hệ không chuẩn hoá Một quan hệ
được chuẩn hoá có thể thành một hoặc nhiều quan hệ chuẩn hóa khác và không
làm mắt thông tin
TỊ.Phụ thuộc hàm
1.Khải niệm và vai trò của phụ thuộc hàm trong xây dung CSDL:
1.1 Khái niệm phụ thuộc hàm:
Phụ thuộc hàm (functional dependency) là một công cụ dùng đề biểu diễn một cách hình thức các ràng buộc toàn vẹn (vắn tắt: ràng buộc) Phương pháp biểu diễn này có rất nhiều ưu điểm, và đây là một công cụ cực kỳ quan trọng, gắn
chặt với lý thuyết thiết kế cơ sở đữ liệu.
Trang 8Phụ thuộc hàm được ứng dụng trong việc giải quyết các bài toán tìm khóa, tìm phủ tối thiểu và chuẩn hóa cơ sở dữ liệu
Ở đây sẽ trình bày khái niệm một cách hình thức :
a Định nghĩa phụ thuộc hàm:
Q(A1,A2, An) là lược đồ quan hệ
X, Y là hai tập con của Q+={A1,A2, ,An}
Xét ví dụ phanCong trên ta thấy:
Quan hệ phanCong diễn tả phi công nào lái máy bay nào và máy bay khởi hành vào thời gian nào
Không phải sự phối hợp bất kỳ nào giữa phi công, máy bay và ngày giờ khởi hành
cũng đều được chấp nhận mà chúng có các điều kiện ràng buộc qui định sau:
+ Mỗi máy bay có một giờ khởi hành duy nhất
+ Nếu biết phi công, biết ngày giờ khởi hành thì biết được máy bay do phi công ấy lái
+ Nếu biết máy bay, biết ngày khởi hành thì biết phi công lái chuyến bay ấy Các ràng buộc này là các ví dụ về phụ thuộc hàm và được phát biểu lại như sau:
+ MAYBAY xác định GIOKH
+ _{PHICONG,NGAYKH,GIOKH)} xác định MABAY
+ _{MAYBAY,NGAYKH) xác định PHICONG
hay
+ GIOKH phụ thuộc hàm vào MAYBAY
+ MABAY phụ thuộc hàm vào {PHICONG,NGAYKH,GIOKH}
+_PHICONG phụ thuộc ham vao {MAYBAY,NGAYKH}
và được ký hiệu như sau:
+ {PHICONG,NGAYKH,GIOKH} MABAY
Trang 9+ {MAYBAY,NGAYKH) PHICONG
b.Một số tính chất của phụ thuộc hàm:
Định lí: phụ thuộc hàm trên tập thuộc tính thoả các tính chất sau đây:
F1 Tính phản xạ : Nếu X,Y CUvàY cC Xthix VY
F2 Tính bắc cầu :Nếu X,Y © U,X YvàY Zthix Z
F3 Tính mở rộng haivếNếuX Y,X, Œ UthìvớimọiZ © Utacé
F4 Tính tua bac cau: NéuX Y,YZ W;X,Y,ZW c U thixZ Ww
F5 Tinh phan xa chat: VoimoiX fC UtacdX X
F6 Mo rong vé trai va thu hep vé phai : Néu X Y;X,Y c U thi voi moi
F7.Cộng tính đầyđủ:NếuX YvàZ W;X,Y,Z CUthìXZ YW F8 Mở rộng vé trá:NếuX Ythivdim œ UtacóXZ Y
F9 Cộng tính ở vế phả:NếuX YvàX Z;X,Y © UthiX YZ F10 Bộ phận ở về phải: NếuX YZ;X,Y,Z c Uthix Y
FII Tính tíchluỹ Nếu X YZ;Z AW;X,Y,Z, cU;A œ Uthì
X YZA
Những tinh chat trên đã được chứng minh và thừa nhận tính đúng đắn của nó nên
ở đây chỉ nêu ra các tính chất cho người sử dụng tìm hiều
c Thuật toán Satifies:
Cho quan hệ r và X, Y là hai tập con của Q+ Thuật toán SA TIFIES sẽ trả về trị true nếu X Yngugce lai 1a false
SATIFIES
Vao: quan hé r va hai tap con X,Y
Ra: truenéuX Y, ngược lai 1a false
SATIFIESŒr,X,Y)
1 Sắp các bộ của quan hệ r theo X đề các giá trị giống nhau trên X nhóm lại với nhau
2 Nếu tập các bộ cùng giá trị trên X cho các giá trị trên Y giống nhau thì trả về
true ngược lại là False
Trang 11các lược đồ Nên phụ thuộc hàm có tầm quan trọng rất lớn đối với việc thiết kế mô
hình dữ liệu Phân tích các phụ thuộc hàm có thê có đề tối ưu mô hình DL nó có ảnh hưởng trực tiếp đến hiệu quả hoạt động của hệ thống Bên cạnh đó sử dụng các phụ
thuộc hàm người sử dụng có thê chuẩn hoá các lược đồ về dạng chuẩn ba hay dạng chuẩn Boye_Codd
2 Các vấn đề liên quan phụ thuộc hàm trong xây dựng CSDL
2.1 Hệ tiên đề Armstrong
Gọi F là tập các phụ thuộc hàm trên sơ đồ quan hệ R(U) và X Y là một phụ
thudc ham, X,Y © U,khidd 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) thoả các phụ thuộc hàm trong U thì cũng thoả cácX Y
Gọi F+ là bao đóng của F, tức là tập tất cả các phụ thuộc hàm được suy diễn logic từ F Nếu F=F+ thi F là họ đầy đủ của các phụ thuộc hàm Để có thể xác định
khoá của một lược đồ quan hệ va các suy diễn logic giữa các phụ thuộc hàm cần
thiết phải tính được F+ từ F Do đó đòi hỏi phải có các hệ tiên đề Nên ta có hệ tiên
đề Armstrong đối với các phụ thuộc hàm như sau:
Gọi R(U) là lược đề quan hệ với U={AI,A2, ,An} là tập các thuộc tính và X,Y,Z,W © U duoc ki higu XY= X UY
Hệ tiên đề Armstrong :
AI.Phảnxạ:NếuY © X © Uthix Y
A2 Tăng trưởng:NếuX Y,Z © UthiXZ YZ
A3 Bac cau: NéuX Y,Y ZthiX Z
Hé tién dé Armstrong la dung:
Noi rang X Y là phụ thuộc hàm được suy diễn nhờ vào tiên đề Armstrong nếu tồn tại các tập phụ thuộc hàm F0 FI Fn sao cho X Y với F0,F1, Fn lần
lượt được hình thành thỏa phương pháp sau:
Bước!I: F0 = F
Bươc 2:Chọn một số phụ thuộc hàm trong Fi ap dụng hệ tiên đề Armstrong để thu được một số phụ thuộc hàm mới Đặt Fit 1= Fi {các phụ thuộc hàm mới}
Hệ quả : Hệ luật dẫn Armstrong là đúng nghĩa là nếu F là tập các phụ thuộc hàm
đúng trên quan hệ r và X_ Y là một phụ thuộc hàm được suy diễn từ F nhờ hệ luật
II
Trang 12dẫn Armstrong thi X Y đúng trên quan hệ r VậyX Y là phụ thuộc hàm được suy diễn logic từ E
Hệ tiên đề Armstrong là đầy đủ:
Hé luat dan Armstrong 1a day đủ nghĩa là mọi phụ thuộc hàm X Y được suy diễn
logic từ F sẽ được suy diễn từ F nhờ hệ tiên đề Armstrong
2.3 Phép tách bảo toàn tập phụ thuộc hàm
Thông thường, chúng ta mong muốn một phép tách phải có tính chat không mất
mát thông tin bởi vì nó đảm bảo rằng một quan hệ nào đó có thể được phục hồi
từ các quan hệ chiếu của nó Một tính chất quan trọng nào khác của phép tách sơ
đồ quan hệ R thành p = (RI, R2 , Rk) la tap các phụ thuộc hàm F trên R
phải được suy diễn ra bởi tập các phụ thuộc hàm chiếu cuả F trên Ri với i= 1, 2, „K
Giả sử R là một lược đồ quan hệ với tập phụ thuộc hàm F, p = ( RI,
R2 , Rk) là một phép tách của R trên F Chung ta nói Fi là hình chiếu của F
trên Ri, và kí hiệu là II Ri (F), là tập tất cả các phụ thuộc hàm X Yc F+ sao
choXY € Ri chúýrằngX Y không cần thiết thuộc F mà chỉ cần thuộc
F+
Chú ý rằng phép tách p bảo toàn tập phụ thuộc hàm F nếu hợp của tất cá các phụ thuộc hàm trong II Ri (F) với ¡ = 1, 2, ,k suy diễn logic ra tất cả các phụ thuộc hàm trong F Lí do chúng ta muốn một phép tách p bảo toàn tập phụ thuộc hàm F là các phụ thuộc hàm trong F có thể được quan sát như các ràng buộc
12