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

Báo cáo môn: Thiết kế cơ sở dữ liêu

15 8 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

Nội dung

Cấu trúc dữ liệu: Tất cả các thành phần AttSet (tập thuộc tính), AttSetList (danh sách các tập thuộc tính), FD (phụ thuộc hàm), FDSet (danh sách các phụ thuộc hàm hay tập phụ thuộc hàm) đều được tổ chức dưới dạng mảng Boolean với chiều dài tối đa là 255.

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA HỆ THỐNG THÔNG TIN Lớp: HTTT02 BÁO CÁO MÔN THIẾT KẾ CSDL GIÁO VIÊN HƯỚNG DẪN:Phan Nguyễn Thụy An Trương Quang Khánh MSSV: 07520175 Nguyễn Tùng Sơn MSSV: 07520305 Lê Quốc Vương MSSV: 07520423 TP.HCM, tháng 12 năm 2009 I Các thuật tốn cài cài đặt chương trình: Cấu trúc liệu: Tất thành phần AttSet (tập thuộc tính), AttSetList (danh sách tập thuộc tính), FD (phụ thuộc hàm), FDSet (danh sách phụ thuộc hàm hay tập phụ thuộc hàm) tổ chức dạng mảng Boolean với chiều dài tối đa 255 Tất phép toán liên quan đến quan hệ như: hợp, trừ, giao, so sánh bằng, xét thuật toán xây dựng dựa cấu trúc liệu dạng Các thuật toán: 2.1 Thuật tốn tìm bao đóng: +Input: _Tập thuộc tính cần tìm bao đóng (a) _Tập phụ thuộc hàm dựa để tìm bao đóng (fSet) _Chuỗi string chuỗi chứa tất tập thuộc tính quan hệ (u) +Output: _Tập thuộc tính bao đóng (X’) Tên hàm xây dựng tương ứng: Public Function closure(ByVal a As AttSet, ByVal fSet As FDSet, ByVal u As String) As AttSet +Thuật toán: _B1: Gán X’=A (với A tập thuộc tính cần tìm bao đóng) _B2: Do { X=X’ Với phụ thuộc hàm (PTH) p->q thuộc fSet {If (p với X’) X’=X’ hợp với {q} } }while(X’ không U X khơng X’) _B3: Trả X’ 2.2 Thuật tốn kiểm tra phụ thuộc hàm thành viên: +Input: _PTH cần kiểm tra thành viên (f) _Tập PTH dựa để kiểm tra thành viên (fSet) _Chuỗi string chuỗi chứa tất tập thuộc tính quan hệ (u) +Output: _Giá trị True/False +Tên hàm xây dựng tương ứng: Public Function FDMember(ByVal f As FD, ByVal fSet As FDSet, ByVal u As String) As Boolean +Thuật toán: _B1: Với PTH p->q fSet {Nếu tồn p = vế trái f q = vế phải f Trả True } _B2: Nếu vế phải f không thuộc tập u Trả False _B3: Đặt Temp = fSet – f left = vế trái f right = vế phải f Nếu right bao đóng left dựa tập PTH Temp Trả True Ngược lại Trả False 2.3 Thuật tốn tìm khóa: +Input: _Tập PTH dựa để tìm khóa (fSet) _Chuỗi string chuỗi chứa tất tập thuộc tính quan hệ (u) +Output: _Danh sách khóa quan hệ (Key) +Tên hàm xây dựng tương ứng: FindKey(ByVal fSet As FDSet, ByVal u As String) As AttSetList +Thuật toán: _B1: Gán tập thuộc tính sau: Trái: Tập chứa tất thuộc tính nằm bên vế trái tất PTH fSet Phải: Tập chứa tất thuộc tính nằm bên vế phải tất PTH fSet Gốc = Trái-phải Treo = u-(Trái hội Phải) Trung gian = Trái giao Phải _B2: Đặt danh sách khóa cần tìm Key, khóa tạm thời K, danh sách khóa tạm thời KeyTemp _B3: K = Gốc hội Treo If bao đóng K = u Thêm K vào Key Trả Key Ngược lại làm B4 _B4: Tìm tất tập khác rỗng tập Trung gian Với tập a { If bao đóng (a hội với K) = u Thêm (a hội K) vào KeyTemp } _B5: Với tập khóa sK thêm vào KeyTemp { If không tồn tập KeyTemp không sK Thêm sK vào Key } Trả Key 2.4 Thuật tốn tìm phủ tối tiểu: +Input: _Tập PTH dựa để tìm phủ tối tiểu (PTT) cho (fSet) _Chuỗi string chuỗi chứa tất tập thuộc tính quan hệ (u) +Output: _1 PTT tìm +Tên hàm xây dựng tương ứng: Public Function MinimalCover(ByVal fset As FDSet, ByVal u As String) As FDSet +Thuật toán: _B1: Với PTH f fSet, tách vế phải f dạng vế phải chứa thuộc tính _B2: Loại bỏ PTH dư thừa: Với PTH f tập PTH fSet vừa thực B1 { Đặt fTemp = fSet-f, left vế trái f, right vế phải f Nếu right (bao đóng left dựa fTemp) f PTH dư thừa Loại bỏ f khỏi fSet } _B3: Loại bỏ PTH không đầy đủ: Với PTH f mà vế trái f có nhiều thuộc tính tập PTH fSet vừa thực B2 { Đặt fTemp = fSet-f, left vế trái f 7 Với thuộc tính a left { Đặt sleft = left -a If a (bao đóng sleft dựa fTemp) Loại a khỏi left } } _B4 : Lặp lại B2 để loại bỏ dư thừa trường hợp B3 sinh PTH dư thừa _B5 : Gom PTH có vế trái để thu gọn tập PTH 2.5 Thuật toán kiểm tra dạng chuẩn 2: +Input: _Tập PTH dựa để kiểm tra dạng chuẩn (fSet) _Danh sách khóa quan hệ (key) _Chuỗi string chuỗi chứa tất tập thuộc tính quan hệ (u) +Output: _Giá trị True/False +Tên hàm xây dựng tương ứng: Public Function twoNF(ByVal fSet As FDSet, ByVal key As AttSetList, ByVal u As String) As Boolean +Thuật toán: _B1: Đặt nK tập thuộc tính chứa thuộc tính khơng khóa quan hệ Với khóa K danh sách khóa (key) quan hệ { Tìm bao đóng tất tập thật (con khơng bằng) K } _B2: Với mội bao đóng S+ tìm B1 { Với mội thuộc tính a thuộc nK { If a S+ Trả False } } Trả True 2.6 Thuật toán kiểm tra dạng chuẩn 3: +Input: _Tập PTH dựa để kiểm tra dạng chuẩn (fSet) _Danh sách khóa qun hệ (key) +Output: _Giá trị True/False +Tên hàm xây dựng tương ứng: Public Function ThreeNF(ByVal fset As FDSet, ByVal key As AttSetList) As Boolean +Thuật toán: Với PTH f fSet { Đặt left = vế trái f, right = vế phải f Với tập khóa k key { If k left right k Return True } } Return False 2.7 Thuật toán kiểm tra dạng chuẩn BC: +Input: _Tập PTH dựa để kiểm tra dạng chuẩn (fSet) _Danh sách khóa qun hệ (key) +Output: _Giá trị True/False +Tên hàm xây dựng tương ứng: Public Function BC(ByVal fset As FDSet, ByVal key As AttSetList) As Boolean +Thuật toán: Với PTH f fSet { Đặt left = vế trái f Với tập khóa k key 10 { If k left Return True } } Return False 2.8 Thuật toán phân rã quan hệ thành quan hệ đạt dạng chuẩn 3, bảo toàn PTH bảo tồn thơng tin: +Input: _Tập PTH (fset) dựa để phân rã _Chuỗi string chuỗi chứa tất tập thuộc tính quan hệ (u) +Output: _1 Tập thuộc tính phân rã tìm _Tên hàm xây dựng tương ứng: Public Function Decomposition3NF(ByVal fset As FDSet, ByVal u As String) As AttSetList +Thuật tốn: _B1: Tìm phủ tối tiểu(PTT) fset.Các bước sau dựa PTT fset _B2: Nếu có phụ thc hàm(FD) fset chứa u trả u _B3 :Tìm thuộc tính treo, thuộc tính tạo thành quan hệ _B4:Với FD PTT có vế trái tạo thành quan hệ _B5:Tìm khóa Những khóa chưa thuộc quan hệ tạo thành quan hệ 11 2.9 Thuật toán phân rã quan hệ thành quan hệ đạt dạng chuẩn BC bảo tồn thơng tin: +Input: _Tập PTH (fset) dựa để phân rã _Chuỗi string chuỗi chứa tất tập thuộc tính quan hệ (u) +Output: _1 Tập thuộc tính phân rã tìm _Tên hàm xây dựng tương ứng: Public Function DecompositionBCNF(ByVal fset As FDSet, ByVal u As String) As AttSetList +Thuật tốn: _B1:  Tìm FD fset vi phạm điều kiện BC  Tách thành quan hệ.Loại khỏi u thuộc tính FD vi phạm  Đánh dấu FD ( không xét đến lần sau)có chứa thuộc tính vế phải FD tách thành quan hệ Lặp lại bước tất FD fset đánh dấu Lưu ý FD tách không loại bỏ fset, fset dùng đến B2 Nếu U khác rỗng sang bước _B2: X U ( lại sau B2) IF X+ X and X+ X ->( (X+ - X) U then U) vi phạm BC 12 U = U – ((X+ - X) U) Tạo quan hệ gồm X, (X+ - X) U Cuối If U then tạo quan hệ gồm thuộc tính cịn lại U 2.10 Thuật tốn kiểm tra bảo tồn phụ thuộc hàm sau phân rã: +Input: _Tập PTH dựa để kiểm tra (fSet) _.Tập thuộc tính quan hệ phân rã(R) _Chuỗi string chứa tất thuộc tính quan hệ (u) +Output: _Giá trị True/False _Tên hàm xây dựng tương ứng: Public Function PreserveDependency(ByVal fset As FDSet, ByVal R As AttSetList, ByVal u As String) As Boolean +Thuật toán: X -> Y fset A=X For each Ri R T = (A Ri)+ A=A T Cuối For each Ri 13 If Y A then Return false Cuối Return true II Cách ghi file txt để load chương trình: Cách 1: ABCDEFGH; A->B; C->D; E->F; ; ABC->G; Cách 2: ABCDEFGH; A->B;C->D;E->F; ;BC->G; III Phân công công việc: Trương Quang Khánh: _Cài đặt cấu trúc liệu cho thành phần: AttSet (tập thuộc tính), AttSetList (danh sách tập thuộc tính) xử lý liên quan (các phép toán cần thiết thao tác tập thuộc tính: hội, giao, hợp, trừ, ) _Nghiên cứu cài đặt thuật tốn tìm tập khác rỗng tập thuộc tính _Nghiên cứu cài đặt thuật tốn tìm khóa 14 _Nghiên cứu cài đặt thuật tốn tìm phủ tối tiểu _Nghiên cứu cài đặt thuật toán phân rã quan hệ thành dạng chuẩn BC _Nghiên cứu cài đặt thuật toán kiểm tra bảo toàn phụ thuộc hàm 2.Nguyễn Tùng Sơn: _Nghiên cứu thuật toán cấu trúc liệu _Nghiên cứu cài đặt thuật tốn tìm khóa _Nghiên cứu cài đặt thuật tốn tìm bao đóng _Cài đặt giao diện _Viết báo cáo 3.Lê Quốc Vương: _Cài đặt cấu trúc liệu cho thành phần: FD (phụ thuộc hàm), FDSet(danh sách phụ thuộc hàm) xử lý liên quan (các phương thức cần thiết thao tác phụ thuộc hàm: trừ, lấy giá trị, xuất chuỗi ) _Nghiên cứu cài đặt thuật tốn tìm bao đóng _Nghiên cứu cài đặt thuật toán kiểm tra phụ thuộc hàm thành viên _Nghiên cứu cài đặt thuật tốn tìm khóa _Nghiên cứu cài đặt thuật toán xác định dạng chuẩn _Cài đặt việc nhập/xuất liệu từ file 15 ... đặt giao diện _Viết báo cáo 3.Lê Quốc Vương: _Cài đặt cấu trúc liệu cho thành phần: FD (phụ thuộc hàm), FDSet(danh sách phụ thuộc hàm) xử lý liên quan (các phương thức cần thiết thao tác phụ thuộc... AttSet (tập thuộc tính), AttSetList (danh sách tập thuộc tính) xử lý liên quan (các phép toán cần thiết thao tác tập thuộc tính: hội, giao, hợp, trừ, ) _Nghiên cứu cài đặt thuật tốn tìm tập khác

Ngày đăng: 17/04/2021, 23:34

w