NGHIÊN CỨU CÁC KỸ THUẬT TÁCHGỘP SONG SONG TRÊN CƠ SỞ DỮ LIỆU PHÂN TÁN VÀ ỨNG DỤNG Như chúng ta đã biết quá trình xử lý thông tin trong các hệ thống lớn hoạt động trên hệ thống mạng, để tăng tốc độ xử lý thì không những xây dựng hạ tầng mạng có đƣờng truyền lớn, mà chúng ta cần phải nghĩ đến việc phân tán dữ liệu nhƣ thế nào trong hệ thống bởi vì nó quyết định rất lớn đến kết quả xử lý thông tin.
HỌC VIỆN CÔNG NGHỆ BƢU CHÍNH VIỄN THÔNG Dƣơng Thị Nguyệt NGHIÊN CỨU CÁC KỸ THUẬT TÁCH-GỘP SONG SONG TRÊN CƠ SỞ DỮ LIỆU PHÂN TÁN VÀ ỨNG DỤNG Chuyên ngành: Khoa học máy tính Mã số: 60.48.01.01 TÓM TẮT LUẬN VĂN THẠC SĨ HÀ NỘI - 2014 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 Ngƣời hƣớng dẫn khoa học: PGS. NCVC. TS. Lê Huy Thập Phản biện 1: TS. Nguyễn Trọng Đƣờng Phản biện 2: TS. Hà Hải Nam Luận văn sẽ đƣợc bảo vệ trƣớc Hội đồng chấm luận văn thạc sĩ tại Học viện Công nghệ Bƣu chính Viễn thông Vào lúc: 10h giờ 15 ngày 15 tháng 02 năm 2014. Có thể tìm hiểu luận văn tại: - Thƣ viện của Học viện Công nghệ Bƣu chính Viễn thông 1 MỞ ĐẦU Trong những năm gần đây công nghệ thông tin ngày càng phát triển và ngày càng đƣợc ứng dụng linh hoạt và phổ biến hơn vào thực tế.Nhƣng vấn đề quan trọng ở đây là làm thế nào để có thể áp dụng công nghệ vào thực tế một cách khoa học và có ý nghĩa cũng nhƣ hiệu quả cao nhất có thể.Đó là bài toán khá khó đối với ngành công nghệ thông tin hiện tại. Có thể xét 1 khía cạnh nào đó của thực tế đó là yêu cầu đối với các hệ thống có quy mô lớn cần quan tâm nhất đó là vấn đề xử lý thông tin nhanh nhất và trả ra kết quả chính xác nhất với chi phí là tối ƣu nhất có thể. Nhƣ chúng ta đã biết quá trình xử lý thông tin trong các hệ thống lớn hoạt động trên hệ thống mạng, để tăng tốc độ xử lý thì không những xây dựng hạ tầng mạng có đƣờng truyền lớn, mà chúng ta cần phải nghĩ đến việc phân tán dữ liệu nhƣ thế nào trong hệ thống bởi vì nó quyết định rất lớn đến kết quả xử lý thông tin. Trong thời gian qua tôi đã tìm hiểu về hệ thống cơ sở dữ liệu phân tán và thấy rằng để giải quyết vấn đề ách tắc vào ra thƣờng gặp trong các hệ CSDL song song, ngoài việc áp dụng một kiến trúc phần cứng thích hợp, ngƣời ta tiến hành phân mảnh dữ liệu một cách hợp lý cho các bộ xử lý và thực hiện câu vấn tin đã cho một cách đồng thời trên các mảnh. Hiện nay các chƣơng trình viết bằng ngôn ngữ SQL dùng để xử lý CSDL đều có thể đƣa vào các máy đa xử lý để thực hiện song song. Phần mềm SQL viết cho các hệ thống đơn xử lý có thể đƣa vào các máy tính song song để thực hiện song song thông qua chƣơng trình dịch của ngôn ngữ lập trình song song. Do đó tôi đã chọn đề tài luận văn là: “Nghiên cứu các kỹ thuật tách – gộp song song trên CSDL phân tán và ứng dụng”, nội dung luận văn này sẽ nghiên cứu và đề xuất các giải pháp tách-gộpsong song và cho thấy đƣợc kết quả các thuật toán này sẽ làm tăng rất nhiều về hiệu năng xử lý dữ liệu và truyền dữ liệu so với cơ sở dữ liệu tập trung. 2 CHƢƠNG 1: CƠ SỞ LÝ THUYẾT 1.1 Tổng quan về CSDL phân tán Hệ cơ sở dữ liệu phân tán (Distributed Database System – DDBS) là một tập hợp dữ liệu có liên đới logic và đƣợc phân bố trên các nút của một mạng máy tính. Cơ sở dữ liệu phân tán (CSDLPT) có các đặc điểm: Tính phân tán và tính tƣơng quan logic. 1.2 Các kỹ thuật phân mảnh dữ liệu trong CSDL Quy tắc phân mảnh đúng đắn Phải tuân thủ ba quy tắc trong khi phân mảnh mà chúng bảo đảm rằng CSDL sẽ không có thay đổi nào về ngữ nghĩa khi phân mảnh:Tính đầy đủ, tính tái thiết đƣợc, tính tách biệt. Các yêu cầu thông tin Một điều cần lƣu ý trong việc thiết kế phân tán là quá nhiều yếu tố có ảnh hƣởng đến một thiết kế tối ƣu. Tổ chức logic của CSDL, vị trí các ứng dụng, đặc tính truy xuất của các ứng dụng đến CSDL, và các đặc tính của hệ thống máy tính tại mỗi vị trí đều có ảnh hƣởng đến các quyết định phân tán. Điều này khiến cho việc diễn đạt bài toán phân tán trở nên phức tạp. Nhƣ chúng ta đã biết phép chiếu một quan hệ nếu cho kết quả là một quan hệ thì các bộ trùng lặp phải đƣợc loại bỏ (chỉ giữ lại 1 trong những bộ giống nhau). Phép chiếu mở rộng một quan hệ có thể chấp nhận các bộ giống nhau, trƣờng hợp này kết quả thu đƣợc là một bảng. Thuật ngữ bảng là để chỉ một quan hệ và ngƣợc lại. 3 1.2.1 Phân mảnh ngang Phân mảnh ngang 1 quan hệ tổng thể n-bộ R là tách R thành các quan hệ con n-bộ R 1 , R 2 , … R k sao cho quan hệ R có thể đƣợc khôi phục lại từ các quan hệ con này bằng phép hợp R = R 1 U R 2 U … U R k . 1.2.1.1 Phân mảnh ngang (Vòng tròn Robin) Phần giả mã đƣợc viết nhƣ sau: Ký hiệu Y = { n 0 , n 1, …, n p-1, n p } For i = 0 to N-1 For Each element In Y If element mod N = i Save element vào vùng i Y - = element End if Next element End For Cách phân mảnh này dễ cài đặt và không xảy ra tình trạng thiếu cân đối về dữ liệu vì các vùng chỉ hơn kém nhau tối đa một bộ. Kỹ thuật phân mảnh này dựa trên thứ tự các bộ nên nó không phụ thuộc vào bất cứ một thuộc tính nào của quan hệ đƣợc phân mảnh. Phân mảnh Robin không thích hợp với các truy vấn khoảng vì phải tiến hành tìm kiếm trên tất cả các vùng có lƣu quan hệ đang xét. 2.2.1.2 Phân mảnh ngang theo hàm băm Phân mảnh theo hàm băm là trƣờng hợp tổng quát của Robin. Giả sử cần phân mảnh quan hệ R cho N vùng đƣợc đánh số 0, 1, …, N-1 với thuộc tính phân 4 mảnh là A. Bộ t thuộc R đƣợc đƣa vào vùng k nếu k = t(A) mod N, trong đó t(A) là giá trị trên thuộc tính A của bộ t. Giả mã đƣợc viết nhƣ sau: Y = {t(A)} For i = 0 to N-1 For each element In Y If element mod N = i Save bản ghi tƣơng ứng với element vào vùng i Y - = element End if Next element; End for Ta thấy: - Khi truy xuất đến các mẫu tin phải dựa vào giá trị thuộc tính đã dùng để phân mảnh. - Dữ liệu sẽ đƣợc phân mảnh đều cho các vùng và thuận tiện cho việc tìm kiếm kết hợp. - Giảm sự quá tải khi phải khởi động truy vấn trên tất cả các vùng. Thông thƣờng các dữ liệu liên quan đƣợc nhóm lại với nhau và lƣu trữ trên cùng một trang vật lý. - Nhƣng phân mảnh theo hàm băm thì các mẫu tin đƣợc phân mảnh ngẫu nhiên vào các vùng chứ không đƣợc nhóm lại với nhau nên không thích hợp với các truy vấn khoảng. 1.2.1.3 Phân mảnh ngang theo khoảng Gộp những bộ mà giá trị thuộc tính nào đó của các bộ của chúng thuộc miền nào đó. Thông thƣờng dùng câu lệnh SQL để phân ra nhiều mảng, có dạng nhƣ sau: 5 Vùng 0 Select * From <Tên quan hệ> Where <Condition 0 > Vùng 1 Select * From <Tên quan hệ> Where <Condition 1 > … Vùng n Select * From <Tên quan hệ> Where <Condition n > Chú ý rằng các Condition i , Condition j , với i # j là các khoảng loại trừ nhau. 1.2.1.4 Phân mảnh ngang dẫn xuất Phân mảnh ngang dẫn xuất đƣợc định nghĩa trên một quan hệ thành viên của một đƣờng nối dựa theo phép toán chọn trên quan hệ chủ nhân của đƣờng nối đó.Chúng ta cần lƣu ý 2 điểm.Một là đƣờng nối giữa quan hệ chủ nhân và thành viên đƣợc định nghĩa là một đƣờng nối bằng.Thứ hai, nối bằng có thể đƣợc cài đặt nhờ các nối nửa. Điều này rất quan trọng với mục đích của chúng ta vì chúng ta muốn phân hoạch quan hệ thành viên theo phân mảnh của chủ nhân nhƣng cũng muốn mảnh thu đƣợc chỉ định nghĩa trên các thuộc tính của quan hệ thành viên. Nhƣ thế nếu cho trƣớc một đƣờng nối L, trong đó owner(L) = S và member(L) = R, các mảnh ngang dẫn xuất của R đƣợc định nghĩa là (hình1.8). 6 R i = R S i , 1<= i <= Hình 1.2 Phân mảnh ngang dẫn xuất quan hệ R theo các mảnh của quan hệ S Trong đó là số lƣợng các mảnh đƣợc định nghĩa trên R, và S i = FI (S)vớiF i là công thức định nghĩa mảnh ngang nguyên thủy S i . Quyết định cách phân mảnh nào cần dựa trên hai tiêu chuẩn sau: - Phân mảnh có đặc tính nối tốt hơn - Phân mảnh đƣợc sử dụng trong nhiều ứng dụng hơn 1.2.2 Phân mảnh dọc Phân mảnh dọc chia mộtquan hệ R ra các mảnh R 1 , R 2 , …, R r . Mỗi mảnh chứa một tập con các thuộc tính cùng với khóa của quan hệ R. Mục đích của phân mảnh dọc là phân mảnh một quan hệ thành một tập các quan hệ nhỏ hơn, để có nhiều ứng dụng chỉ cần chạy trên một mảnh. Nhƣ vậy một cách phân mảnh tối ƣu là phân mảnh sinh ra một lƣợc đồ phân mảnh cho phép giảm tối đa thời gian thực thi các ứng dụng chạy trên các mảnh đó. Phân mảnh dọc 1 quan hệ tổng thể n-bộ R là tách R thành các quan hệ con n- bộ R 1 , R 2 , … R k sao cho quan hệ R có thể đƣợc khôi phục lại từ các quan hệ con này bằng phép nối R = R1 R2 … Rk. Phân mảnh là phức tạp hơn phân mảnh ngang, vì số lựa chọn có thể có của phân mảnh dọc là rất lớn. Trong phân mảnh ngang, nếu tổng các vị từ đơn giảncủa tập Pr là n thì số mảnh ngang có thể có tối đa là 2n (vì có 2n vị từ hội s = cấp) chƣa nói trong số chúng có một số sẽ mâu thuẫn với các phép kéo theo do đó sẽ làm giảm số mảnh phải xem xét. Còn trong phân mảnh dọc nếu một quan hệ có m thuộc tính không phải là khóa thì số mảnh dọc có thể có sẽ là số Bell thứ m B(m). Với m đủ lớn thì số Bell B(m) mm, ví dụ m=10, B(m) =115.000; m=9, B(m) = 109; 7 m=30,(m) = 10 23 , …. Qua những ví dụ này ta thấy để tìm các phân mảnh dọc tối ƣu là bài toán Heuricstic. 1.2.3 Phân mảnh hỗn hợp Trong đa số các trƣờng hợp, phân mảnh ngang hoặc phân mảnh dọc đơn giản cho một lƣợc đồ CSDL không đủ đáp ứng các yêu cầu từ các ứng dụng.Trong trƣờng hợp đó, phân mảnh dọc có thể đƣợc thực hiện sau 1 phân mảnh ngang hoặc ngƣợc lại, sinh ra một lối phân mảnh có cấu trúc cây.Bởi vì, hai loại chiến lƣợc phân mảnh này đƣợc áp dụng lần lƣợt, chọn lựa này đƣợc gọi là phân mảnh hỗn hợp (hybrid fragmentation). Tính đúng đắn và các điều kiện cho phân mảnh hỗn hợp là chúng tuân theo những yêu cầu của phân mảnh ngang và phân mảnh dọc. 1.2.4 Tái cấu trúc quan hệ 1.2.4.1 Tái thiết quan hệ với Phân mảnh ngang Tái thiết một quan hệ toàn cục từ các mảnh đƣợc thực hiện bằng toán tử hợp trong cả phân mảnh ngang nguyên thủy lẫn dẫn xuất, vì thế một quan hệ R với phân mảnh F R = {R 1 , R 2 , R 3 , … R m } chúng ta có: R = R i ; R i F R 1.2.4.2 Tái thiết quan hệ với Phân dọc Đối với quan hệ R có phân mảnh dọc F R = {R 1 , R 2 , R 3 , … R r } và các thuộc tính khóa K R = K R i , R i F R Do vậy nếu điều kiện mỗi R i là đầy đủ phép toán nối sẽ tái thiết lại đúng R. Một điểm quan trọng là mỗi mảnh R i phải chứa các thuộc tính khóa của R. 8 1.3 Các phƣơng pháp xử lí song song 1.3.1 Song song liên truy vấn 1.3.1.1 Lập lịch cạnh tranh Lập lịch cạnh tranh là lập lịch trên cơ sở cạnh tranh. Ƣu điểm đối với phƣơng pháp này là đơn giản và “công bằng” theo nghĩa mỗi truy vấn đều có cùng cơ hội để cạnh tranh các tài nguyên tính toán. Tuy nhiên khả năng sử dụng hệ thống của phƣơng pháp này chƣa cao. Tạo ra tập các tiến trình điều phối Hàng đợi của các câu truy vấn Bộ điều phối xử lý Câu truy vấn 1 Tiến trình điều phối 1 Câu truy vấn n Tạo các toán tử phục vụ Tiến trình điều phối n …… Hình 1.12Sơ đồ lập lịch cạnh tranh 1.3.1.2 Lập lịch theo phƣơng án Phƣơng pháp lập lịch này có khả năng sử dụng hệ thống tốt hơn nhƣng không “công bằng” nhƣ phƣơng pháp lập lịch trên cơ sở cạnh tranh. Bởi các truy [...]... rộng cơ sở dữ liệu mà trƣớc đó chƣa định hƣớng phân tán trƣớc vì sẽ mất rất nhiều thời gian, công sức và tiền bạc để thực hiện đồng bộ cơ sở dữ liệu trƣớc và sau Do hạn chế về thời gian nghiên cứu nên trong luận văn chỉ đi sâu nghiên cứu và demo trên cơ sở dữ liệu phân tán bằng thuật toán trộn phân tán và áp dụng tại dữ liệu công ty TNHH Hoàng Hà KIẾN NGHỊ VÀ HƢỚNG NGHIÊN CỨU TIẾP THEO - Nghiên cứu tổng... khác và cải thiện hiệu nănglấy dữ liệu trên mạng cho các truy vấn toàn bộvì dữ liệu sẽ đƣợc lấy từ các trạm cục bộ Nhƣợc điểm: Các thao tác cập nhập dữ liệu rất chậm vì phải copy, đồng bộ dữ liệu cho mọi trạm Kỹ thuật điểu khiển tƣơng tranh và phục hồi sẽ phức tạp hơn Tại HN Nhập dữ liệu Dữ liệu tại Hà Nội Nhập dữ liệu Dữ liệu tại Đà Nẵng Nhập dữ liệu Tại HCM Tại ĐN Tất cả Dữ liệu tra cứu Tra cứu Dữ liệu. .. truy xuất dữ liệu làm báo cáo Áp dụng giải pháp Trộn phân tán để demo cho chức năng Danh mục nhân viên và Tra cứu thông tin KẾT LUẬN Sau một khoảng thời gian tìm hiểu với đề tài: Nghiên cứu các kỹ thuật tách – gộp song song trên CSDL phân tán và ứng dụng tôi đã đạt đƣợc các kết quả chính thông qua luận văn bao gồm các nội dung sau: Tìm hiểu về cơ sở dữ liệu phân tán và thẩy rằng CSDLPT có các ƣu điểm... với các dòng dữ liệu song song.Mỗi phép toán quan hệ có một tập các cổng vào chứa các mẫu tin và một cổng ra chứa dòng dữ liệu kết quả Dòng dữ liệu song song thực hiện bằng cách tách và ghép các dòng dữ liệu thành các cổng tuần tự có hai phép toán song song cơ bản: phép ghép (merge operator ) và phép tách (spliting operator) Ngoài ra, phép ghép cũng có thể xem là phép kết hợp nhiều dòng dữ liệu song song... song song Các kết quả sau khi tìm hiểu và nghiên cứu này có thể áp dụng cho các trƣờng hợp nhƣ xây dựng một cơ sở dữ liệu mới cho các công ty, tổ chức có các chi nhánh hay văn phòng ở nhiều nơi khác nhau hoặc áp dụng trong trƣờng hợp các công ty, tổ chức đã xác định rõ cơ sở dữ liệu theo kiểu phân tán trƣớc đó và mở rộng hơn Hạn chế sử dụng các kết quả này áp dụng cho các công ty, tổ chức mở rộng cơ. .. hạ và cung cấp nhiều khả năng mà trƣớc đây chỉ có các máy tính lớn mới có đã cung cấp phần cứng cần thiết cho sự phát triển của các hệ phân tán Kết thúc chƣơng 1 tôi đã trình bày đƣợc các vấn đề liên quan đến tổng quan dữ liệu phân tán, các kỹ thuật phân mảnh và các phƣơng pháp xử lý song song Thông qua tìm hiểu lý thuyết giúp chúng ta hiểu thêm về cơ sở dữ liệu phân tán, ƣu và nhƣợc điểm của loại cơ. .. chế Tìm hiểu các kỹ thuật phân mảnh dữ liệu: phân mảnh ngang, phân mảnh dọc và phân mảnh hỗn hợp, Tái cấu trúc quan hệ Qua đây chúng ta sẽ hiểu hơn các ƣu nhƣợc điểm của từng kiểu phân mảnh dữ liệu để có thể áp dụng chính xác nhất với từng CSDL thực tế 27 Tìm hiểu các phương pháp xử lý song song thông qua 3 giải pháp : Phân mảnh lại, Trộn phân tán, Trộn tập trung Ta thấy khi xử lý song song sẽ tiết... trữ đã phân tán và phân mảnh giả định nhƣ hình 3.1 Hà Nội Sài Gòn CSDL2 Môi trường mạng CSDL1 Đà Nẵng Hình 3.1 Sơ đồ lƣu trữ dữ liệu phân tán 3.2 Tạo CSDL phân tán - Sử dụng mô hình client/server CSDL3 20 - Thực hiện nhân bản dữ liệu đầy đủ: Toàn bộ cơ sở dữ liệu sẽ đƣợc tạo trên tất cảmỗi trạm Ƣu điểm: Điều này sẽ cải thiện tính sẵn sàng cao nhất vì nếu sự cố trên trạm này thì vẫn có dữ liệu trên trạm... đƣợc các thuật toán tách gộp song song trên cơ sở dữ liệu phân tán thông qua các giải pháp: Giải pháp phân mảnh lại, giải pháp trộn tập trung, giải pháp trộn phân tán. Với mỗi giải pháp tôi đã trình bày về tổng quan giải pháp và đƣa ra ví dụ minh họa cụ thể.Qua mỗi phần trình bày lý thuyết của các thuật toán giúp chúng ta hiểu thêm hơn thuật toán cũng nhƣ qua đó có thể vận dụng linh hoạt hơn các thuật. .. liệu trên địa chỉ lƣu trữ của nó, mà trƣớc tiên phân mảnh lại quan hệ trên thuộc tính nhóm GROUP BY Bƣớc 2: Các vị trí thực hiện gộp nhóm thành phần dữ liệu sau khi đã phân mảnh lại Xét Ví dụ 2.2: Giả sử cho bảng thống kê nhân viên năm 2011 tại các chi nhánhnhƣ hình 2.5.Thực hiện phân mảnh lại cho cơ sở dữ liệu của công ty Ví dụ trên sau khi ứng dụng thuật toán Ref ta có: Dữ liệu tại Hà Nội Dữ liệu . mảnh:Tính đầy đủ, tính tái thi t đƣợc, tính tách biệt. Các yêu cầu thông tin Một điều cần lƣu ý trong việc thi t kế phân tán là quá nhiều yếu tố có ảnh hƣởng đến một thi t kế tối ƣu. Tổ chức. của phân mảnh ngang và phân mảnh dọc. 1.2.4 Tái cấu trúc quan hệ 1.2.4.1 Tái thi t quan hệ với Phân mảnh ngang Tái thi t một quan hệ toàn cục từ các mảnh đƣợc thực hiện bằng toán tử hợp trong. Chuyên ngành: Khoa học máy tính Mã số: 60.48.01.01 TÓM TẮT LUẬN VĂN THẠC SĨ HÀ NỘI - 2014 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 Ngƣời hƣớng