1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tìm hiểu các thuật toán chuẩn hóa lược đồ quan hệ và xây dựng ứng dụng bằng ngôn ngữ c

68 3 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 68
Dung lượng 894,48 KB

Nội dung

MỤC LỤC LỜI MỞ ĐẦU 1 Tổng quan tình hình nghiên cứu thuộc lĩnh vực đề tài ngồi nước Tính cấp thiết Mục tiêu Cách tiếp cận Phương pháp nghiên cứu Đối tượng nghiên cứu Phạm vi nghiên cứu Nội dung nghiên cứu CHƯƠNG TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU 1.1 Định nghĩa sở liệu 1.2 Tích Đề-các 1.3 Lược đồ quan hệ quan hệ 1.3.1 Lược đồ quan hệ 1.3.2 Quan hệ 1.3.3 Các phép toán quan hệ 1.4 Khóa siêu khóa quan hệ 11 1.4.1 Khóa (Key) 11 1.4.2 Siêu khóa (Super Key) 12 1.5 Ràng buộc toàn vẹn 13 1.5.1 Định nghĩa ràng buộc toàn vẹn 13 1.5.2 Định nghĩa 13 1.5.3 Ràng buộc toàn vẹn quan hệ 14 1.5.4 Ràng buộc toàn vẹn nhiều lược đồ quan hệ: 15 1.6 Kiểm tra rang buộc toàn vẹn 15 1.7 Phụ thuộc hàm 17 1.7.1 Định nghĩa 17 1.7.2 Định lý 2.1 17 1.7.3 Phụ thuộc hàm suy dẫn từ F – Bao đóng tập phụ thuộc hàm 17 1.7.4 Luật dẫn – Hệ tiên đề Armstrong 18 1.7.5 Bao đóng tập thuộc tính 18 1.7.6 Dựa vào bao đóng tập thuộc tính để xác định khóa 19 1.7.7 Dựa vào đồ thị tập thụ thuộc hàm để xác định khóa 19 1.7.8 Dựa vào đồ thị tập phụ thuộc hàm để xác định khóa 20 1.8 Phủ tập phụ thuộc hàm 20 1.9 Thuật giải tìm phủ tập phụ thuộc hàm 21 Chương CÁC DẠNG CHUẨN CỦA LƯỢC ĐỒ QUAN HỆ 24 Chuẩn hoá lược đồ quan hệ 24 2 Dạng chuẩn 26 Dạng chuẩn 28 Dạng chuẩn 30 Dạng chuẩn Boyce - Codd 31 Tách quan hệ tính khơng đầy đủ dạng chuẩn 33 Phép tách bảo toàn phụ thuộc 33 Chương XÂY DỰNG CHƯƠNG TRÌNH 44 3.1 Dạng chuẩn 44 3.2 Dạng chuẩn 45 3.3 Dạng chuẩn 47 3.4 Dạng chuẩn Boyce-Codd 53 KẾT LUẬN VÀ KIẾN NGHỊ 57 Kết luận 57 Kiến nghị 57 DANH MỤC TÀI LIỆU THAM KHẢO 58 Tài liệu tiếng Việt 58 Tài liệu tiếng Anh 58 Tài liệu từ website Error! Bookmark not defined PHỤ LỤC 59 DANH MỤC CÁC BẢNG Bảng 1.1 Thông tin lịch bay Bảng 1.2 Mô tả quan hệ r gồm p lược đồ R có n thuộc tính Bảng 1.3 Quan hệ Lichbay04-97(LICHBAY) Bảng 1.4 Bảng tầm ảnh hưởng 14 Bảng 3.1 Quan hệ chưa dạng chuẩn 1NF 44 Bảng 3.2 Quan hệ dạng chuẩn 1NF 45 DANH MỤC HÌNH Hình 3.1 Tệp văn đầu vào 45 Hình 3.2 Kết dạng chuẩn 46 Hình 3.3 Kết ví dụ 47 Hình 3.4 Kết ví dụ 47 Hình 3.5 Tệp văn đầu vào 48 Hình 3.6 Kết dạng chuẩn 50 Hình 3.7 Kết ví dụ 51 Hình 3.8 Kết ví dụ 52 Hình 3.9 Kết ví dụ 53 Hình 3.10 Tệp văn đầu vào 54 Hình 3.11 Kết dạng chuẩn Boyce - Codd 55 Hình 3.12 Kết ví dụ 56 KÝ HIỆU CÁC CỤM TỪ VIẾT TẮT TTTHDL : Trung tâm tích hợp liệu 1NF : Dạng chuẩn (1st Normal form) 2NF: Dạng chuẩn (2nd Normal form) 3NF: dạng chuẩn (3rd Normal form) 4NF: Dạng chuẩn (4th Normal form) 5NF: Dạng chuẩn (5th Normal form) BCNF: Boyce-Codd ( Boyce-Codd Normal form) CSDL: Cơ sở liệu RBTV: Ràng buộc toàn vẹn PTH: Phụ thuộc hàm LỜI MỞ ĐẦU Tổng quan tình hình nghiên cứu thuộc lĩnh vực đề tài nước 1 Trong nước Lê Tiến Vương (2000) quan hệ chuẩn hóa quan hệ miền thuộc tính chứa giá trị nguyên tố Một quan hệ chuẩn hóa thành nhiều quan hệ chuẩn hóa khác khơng làm mát thơng tin Tô Văn Nam (2005) thiết kế lược đồ quan hệ phải tuân theo số nguyên tắc để thao tác sở liệu không dẫn đến dị thường liệu Công việc thiết kế liệu theo dạng chuẩn gọi chuẩn hóa liệu Do việc cập nhật liệu gây nên dị thường, quan hệ thiết phải biến đổi thành dạng phù hợp, q trình gọi q trình chuẩn hóa Ngoài nước Moussa Demba (2013) sử dụng thuật tốn để chuẩn hóa sở liệu quan hệ liên quan đến dạng chuẩn 3NF Hiệu phương pháp đề xuất đánh giá nhiều ví dụ thực tế Khi nỗ lực thực để sửa đổi bảng chưa chuẩn hóa đầy đủ, tác dụng phụ khơng mong muốn xảy Điều định thêm dạng cập nhật, chèn xóa bất thường tùy thuộc vào việc hành động gây lỗi cập nhật hàng, chèn xóa tương ứng Nếu mối quan hệ R có nhiều khóa, khóa gọi khóa ứng cử viên R Hầu hết công việc thực tế gần chuẩn hóa sở liệu sử dụng định nghĩa hạn chế dạng thơng thường có khóa (khóa chọn tùy ý) tính đến bỏ qua phần cịn lại khóa ứng cử viên Tính cấp thiết Ngày ngành, lĩnh vực đời sống, khoa học kinh doanh áp dụng công nghệ thông tin vào quản lý nhiều lĩnh vực khác Hầu hết ứng dụng cần phải có sở liệu để lưu trữ liệu, xử lý thông tin, kết xuất đưa báo cáo thống kê, hỗ trợ tìm kiếm, Khi mà liệu trở thành linh hồn ứng dụng việc ứng dụng hoạt động tốt trước hết phải có sở liệu lưu trữ hiệu Nhưng việc chuẩn hóa sở liệu lại vấn đề đáng quan tâm Vì liệu đưa bị trùng lắp thông tin, không quán liệu, dị thường liệu Để giải tình trạng vừa nêu, chuẩn hóa liệu Chuẩn hóa q trình tách bảng (phân rã) thành bảng nhỏ dựa vào phụ thuộc hàm Mục đích chuẩn hóa loại bỏ dư thừa liệu lỗi thao tác dư thừa lỗi thao tác liệu (Insert, Delete, Update) Ngồi cịn giảm thiểu dư thừa liệu, loại bỏ bất thường cập nhật sở liệu Mục tiêu - Tìm hiểu, phân tích thuật tốn chuẩn hóa lược đồ quan hệ sở liệu - Tìm hiểu liệu cho thuật tốn - Tìm hiểu ngơn ngữ C# lập trình Visual studio đáp ứng thuật tốn - Lập trình, cài đặt chương trình đáp ứng yêu cầu chuẩn hóa lược đồ quan hệ Cách tiếp cận Thông qua nghiên cứu tài liệu giảng dạy môn sở liệu khảo sát thực tế môn học Khoa CNTT để xây dựng ứng dụng Phương pháp nghiên cứu Đề tài sử dụng chủ yếu phương pháp thực nghiệm mô máy tính Đối tượng nghiên cứu Sinh viên giảng viên ngành Công nghệ thông tin Phạm vi nghiên cứu Sinh viên ngành Công nghệ thông tin từ năm đến năm ba Giảng viên ngành Công nghệ thông tin Nội dung nghiên cứu Chương TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU Chương CÁC DẠNG CHUẨN CỦA LƯỢC ĐỒ QUAN HỆ Chương XÂY DỰNG CHƯƠNG TRÌNH Chương KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN CHƯƠNG TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU 1.1 Định nghĩa sở liệu CSDL (Cơ sở liệu) hệ thống thơng tin có cấu trúc lưu trữ thiết bị lưu trữ thông tin thứ cấp nhằm thỏa yêu cầu khai thác thông tin đồng thời nhiều người sử dụng hay nhiều chương trình ứng dụng với nhiều mục đích khác Điều cần lưu ý định nghĩa CSDL phải tập hợp thông tin mang tính hệ thống khơng phải thơng tin rời rạc, khơng có mối quan hệ với Các thơng tin phải có cấu trúc tập hợp thơng tin phải có khả đáp ứng nhu cầu khai thác nhiều người sử dụng cách đồng thời Đó đặc trưng CSDL Để dễ dàng cho việc giải thích khái niệm, trước hết ta xét ví dụ hệ thống bán vé máy bay hãng hàng không Để lựa chọn chuyến bay, khách hàng tham khảo lịch bay hãng Mỗi chuyến bay mối quan hệ thuộc tính: MÃ CHUYẾN BAY, LOẠI MÁY BAY, SÂN BAY ĐI, SÂN BAY ĐẾN, NGÀY BAY, GIỜ BAY, THỜI GIAN BAY Thông tin lịch bay lập theo bảng sau: Mã chuyến Loại Sân bay Sân bay Ngày Thời Giờ bay gian bay máy bay đến bay VN272 ATR72 SAI NHA 28-04-97 7h05ph 55 pt VN372 ATR72 NHA SAI 28-04-97 8h35ph 55 pt VNA32 A320A SAI HAN 28-04-97 7g10ph 1g35ph VN472 ATR72 SAI DAK 28-04-97 6g55ph 55 pt VNB77 BOE77 SAI HAN 28-04-97 7h25ph 1g25ph bay Hình 3.5 Tệp văn đầu vào Bước 1: Tìm khóa quan hệ: - Tìm giao khóa: X= ABCDEG – EDBAG = C C+ = {CBG} # U nên quan hệ có nhiều khóa {CA+}, {CB+}, {CD+}, {CE+}, {CG+} - Tìm bao đóng: {CA+}= {CAEDBG} = U Vậy khóa {CB+}= {CBG} # U Vậy khơng khóa {CD+}= {CDABGE} = U Vậy khóa {CE+}= {CEBG} # U Vậy khơng phải khóa {CG+}= {CGB} # U Vậy khơng phải khóa Vậy quan hệ có khóa tối thiểu là: CA, CD Bước 2: Tìm phụ thuộc hàm tối thiểu: - Tách phụ thuộc hàm : AC->E, AC->D, AC->B, D->A, C->B, C->G, B->G - Loại bỏ phụ thuộc hàm dư thừa: + Tìm bao đóng tách phụ thuộc hàm rồi: Khơng dùng AC->E tính: {AC+}= {ACDBAG} Khơng có E AC->E khơng thừa Khơng dùng AC->D tính: {AC+}= {ACEBG} Khơng có D AC->D khơng thừa 48 Khơng dùng AC->B tính: {AC+}= {ACEDBG} Có B AC->B thừa Khơng dùng D->A tính: {D+}= {D} Khơng có A D->A khơng thừa Khơng dùng C->B tính: {C+}= {CG} Khơng có B C->B khơng thừa Khơng dùng C->G tính: {C+}= {CBG} Có G C->G thừa Khơng dùng B->G tính: {B+}= {B} Khơng có G B->G khơng thừa Vậy F2= {AC->E, AC->D, D->A, C->B, B->G} - Kiểm tra vế trái dư thừa: AC->E: Thử bỏ A tính C+ ={CBG} khơng có E nên A khơng thừa Thử bỏ C tính A+ ={A} khơng có E nên C khơng thừa AC->D: Thử bỏ A tính C+ ={CBG} khơng có D nên A khơng thừa Thử bỏ C tính A+ ={A} khơng có D nên C khơng thừa Vậy F3= {AC->E, AC->D, D->A, C->B, B->G} Bước 3: Dạng chuẩn Khóa là: CA, CD U= ABCDEG - Kiểm tra khơng có thuộc tính U khác thuộc tính phụ thuộc hàm - Gộp vế trái phụ thuộc hàm - -> tách AC->ED R1(ACED) D->A R2(DA) C->B R3(CB) B->G R4(BG) Vậy để quan hệ R thành dạng chuẩn 3NF ta cần tách thành quan hệ sau: R1(ACED), R2(DA), R3(CB), R4(BG) 49 Hình 3.6 Kết dạng chuẩn Theo cách giải ta thử kiểm tra thêm vài ví dụ Ví dụ 1: Cho lược đồ quan hệ R(U, F) , U= ABCDE tập phụ thuộc hàm F={A->BCD, D->E} Chuẩn hóa dạng chuẩn 3NF 50 Hình 3.7 Kết ví dụ Ví dụ 2: Cho lược đồ quan hệ R(U, F) , U= ABCDEG tập phụ thuộc hàm F={A->BCDEG, C->EG} Chuẩn hóa dạng chuẩn 3NF 51 Hình 3.8 Kết ví dụ Tương tự ví dụ 2: Cho lược đồ quan hệ R(U, F) , U= ABCDGH tập phụ thuộc hàm F={AB->C, AB->D, AB->GH, G->DH} Chuẩn hóa dạng chuẩn 3NF 52 Hình 3.9 Kết ví dụ Như vậy, demo dạng chuẩn 3NF hoàn thành 3.4 Dạng chuẩn Boyce-Codd Cho lược đồ quan hệ R(U, F) U= ABCDEGH tập phụ thuộc hàm F= {AB->C, ABD->H, C->E, BD->GH } Chuẩn hóa dạng Boyce -Codd 53 Hình 3.10 Tệp văn đầu vào Tìm khóa quan hệ: Tìm giao khóa: X= ABCDEGH – CGEH = ABD Chỉ xét phụ thuộc hàm có vế trái phần khóa Tức khóa ABD phần khóa A B D AB AD BD tách nguyên phụ thuộc hàm làm bảng Nếu phụ thuộc hàm có vế trái ABD để ngun khơng tách thành bảng riêng Vì khóa ABD nên phụ thuộc hàm AB->C có vế trái AB nên tách AB->C Vì khóa ABD nên phụ thuộc hàm ABD->H có vế trái ABD nên khơng tách Vì khóa ABD nên phụ thuộc hàm C->E có vế trái C nên tách C->E để đặt dạng chuẩn Boyce - Codd Vì khóa ABD nên phụ thuộc hàm BD->GH có vế trái BD nên tách BD->GH 54 Sau tách xong lấy U trừ cho vế phải vừa tách Tức là: ABCDEGH – CEGH = ABD Vậy kết ta tách thành bốn bảng ABC, CE, BDGH ABD Hình 3.11 Kết dạng chuẩn Boyce - Codd Theo cách giải ta thử kiểm tra thêm vài ví dụ Ví dụ: Cho lược đồ quan hệ R(U, F) , U= ABCDE tập phụ thuộc hàm F={BC->AD, DC->E} Chuẩn hóa dạng chuẩn Boyce - Codd 55 Hình 3.12 Kết ví dụ 56 Chương KẾT LUẬN VÀ KIẾN NGHỊ Kết luận Từ tập B gồm n phần tử ta lập lên 2n-1 tập khác rỗng B Cho nên dù n số không lớn 2n-1 số tương đối lớn Do tốn tìm tất khố lược đồ quan hệ coi tốn khó (vì có độ phức tạp thuật tốn hàm mũ) Khơng phải lúc có khả tìm phép tách thành lược đồ quan hệ bảo toàn phụ thuộc lược đồ phép tách BCNF Các lược đồ quan hệ phép tách theo thuật toán thường 3NF Để có lược đồ BCNF, kiểm tra lược đồ quan hệ 3NF phép tách cách riêng rẽ để xem có thỏa mãn BCNF khơng Nếu có lược đồ quan hệ Ri khơng BCNF ta tách tiếp để nguyên 3NF Hệ thống chương trình xây dựng đáp ứng yêu cầu đặt đề tài Đáp ứng tương đối yêu cầu chuẩn hóa sở liệu vừa nhỏ Hệ thống xây dựng Windows nên giao diện thân thiện, nội dung rõ ràng, chức dễ hiểu dễ sử dụng Kiến nghị Phát triển ứng dụng thành ứng dụng hoàn chỉnh để việc chuẩn hóa liệu doanh nghiệp lớn Thử nghiệm số lớp để có kết thực nghiệm đào tạo lớp tài (nếu có) trước triển khai rộng rãi Đăng tải giảng, học liệu, tập nghiên cứu… trước sau áp dụng phần mềm Hiểu phần mềm để tự khắc phục khó khăn, tăng cường khả tự học, tự nghiên cứu 57 DANH MỤC TÀI LIỆU THAM KHẢO Tài liệu tiếng Việt − Lê Tiến Vương (2000) Nhập môn Cơ sở liệu quan hệ Thống kê − Nguyễn Bá Tường (2000) Lý thuyết Cơ sở liệu HVKTQS − Nguyễn Tuệ (2007) Giáo trình nhập mơn hệ Cơ sở liệu quan hệ Giáo dục − Tơ Văn Nam (2005) Giáo trình Cơ sở liệu Giáo dục Tài liệu tiếng Anh − Bahmani A., Naghibzadeh, M and Bahmani, B (2008) "Automatic database normalization and primary key generation", Niagara Falls Canada IEEE − Beynon-Davies, P (2004) Database systems, Palgrave Macmillan, Third edition, ISBN 1–4039—1601–2 − Moussa Demba (2013) Algorithm for relational database normalization up to 3nf, International Journal of Database Management Systems, Vol.5(3) − Michael J Hernandez (2013) Database Design for Mere Mortals: A Hands-On Guide to Relational Database Design, 3rd edition Addison-Wesley Professional − Thomas, C., Carolyn, B (2005) Database Systems, A Practical Approach to Design, Implementation, and Management, Pearson Fourth edition − Vangipuram, R., Velputa, R., Sravya, V (2011) "A Web Based Relational database design Tool to Perform Normalization", International Journal of Wisdom Based Computing, Vol.1(3) 58 PHỤ LỤC Class định nghĩa phụ thuộc hàm vế trái vế phải Tìm bao đóng 59 Tìm khóa 60 Phụ thuộc hàm có vế phải có thuộc tính khơng dư thừa Hàm hỗ trợ LeftWithChildRight Thêm phụ thuộc hàm vào tập phụ thuộc hàm xác định 61 Hàm hỗ trợ KiemTraPTHDuThua Phụ thuộc hàm có vế trái giống không dư thừa Hàm hỗ trợ ChoosingLeft 62

Ngày đăng: 27/07/2023, 23:23

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

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN

w