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

Phép phân rã trong cơ sở dữ liệu phân tán và ứng dụng

22 898 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 22
Dung lượng 597,13 KB

Nội dung

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 1

BỘ 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 2

Luậ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 3

CHƯƠ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 4

Phâ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 5

Trong đó: 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 6

phé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 7

CHƯƠ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 9

W1 = < 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 10

Ngượ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 12

sá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 13

Coi 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 14

2.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, CD ) 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 15

CHƯƠ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 17

Bướ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 19

Hì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 20

3.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 21

KẾ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

Ngày đăng: 17/02/2014, 09:40

HÌNH ẢNH LIÊN QUAN

Giả sử ta có bảng giá trị sử dụng như trong Bảng 2.9 - Phép phân rã trong cơ sở dữ liệu phân tán và ứng dụng
i ả sử ta có bảng giá trị sử dụng như trong Bảng 2.9 (Trang 12)
Bảng 2.11: Bảng giá trị sử dụng - Phép phân rã trong cơ sở dữ liệu phân tán và ứng dụng
Bảng 2.11 Bảng giá trị sử dụng (Trang 12)
Hình 2.1. Sơ đồ thuật toán K-means clusteringBegin  - Phép phân rã trong cơ sở dữ liệu phân tán và ứng dụng
Hình 2.1. Sơ đồ thuật toán K-means clusteringBegin (Trang 13)
Hình  2.1. Sơ đồ thuật toán K-means clustering - Phép phân rã trong cơ sở dữ liệu phân tán và ứng dụng
nh 2.1. Sơ đồ thuật toán K-means clustering (Trang 13)
Hình 3.1: Giao diện thiết kế phân nhóm sinh viên - Phép phân rã trong cơ sở dữ liệu phân tán và ứng dụng
Hình 3.1 Giao diện thiết kế phân nhóm sinh viên (Trang 18)
Hình 3.1: Giao diện thiết kế phân nhóm sinh viên - Phép phân rã trong cơ sở dữ liệu phân tán và ứng dụng
Hình 3.1 Giao diện thiết kế phân nhóm sinh viên (Trang 18)
Hình 3.2: Giao diện khi chạy chương trình phân nhóm sinh viên theo niên chế  - Phép phân rã trong cơ sở dữ liệu phân tán và ứng dụng
Hình 3.2 Giao diện khi chạy chương trình phân nhóm sinh viên theo niên chế (Trang 19)
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ỉ  - Phép phân rã trong cơ sở dữ liệu phân tán và ứng dụng
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 19)
Hình 3.2: Giao diện khi chạy chương trình phân nhóm sinh - Phép phân rã trong cơ sở dữ liệu phân tán và ứng dụng
Hình 3.2 Giao diện khi chạy chương trình phân nhóm sinh (Trang 19)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w