Ta dễ dàng thử lại rằng các sơ đồ quan hệ con được phân rã trong thuật toán là những sơ đồ BCNF, phép phân rã bảo toàn phụ thuộc vì mỗi phụ thuộc hàm được cho vào một sơ đồ con, phân rã
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TẬP ĐOÀN BƯU CHÍNH VIỄN THÔNG VIỆT NAM HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG VIỆT NAM
-
LÊ THỊ THANH SƠN
PHÉP PHÂN RÃ TRONG CƠ SỞ DỮ LIỆU
Trang 2Luận văn được hoàn thành tại:
Học viện Công nghệ Bưu chính Viễn thông Tập đoàn Bưu chính Viễn thông Việt Nam
Người hướng dẫn khoa học:
Vào lúc: giờ ngày tháng năm 2010
Có thể tìm hiểu luận văn tại:
- Thư viện Học viện Công nghệ Bưu chính Viễn thông
Trang 3CHƯƠNG 1 TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU PHÂN TÁN 1.1 THIẾT KẾ PHÂN TÁN LÀ GÌ
Thiết kế phân tán bao gồm:
- Thiết kế hệ thống mạng máy tính
- Thiết kế các CSDL phân tán cho mạng máy tính đó Khi thiết kế hệ thống mạng máy tính tức là chúng ta đi xác định vị trí đặt các máy tính trong mạng như thế nào Từ đó xác định vị trí đặt dữ liệu trong mạng máy tính đó Tiếp theo là xác định các phần mềm ứng dụng cài đặt trên mạng Cuối cùng
là cách khai thác dữ liệu trên mạng đó như thế nào
Thiết kế CSDL phân tán là nghiên cứu cách tổ chức dữ liệu trên mạng máy tính Sắp xếp, phân nhóm, chia nhỏ dữ liệu thành những mảnh và đặt chúng trên mạng máy tính như thế nào
Trang 4Phân tán, phân rã hay phân mảnh CSDL là chia nhỏ CSDL thành các phần mỗi phần mỗi phần gọi là một mảnh con hay một CSDL con
1.3 YÊU CẦU DẪN ĐẾN PHÂN TÁN CSDL
Trong thực tế chúng ta luôn cần phải phân tán CSDL bởi
vì khi phân tán CSDL thì đảm bảo:
Tiết kiệm không gian bộ nhớ lưu trữ do hạn chế được sự trùng lặp dư thừa thông tin
Đảm bảo tính nhất quán, tính ổn đinh, tính toàn vẹn dữ liệu Cho phép nhiều người cùng chia sẻ CSDL do nó làm tăng khả năng xử lý đồng thời
Chia CSDL thành các CSDL con thì tăng hiệu quả quản trị Giải quyết vấn đề về phạm vi địa lý rộng và tầm hoạt động lớn Giải quyết vấn đề bảo mật dữ liệu nên phải phân tán thành nhiều CSDL con để dễ bảo vệ dữ liệu
1.4 BẢN CHẤT CỦA PHÂN TÁN CSDL
Phân tán được chia làm 2 loại:
Phân tán dọc sơ đồ quan hệ
Phân tán dọc sơ đồ quan hệ W =<A, F> là phân chia W thành các sơ đồ con W1 = < U1, F1>, W2 = < U2, F2>, ., Wk
= < Uk, Fk>
Ký hiệu: W | -> {W1, W2, , Wk}
Trang 5Trong đó: A = U1 U2 Uk =
k
i 1 Ui; Fi πUi(F+)i = 1, 2, , k Vậy phân rã W = < A, F > là quá trình phân rã đồng thời tập thuộc tính A và tập phụ thuộc hàm F thành các Fi
Phân rã ngang R
Phân rã ngang R là chia ngang quan hệ R thành R1, R2,
…, Rk với Ri là những quan hệ trên A Ri Rj = nếu i
Phân rã ngang R bắt buộc các Ri phải rời nhau Ri Rj
= nếu i j Tuy nhiên các Ri có chung tập thuộc tính
1.5 PHÂN TÁN CSDL PHẢI ĐẢM BẢO YÊU CẦU GÌ
Khi phân tán CSDL thì phải đảm bảo những yêu cầu sau: Không tổn thất thông tin, phép phân tán không đem đến hậu quả thừa, thiếu, mất thông tin
Đảm bảo truy xuất đúng đắn, tránh xẩy ra các hiện tượng
dị thường, mâu thuẫn, không mong muốn khi truy xuất dữ liệu
Từ các mảnh phải tổng hợp được CSDL ban đầu: trong phép phân tán ngang R thành R , R, , R thì khôi phục R bằng
Trang 6phép hợp của các quan hệ con R =
…|><| Rk Trong phép phân tán dọc thì đối với những phép phân tán tốt mới đảm bảo dấu bằng trong biểu thức: R = R1|><|
Trang 7CHƯƠNG 2 PHÉP PHÂN RÃ TRONG CƠ SỞ DỮ LIỆU PHÂN TÁN 2.1 CÁC PHƯƠNG PHÁP PHÂN TÁN DỌC
2.1.1 Phân tán dọc có nối không tổn thất
Cho W=<A, F> là sơ đồ quan hệ với A= A = { A1, A2, , An} là tập thuộc tính, F là tập phụ thuộc hàm trên A Phép phân tán W | -> {W1, W2, ., Wk}; với Wi = < Ui, Fi > ; Ri = R[Ui] được gọi là phép phân tán có nối không tổn thất nếu mọi quan hệ R trên A có đẳng thức: R = R1|><| R2 |><| …|><|
Rk
2.1.2 Cơ sở dữ liệu thiết kế tốt
Trong CSDL quan hệ một CSDL được gọi là thiết kế tốt nếu các bảng dữ liệu thường ở chuẩn 3NF, BCNF Theo quan điểm phân rã thì một CSDL được gọi là thiết kế tốt nếu: R trên A, với A =
k
i 1 Ui thì R = R1|><| R2 |><| …|><| Rk Trong đó R1, R2, ., Rk là các quan hệ trên R, Ui là tập thuộc tính con thứ i
2.1.3 Phân rã bảo toàn phụ thuộc
Thuật toán kiểm tra một phân rã của W có bảo toàn phụ thuộc hay không?
Algorithim
Trang 8 X Y F nếu XG+ Y ( bao đóng XG+ tính theo tập phụ thuộc hàm G) thì kết luận yes, phân rã bảo toàn phụ thuộc Ngược lại nếu tồn tại chỉ một phụ thuộc hàm X Y của
F mà XG+ không chứa Y thì kết luận no, phân rã không bảo toàn phụ thuộc
Thuật toán phân rã W thành các BCNF
Input: W = < A, F > = < A, {Xi Yi}> ; i = 1,k
Output: phân rã W | ->{W1, W2, , Wk}; và với mọi i Wi
Trang 9W1 = < X1Y1, X1 Y1> = < U1, F1 >
W2 = < X2Y2, X2 Y2> = < U2, F2 >
W thành k+ 1 sơ đồ con như sau:
W1 = < X1Y1, X1 Y1> = < U1, F1 >
W2 = < X2Y2, X2 Y2> = < U2, F2 >
Algorithm
Nếu i Wi là BCNF, phân rã bảo toàn phụ thuộc và phân rã
có nối không tổn thất thì yes, phép phân rã thỏa mãn cả 3 điều kiện
Trang 10Ngược lại nếu tồn tại Wi mà Wi không là BCNF hay phân
tã không bảo toàn phụ thuộc hay phân rã có nối tổn thất thì no, phân rã không thỏa mãn cả 3 điều kiện
Thuật toán phân rã W thành các BCNF, bảo toàn phụ thuộc, có nối không tổn thất
Input: W = < A, F > = < A, {Xi Yi}> i = 1,k
Output: phân rã W | -> {W1, W2, , Wk}; và với mọi i
Wi = < Ui, Fi > là BCNF, phép phân rã bảo toàn phụ thuộc, phép phân rã có nối không tổn thất
Algorithm
Bước 1 Xác định một key của W
Bước 2 Phân rã W thành k+1 sơ đồ con như sau:
W1 = < X1Y1, X1 Y1> = < U1, F1 >
W2 = < X2Y2, X2 Y2> = < U2, F2 >
Wk = < XkYk, Xk Yk > = <Uk, Fk >
Wk+1 = < key, >
Ta dễ dàng thử lại rằng các sơ đồ quan hệ con được phân rã trong thuật toán là những sơ đồ BCNF, phép phân rã bảo toàn phụ thuộc vì mỗi phụ thuộc hàm được cho vào một sơ đồ con, phân rã có nối không tổn thất vì có một sơ đồ con chứa key, ta
đã chứng minh trong bổ đề 5.2
2.1.6 Phân rã dọc theo độ liên đới của các thuộc tính
Trong hầu hết các bài toán quản lý đều được phân rã thành các bài toán con Mỗi bài toán con có chứa các thuộc tính liên đới (liên kết) với nhau Độ liên đới của các thuộc tính phụ thuộc vào bản chất, độ ứng dụng và độ truy xuất của các thuộc tính
Trang 11đó Sự gắn kết của các thuộc tính trong các truy xuất, vấn tin thể hiện lực liên đới giữa chúng
Gọi Q = {q1, q2, qq} là tập các vấn tin của người dùng sẽ truy vấn trên tập thuộc tính A = {A1, A2, An} Mỗi câu vấn tin qi và mỗi thuộc tính Aj sẽ có một giá trị sử dụng thuộc tính (attribute usage value), ký hiệu là use (qi, Aj) Bảng AQ = ( use (qi, Aj)) với j = 1, 2, n và i = 1, 2,
Cho bảng giá trị giá trị sử dụng AQ = ( use(qi, AJ))
Bảng giá trị sử dụng AQ như một hệ khai thác dữ liệu Khi đó độ liên đới hay độ thuộc của thuộc tính b vào thuộc tính
a ứng với bảng giá trị sử dụng AQ
Độ thuộc của thuộc tính b vào thuộc tính a ký hiệu cf(a,b) ứng với AQ, là độ tin cậy của luật kết hợp a b; tức cf(a,b) = CF( a b)
Khi cần chia A thành 4 nhóm Ta lấy 4 thuộc tính làm 4 đại diện cho bốn nhóm, đó là SoHD, Manv, Masp, MaKH Mỗi thuộc tính b khác bốn thuộc tính trên ta tính lần lượt có 4 độ thuộc cf(SoHD,b), cf(Manv,b), cf(Masp,b), cf(MaKH,b) So
Trang 12sánh và cho cùng vào nhóm với thuộc tính mà b có độ thuộc lớn nhất, trong trường hợp không phân nhóm được ta xét thêm điều kiện cho b vào nhóm mà trong đó đã có nhiều thuộc tính a mà cf(a,b) lớn
Trang 13Coi mỗi thuộc tính là một điểm trong không gian 9 chiều,
ví dụ các thuộc tính SoHD = (0, 0, 0, 0, 0, 0, 0, 0, 1); MaKH =
( 0, 0, 0, 0, 0, 1, 0, 1, 0);
Masp =( 1, 1, 0, 0, 0, 0, 1, 0, 1); Manv=( 0, 0, 0, 0, 1, 0, 0, 0, 0);
Độ liên đới của a, b là khoảng cách Oclic d(a,b) từ a đến b
Hình 2.1 Sơ đồ thuật toán K-means clustering
F
Trang 142.3 MỘT SỐ THUẬT TOÁN PHÂN TÁN NGANG HỆ TIN 2.3.2 Thuật toán Quinlan
Thuật toán Quinlan là từ hệ quyết định S = ( U, C D),
ta tìm cách phân rã tập đối tượng U thành các nhóm pi mà trong mỗi nhóm pi, các đối tượng có cùng giá trị trong thuộc tính quyết định D
Cho hệ quyết định S = ( U, CD ) Ta giả sử thuộc tính
D có k giá trị khác nhau Domain(D) = {d1, d2, d3, , dk}
Ta thấy trong hệ quyết định S các thuộc tính điều kiện C thường quyết định giá trị thuộc tính D Theo thuật toán Quinlan chúng ta có thể tìm được tập luật, với những thuộc tính C như thế nào thì thuộc tính quyết định là d1 hay d2 v.v
2.4 KẾT LUẬN CHƯƠNG
Như vậy trong quá trình phân mảnh CSDL thì có thể sử dụng phép phân mảnh dọc hoặc phép phân mảnh ngang Tùy theo từng bài toán mà sử dụng phương pháp nào cho thích hợp; đôi khi có thể sử dụng kết hợp cả hai phương pháp này Thông thường khi thiết kế CSDL phân tán thì sử dụng phép phân tán dọc để thiết kế các quan hệ thành các chuẩn, sau đó sử dụng các phép phân rã ngang để phân mảnh dữ liệu trong quá trình khai thác CSDL Sau khi phân mảnh thì việc cấp phát các mảnh trên các nút cũng là vấn đề cần phải giải quyết, nó trở thành bài toán cấp phát các mảnh trên mạng
Trang 15CHƯƠNG 3 ỨNG DỤNG PHÉP PHÂN RÃ ĐỂ PHÂN TÍCH DỮ LIỆU SINH VIÊN TRONG TRƯỜNG CAO ĐẲNG KINH TẾ -
KỸ THUẬT THƯƠNG MẠI 3.1 GIỚI THIỆU BÀI TOÁN ỨNG DỤNG
Trong tất cả các trường học hiện nay công việc quản lý sinh viên, quản lý điểm, quản lý giảng dạy đã được tin học hóa Điều này đã giúp quá trình quản lý được nhanh chóng, đơn giản, hiệu quả Việc phân loại sinh viên ngày nay cũng sử dụng
hệ CSDL phân tán và hệ thống mạng để phân loại Đối với mỗi cấp học, mỗi loại hình học khác nhau lại có các tiêu chí phân loại khác nhau
Trường Cao Đẳng Kinh tế - Kỹ thuật Thương mại phân loại sinh viên theo từng khóa học Từ năm học 2008 -2009 Nhà Trường đã chuyển loại hình đào tạo sang tín chỉ nên phân loại sinh viên theo 4 nhóm (mức) là A B, C, D Hiện nay vẫn còn khóa 10 chưa ra trường vẫn còn đào tạo theo hình thức niên chế nên tiêu chí phân loại sinh viên theo 5 nhóm: Xuất sắc, Giỏi, Khá, TB, Yếu Do vậy bài toán phân loại sinh viên cũng có sự thay đổi theo các hình thức đào tạo này
3.2 PHÂN TÍCH BÀI TOÁN
3.2.1 Yêu cầu bài toán
Trang 16Để phân loại sinh viên có nhiều cách phân loại khác nhau, theo từng tiêu chí khác nhau Bài toán phân loại sinh viên trong trường Cao đẳng Kinh tế - Kỹ thuật Thương mại trong luận văn này được phân loại theo điểm học tập của sinh viên theo các nhóm khác nhau Sinh viên trong trường Cao đẳng Kinh tế - Kỹ thuật Thương Mại được đào tạo theo 2 loại hình thức:
Đào tạo theo niên chế thì sinh viên được xếp thành 5 nhóm: Giỏi, khá, Trung bình khá, Trung bình, yếu
Đào tạo theo tín chỉ thì sinh viên được xếp thành 4 nhóm:
A, B, C, D
Bài toán đặt ra: Có dữ liệu đầu vào là điểm của n sinh viên trường Cao đẳng Kinh tế - Kỹ thuật Thương Mại và số k nhóm cần xếp loại
Yêu cầu: Phân tích để xếp điểm của n sinh viên theo k nhóm
3.2.2 Giải quyết bài toán
Để thực hiện các yêu cầu bài toán, sử dụng thuật toán Mean để gom cụm dữ liệu điểm của n sinh viên theo k nhóm Bước 1: Thực hiện kết nối đến CSDL phân tán trên hệ thống mạng cục bộ để lấy danh sách điểm sinh viên và số nhóm k cần xếp nhóm
K-Bước 2: Khởi tạo k điểm làm trung tâm cho từng nhóm
Trang 17Bước 3: Tính tổng khoảng cách đến k điểm trung tâm
Bước 4: Nhóm các sinh viên vào k nhóm
Bước 5: Đặt lại k điểm trung tâm là điểm trung bình trong nhóm Bước 6: Quay lên bước 3
Bước 7: Đưa danh sách điểm sinh viên đã được xếp theo k nhóm
3.3 LỰA CHỌN NGÔN NGỮ VÀ MÔI TRƯỜNG CÀI ĐẶT
3.3.1 Giới thiệu hệ quản trị CSDL SQL SERVER 2008
Microsoft SQL server là một hệ quản trị cơ sở dữ liệu quan hệ (Relational Database Management System – RDBMS)
do Microsoft phát triển SQL Server là một hệ quản trị cơ sở dữ liệu quan hệ mạng máy tính hoạt động theo mô hình khách chủ cho phép đồng thời cùng lúc có nhiều người dùng truy xuất đến
dữ liệu, quản lý việc truy nhập hợp lệ và các quyền hạn của từng người dùng trên mạng
3.3.2 Giới thiệu ngôn ngữ lập trình VB.NET 2008
Visual Basic.NET (VB.NET) là ngôn ngữ lập trình khuynh hướng đối tượng (Object Oriented Programming Language) do Microsoft thiết kế Visual Basic.NET (VB.NET) không kế thừa VB6 hay bổ sung, phát triển từ VB6 mà là một ngôn ngữ lập trình hoàn toàn mới trên nền Microsoft ’s NET Framework
Trang 18Đây là ngôn ngữ lập trình mới và mạnh, không những lập nền tảng vững chắc theo kiểu mẫu đối tượng như các ngôn ngữ lập trình mạnh khác như C++, Java mà còn dễ học, dễ phát triển
và còn tạo mọi cơ hội hoàn hảo để giúp ta giải đáp những vấn
đề, những bài toán khi lập trình Visual Basic.NET (VB.NET) giúp ta dễ làm việc trên nền Windows và do đó, ta chỉ tập trung công sức vào các vấn đề liên quan đến dự án, công việc hay doanh nghiệp
3.4 MỘT SỐ GIAO DIỆN MINH HỌA
Hình 3.1: Giao diện thiết kế phân nhóm sinh viên
Trang 19Hình 3.2: Giao diện khi chạy chương trình phân nhóm sinh
viên theo niên chế
Hình 3.3: Giao diện khi chạy chương trình phân nhóm sinh
viên theo tín chỉ
Trang 203.5 KẾT QUẢ ĐẠT ĐƯỢC VÀ HƯỚNG NGHIÊN CỨU TIẾP
Sau khi thực hiện xong ứng dụng phép phân rã để phân tích dữ liệu sinh viên trong trường Cao đẳng Kinh tế - Kỹ thuật Thương Mại Kết quả đã đạt được:
Kết nối đến SQL Server để lấy CSDL phân tán trên mạng cục bộ của Nhà trường Đây chính là việc truy xuất dữ liệu và truyền trên mạng Sử dụng phân rã ngang để lấy một phần dữ liệu sinh viên
Ứng dụng đã sử dụng thuật toán K-Mean về để gom cụm điểm của n sinh viên theo k nhóm Số nhóm ở đây có thể thay đổi theo từng loại hình đào tạo: niên chế và tín chỉ trong Nhà Trường
Tuy nhiên ứng dụng chỉ dừng lại ở mức còn đơn giản số điểm của từng sinh viên còn ít Bài toán còn có thể giải quyết ở mức phức tạp hơn, số lượng điểm của từng sinh viên nhiều hơn CSDL sinh viên có thể phát triển nhiều hơn thế nữa Đây chính
là hướng phát triển của chương trình sau này
Trang 21KẾT LUẬN
Đối với một hệ CSDL vấn đề thiết kế CSDL là một vấn
đề quan trọng và có ảnh hưởng trực tiếp đến hiệu quả của hệ thống Thiết kế dữ liệu là vấn đề đầu tiên cần được quan tâm Mục đích của thiết kế CSDL quan hệ là sinh ra một tập các sơ
đồ quan hệ cho phép lưu trữ thông tin không bị dư thừa, đồng thời cho phép thực hiện các thao tác một cách dễ dàng Các thuật toán phân rã nhằm ứng dụng trong vấn đề loại trừ các dị thường về dữ liệu, giải quyết vấn đề vẹn toàn dữ liệu và bảo mật thông tin, ngoài ra nó còn tránh được các dư thừa về dữ liệu cũng như tiết kiệm bộ nhớ Đối với phân rã ngang thì ứng dụng nhiều trong việc truy xuất dữ liệu, khai thác và tìm kiếm dữ liệu khi các dữ liệu được phân rã và phân tán trên mạng Các thuật toán phân rã được đưa ra để giúp cho việc thiết kế CSDL tốt hơn
Khi thiết kế CSDL phân tán đã sử dụng một số thuật toán
để kiểm tra CSDL thiết kế tốt, thuật toán phân rã bảo toàn thông tin, thuật toán phân tán dọc, phân tán ngang Luận văn đã đưa ra được một số thuật toán phân tán ngang hệ tin và ứng dụng của
nó Cụ thể luận văn đã nêu ra được thuật toán K-Mean, thuật toán Quinlan và một số ứng dụng của nó trong thực tế Bên cạnh
đó luận văn đã đưa ra cài đặt chương trình ứng dụng thực tế cho thuật toán K- Mean trong phân loại sinh viên trường Cao Đẳng Kinh tế - Kỹ thuật Thương Mại