Xây dựng chương trình hỗ trợ thiết kế cơ sở dữ liệu

70 1.1K 4
Xây dựng chương trình hỗ trợ thiết kế cơ sở dữ liệu

Đ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

Ngô Thanh Nhã MSSV: 02ĐHTH148 Ngô Vũ Bình Tâm MSSV: 02ĐHTH197 MỤC LỤC Chương 1. GIỚI THIỆU ĐỀ TÀI 2 I. Bối cảnh của đề tài: 2 II. Giới thiệu chung về đề tài: 5 III. Công cụ: 5 Chương 2. LÝ THUYẾT VỀ SỞ DỮ LIỆU 5 I. Một số khái niệm: 5 Thuộc tính (Attribute): 5 1. Quan hệ: 6 Lược đồ quan hệ (Relation shema): 6 Khóa – Siêu khóa: 6 Phụ thuộc hàm: 7 Ràng buộc toàn vẹn: 7 II. Ràng buộc toàn vẹn và phụ thuộc hàm: 8 Ràng buộc toàn vẹn: 8 Phụ thuộc hàm: 12 Hệ tiên đề Amstrong: 14 Phủ và phủ tối tiểu: 16 Các dạng chuẩn của lược đồ quan hệ: 18 III. Chuẩn hóa quan hệ: 22 Các tiêu chuẩn của quá trình chuẩn hóa: 22 Các phương pháp chuẩn hóa một lược đồ CSDL: 23 IV. Đồ thị quan hệ: 27 1. Dẫn nhập: 27 2. Một số khái niệm trong lý thuyết đồ thị: 27 3. Đồ thị con đường truy xuất: 29 V. Tổ chức dữ liệu: 29 Tập thuộc tính: 30 Phụ thuộc hàm: 30 Tập phụ thuộc hàm: 30 Quan hệ: 31 Trang 1 Ngô Thanh Nhã MSSV: 02ĐHTH148 Ngô Vũ Bình Tâm MSSV: 02ĐHTH197 Lược đồ quan hệ: 31 1. Node: 31 Chương 3. CÀI ĐẶT MỘT SỐ THUẬT TOÁN 31 Thuật toán tìm bao đóng: 31 Thuật toán tìm tất cả các khóa của quan hệ: 34 Kiểm tra phụ thuộc hàm tương đương: 36 Tìm phủ tối tiểu của một tập phụ thuộc hàm: 38 Xác định dạng chuẩn: 40 Chuẩn hóa: 45 2. Biểu diễn một cấu trúc CSDL quan hệ sang lược đồ quan hệ: 49 Chương 4. GIỚI THIỆU CHƯƠNG TRÌNH 52 I. Các chức năng của chương trình: 52 II. Giới thiệu chương trình: 53 Giao diện chính của chương trình: 53 Các chức năng trên thanh Menu: 53 Chương 5. TỔNG KẾT VÀ ĐỊNH HƯỚNG PHÁT TRIỂN 59 Những chức năng chương trình đã làm được: 59 Hướng phát triển: 59 Tài liệu tham khảo: 59 Chương 6. PHỤ LỤC 60 I. Giới thiệu về .NET: 60 II. Ngôn ngữ C#: 62 1. lược về C#: 62 2. Nạp chồng phương thức: 63 3. Một số kiểu dữ liệu: 63 Chương 1. GIỚI THIỆU ĐỀ TÀI I. Bối cảnh của đề tài: Trong đời sống, mọi hoạt động của con người đều liên quan đến dữ liệu. Ngay cả một bài toán nhỏ cũng cần đến dữ liệu, nhưng không nhất thiết phải quản lý dữ liệu này theo các phương pháp khoa học. Do khả năng tổng Trang 2 Ngô Thanh Nhã MSSV: 02ĐHTH148 Ngô Vũ Bình Tâm MSSV: 02ĐHTH197 hợp của người xử lý, các dữ liệu được lấy ra, được xử lý mà không vấp phải khó khăn nào. Tuy nhiên khi bài toán kích thước lớn hơn hẳn và số lượng dữ liệu cần phải xử lý tăng lên thì e rằng tầm bao quát của con người bình thường khó thể quản lý hết được. Ấy là chưa kể đến một số loại dữ liệu đặc biệt, chúng đòi hỏi được quản lý tốt không phải vì kích thước mà vì sự phức tạp của bản thân chúng. Do đó, nhu cầu tích lũy và xử lý các dữ liệu đã nảy sinh. Tổ chức việc tích lũy và xử lý dữ liệu một cách khoa học đòi hỏi con người sử dụng một hệ thống các thông tin cấu trúc được lưu trữ trên các thiết bị lưu trữ thông tin thứ cấp (như băng từ, đĩa từ …) để thể thỏa mãn yêu cầu khai thác thông tin đồng thời của 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 nhau. Hệ thống đó được gọi là sở dữ liệu. Trong những năm gần đây thuật ngữ “CƠ SỞ DỮ LIỆU” (CSDL) đã trở nên khá quen thuộc không chỉ với những người làm Tin học mà còn đối với cả những người làm trong nhiều lĩnh vực khác như Kinh tế, Quản lý Doanh nghiệp … Các ứng dụng của tin học vào công tác quản lý ngày càng nhiều hơn và càng đa dạng hơn. thể nói hầu hết các lĩnh vực kinh tế, xã hội, giáo dục, y tế … đều đã ứng dụng các thành tựu mới của Tin học vào phục vụ công tác chuyên môn của mình. Chính vì lẽ đó mà ngày càng nhiều người quan tâm đến lĩnh vực thiết kếxây dựng các CSDL. Và thể thấy mục tiêu chính của việc thiết kế CSDL là làm thế nào chuyển đổi các nhu cầu lưu trữ và khai thác dữ liệu của người sử dụng thành một hệ thống CSLD hiệu quả. Người thiết kế CSDL thể chia nhỏ hệ thống dữ liệu tổng quát thành các lược đồ quan hệ (hay còn gọi là các table). Đó là một kỹ thuật dựa vào khinh nghiệm của người thiết kế còn trong thực tế để được một CSDL tốt người thiết kế phải ứng dụng nhiều thuật toán như: thuật toán xác định khóa, thuật toán xác định các dạng chuẩn, thuật toán phân rã lược đồ quan hệ… để đi tìm khóa, xác định dạng chuẩn, chuẩn hóa mỗi quan hệ trong CSDL, nhằm đảm bảo cho hệ dữ liệu thể quản lý đầy đủ, chính xác các thông tin trong thực tế tránh tình trạng trùng lắp thông tin, không để xảy Trang 3 Ngô Thanh Nhã MSSV: 02ĐHTH148 Ngô Vũ Bình Tâm MSSV: 02ĐHTH197 ra tình trạng thừa hoặc thiếu thông tin. Trong quá trình đó, người thiết kế thường gặp một số vấn đề sau:  Khi xác định một số đặc điểm của đối tượng được lưu trữ, người thiết kế sẽ liệt tất cả các thuộc tính cần quản lý của đối tượng mà không quan tâm đến vấn đề liệu khi thêm thuộc tính đó thì bị trùng lắp thông tin không, dữ liệu nhất quán không. Chẳng hạn như trong hệ thống bán hàng, chúng ta lưu trữ thông tin của nhà cung cấp để đặt hàng thì một số thông tin ta cần là: mã nhà cung cấp, tên nhà cung cấp, địa chỉ, số điện thoại, mã hàng, tên hàng…Với đối tượng nhà cung cấp nếu ta quản lý rằng mỗi nhà cung cấp chỉ cung cấp một mặt hàng thì ta biết được nhà cung cấp nào cung cấp mặt hàng tên gì nhưng dữ liệu về tên mặt hàng không nhất quán. Khi nhập liệu ta thể nhập như sau: Mã nhà cung cấp … Mã hàng Tên hàng 01 01 Abc 02 02 Abc Bảng 1. Quan hệ nhà cung cấp Điều đó sẽ gây khó khăn cho ta trong quá trình truy xuất thông tin.  Để khắc phục được vấn đề trên, đầu tiên người thiết kế phải dựa vào các qui tắc quản lý (phụ thuộc hàm), áp dụng hệ luật dẫn Amstrong trên các phụ thuộc hàm để xác định mối liên hệ giữa các thuộc tính trong một đối tượng hoặc giữa các đối tượng trong một CSDL. Sau đó, sử dụng thuật toán tìm khóa của đối tượng. Dựa vào khóa và các phụ thuộc hàm, người thiết kế sẽ đi xác định dạng chuẩn để đánh giá tính chất của lược đồ quan hệ hay là đối tượng cần quản lý. Trong thực tế, người ta chỉ đánh giá cao các lược đồ quan hệ đạt từ dạng chuẩn 3 trở lên vì ở dạng chuẩn này CSDL sẽ tránh được sụ trùng lắp thông tin. Do đó, khi lược đồ quan hệ không đạt được dạng chuẩn 3, người thiết kế phân rã lược đồ quan hệ đó thành những lược đồ con đảm bảo dạng chuẩn cao hơn, dữ liệu không bị trùng lắp mà vẫn giữ được tính bảo toàn, tính chính xác của dữ liệu, không gây mất thông tin. Trang 4 Ngô Thanh Nhã MSSV: 02ĐHTH148 Ngô Vũ Bình Tâm MSSV: 02ĐHTH197 Chỉ với một đối tượng mà người thiết kế phải làm biết bao công việc như vậy, trong thực tế muôn vàn đối tượng cần được quản lý thì người thiết kế phải tốn rất nhiều thời gian và công sức cho mỗi đối tượng. Vì để làm tất cả các công việc đó, người thiết kế vẫn phải làm trên giấy chứ chưa 1 chương trình nào hỗ trợ cả. Trước thực tế đó, chúng em xin thực hiện đề tài này để giúp người thiết kế thực hiện các công việc trên một cách nhanh chóng và chính xác. II. Giới thiệu chung về đề tài: Nội dung chính của đề tài là xây dựng một chương trình cho phép người dùng tạo ra một lược đồ quan hệ và thực hiện một số chức năng như: • Tìm khóa của quan hệ. • Tìm phủ tối tiểu của quan hệ. • Xác định dạng chuẩn của quan hệ. • Chuẩn hóa quan hệ. • Tìm con đường truy xuất của một nút. III. Công cụ: Chương trình được viết bằng ngôn ngữ C# trên môi trường .NET. Chương 2. LÝ THUYẾT VỀ SỞ DỮ LIỆU I. Một số khái niệm: Thuộc tính (Attribute): Thuộc tính là một tính chất riêng biệt của một đối tượng cần lưu trữ trong CSDL để phục vụ cho việc khai thác dữ liệu về đối tượng. Trang 5 Ngô Thanh Nhã MSSV: 02ĐHTH148 Ngô Vũ Bình Tâm MSSV: 02ĐHTH197 Ví dụ: Đối tượng Sinh Viên một số thuộc tính Mã lớp, Mã sinh viên, Tên sinh viên, Ngày sinh, Quê quán. 1. Quan hệ: Một quan hệ R n ngôi được định nghĩa trên tập các thuộc tính U = {A 1 , A 2 , …, A n } (thứ tự các thuộc tính không quan trọng) và kèm theo nó là một tân từ, tức là một quy tắc để xác định mối quan hệ giữa các thuộc tính A i và được ký hiệu R(A 1 , A 2 , …, A n ). tập thuộc tính của quan hệ R đôi khi còn được ký hiệu là R + . Ví dụ: SinhViên(Mã sinh viên, Tên sinh viên, Ngày sinh, Quê quán, Mã lớp) là quan hệ 5 ngôi. Tân từ: “Mỗi sinh viên một họ tên, ngày sinh, quê quán, và được cấp một mã số duy nhất để phân biệt với mọi sinh viên khác trong trường; sinh viên thuộc một lớp duy nhất trong trường.” Lược đồ quan hệ (Relation shema): Lược đồ quan hệ là sự trừu tượng hóa của quan hệ, một sự trừu tượng hóa ở mức độ cấu trúc của một bảng hai chiều. Khi nói đến lược đồ quan hệ là đề cập đến cấu trúc tổng quát của một quan hệ; khi đề cập tới quan hệ thì điều đó được hiểu rằng đó là một bảng cấu trúc cụ thể hoặc một định nghĩa cụ thể trên một lược đồ quan hệ với các bộ giá trị của nó. Khóa – Siêu khóa: a. Khóa (Key): Quan hệ R định nghĩa trên tập các thuộc tính U={A 1 ,A 2 ,…,A n } K ⊆ U là khóa của quan hệ R nếu thỏa 2 điều kiện sau: • K xác định được giá trị của A j với mọi j = 1, 2, …, n. • !∃ K’ ⊆ K mà K’ thể xác định được giá trị của A j với mọi j = 1, 2, …, n. Trang 6 Ngô Thanh Nhã MSSV: 02ĐHTH148 Ngô Vũ Bình Tâm MSSV: 02ĐHTH197 Nghĩa là K là tập con nhỏ nhất mà giá trị của nó thể xác định duy nhất một bộ giá trị của quan hệ. K còn được gọi là khóa chỉ định (Candidate) và là khóa nội của quan hệ. b. Siêu khóa: K được gọi là siêu khóa của quan hệ R nếu K’ ⊆ K là một khóa của quan hệ. Một lược đồ quan hệ Q của quan hệ R luôn ít nhất một siêu khóa và thể nhiều siêu khóa. Ví dụ: Quan hệ SinhViên(MãSinhViên, TênSinhViên, NgàySinh, QuêQuán, MãLớp) Tìm khóa và siêu khóa của quan hệ SinhVien. Giải: Quan hệ SinhViên khóa là Mã sinh viên và một số siêu khóa: K1 = {MãSinhViên, TênSinhViên} K2 = {MãSinhViên, TênSinhViên, NgàySinh} K3 = {MãSinhViên, MãLớp} c. Thuộc tính khóa: Thuộc tính khóa là các thuộc tính tham gia vào khóa. d. Thuộc tính không khóa: Thuộc tính không khóa là các thuộc tính không tham gia vào bất kỳ khóa nào. Phụ thuộc hàm: Phụ thuộc hàm là công cụ dùng để biểu diễn mối quan hệ dữ liệu của các thuộc tính trong quan hệ. Quan hệ R được định nghĩa trên tập thuộc tính U={A 1 ,A 2 ,…,A n }. X, Y ⊂ U là hai tập con của tập thuộc tính U. Nếu ∃ f: X → Y thì ta nói rằng X xác định Y hay Y phụ thuộc hàm vào X và ký hiệu là X → Y. Ràng buộc toàn vẹn: Trong mỗi CSDL luôn tồn tại nhiều mối liên hệ giữa các thuộc tính, giữa các bộ. Sự liên hệ này thể xảy ra trong một lườc đồ quan hệ Trang 7 Ngô Thanh Nhã MSSV: 02ĐHTH148 Ngô Vũ Bình Tâm MSSV: 02ĐHTH197 hoặc trong các lược đồ quan hệ của một CSDL. Các mối liên hệ này là những điều kiện bất biến mà tất cả các bộ của những quan hệ liên quan trong CSDL đều phải thỏa mãn ở mọi thời điểm. Những điều kiện bất biến đó được gọi là ràng buộc toàn vẹn (RBTV). Trong thực tế RBTV là các quy tắc quản lý được áp đặt trên các đối tượng của thế giới thực. Đó là quy tắc để đảm bảo tính nhất quán của dữ liệu trong CSDL. Mỗi RBTV được định nghĩa bằng một thuật toán trong CSDL. Ví dụ: Quan hệ kếtquảthi (mãsinhviên, mãmôn, lầnthi, ngàythi, điểmthi, ghichú) Quy tắc: Điểm thi của sinh viên phải lớn hơn hoặc bằng 1 và bé hơn hoặc bằng 10. Thuật toán: ∀ kqt ∈ kếtquảthi thì kqt.điểmthi >= 1 & kqt.điểmthi <= 10. Trong một CSDL, RBTV được xem như là một công cụ để diễn đạt ngữ nghĩa của CSDL. Một CSDL được thiết kế cồng kềnh nhưng nó thể hiện được đầy đủ ngữ nghĩa của thực tế vẫn giá trị cao hơn rất nhiều so với một cách thiết kế gọn nhẹ nhưng nghèo nàn về ngữ nghĩa vì thiếu các RBTV của CSDL. Trên đây là những khái niệm bản, bây giờ chúng ta đi sâu vào tìm hiểu một số vấn đề cốt lõi của quá trình thiết kế CSDL. II. Ràng buộc toàn vẹn và phụ thuộc hàm: Ràng buộc toàn vẹn: Nhiệm vụ của người phân tích thiết kế là phải phát hiện càng đầy đủ và chính xác các RBTV càng tốt và mô tả chúng một cách chính xác trong hồ phân tích thiết kế - đó là một việc làm rất quan trọng và cần thiết. Công việc kiểm tra RBTV thường được tiến hành vào thời điểm cập nhật dữ liệu (thêm, xóa, sửa). Trang 8 Ngô Thanh Nhã MSSV: 02ĐHTH148 Ngô Vũ Bình Tâm MSSV: 02ĐHTH197 a. Các yếu tố của RBTV: Mỗi RBTV 3 yếu tố ảnh hưởng: điều kiện, bối cảnh, tầm ảnh hưởng. • Điều kiện: Điều kiện của một RBTV R thể được biểu diễn bằng ngôn ngữ tự nhiên, thuật giải, ngôn ngữ đại số quan hệ, …ngoài ra điều kiện của một RBTV cũng thể được biểu diễn bằng phụ thuộc hàm. • Bối cảnh: Là những quan hệ mà ràng buộc đó hiệu lực hay nói một cách khác, đó là những quan hệ cần phải được kiểm tra RBTV. Bối cảnh của một RBTV thể là một hoặc nhiều quan hệ. • Tầm ảnh hưởng: Trong quá trình phân tích thiết kế một CSDL, người thiết kế cần lập bảng tầm ảnh hưởng cho một RBTV nhằm xác định thời điểm cần phải tiến hành kiểm tra các RBTV đó. Các thời điểm cần phải kiểm tra RBTV chính là những thời điểm cập nhật dữ liệu (thêm, sửa, xóa). Một bảng tầm ảnh hưởng của một RBTV dạng sau: (Tên RBTV) Thêm(T) Sửa(S) Xóa(X) r 1 + - - r 2 r n Bảng này chứa toàn các ký hiệu + hoặc – Chẳng hạn + tại ô tương ứng với dòng r 1 , cột thêm thì nghĩa là khi thêm một bộ vào quan hệ r 1 thì cần phải kiểm tra RBTV. Dấu – tại ô tương ứng với dòng r 1 , cột sửa thì nghĩa là khi sửa một bộ trên quan hệ r 1 thì không cần kiểm tra RBTV này. Trang 9 Ngô Thanh Nhã MSSV: 02ĐHTH148 Ngô Vũ Bình Tâm MSSV: 02ĐHTH197 b. Phân loại RBTV: Trong quá trình phân tích thiết kế CSDL, người phân tích phải phát hiện tất cả các RBTV tiềm ẩn trong CSDL đó. Việc phân loại các RBTV là rất ích, nó nhằm giúp cho người phân tích được một định hướng, tránh bỏ sót những RBTV. Các RBTV thể được chia làm hai loại chính như sau: • RBTV trên phạm vi một quan hệ: RBTV miền giá trị, RBTV liên thuộc tính, RBTV liên bộ. • RBTV trên phạm vi nhiều quan hệ: RBTV phụ thuộc tồn tại, RBTV liên bộ - liên quan hệ, RBTV liên thuộc tính - liên quan hệ. i. RBTV liên bộ: RBTV liên bộ là sự RBTV giữa các bộ trong cùng một quan hệ. RBTV liên bộ hay còn gọi là RBTV về khóa. Đây là loại RBTV rất phổ biến, nó mặt trong mọi lược đồ quan hệ của CSDL và thường được các hệ quản trị CSDL tự động kiểm tra. Ví dụ: với r là một quan hệ của Khách ta RBTV như sau: R 1 : ∀ t 1 , t 2 ∈ r t 1 . MAKH ≠ t 2 . MAKH Cuối ∀ Bảng tầm ảnh hưởng: R 1 Thêm Sửa Xóa r + + - ii. RBTV về phụ thuộc tồn tại: RBTV về phụ thuộc tồn tại còn được gọi là RBTV về khóa ngoại. Cũng giống như RBTV về khóa chính, RBTV về phụ thuộc tồn tại rất phổ biến trong CSDL. Trang 10 [...]... khi j(ni) = 1 thì ni là một nút V Tổ chức dữ liệu: Để dễ dàng nắm bắt các thuật toán và tận dụng sức mạnh của các công cụ lập trình hiện đại, chúng em đề xuất một vài cấu trúc dữ liệu mới, hướng đối tượng trên nền Net nhằm phục vụ cho việc triển khai các thuật toán Trang 29 Ngô Thanh Nhã Ngô Vũ Bình Tâm MSSV: 02ĐHTH148 MSSV: 02ĐHTH197 Ưu điểm của cấu trúc dữ liệu này dễ dàng nắm bắt, nhưng nhược điểm... trình bảo trì hệ thống và CSDL sẽ hoạt động chậm chạp Để thể xác định đúng các chỉ mục cần thiết, người ta sử dụng phương pháp biểu diễn quan hệ ở dạng đồ thị Dạng đồ thị này cho phép làm nổi bậc các thuộc tính chung giữa hai hay nhiều quan hệ (vì đây là sở của phép kết) qua đó giúp cho người thiết kế sau này dễ dàng đánh giá và chọn lựa đúng các chỉ mục 2 Một số khái niệm trong lý thuyết đồ... ra nhất trong CSDL quan hệ là phép kết Để thao tác này được thực hiện hiệu quả, hệ quản trị thường dựa trên các chỉ mục của các quan hệ liên quan Do đó, vai trò của người thiết kế là làm thế nào xác định được đủ các chỉ mục cần thiết, với số thuộc tính vừa đủ để khai thác Chỉ mục bao gồm nhiều thuộc tính hoặc tạo quá nhiều chỉ mục sẽ gây tốn chỗ và tốn kém trong quá trình bảo trì hệ thống và CSDL sẽ... chuẩn của quá trình chuẩn hóa: Hai tiêu chuẩn quan trọng cần đạt được trong quá trình chuẩn hóa một CSDL ở mức quan niệm là: a CSDL kết quả cần đạt dạng chuẩn cao nhất: Dạng chuẩn được đề ra nhằm đáp ứng 2 yêu cầu sau: • Cập nhật: hạn chế tối đa sự trùng lắp thông tin trong CSDL • Kiểm tra ràng buộc toàn vẹn: tạo điều kiện thuận lợi cho việc kiểm tra ràng buộc toàn vẹn ở dạng phụ thuộc dữ liệu Trang 22... các string mô tả cho từng thuộc tính Ta xây dựng một lớp TapThuocTinh để chứa mảng thuộc tính, lớp này kế thừa từ đối tượng Object và interface IEnumerable (để sử dụng hàm foreach trên tập thuộc tính bằng cách khai báo thêm phương thức public IEnumerator GetEnumerator()) như sau: public ArrayList MangThuocTinh; Phụ thuộc hàm: Trong một số cấu trúc dữ liệu cũ trước đây, phụ thuộc hàm được biểu... mang tính tương đối Ta thể thấy rằng phụ thuộc hàm chính là mối quan hệ giữa các thuộc tính theo hai vế: vế trái và vế phải, vì vậy ta thể tận dụng cấu trúc dữ liệu của tập thuộc tính đã trình bày ở trên để mô tả phụ thuộc hàm Ta xây dựng một lớp PhuThuocHam gồm các thuộc tính như sau: TapThuocTinh vetrai; TapThuocTinh vephai; Tập phụ thuộc hàm: Tập phụ thuộc hàm là tập hợp các phụ thuộc hàm được... muốn xóa kết quả điểm của môn này thì dẫn đến mất luôn thông tin của sinh viên • Khóa của quan hệ là: {MaSV, MaMonHoc}, {MaSV, TenMonHoc} nên ta không thể thêm một sinh viên vào nếu sinh viên đó chưa đăng ký môn học Qua ví dụ trên, chúng ta thấy sự trùng lắp thông tin là nguyên nhân làm cho CSDL chất lượng kém Để hạn chế sự trùng lắp thông tin, người ta đưa ra các yêu cầu thiết kế cần thiết cho... giai đoạn phân tích yêu cầu, ta thể 1 trong 2 kết quả sau: • Một cấu trúc CSDL ban đầu gồm các quan hệ con Q i cùng các phụ thuộc hàm F • Hoặc chỉ một quan hệ phổ quát duy nhất Q chứa tất cả các thuộc tính cần được lưu trữ và các phụ thuộc hàm F Chúng ta cần kiểm tra và chuẩn hóa các kết quả đầu tiên này dựa trên một số tiêu chuẩn thiết kế để được một cấu trúc quan niệm CSDL được đánh giá... mỗi thuộc tính A của một lược đồ quan hệ Q được tính toán giá trị từ các thuộc tính của các lược đồ quan hệ khác Phụ thuộc hàm: Phụ thuộc hàm tầm quan trọng rất lớn trong việc phân tích và thiết kế mô hình dữ liệu phụ 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 tiểu và chuẩn hóa CSDL Định nghĩa hình thức của phụ thuộc hàm như sau: Quan hệ Q (A, B, C) phụ thuộc... thuộc hàm tiếp theo của F Các dạng chuẩn của lược đồ quan hệ: Trong thực tế, một ứng dụng thể được phân tích thành nhiều lược đồ CSDL khác nhau và dĩ nhiên chất lượng thiết kế của các lược đồ này cũng khác nhau Chất lượng thiết kế của một lược đồ CSDL được đánh giá dựa trên các tiêu chuẩn như: • Sự trùng lắp thông tin: vì nó sẽ làm tăng không gian lưu trữ và gây nên tình huống thông tin bị mâu thuẫn . hệ: 49 Chương 4. GIỚI THIỆU CHƯƠNG TRÌNH 52 I. Các chức năng của chương trình: 52 II. Giới thiệu chương trình: 53 Giao diện chính của chương trình: 53 Các chức năng trên thanh Menu: 53 Chương. 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 nhau. Hệ thống đó được gọi là cơ sở dữ liệu. Trong những năm gần đây thuật ngữ “CƠ SỞ DỮ LIỆU” (CSDL) đã trở nên khá. quan tâm đến lĩnh vực thiết kế và xây dựng các CSDL. Và có thể thấy mục tiêu chính của việc thiết kế CSDL là làm thế nào chuyển đổi các nhu cầu lưu trữ và khai thác dữ liệu của người sử dụng

Ngày đăng: 06/06/2014, 13:34

Từ khóa liên quan

Mục lục

  • Chương 1. GIỚI THIỆU ĐỀ TÀI

    • I. Bối cảnh của đề tài:

      • Khi xác định một số đặc điểm của đối tượng được lưu trữ, người thiết kế sẽ liệt kê tất cả các thuộc tính cần quản lý của đối tượng mà không quan tâm đến vấn đề liệu khi thêm thuộc tính đó thì có bị trùng lắp thông tin không, dữ liệu có nhất quán không. Chẳng hạn như trong hệ thống bán hàng, chúng ta lưu trữ thông tin của nhà cung cấp để đặt hàng thì một số thông tin ta cần là: mã nhà cung cấp, tên nhà cung cấp, địa chỉ, số điện thoại, mã hàng, tên hàng…Với đối tượng nhà cung cấp nếu ta quản lý rằng mỗi nhà cung cấp chỉ cung cấp một mặt hàng thì ta biết được nhà cung cấp nào cung cấp mặt hàng tên gì nhưng dữ liệu về tên mặt hàng không nhất quán. Khi nhập liệu ta có thể nhập như sau:

      • Để khắc phục được vấn đề trên, đầu tiên người thiết kế phải dựa vào các qui tắc quản lý (phụ thuộc hàm), áp dụng hệ luật dẫn Amstrong trên các phụ thuộc hàm để xác định mối liên hệ giữa các thuộc tính trong một đối tượng hoặc giữa các đối tượng trong một CSDL. Sau đó, sử dụng thuật toán tìm khóa của đối tượng. Dựa vào khóa và các phụ thuộc hàm, người thiết kế sẽ đi xác định dạng chuẩn để đánh giá tính chất của lược đồ quan hệ hay là đối tượng cần quản lý. Trong thực tế, người ta chỉ đánh giá cao các lược đồ quan hệ đạt từ dạng chuẩn 3 trở lên vì ở dạng chuẩn này CSDL sẽ tránh được sụ trùng lắp thông tin. Do đó, khi lược đồ quan hệ không đạt được dạng chuẩn 3, người thiết kế phân rã lược đồ quan hệ đó thành những lược đồ con đảm bảo dạng chuẩn cao hơn, dữ liệu không bị trùng lắp mà vẫn giữ được tính bảo toàn, tính chính xác của dữ liệu, không gây mất thông tin.

    • II. Giới thiệu chung về đề tài:

    • III. Công cụ:

  • Chương 2. LÝ THUYẾT VỀ CƠ SỞ DỮ LIỆU

    • I. Một số khái niệm:

      • 1. Quan hệ:

        • a. Khóa (Key):

          • K xác định được giá trị của Aj với mọi j = 1, 2, …, n.

          •  K’  K mà K’ có thể xác định được giá trị của Aj với mọi

          • j = 1, 2, …, n.

        • b. Siêu khóa:

        • c. Thuộc tính khóa:

        • Thuộc tính khóa là các thuộc tính tham gia vào khóa.

        • d. Thuộc tính không khóa:

        • Thuộc tính không khóa là các thuộc tính không tham gia vào bất kỳ khóa nào.

    • II. Ràng buộc toàn vẹn và phụ thuộc hàm:

      • a. Các yếu tố của RBTV:

        • Điều kiện:

        • Bối cảnh:

        • Tầm ảnh hưởng:

      • b. Phân loại RBTV:

        • f1: SốHóaĐơn → SốChủngLoạiMặtHàng;

        • f2: SốHóaĐơn → TổngTrịGiá;

        • f1: SốHóaĐơn, MãHàng → SốLượngĐặt;

        • f2: SốHóaĐơn, MãHàng → ĐơnGiá;

        • f3: SốHóaĐơn, MãHàng → TrịGiá;

        • f4: SốLượngĐặt, ĐơnGiá → TrịGiá.

        • Tính phản xạ:

        • Nếu Y  X thì X → Y.

        • Tính tăng trưởng:

        • Nếu X → Y và Z  W thì XW → YZ.

        • Tính bắt cầu:

        • Nếu X → Y và Y → Z thì X → Z.

        • Tính phân rã (hoặc luật tách):

        • Nếu X → YZ thì X → Y và X → Z.

        • Tính hợp (hoặc luật hợp):

        • Nếu X → Y và X → Z thì X → YZ.

        • Tính tựa bắt cầu hoặc bắt cầu giả:

        • Nếu X → Y và YZ → W thì XZ → W.

      • c. Phụ thuộc hàm tương đương:

      • d. Phủ của 1 phụ thuộc hàm:

      • e. Phụ thuộc hàm đầy đủ:

      • F là tập các phụ thuộc hàm trên lược đồ quan hệ Q, X là tập thuộc tính, ta có phụ thuộc hàm: X → Y  F.

      • Ta nói phụ thuộc hàm X → Y là đầy đủ nếu  A  Z sao cho

      • (X – A) → Y.

      • f. Phụ thuộc hàm không dư thừa:

      • g. Phủ tối tiểu:

        • Vế phải của các PTH trên G chỉ chứa 1 thuộc tính.

        • G chỉ gồm những phụ thuộc hàm đầy đủ.

        • Không chứa phụ thuộc hàm thừa.

        • Sự trùng lắp thông tin: vì nó sẽ làm tăng không gian lưu trữ và gây nên tình huống thông tin bị mâu thuẫn sau những lần cập nhật CSDL.

        • Chi phí kiểm tra ràng buộc toàn vẹn.

        • Bảo toàn quy tắc quản lý tức là bảo toàn các phụ thuộc hàm.

        • Bảo toàn thông tin.

        • Giả sử: có 1 sinh viên thay đổi địa chỉ, thì hệ thống cần phải duyệt trên toàn bộ quan hệ để tìm và sửa địa chỉ các bộ liên quan đến sinh viên này. Nếu để xót thì sẽ dẫn đến tình trạng thông tin không nhất quán.

        • Giả sử sinh viên có mã số 1180 hiện nay chỉ đăng ký học môn CSDL. Nếu muốn xóa kết quả điểm của môn này thì dẫn đến mất luôn thông tin của sinh viên.

        • Khóa của quan hệ là: {MaSV, MaMonHoc}, {MaSV, TenMonHoc} nên ta không thể thêm một sinh viên vào nếu sinh viên đó chưa đăng ký môn học.

      • a. Dạng chuẩn 1:

        • Thuộc tính đơn: là thuộc tính mà giá trị của nó không phải là sự kết hợp bỡi nhiều thông tin có ý nghĩa khác nhau và hệ thống luôn truy xuất trên toàn bộ giá trị của nó ít khi truy xuất đến từng phần dữ liệu của nó.

        • Định nghĩa dạng chuẩn 1:

        • Một lược đồ quan hệ Q đạt dạng chuẩn 1 nếu mọi thuộc tính của Q đều là thuộc tính đơn.

      • h. Dạng chuẩn 2:

        • Phụ thuộc đầy đủ:

          • A  X+F

          • X  A là PTH nguyên tố.

        • Định nghĩa dạng chuẩn 2:

        • Một lược đồ quan hệ Q đạt dạng chuẩn 2 nếu:

          • Q ở dạng chuẩn 1.

          • Mọi thuộc tính không khóa đều phụ thuộc đầy đủ vào các khóa của Q.

        • Hệ quả:

        • Nếu mỗi khóa của quan hệ Q chỉ có 1 thuộc tính thì Q đạt dạng chuẩn 2.

      • i. Dạng chuẩn 3:

        • Phụ thuộc bắt cầu:

          • X  Y  F+

          • Y  A  F+

          • Y --/--> X

          • A  {X  Y}

          • Ví dụ:

        • Định nghĩa dạng chuẩn 3:

        • Một lược đồ quan hệ Q đạt dạng chuẩn 3 nếu:

          • Q ở dạng chuẩn 2

          • Mọi thuộc tính không khóa Q đều không phụ thuộc bắt cầu vào một khóa nào của Q.

      • j. Dạng chuẩn BCK:

        • Định nghĩa:

        • Một lược đồ quan hệ Q ở dạng chuẩn BCK nếu mọi phụ thuộc hàm không hiển nhiên đều có vế trái chứa khóa.

        • Hệ quả: Nếu Q đạt dạng chuẩn BCK thì mọi vế trái của phụ thuộc hàm đều là siêu khóa.

    • III. Chuẩn hóa quan hệ:

      • a. CSDL kết quả cần đạt dạng chuẩn cao nhất:

      • b. CSDL kết quả phải tương đương với CSDL phân tích lúc ban đầu:

      • c. Phương pháp phân rã:

      • d. Phương pháp tổng hợp:

    • IV. Đồ thị quan hệ:

      • 1. Dẫn nhập:

      • 2. Một số khái niệm trong lý thuyết đồ thị:

        • a. Đồ thị:

        • b. Cung kề cận:

        • c. Khuyên:

        • d. Đường đi trên đồ thị vô hướng:

        • e. Mạch đi trên đồ thị có hướng:

        • f. Chu trình:

        • g. Một dòng có gốc n1:

      • 3. Đồ thị con đường truy xuất:

    • V. Tổ chức dữ liệu:

      • Ưu điểm của cấu trúc dữ liệu này dễ dàng nắm bắt, nhưng nhược điểm là hao tốn không gian bộ nhớ và tốn năng lực xử lý của hệ thống.

      • 1. Node:

  • Chương 3. CÀI ĐẶT MỘT SỐ THUẬT TOÁN

    • a. Thuật toán gốc:

      • Procedure Closure (X, F)

      • Begin

      • OldDep := Æ;

      • NewDep := X;

      • While NewDep <> OldDep Do

      • Begin

      • OldDep := NewDep;

      • For every FD: W®Z Î F Do

      • If W Í NewDep

      • Then NewDep := NewDep È Z;

      • End {If}

      • End {For}

      • End;

      • Return NewDep;

      • End;

    • b. Cài đặt thuật toán:

      • Function Closure (X, F)

      • Tham biến TapThuocTinh tapX, TapPhuThuocHam F

      • TapThuocTinh baodong = new TapThuocTinh();

      • baodong.AddItem(tapX);

      • TapThuocTinh olddep = new TapThuocTinh();

      • while (baodong != olddep)

      • {

      • olddep.AddItem(baodong);

      • PhuThuocHam tmp;

      • int i;

      • for ( i = 0; i < TapPTH.Count; ++i)

      • {

      • tmp = TapPTH[i];

      • if (tmp.vetrai.LatapCon(baodong))

      • {

      • baodong.AddItem(tmp.vephai);

      • }

      • }

      • }

      • return baodong;

      • end function;

    • c. Ví dụ:

    • d. Thuật toán kiểm tra phụ thuộc hàm hiển nhiên:

    • e. Thuật toán kiểm tra phụ thuộc hàm nguyên tố:

    • f. Thuật toán kiểm tra phụ thuộc hàm đầy đủ:

    • Vào:

    • A là thuộc tính không khóa.

    • X là thuộc tính khóa.

    • F là tập phụ thuộc hàm.

    • Ra: true hoặc false.

    • g. Thuật toán kiểm tra chuẩn 2:

    • h. Thuật toán kiểm tra chuẩn 3:

    • i. Thuật toán kiểm tra BCK:

    • j. Thuật toán kiểm tra dạng chuẩn của một lược đồ quan hệ:

    • k. Thuật toán phân rã:

    • l. Phương pháp phân rã bảo toàn thông tin và phụ thuộc hàm:

    • 2. Biểu diễn một cấu trúc CSDL quan hệ sang lược đồ quan hệ:

  • Chương 4. GIỚI THIỆU CHƯƠNG TRÌNH

    • I. Các chức năng của chương trình:

    • II. Giới thiệu chương trình:

  • Chương 5. TỔNG KẾT VÀ ĐỊNH HƯỚNG PHÁT TRIỂN

  • Chương 6. PHỤ LỤC

    • I. Giới thiệu về .NET:

    • II. Ngôn ngữ C#:

      • 1. Sơ lược về C#:

      • 2. Nạp chồng phương thức:

      • 3. Một số kiểu dữ liệu:

        • a. Array:

        • b. Bộ chỉ mục:

        • c. Giao diện tập hợp:

Tài liệu cùng người dùng

Tài liệu liên quan