Lý thuyết cơ sở dữ liệu nguyên cứu các cơ chế, nguyên lý và phương pháp tổ chức dữ liệu trên các vật mang tin để khai thác có hiệu quả dữ liệu trong các hệ thống tin học ứng dụng cũng như trong các hệ lưu trữ và tra cứu thông tin.
Trang 1LỜI GIỚI THIỆU
Ngày nay, mọi ngành, mọi lĩnh vực trong đời sống, trong khoa họckinh doanh cũng như trong mọi mặt vận động của xã hội dưới mọi quy mô
từ xí nghiệp nhà máy, công ty đến quốc gia, quốc tế đều đã áp dụng côngnghệ thông tin vào quản lý và nhiều lĩnh vực khác như: điều khiển các quátrình sản xuất, điều khiển tự động, trợ giúp quyết định, thương mại điện tử
Môn cơ sở dữ liệu là một trong những môn quan trọng liên quan đếncác vấn đề thu thập, xử lý và cho những thông tin cần thiết từ dữ liệu Mụctiêu chính của môn này là đưa ra các phương pháp để tổ chức thông tin làmsao cho tối ưu nhất các khâu trên của dữ liệu[3] Để tiến hành các mục tiêutrên, người ta đi xây dựng các mô hình dữ liệu, và trên cơ sở mô hình dữ liệunày người ta đi xây dựng các hệ cơ sở dữ liệu Từ các mô hình này, nhânloại đã đạt được nhiều thành công rực rỡ trên lĩnh vực này mà sản phẩm của
nó được thương mại hoá trên khắp thế giới như: Foxbase, Foxpro, DBase,Access, SQL for Windows,
Lý thuyết cơ sở dữ liệu nguyên cứu các cơ chế, nguyên lý và phươngpháp tổ chức dữ liệu trên các vật mang tin để khai thác có hiệu quả dữ liệutrong các hệ thống tin học ứng dụng cũng như trong các hệ lưu trữ và tra cứuthông tin Trong số các mô hình cho việc tổ chức và khai thác cơ sở dữ liệu(CSDL), trên thực tế mô hình quan hệ [6] là được quan tâm hơn cả Bởi vì
mô hình này được xây dựng trên cơ sở lý thuyết và các quan hệ có cơ sởtoán học chặt chẽ, xử dụng rộng rãi các công cụ đại số và logíc Trong cơ sở
dữ liệu quan hệ, các quan hệ có hình ảnh trực quan như là các bảng biểuthông thường mà ta hay gặp Điều đó tạo nên những thuận lợi trong việcthực hiện các thao tác trên các quan hệ, các ngôn ngữ thao tác trên cơ sở dữ
Trang 2liệu quan hệ có khả năng tổ hợp cao và hiệu quả Việc cập nhật dữ liệu trong
mô hình
quan hệ khá dễ dàng Điều đáng quan tâm là cơ sở dữ liệu quan hệ còn chophép đảm bảo được tính an toàn dữ liệu, tính nhất quán dữ liệu và tính độclập dữ liệu [5]
Trong quá trình nguyên cứu và xử lý bảng biểu, các bảng này do cácchuyên gia trong lĩnh vực tin học đề xuất ra, trong những năm 1970, ngườisáng lập ra mô hình dữ liệu quan hệ đã đề xuất ra 4 dạng chuẩn để chuẩn hoácác tệp dữ liệu (các bảng biểu) Nhờ các dạng chuẩn này, khi xử lý các tệp
dữ liệu người ta tách được dữ liệu gốc ( do các chuyên gia trong mọi lĩnhvực đề xuất ra ) Vì thế các tệp dữ liệu con đã ở trong dạng chuẩn rồi và khi
xử lý người ta lưu trữ các tệp dữ liệu con trong máy chứ không phải là cáctệp dữ liệu lớn, nhưng một điều rất quan trọng là, để khỏi mất mát thông tin( có tính pháp lý ) thì phải phục hồi tệp gốc ở bất cứ thời điểm nào cần,muốn hồi phục được người ta phải dùng phép nối tự nhiên nối tất cả các tệp
dữ liệu con thì ta sẽ được tệp dữ liệu gốc lớn Việc lưu trữ các tệp dữ liệucon thường chiếm ít bộ nhớ hơn các tệp dữ liệu gốc to, tốc độ chuẩn hoá cáctệp dữ liệu đã được chuẩn hoá nhanh hơn rất nhiều các tệp dữ liệu chưađược chuẩn hoá ( tệp dữ liệu gốc to) Nhờ có những đóng góp như vậy màngười sáng lập ra đã được nhận giải thưởng Turing[3] Cho đến nay tất cảcác hãng máy tính trên thế giới khi xây dựng Mô hình dữ liệu quan hệ ( xử
lý các tệp dữ liệu ) đều đã áp dụng các phụ thuộc hàm và các dạng chuẩntrong ngôn ngữ sử lý của họ, trong đó đặc biệt là phép kết nối tự nhiên
Mục tiêu của luận văn là tập chung nghiên cứu các tính chất của phụthuộc hàm và các dạng chuẩn của mô hình dữ liệu quan hệ
Nội dung chính của đề tài được trình bày trong 4 chương
Trang 3Chương 1: Tổng quan về cơ sở dữ liệu Chương 2: Giới thiệu về phụ thuộc hàm và một số tính chất của chúngChương 3: Các dạng chuẩn hoá dữ liệu trong mô hình quan hệ và một
số thuật toán của chúng
Chương 4: Cài đặt một số chương trình thực hiện cho thuật toán đãnêu trên
Trong thời gian hoàn thành bản luận văn tốt nghiệp, em xin chânthành cảm ơn khoa CNTT và các thầy cô giáo đã giúp đỡ và truyền đạt cho
em những kiến thức cơ bản trong những năm học vừa qua
Đặc biệt em xin chân thành cảm ơn thầy Đoàn Văn Ban - Viện CNTT
đã tận tình giúp đỡ và chỉ dẫn cho em những kiến thức và phương pháp làmviệc để em hoàn thành bản luận văn tốt nghiệp
Trang 4CHƯƠNG I : TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU
I.1 KHÁI NIỆM VỀ CƠ SỞ DỮ LIỆU
Để lý giải cho các khái niệm, trước hết chúng ta hãy xem xét hệ thống bán
xe máy của công ty HONDA Việt Nam bằng máy tính Dữ liệu lưu trữ trong máytính bao gồm thông tin về hành khách, loại xe, phân khối và giá cả Mọi thôngtin về mối quan hệ này được biểu diễn trong máy thông qua việc đặt mua xe củakhách hàng.Vậy làm sao để biểu diễn dữ liệu đó và bảo đảm cho khách hàng muađúng chiếc xe mà mình đăng kí Những dữ liệu nêu trên được lưu trữ trong máytheo một quy định nào đó được gọi là cơ sở dữ liệu (CSDL) Phần chương trình để
xử lý, thay đổi số liệu này là các hệ quản trị cơ sở dữ liệu [6]
Tổng quát chúng ta có các định nghĩa sau :
1 Cơ sở dữ liệu: Là khối dữ liệu phản ánh thông tin được lưu trữ trên hệ thống
theo một cấu trúc nào đó gọi tắt là cơ sở dữ liệu ( CSDL )
2 Hệ quản trị cơ sở dữ liệu: Là một hệ thống phần mềm quản lý cơ sở dữ liệu
và tập các thao tác xử lý dữ liệu
Hệ quản trị cơ sở dữ liệu là rất quan trọng, như là một bộ diễn dịch với ngônngữ bậc cao nhằm giúp người sử dụng có thể dùng được hệ thống mà ít nhiềukhông cần quan tâm đến thuật toán chi tiết hoặc biểu diễn ở trong máy
3 Chức năng của hệ quản trị cơ sở dữ liệu
a Thiết lấp cơ sở dữ liệu : Gồm các giai đoạn
- Khai báo
- Định nghĩa
Trang 5- Nạp dữ liệu vào cơ sở dữ liệu
b Cập nhật dữ liệu:
- Bổ sung dữ liệu vào cơ sở dữ liệu,
- Loại bỏ dữ liệu khỏi cơ sở dữ liệu,
- Sửa dữ liệu trong cơ sở dữ liệu
c Khai thác dữ liệu trong cơ sở dữ liệu
- Tìm kiếm thông tin theo yêu cầu,
- Kết xuất thông tin theo yêu cầu
I.2 KHÁI QUÁT CHUNG VỀ MÔ HÌNH DỮ LIỆU
Thông thường việc thiết kế và xây dựng các hệ thống thông tin quản lý,chúng ta cần xử lý các tệp (tệp ) dữ liệu, các tệp này bao gồm nhiều bản ghi( record ) và có cùng cấu trúc xác định Đồng thời, mỗi bản ghi được phân chiathành các trường dữ liệu Mỗi cơ sở dữ liệu là một hệ thống các tệp dữ liệu , mỗitệp này có cấu trúc bản ghi khác nhau
Mỗi hệ quản trị cơ sở dữ liệu là một hệ thống quản lý và điều hành các tệp
dữ liệu
Trong quá trình thiết kế và xây dựng các hệ quản trị cơ sở dữ liệu, người tatiến hành xây dựng các mô hình dữ liệu Mô hình dữ liệu phải thể hiện được bảnchất mối quan hệ cơ bản của các dữ liệu mà dữ liệu này phản ánh các mối quan hệ
và các thực thể trong thế giới thực Có thể thấy mô hình dữ liệu phản ánh khía cạnhcấu trúc logíc mà không đi vào khía cạnh vật lý của cơ sở dữ liệu
Yếu tố quan trọng nhất của cấu trúc cơ sở dữ liệu là dạng cấu trúc dữ liệulưu trữ được mô tả Có thể thấy rằng loại dữ liệu nền tảng của việc mô tả các mốiquan hệ là loại bản ghi Bởi vì các ràng buộc giữa các loại bản ghi tạo ra bản chấtcấu trúc cơ sở dữ liệu Vì thế dựa trên việc xác định các ràng buộc giữa các loại dữ
Trang 6liệu được cho như thế nào mà chúng ta phân loại các mô hình dữ liệu Có nghĩa là
từ cách nhìn của người sử dụng việc mô tả các dữ liệu và các ràng buộc giữa các
dữ liệu được thực hiện như thế nào Hiện nay đã có nhiều loại mô hìmh dữ liệu.Bốn
loại mô hình dữ liệu đang được sử dụng rộng rãi là: Mô hình phân cấp, Mô hìnhmạng, Mô hình quan hệ, Mô hình hướng đối tượng
I.2.1 Mô hình phân cấp [6]
Mô hình dưc liệu là một cây, trong đó các nút biểu diễn các tập thực thể,giữa các con và nút cha được liên hệ theo một mối quan hệ xác định ( Dựa trên cấutrúc cây)
Ví dụ hình sau: Gốc Alà thực thể lớn, ta chia thực thể A làm 3 thực thể nhỏhơn là B,C,D Trong đó thực thể B ta lại chia ra làm 3 thực thể nhỏ hơn là G,H,I,tương tự C có hai thực thể nhỏ là K và L, và D có 3 thực thể nhỏ là M,N và P
D
C
E
Trang 7Ví dụ: Mô tả cho mô hình dữ liệu mạng: Cho 5 đỉnh A,B,C,D,E Các đỉnh
này nối với nhau bởi các đường, trong đó đỉnh A gọi là tệp dữ liệu lớn được phânchia thành các tệp dữ liệu nhỏ hơn Tương tự ta có các đỉnh tiếp theo được thể hiệngiống như đỉnh A và chúng được biểu diễn như hình trên
I.2.3 Mô hình quan hệ [6]
Mô hình này dựa trên cơ sở khái niệm lý thuyết tập hợp của các quan hệ, tức
là tập các k _ bộ với k là cố định, các ràng buộc trên được thể hiện qua các quan hệ(bảng )
I.2.4 Mô hình hướng đối tượng
Hệ thống được xem như là tập các thực thể ( Đối tượng ), tác động qua lạivới nhau thông qua các thông báo để thực hiện các nhiệm vụ đặt ra Đây là môhình mới đang được tập trung nghiên cứu và phát triển ứng dụng
Trong 4 loại mô hình trên thì mô hình quan hệ có nhiều ưu điểm và đượcnhiều người quan tâm hơn cả, bởi lẽ mô hình dữ liệu quan hệ có tính độc lập dữliệu rất cao, lại rễ sử dụng Điều quan trọng hơn cả là mô hình quan hệ được hìnhthứ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
Mô hình dữ liệu quan hệ là một mô hình rất tiện lợi để mô tả cấu trúc Logíccủa các cơ sở dữ liệu Như vậy, ở mức logíc mô hình bao gồm các tệp được biểudiễn dưới dạng các bảng Do đó đơn vị cơ sở dữ liệu quan hệ là một bảng, trong đócác dòng của bảng là các bản ghi dữ liệu cụ thể ( đó là các thể hiện cụ thể của cácbản ghi ) còn tên các cột trong bảng là các thuộc tính
Trang 8Trên cơ sở mô hình dữ liệu quan hệ, đến nay đã phát triển thêm một số loại
mô hình khác nhau 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 như mô hình quan hệ thực thể ( Entily Relationship Model), mô hình dữliệu hướng đối tượng ( Object Oriented Model ),
Theo cách nhìn của người sử dụng thì một cơ sở dữ liệu quan hệ là một tậpcác bảng biến đổi theo thời gian
Với ưu điểm về tính cấu trúc đơn giản và khả năng hình thức hoá phong phú
cơ sở dữ liệu quan hệ dễ dàng mô phỏng các hệ thống thông tin tiết kiệm có tính
độc lập cao, dễ sửa đổi, bổ xung cũng như khai thác dữ liệu Mặt khác, việc khaithác và áp dụng kĩ thuật tổ chức và sử dụng bộ nhớ cho phép cài đặt các cơ sở dữliệu quan hệ đem lại hiệu quả cao và làm cho cơ sở dữ liệu khẳng định được ưu thếcủa mình trên thị trường
Trang 10CHƯƠNG II : CÁC PHỤ THUỘC HÀM
Đặt vấn đề:
- Khái niệm thực thể: Là đối tượng có trong thực tế mà chúng ta cần khảo sát và
giải quyết nhiều vấn đề liên qua đến đối tượng này
Ví dụ: Thực thể sinh viên, thực thể con người, thực thể hệ thống kế toán tài
Nếu một thực thể được mô tả bằng một tệp dữ liệu thì các thuộc tính được
mô tả bằng các trường dữ liệu Như vậy thực thể là một bảng thì thuộc tính là mộtcột trong bảng đó
Tổng công đoàn
Hội phụ nữ
Các ban
Trang 11- Thể hiện của một thực thể: Một mô tả cụ thể của thực thể đó Nếu thực thể là
một tệp dữ liệu thì thể hiện là một dòng ( bản ghi ) của tệp dữ liệu đó
Từ ví dụ thực thể Sinh viên trên chúng ta mô tả một cách tổng quát cácthuộc tính của thực thể
.
Dễ thấy rằng thực thể sinh viên trên chính là tệp dữ liệu mô tả về thông tincủa các Sinh viên của một trường nào đó, với năm thuộc tính cụ thể gồm: Mã_sv,Họ_tên, Giới_tính, Năm_sinh, Quê_quán Trong tệp dữ liệu trên có 20 bản ghi
II.1 PHỤ THUỘC HÀM
II.1.1 Khái niệm về phụ thuộc hàm
Trên cơ sở nghiên cứu tệp dữ liệu người ta định nghĩa chính xác tệp dữ liệunhư sau ( đôi khi người ta còn gọi là quan hệ )
Cho trước R = { a1, a2, , an } là tập hữu hạn và không rỗng, nó được gọi làtập các thuộc tính Mỗi thuộc tính ai ( i = 1,2, ,n ) là một miền giá trị D(ai ) vàD(ai) có thể trùng nhau được Khi đó r = { h1,h2, ,hm } được gọi là các tệp dữliệu quan hệ nếu h:
R D, ai R(aI)
Trang 12Với điều kiện hj( ai ) D(aI)
Ví dụ: Sinh viên = {Mã_sv, Họ_tên, }
Với định nghĩa này chúng ta lập được một bảng tương đương sau:
II.1.2 Định nghĩa phụ thuộc hàm
Cho trước R = { a1, a2, , an }là tập các thuộc tính và r = { h1, h2, , hm }.Giả sử A,B R Khi đó ta nói rằng B phụ thuộc hàm vào A hoặc A xácđịnh hàm vào B :
Trang 13Nếu mọi hi, hj r ta có ( a A mà hi(a) = hj(a)) => ( bB ( hi(b) = hj(b))) AB
Có thể thấy rằng, B mà phụ thuộc hàm vào A nếu hai dòng bất kỳ mà các giátrị của tập thuộc tính A bằng nhau từng cặp một thì kéo theo các giá trị trên tậpthuộc tính B cũng phải bằng nhau từng cặp một
Ví dụ: Trong quan hệ Xe_máy có các thông tin về số xe, mác của xe, màucủa xe, giá xe, năm sản xuất
Theo định nghĩa, trong quan hệ trên, nếu số xe xác định màu xe thì khi biết
số xe người ta biết ngay được màu của xe, giá trị về màu này là duy nhất
Số xe Màu
Số xe Giá Mác Giá Định nghĩa phụ thuộc hàm là rất quan trọng, nó nói lên mối quan hệ ngữnghĩa trong nội bộ một tệp dữ liệu Mối quan hệ ngữ nghĩa này được thể hiện giữacác tập cột Ngoài phụ thuộc hàm ra, hiện nay người ta đã phát hiện ra trên bamươi loại phụ thuộc dữ liệu Người ta cũng chỉ ra tương ứng mỗi phụ thuộc dữ liệu
ấy là một lớp bài toán có trong thực tiễn Nhưng phổ thông nhất vẫn là phụ thuộchàm, vì nó đơn giản và nó phổ thông theo nghĩa nếu tập cột A xác định hàm vớitập cột B có nghĩa rằng A là xác định duy nhất B
Giả sử: f(x1) = y1, f(x2) = y2 Nếu x1 = x2 f(x1) = f(x2) y1 = y2
Trang 14Với ý nghĩa đơn giản và phổ thông như vậy Chỉ có phụ thuộc hàm mới đưa
ra được thương trường
II.1.3 Định nghĩa hệ tiên đề Amstrong cho phụ thuộc hàm
Gọi F là tập tất cả các phụ thuộc hàm đối với lược đồ quan hệ R, và XY làmột phụ thuộc hàm, X,Y là tập con của R Nói rằng X Y được suy diễn logíc từ
F nếu mối quan hệ r trên R đều thoả mãn các phụ thuộc hàm của F thì cũng thoảmãn X Y[3]
Chẳng hạn F = {A B, B C } thì A C suy ra từ F
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ễnlogíc từ F Nếu F = F+ thì F là họ đầy đủ của các phụ thuộc hàm
Gọi R = {A1,A2, ,An}là tập các thuộc tính X,Y,Z,W R
Hệ tiên đề Amstrong bao gồm :
A1(phản xạ): Nếu Y X thì XY
A2(tăng trưởng):Nếu Z R, XY thì XZ YZ
A3(bắc cầu):Nếu XY, YZ thì XZ
Trang 15Bổ đề 1:
Hệ tiên đề Amstrong là đúng Có nghĩa là F là tập phụ thuộc hàm đúng trênquan hệ r Nếu XY là một phụ thuộc hàm được suy dẫn từ F nhờ hệ tiên đềAmstrong thì XY là đúng trên quan hệ r
Chứng minh: Lần lượt kiểm tra tính đúng đắn của ba đề A1,A2,A3
A1: Tiên đề A1 rõ ràng là đúng vì không thể có hai bộ bằng nhau trên X màlại không bằng nhau trên tập con của nó
A2: Giả sử rằng quan hệ r thoả XY
Tồn tại hai bộ t,u sao cho t[XZ] = u[XZ] mà t[YZ] = u[YZ] Vì rằng t[Z] =u[Z] nên để có t[YZ] # u[YZ] thì t[Y] # u[Y] Nhưng vì t[X] = u[X]nên t[Y] # u[Y]
là trái với giả thiết XY Với t[YZ] = u[YZ]
A3: Cho XY và YZ đúng trên quan hệ r Giả sử tồn tại hai bộ t và u rsao cho t[X] = u[X] và t[Z] # u[Z]
Từ XY suy ra t[X] = u[X] nên t[Y] = u[Y]
Nhưng lại có t[Y] = u[Y] và t[Z] # u[Z] là trái với giả thiết X Y
Do vậy t[Z] = u[Z] Suy ra X Z đúng trên quan hệ r
Bổ đề 2:
a Luật hợp: nếu X Y và X Z thì X YZ
b Luật tựa bắc cầu: nếu X Y và WY Z thì XW Z
c Luật tách: nếu X Y và Z Y thì X Z
Chứng minh:
a Từ X Y dùng luật tăng trưởng, thêm X ta có X XY
khi X Z, dùng luật tăng trưởng thêm Y ta có XY YZ
Và cuối cùng dùng luật bắc cầu suy ra cho X XY và XY ZX có XYZ
Trang 16b Từ X Y dùng luật tăng trưởng thêm W có WX WY Dùng luật bắccầu cho WX WY và WY Z suy ra WX Z
c Vì Z Y nên X Z ( theo luật phản xạ )
Dùng luật bắc cầu cho X Y và Y Z có X Z
Một hệ quả quan trọng của luật tách và luật hợp là nếu X Y suy ra XAi
Bổ đề 3:
X Y suy diễn từ hệ tiên đề Amstrong khi và chỉ khi Y X+
Chứng minh:
Giả sử Y = A1,A2,, ,An với A1,A2,, ,An là các thuộc tính và Y X+
Từ định nghĩa X+ có XAi , áp dụng hệ tiên đề Amstrong cho mỗi i cóXAi, Ai Y, nhờ luật tách Từ đó suy ra Y X+
Định lý 1:
Hệ tiên đề Amstrong là đúng và đầy đủ
Chứng minh:
Trang 17Tính đúng đắn của hệ tiên đề đã được chứng minh qua bổ đề 1.ở đây chỉ cầnchứng minh tính đầy đủ tức là nếu XY không thoả trên r thì XY không thể suydiễn từ F.
Gọi F là tập các phụ thuộc hàm trên tập thuộc tính R Giả sử rằng XY làkhông thể suy dẫn được từ hệ tiên đề Xét quan hệ r gồm hai tập sau:
Các thuộc tính thuộc X+ Các thuộc tính còn lạiTrước hết cần chỉ ra rằng tất cả các phụ thuộc hàm thuộc F đều thoả r Thậtvậy, giả sử (VW) F nhưng không thoả trên r Do đó V X+
, hoặc hai bộ của r
sẽ không bằng nhau ít nhất trên một thuộc tính của V Như vậy W không thể là tậpcon của X+ hoặc V W thoả trên r
Gọi A W nhưng A không thuộc X+ Vì XV X+, XV suy ra từ bổ đề 3 ( XV F ) do vậy, nhờ luật bắc cầu suy ra XA, nhưng do A không thuộc X+
như giả thiết, do vậy là mâu thuẫn Từ đó kết luận rằng mỗi (VW) F đề thoảtrên r
Bây giờ cần chứng minh rằng XY không thoả trên r Giả sử rằng XY làthoả trên r Như trên có X X+ và suy ra Y X+, nếu không hai bộ là bằng nhautrên X nhưng không bằng nhau trên Y Theo bổ đề 3 thì XY có thể suy ra được
từ hệ tiên đề, điều đó là hoàn toàn mâu thuẫn Do vậy XY không thể đúng trên r.Đến đây có thể kết luận rằng: Nếu XY không suy dẫn được từ hệ tiên đềAmstrong thì XY không suy dẫn logíc được từ F Hệ tiên đề đầy đủ
II.1.4 Phủ của các tập phụ thuộc hàm
Trang 18Cho tập phụ thuộc hàm F, hãy thay thế F bằng phụ thuộc G sao cho G vẫnđảm bảo đúng chức năng của F Khi đó ta gọi G là phủ của tập phụ thuộc hàm F.
Bổ đề 4:
Mỗi ttập phụ thuộc hàm F đều được phủ bằng tập các phụ thuộc hàm G saocho G mà vế phải các phụ thuộc hàm đó bao gồm không quá một thuộc tính
Chứng minh:
Gọi G là tập các phụ thuộc hàm XA sao cho với XY thuộc F thì A Y
Từ XY suy ra XA (theo luật tách)
Do vậy G F+
Ngược lại, có F G+ vì nếu Y = A1, ,An thì XY được suy ra
XA1, , XAn nhờ luật hợp
Để có thể phục vụ quá trình thiết kế lược đồ cơ sở dữ liệu, sau đây sẽ đưa ramột số khái niệm
Gọi các tập phụ thuộc hàm F là tối thiểu nếu :
a/ Mỗi vế phải của một phụ thuộc hàm F chỉ có một thuộc tính
b/ Không tồn tại một phụ thuộc hàm XA thuộc F mà
II.1.5 Định nghĩa sơ đồ quan hệ
Trang 19Cho trước R = { a1, a2, , an }
A,B R, đặt A B là một phụ thuộc hàm
Khi đó S là một sơ đồ quan hệ nếu:
S = < R,F > trong đó F = <A1B1, ,AtBt>
F gồm t phụ thuộc hàm thì tập ấy gọi là sơ đồ quan hệ t phụ thuộc hàm này
do người thiết kế đặt ra, dựa trên cơ sở nội dung của các cột a1,a2, ,an
Sơ đồ quan hệ đó là đầu biểu ( cấu trúc tệp ) cộng với các ràng buộc logíc(các phụ thuộc hàm ) do người thiết kế đề xuất ra ,các phụ thuộc hàm này làmnhiệm vụ không chỉ phân tích mối quan hệ lôgíc mà còn kiểm tra tính đúng đắncủa dữ liệu nữa
II.1.6 Định nghĩa khoá
Cho trước r = {h1,h2, ,hm} là tệp dữ liệu trên tập thuộc tính R = { a1, a2, ,
an}
Khi đó A R được gọi là khoá của tệp dữ liệu r nếu AR.sao cho bất kỳ
hai bộ khác nhau t1,t2 r luôn thoả mãn
t1(A) t2(A)
- A là khoá tối tiểu nếu :
ARKhông tồn tại A’ sao cho A’
Trang 20A là k hoá tối tiểu của s nếu :
Xi măngThépTấm lợp
200015001000
Trong ví dụ này biểu diễn quan hệ Hàng_hoá, trong đó MSMH là khoá Mỗigiá trị MSMH đều xác định duy nhất một loạI mặt hàng trong quan hệ Hàng_hoá
II.1.7 Định nghĩa bao đóng
Cho trước S = <R,F> là sơ đồ quan hệ với R = {a1,a2, ,an} là tập hữu hạncác thuộc tính Trong đó F = <A1B1, ,AtBt> Và A R Khi đó bao đóngcủa A trong S là A+
Trang 21Nếu A là một tập bất kỳ ( tập cột bất kỳ ) thì A+ là tập hợp tất cả những cột
mà phụ thuộc hàm vào A trong sơ đồ quan hệ S, chúng ta có A+
r là tập hợp tất cảcác cột mà phụ thuộc hàm vào {a} trong tệp dữ liệu r Dễ thấy rằng theo hệ tiên đềcủa Amstrong thì
A A+
A A+
r
Trên cơ sở địmh nghĩa này chúng ta có các kết quả sau :
Giả sử S = <R,F > là sơ đồ quan hệ
AB F <=> B A+
Cho r = {h1,h2, hm }là tệp dữ liệu trên R = {a1,a2, ,an}
ta có AB (B phụ thuộc hàm r vào A) <=> B A+
r
Kết quả này nói lên rằng một tập B nào đó mà phụ thuộc và tập A khi và chỉkhi B là tập con của bao đóng của A Nhờ có kết quả này, người ta không cần phảilưu trữ tất cả các phụ thuộc hàm của một tệp dữ liệu hoặc của một sơ đồ quan hệ(số lượng này như chúng ta đã biết có thể là một hàm số mũ ) mà vẫn kiểm trađược hai tập thuộc tính bất kỳ (hai tập cột bất kỳ ) có phụ thuộc hàm với nhau haykhông, bằng cách kiểm tra một tập này có phải là tập con của tập kia hay không Vìvậy chúng ta chúng ta phải tính được bao đóng của một tập cột bất kỳ Nói cáchkhác chúng ta phải tính được A+
Người ta đã tìm ra được hai thuật toán để tính A+ và A+
r với thời gian tính là
đa thức sẽ được trình bầy ở chương sau
II.2 CÁC PHÉP TOÁN TRÊN CƠ SỞ DỮ LIỆU QUAN HỆ
II.2.1 Phép chèn (Insert)
Phép chèn là phép thêm một bộ vào quan hệ r{A1,A2, ,An} có dạng: r =rt
Trang 221 Bộ mới thêm vào là không phù hợp với lược đồ quan hệ cho trước;
2 Một số giá trị của một số thuộc tính nằm ngoài miền giá trị của bộ đó;
3 Giá trị khoá của bộ mới có thể là giá trị đã có trong quan hệ đang lưu trữ
Do vậy, tuỳ từng hệ cụ thể sẽ có từng cách khắc phục riêng
II.2.2 Phép loại bỏ (Del)
Phép loại bỏ là phép xoá một bộ ra khỏi quan hệ cho trước Giống như phépchèn, phép loại bỏ có dạng: r = r – t
DEL(r; A1 = d1, A2 = d2, , An = dn ) hoặc
DEL( r; d1,d2, ,dn)
Ví dụ: Loại bỏ bộ t2 từ quan hệ Sinh_viên ở ví dụ trước:
Del(Sinh_viên; 372013, Trần hà, 1976, NN, 6.95 )
Trang 23Tất nhiên không phải lúc nào phép loại bỏ cũng cần đầy đủ thông tin về bộcần loại bỏ Nếu có giá trị về bộ đó tại các thuộc tính khoá K ={B1, ,Bi}khi đóphép loại bỏ chỉ cần viết :
DEL( r; B1 = e1,B2 = e2, , Bi = ei )
II.2.3 Phép thay đổi (CH)
Trong thực tế không phải lúc nào cũng chỉ dùng phép chèn hoặc loại bỏ đimột bộ mà nhiều khi chỉ cần sửa đổi một số giá trị nào đó tại một số thuộc tính, lúc
đó cần thiết phải sử dụng phép thay đổi
Gọi tập {C1,C2, ,Cp}là tập các thuộc tính mà tại đó các giá trị của bộ cầnthay đổi, khi đó phép thay đổi có dạng : r = r \ t t’
CH( r; A1 = d1, A2 = d2, ,An = dn; C1 =e1, C2 = e2, Cp = ep)
Nếu K = {B1,B2, ,Bm}là khoá của quan hệ, khi đó chỉ cần viết :
CH( r; B1 = d1, B2 = d2, ,Bm = dm; C1 = e1, C2 = e2, ,Cp = ep )
Ví dụ:
Phép thay đổi là phép tính rất thuận lợi hay dùng Cũng có thể không dùngphép thay đổi mà dùng tổ hợp của phép loại bỏ và phép chèn bộ mới Do đó nhữngsai sót của phép thay đổi cũng sẽ xảy ra tương tự như phép chèn và phép loại bỏ
II.3 CÁC PHÉP TÍNH XỬ LÝ BẢNG
Yêu cầu bài toán:
Trong phần này chúng ta sẽ khảo sát một số phép toán sử lý bảng ( Tệp dữliệu ) Chúng tạo nên ngôn ngữ xử lý dữ liệu Ngôn ngữ xử lý dữ liệu là một ngônngữ quan trọng trong hệ quản trị cơ sở dữ liệu ngững hệ quản trị Cơ sở dữ liệu này
là những công cụ sắc bén cho chúng ta trong quá trình xử lý, đặc biệt là xử lýthông tin trong các hệ thông tin quản lý như: SQL for Windows, Orcale, IBMDB2, Foxpro, Access,
Trang 24Ngôn ngữ xử lý dữ liệu đều dựa trên mô hình dữ liệu quan hệ Trong đó hạtnhân chủ yếu là tệp dữ liệu (bảng) Chúng ta sẽ khảo sát những phép toán xử lý tệp
dữ liệu cơ bản nhất của cái nằm trong ngôn ngữ xử lý dữ liệu này Các phép toánnày được đề xuất bởi người sáng lập ra mô hình dữ liệu quan hệ
Các phép toán xử lý tệp dữ liệu sau đây được chắt lọc từ ngôn ngữ xử lý dữliệu (Ngôn ngữ đại số quan hệ)
Đại số quan hệ như là cơ sở của ngôn ngữ bậc cao để thao tác trên quan hệ.Người khai thác cơ sở dữ liệu phải nêu ra những câu hỏi diễn tả yêu cầu tìm kiếmthông tin, kết xuất thông tin Đại số quan hệ cung cấp các phép toán để đáp ứngnhu cầu trên
Gọi r là một quan hệ trên tập thuộc tính R = {A1, ,An}
ở đây luôn giả thiết rằng quan hệ r là tập hữu hạn các bộ Đối với các phéphợp, giao và trừ, hai quan hệ tham gia phải là khả hợp
Cho trước hai quan hệ
Từ hai quan hệ trên ta có các phép tính sau:
II.3.1 Phép hợp
Giả sử r và t là hai tệp dữ liệu cùng có n cột , trong ví dụ trên thì r và t có 3cột Khi đó quan hệ r t là một quan hệ (tệp dữ liệu ) cũng n cột bao gồm các bảnghi (dòng) của cả r lẫn t Chú ý rằng những bản ghi giống nhau chỉ giữ lại một lần,nếu r và t là tệp dữ liệu có tên các cột khác nhau thì tệp dữ liệu hợp không ghi têncột nữa Nói cách khác là chỉ có khung mà thôi
Trang 25Phép toán này dùng để hoà lẫn hai tệp dữ liệu có cùng số cột Hai tệp nàyđều có cấu trúc cột như nhau, như vậy ta dùng phép hợp này thông thường đối vớihai tệp có cùng số cột cùng cấu trúc cột
Kí kiệu của phép hợp hai quan hệ : r t
Biểu diễn hình thức phép hợp có dạng: r t :={s : s r hoặc s t}
Từ hai quan hệ cho trước ta có phép hợp của hai quan hệ r và t:
rt: =
II.3.2 Phép trừ
Được thực hiện như phép hợp, kết quả của phép trừ là lấy những dòng thuộc
r nhưng không thuộc t Trong trường hợp tên cột khác nhau thì kết quả không cótên cột
Ký hiệu phép trừ của hai quan hệ r và t: r \ t
Phép trừ dùng để chắt lọc những dòng của tệp dữ liệu r mà không được phép
có mặt trong tệp dữ liệu t
Từ hai quan hệ cho trước ở trên, ta có phép trừ của r và t
r \ t : =
II.3.3 Phép giao
Giả sử hai quan hệ r và t là hai tệp dữ liệu n cột khi đó quan hệ giao là quan
hệ n cột bao gồm các dòng có mặt trong cả r lẫn t Trong trường r và t có tên cộtkhác nhau thì các cột của tệp dữ liệu giao không có tên
Ký hiệu phép giao của hai quan hệ r và t: r t
Trang 26Từ hai quan hệ cho trước ở trên, ta có phép giao của r và t
Ký hiệu phép tích Đề các của hai quan hệ r và t: r x t
Từ hai quan hệ cho trước ở trên, ta có phép tích Đề các của r và t:
Trang 27II.3.5 Phép chiếu
r là tệp dữ liệu n cột Kí hiệu i1,i2, ip(r) là phép chiếu lên tệp dữ liệu r Ở đâyi1,i2, ,ip là p số chỉ thứ tự cột mà chúng ta muốn lấy ra khỏi r và hình thành mộttệp dữ liệu gồm p cột đó
Nếu có nhiều dòng giống nhau thì ta chỉ lấy một dòng
Phép chiếu là phép phổ biến nhất dùng để nhặt ra một số các cột trong mộttệp dữ liệu cho trước
II.3.6 Phép chọn
Cho tệp dữ liệu n cột , gọi F(r) là phép chọn
F: Là biểu thức điều kiện
Các phép so sánh trong biểu thức F la: <, >, >=, <=, =, , ;Các phép logíc
Trang 28Hình thức phép chọn được định nghĩa như sau:
F(r) = {t r : F(t) = đúng }F(t) được hiểu là các giá trị của các thuộc tính xuất hiện trong biểu thức F tại
bộ t thoả mãn các điều kiện của F Kết quả của phép chọn là hình thành ra một tệp
dữ liệu mới có cấu trúc và số cột như tệp dữ liêụ cũ, nhưng dòng phải thoả mãnđiềy kiện F
Ví dụ: Từ quan hệ r cho trên, chọn quan hệ r trên các thuộc tính (a1 = “1” a3 = “2”), ta được quan hệ mới có kết quả là số bộ giảm đi
Trang 29Bản chất của phép chia là các cặp n – m cột đầu tiên của quan hệ r phải đốichứng với quan hệ t Quan hệ này không phổ biến chủ yếu được dùng trong phântích dữ liệu, khi đối chứng giữa hai dữ liệu của hai tệp r và t.
II.3.8 Phép kết nối có điều kiện
Gọi r là tệp dữ liệu n cột và t là tệp dữ liệu m cột Ký pháp = {<, >, <=,
>=, } là các phép toán quan hệ số học
Khi đó phép kết nối có điều kiện với i và j là tên hoặc số cột tương ứng của r
và t thoả mãn điều kiện Ký hiệu là r >< t
Ví dụ: cho hai quan hệ:
Trang 30II.3.9 Phép kết nối tự nhiên
Cho trước r là tệp dữ liệu n cột, và t là tệp dữ liệu m cột Khi đó phép kết nối
tự nhiên là: r >< t Được thực hiện như sau
a r x t
b Giả sử r và t có p cột tên giống nhau Đó là các cột A1,A2, ,Ap.
Ký hiệu: B = r .A1 = t.A1 r.Ap = t.Ap