Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 26 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
26
Dung lượng
414,43 KB
Nội dung
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN ĐẠI HỌC QUỐC GIA TPHCM BÀI THU HOẠCH MÔN HỌC CƠ SỞ DỮ LIỆU NÂNG CAO Đề tài: Cơ sở dữ liệu phân tán trong SQL Server Giảng viên: PGS.TS Đỗ Phúc Học viên: Đào Thị Phấn Mã số: CH1101118 TPHCM, Tháng 8/2012 Trang 2 MỤC LỤC LỜI MỞ ĐẦU 3 Phần I: Giới thiệu cơ sở dữ liệu phân tán 4 1. Cơ sở dữ liệu phân tán là gì? 4 2. Ưu và nhược điểm của hệ dữ liệu phân tán 6 3. Các loại truy xuất cơ sở dữ liệu phân tán 6 4. Các đặc điểm chính của hệ phân tán 8 Phần II: Cơ sở dữ liệu phân tán trong SQL Server 12 1. Framework quản lý phân tán SQL (SQL Distributed Management Framework) 12 2. Giao tác phân tán 13 3. Server liên kế t - Linked server 15 3.1. Tạo linked server dùng Transact-SQL 15 3.2. Tạo linked server dùng công cụ giao diện đồ hoạ 17 4. Truy vấn phân tán (distributed query) 19 4.1. Truy vấn dùng linked server 21 4.2. Truy vấn dùng Adhoc computer name 22 5. Tính trong suốt dữ liệu trong dữ liệu phân tán 24 Tài liệu tham khảo 26 Trang 3 LỜI MỞ ĐẦU Ngày nay cùng với sự phát triển rất mạnh của internet là nhu cầu sử dụng, lưu trữ dữ liệu với lượng rất lớn của các doanh nghiệp nói riêng, của các ứng dụng công nghệ thông tin nói chung. Trong khi các tổ chức, doanh nghiệp có trụ sở phân tán ở nhiều vị trí địa lý khác nhau, vấn đề đặt ra làm thế nào để quản lý các luồng dữ liệu và sử dụng chung dữ liệu, chương trình chung của tổ chức. Ngoài ra, còn có các nhu cầu khác như sử dụng một phần hoặc toàn bộ dữ liệu một cách đồng thời với thời gian truy xuất nhanh. Do đó, nhu cầu phải có một hình thức để chia nhỏ/liên kết các luồng dữ liệu lại để từ đó có thể truy cập dữ liệu ở bất kỳ vị trí nào mà vẫn đạt hiệu quả cao là cần thiết. Để giải quyết v ấn đề này, cơ sở dữ liệu phân tán ra đời và tiếp đó là các hệ quản trị cơ sơ dữ liệu phân tán. Mặc dù SQL Server không phải là hệ hệ quản trị cơ sơ dữ liệu phân tán nhưng người dùng có thể dùng nó để xây dựng cơ sở dữ liệu phân tán với những hỗ trợ như MSDTC (for remote transtion), linked server, OPENDATASOURCE, … SQL Server là hệ quản trị cơ sở dữ liệu quan hệ và cũng đóng vai trò là nền tảng dữ liệu của doanh nghiệp. Các phiên bản gần đây của Microsoft SQL Server hỗ trợ nhiều tính năng mạnh so với các phiên bản trước như: dịch vụ thông báo, dịch vụ môi giới, dịch vụ báo cáo, và bộ máy xử lý cơ sở dữ liệu, … Tiểu luận này trình bày khái quát về cơ sở dữ liệu phân tán, đồng thời trình bày sự hỗ trợ cơ sở dữ liệu phân tán trong một hệ quản trị cơ sở dữ liệu phổ biến, đó là SQL Server. Em xin chân thành cảm ơn PGS.TS. Đỗ Phúc – Giảng viên môn học Cơ Sở Dữ Liệu Nâng Cao đã truyền đạt cho em những kiến thức vô cùng quý báu. Em cũng xin chân thành cảm ơn quý Thầy Cô thuộc phòng đ ào tạo Sau đại học đã tạo điều kiện về tài liệu tham khảo để em có thể hoàn thành môn học này. Chân thành cảm ơn! Trang 4 Phần I: Giới thiệu cơ sở dữ liệu phân tán 1. Cơ sở dữ liệu phân tán là gì? Cơ sở dữ liệu phân tán được hiểu là một cơ sở dữ liệu không được lưu trữ trong một thiết bị lưu trữ duy nhất, mà có thể được chia nhỏ và đặt ở nhiều máy tính khác nhau ở những nơi khác nhau về địa lý hoặc lưu trữ trong nhiều máy tính khác nhau có kết nối mạng. Một cơ sở dữ liệu phân tán có thể được lưu trữ ở các máy chủ có liên kết thông qua mạng internet, intranet, hay extranet, hoặc mạng các công ty. Sự nhân bản và phân bố dữ liệu đã giúp cho tốc độ truy xuất dữ liệu của các ứng dụng nhanh hơn. Nhằm đảm bảo cơ sở dữ liệu phân tán luôn được cập nhật đúng và đủ, cần có hai tiến trình, đó là nhân bản (replication) và duplication. Replication được thực hiện nhờ vào một phần mềm chuyên dụ ng nào đó. Đây là tiến trình tạo ra nhiều bản dữ liệu giống nhau. Tiến trình này sẽ tiêu tốn nhiều thời gian phụ thuộc vào kích cỡ và số lượng dữ liệu phân tán. Quá trình duplication không quá phức tạp như replication. Nó chỉ cần nhận diện một cơ sở dữ liệu như là dữ liệu chính (master database) và thực hiện duplicate nó. Quá trình này thông thường được thực hiện sau một khoảng thời gian được thiết lập. Điều này đảm bảo rằng dữ liệu ở những nơi phân tán sẽ được cập nhật và giống nhau. Trong quá trình duplication, có thể có thay đổi trên master database. Tuy nhiên, để đảm bảo dữ liệu cục bộ không bị mất thì trong cả hai tiến trình, dữ liệu hiện tại vẫn được giữ ở các nơi được phân tán. Ví dụ: Với một ngân hàng có ba chi nhánh đặt tại các vị trí khác nhau. Tại mỗi chi nhánh có một máy tính điều khiển một số máy tính khác và cơ sở dữ liệu thống kê của chi nhánh đó. Mỗi máy tính với cơ sở dữ liệu thống kê của mỗi nhánh được đặt ở một vị trí của cơ sở dữ liệu phân tán. Các máy tính được nối với nhau bởi một mạng truyền thông. Các nút trong một mạng phân tán một mặt xử lý thông tin tại vị trí mà nó quản lý, mặt Trang 5 khác nó cũng tham gia vào xử lý các yêu cầu về thông tin cần truy cập qua nhiều địa điểm. Ví dụ việc lên danh sách tất cả các nhân viên của công ty. Yêu cầu này đòi hỏi tất cả các máy tính ở các chi nhánh của công ty đều phải hoạt động để cung cấp thông tin. Có hai tiếp cận chính để lưu trữ một quan hệ trong hệ thống dữ liệu phân tán: - Nhân bản (replication) - Phân mảnh (fragmentation) Trong nhân bản, hệ thống sẽ lưu giữ m ột số bản của cùng một quan hệ ở nhiều nơi khác nhau. Và thuận lợi là: - Dữ liệu luôn có sẵn ở nhiều nơi để truy xuất - Truy xuất đồng thời gia tăng cho nhu cầu đọc dữ liệu Trong phân mảnh, một quan hệ có thể được chia làm nhiều quan hệ nhỏ hơn (các mảnh) và các mảnh này được lưu trữ ở các nơi khác nhau. Tuy nhiên, có thể tái thiết lại quan hệ ban đầ u từ các mảnh mà không mất dữ liệu. Có hai kiểu phân mảnh: phân mảnh ngang và phân mảnh dọc. CSDL11 T T T T Terminal M¸y tÝnh 3 M¸y tÝnh 2 T T T T T T T T CSDL2 CSDL3 Terminal M¹ng T. th«ng M¸y tÝnh 1 Hình 1: Một cơ sở dữ liệu p hân tán t r ên một mạn g p hân tán địa l ý Trang 6 2. Ưu và nhược điểm của hệ dữ liệu phân tán Đối tượng chủ yếu của hệ phân tán là cung cấp các dịch vụ truy cập dữ liệu và trình diễn dữ liệu cho người sử dụng ở mọi nơi khác nhau. Để đáp ứng được điều này, hệ thống phân tán phải được thiết kế về phần cứng lẫn phần mềm thích hợp vớ i vị trí địa lý và yêu cầu của người sử dụng. Cũng từ đó, chúng ta có thể thấy những ưu và nhược điểm của hệ thống phân tán như sau : a) Ưu điểm : Đáp ứng nhanh hầu hết các ứng dụng sử dụng dữ liệu tại các trạm. Tăng cường các đơn thể ứng dụng và cơ sở dữ li ệu mà không làm cản trở người sử dụng hiện tại. Kiểm soát dữ liệu địa phương theo hướng hoàn thiện sự tích hợp và quản trị dữ liệu từ xa. Tăng cường khả năng của hệ thống liên quan đến sự dư thừa dữ liệu. b) Nhược điểm : Phần mềm đắt và phức tạp Phải xử lý mọi thay đổi thông báo trong mọi địa điểm Khó kiểm soát tính toàn vẹn dữ liệu với nhiều bản sao dữ liệu được phân bố khắp mọi nơi. Đáp ứng chậm nhu cầu của các trạm trong trường hợp các phần mềm ứng dụng không được phân bố phù hợp với việc sử dụng chung. 3. Các loại truy xuất cơ sở dữ liệu phân tán Truy xuất dữ liệu từ xa của một ứng dụng có thể được thực hiện theo hai cách cơ bản: Truy xuất từ xa thông qua các tác vụ cơ bản và truy xuất từ xa thông qua chương trình phụ trợ : a) Truy xuất từ xa thông qua các tác vụ cơ bản : Trang 7 Theo cỏch ny, ng dng phỏt ra mt yờu cu truy xut c s d liu mt v trớ no ú. Yờu cu ny s c h qun tr c s d liu phõn tỏn t ng gi n v trớ cha d liu ú. Sau ú yờu cu ny c thc hin v kt qu c gi tr v. Hỡnh 2: Truy xut t xa thụng qua tỏc v c bn b) Truy xu t t xa thụng qua chng trỡnh ph tr : Nu mt ng dng yờu cu thc hin mt chng trỡnh ph tr t ti v trớ t xa thỡ chng trỡnh ph tr c vit bi ngi lp trỡnh ng dng ny s truy xut d liu t xa v tr li kt qu cho ng dng ang yờu cu. Hỡnh 3: Truy xut t xa thụng qua chng trỡnh ph tr Thụng thng cỏc h qun tr c s d liu cung cp hai loi truy xut t xa, bi vỡ mi cỏch trờn u cú nhng u v nhc im riờng. Cỏch th nht yờu cu phi cung cp nhiu mc trong sut phõn tỏn. Cỏch th hai cú th hiu qu hn nu cú nhiu yờu cu truy xut c s d liu bi vỡ chng trỡnh ph tr cú th thc hin mi truy xut c s d liu c yờu cu v ch gi v kt qu. Trình ứng dụng Vị trí 1 Vị trí 2 Các tác vụ cơ bản truy xuất CSDL Kết quả gửi về DBMS1 Cơ sở dữ liệu 2 DBMS2 Trình ứng dụng Vị trí 1 Vị trí 2 Yêu cầu thực hiện chơng trình phụ trợ Các tác vụ truy xuất CSDL v kết quả DBMS1 Cơ sở dữ liệu 2 DBMS2 Kết quả ton cục Chơng trình phụ trợ Trang 8 Nếu tính năng của chương trình phụ trợ trong cách thứ hai lớn hơn tính năng của các tác vụ cơ bản truy xuất cơ sở dữ liệu trong cách thứ nhất thì cách thứ hai có thể hiệu quả hơn. Do đó, các tác vụ cơ bản thao tác các mẫu tin cùng một lúc là một đặc tính rất hữu ích cho các hệ quản trị cơ sở dữ liệu cục bộ trong việc xây dựng cơ sở dữ liệu phân tán. Tuy nhiên, hầu hết hệ quản trị cơ sở dữ liệu thương mại sẵn có trên thị trường là hệ thống chỉ xử lý một mẫu tin tại một thời điểm (One record at a time system) và do đó chương trình phụ trợ là cần thiết. 4. Các đặc điểm chính của hệ phân tán a) Chia sẻ tài nguyên • Được thực hiện qua mạng truyền thông. • Mỗi tài nguyên cần phải được quản lý bởi một chương trình có giao diện truyền thông • Các tài nguyên có thể được truy nhập, cập nhật một cách tin cậy và nhất quán. Quản lý tài nguyên bao gồm: • Lập kế hoạch dự phòng • Đặt tên cho các lớp tài nguyên • Cho phép tài nguyên được truy nhập từ nơi này đến nơi khác • Ánh xạ tên tài nguyên vào đị a chỉ truyền thông. b) Tính mở Tính mở của hệ thống phân tán là tính dễ dàng mở rộng phần cứng của nó. Một hệ thống được gọi là có tính mở thì phải có các điều kiện sau: - Hệ thống có thể tạo nên bởi nhiều loại phần cứng và phần mềm của nhiều nhà cung cấp khác nhau. - Có thể bổ sung vào các dịch vụ dùng chung tài nguyên mà không phá hỏng hay nhân đôi các dịch vụ đang tồn tại. - Tính mở được hoàn thiện bằng cách xác định hay phân định rõ các giao diện chính của một hệ và làm cho nó tương thích với các nhà phát triển phần mềm. Trang 9 - Tính mở của hệ phân tán dựa trên việc cung cấp cơ chế truyền thông giữa các tiến trình và công khai các giao diện dùng để truy nhập các tài nguyên chung. c) Khả năng song song - Hệ phân tán hoạt động trên một mạng truyền thông có nhiều máy tính, mỗi máy có thể có một hay nhiều CPU. - Có thể thực hiện nhiều tiến trình trong cùng một thời điểm. Việc thực hiện tiến trình theo cơ chế phân chia thời gian (một CPU) hay (nhiều CPU). Khả nă ng làm việc song song trong hệ phân tán được thể hiện qua hai tình huống sau: - Nhiều người sử dụng đồng thời đưa ra các lệnh hay các tương tác với các chương trình ứng dụng. - Nhiều tiến trình Server chạy đồng thời, mỗi tiến trình phải đáp ứng yêu cầu từ các Clients. d) Khả năng mở rộng - Khả năng mở rộng của một hệ phân tán được đặc trưng bởi tính không thay đổi phầ n mềm hệ thống và phần mềm ứng dụng khi hệ được mở rộng. - Yêu cầu cho việc mở rộng không chỉ là mở rộng phần cứng, về mạng mà nó trải trên các khía cạnh khi thiết kế hệ phân tán. Ví dụ: tần suất sử dụng trên mạng đột ngột. Để tránh tình trạng tắc nghẽn xảy ra khi chỉ có một Server và phải đáp ứng các yêu cầu truy nhập các file đó. Người ta nhân bản các file trên một Server khác và hệ thống được thiết kế sao cho việc thêm Server được dễ dàng. Một số giải pháp khác là sử dụng Cache và các bảng sao dữ liệu. e) Khả năng thứ lỗi Việc thiết kế khả năng thứ lỗi các hệ thống máy tính dựa trên hai giải pháp sau: • Dùng khả năng thay thế để đả m bảo sự hoạt động liên tục và hiệu quả. • Dùng các chương trình hồi phục dữ liệu khi xảy ra sự cố. f) Đảm bảo tin cậy và nhất quán Hệ thống yêu cầu độ tin cậy như: . Bí mật của dữ liệu Trang 10 . Các chức năng khôi phục hư hỏng phải đảm bảo . Ngoài ra các yêu cầu của hệ thống về tính nhất quán cũng thể hiện ở chổ: không có mâu thuẩn trong nội dung cơ sở dữ liệu g) Tính trong suốt Tính trong suốt của một hệ phân tán được hiểu như là việc che khuất đi các thành phần riêng biệt của hệ đối với người sử dụng và những ngườ i lập trình ứng dụng. Các loại trong suốt trong hệ phân tán: - Trong suốt phân đoạn (fragmentation transparency) : Khi dữ liệu đã được phân đoạn thì việc truy cập vào CSDL được thực hiện bình thường như là chưa bị phân tán và không ảnh hưởng tới người sử dụng. Ví dụ: Xét quan hệ tổng thể NCC (Id, Tên, Tuổi) và các phân đoạn được tách ra từ nó: NCC1 (Id1, Tên, Tuổi) NCC2 (Id2, Tên, Tuổi) NCC3 (Id3, Tên, Tuổi) Giả sử DDBMS cung cấp tính trong suốt về phân đoạn, khi đó ta có thể thấy tính trong suốt này được thể hiện như sau: Khi muốn tìm một người có Id=”Id1“ thì chỉ cần tìm trên quan hệ tổng thể NCC mà không cần biết quan hệ NCC có phân tán hay không. SELECT * FROM NCC WHERE Id=”Id1” - Trong suốt về vị trí (location transparency) • Người sử dụng không cần biết về vị trí vật lý của dữ liệ u mà có quyền truy cập đến cơ sở dữ liệu tại bất cứ vị trí nào. • Các thao tác để lấy hoặc cập nhật một dữ liệu từ xa được tự động thực hiện bởi hệ thống tại điểm đưa ra yêu cầu. • Tính trong suốt về vị trí rất hữu ích, nó cho phép người sử dụng bỏ qua các bản sao dữ liệu đ ã tồn tại ở mỗi vị trí. Do đó có thể di chuyển một bản sao dữ liệu từ một vị [...]... Trang 11 Phần II: Cơ sở dữ liệu phân tán trong SQL Server SQL Server là hệ quản trị cơ sở dữ liệu ngoài hỗ trợ cơ sở dữ liệu quan hệ, nó còn hỗ trợ cơ sở dữ liệu phân tán Nó cho phép tạo ra các view từ các bảng dữ liệu trên các Server khác nhau được kết nối (linked server) , thực thi các truy vấn hay chuyển tác phân tán trải dài trên nhiều Server, Với hệ quản trị cơ sở dữ liệu SQL Server thì ngôn ngữ... vụ cơ sở dữ liệu SQL Server Service SQL Server có rất nhiều phiên bản và phiên bản mới nhất là SQL Server 2012 Tuy nhiên, khi thực hiện tiểu luận này thì các ví dụ được thể hiện trên SQL Server 2005 1 Framework quản lý phân tán SQL (SQL Distributed Management Framework) Framework quản lý phân tán SQL (SQL- DMF) là một framework tích hợp các đối tượng, dịch vụ và các thành phần sử dụng để quản lý SQL Server. .. phẩm ứng với hệ quản trị cơ sở dữ liệu SQL Server Trong trường hợp này chúng ta không cần cung cấp tham số này @provider=] ‘provider_name’: Tên trình cung cấp cơ sở dữ liệu [@datasrc=] ‘data_source’: Tên Server hay địa chỉ IP cài đặt SQL Server muốn tạo liên kết [@provstr=] ‘provider_string’: Chuỗi ứng với trình điều khiển cơ sở dữ liệu [@catalog=] ‘catalog’: Tên cơ sở dữ liệu muốn truy cập sau khi... truy cập linked server 4 Truy vấn phân tán (distributed query) Các câu truy vấn phân tán truy xuất dữ liệu từ nhiều nguồn dữ liệu khác nhau Những nguồn dữ liệu có thể được lưu trữ trong cùng hoặc khác máy tính Microsoft SQL Server hỗ trợ các câu truy vấn phân tán bằng cách sử dụng OLE DB Với những thông tin về những tính năng mới và nâng cao cho các câu truy vấn phân tán, người sử dụng SQL Server có thể... tác phân tán bên trong tiện ích của MS DTC Biến phải được khai báo với một trong các kiểu dữ liệu char, varchar, nchar, hoặc nvarchar 3 Server liên kết - Linked server SQL Server hỗ trợ khả năng liên kết với các hệ quản trị dữ liệu khác cũng như liên kết các máy chủ SQL Server với nhau thông qua việc tạo linked server Liên kết các máy chủ SQL Server cung cấp khả năng truy cập dữ liệu từ các nguồn dữ liệu. .. Tính trong suốt dữ liệu trong dữ liệu phân tán Với dữ liệu được truy xuất từ nhiều nơi khác nhau, muốn tập trung các dữ liệu này lại và thao tác như làm việc trên một máy cục bộ thì cần tạo sự trong suốt cho các dữ liệu này Lệnh tạo trong suốt dữ liệu: CREATE SYNONYM synonym_name FOR object_name Ví dụ: Thay vì với câu lệnh truy vấn SELECT * FROM linkedsvr.QLSV.dbo.SINHVIEN Sẽ cho về tất cả dữ liệu có trong. .. thể sử dụng các câu truy vấn phân tán để truy xuất dữ liệu như sau: • Dữ liệu phân tán được lưu trữ trong nhiều mẫu cài đặt của SQL Server • Các dữ liệu hỗn tạp lưu trữ trong các quan hệ khác nhau và các dữ liệu không quan hệ truy xuất bằng sử dụng một OLE DB provider Trang 19 Nguồn cung cấp OLE DB đặt dữ liệu vào các đối tượng được xếp thành bảng gọi là các rowset SQL Server cho phép các rowset từ... ngữ dùng để tương tác với cơ sở dữ liệu là Transact – SQL Đây là một phiên bản của ngôn ngữ SQL Ngôn ngữ Transact – SQL trên SQL Server bao gồm nhiều câu lệnh khác nhau nhưng chia thành hai nhóm chính: nhóm lệnh định nghĩa dữ liệu và nhóm lệnh thao tác dữ liệu SQL Server là một hệ quản trị cơ sở dữ liệu quan hệ hoạt động trên môi trường mạng theo mô hình khách/chủ (client -server) Phía máy chủ chạy... tượng dữ liệu trong lược đồ (ví dụ tên table hay view) SQL Server sử dụng tên liên kết máy chủ (linked server name) để định danh nơi cung cấp OLE DB và dữ liệu nguồn, các tham số catalog, schema, và object_name được hợp quy cách đến nguồn cung cấp OLE DB để nhận dạng một đối tượng dữ liệu đặc biệt Khi một linked _server tham chiếu đến một mẫu cài đặt của SQL Server thì catalog tham chiếu đến cơ sở dữ liệu. .. dữ liệu muốn liến kết (Ví dụ: để liên kết đến cơ sở dữ liệu SQL Server, chọn Microsoft OLE DB Provider for SQL Server) Trang 17 Product name: Đặt tên tùy thích (đối với SQL Server 2000 thì ở mục này có thể không cần nhập, nhưng SQL Server 2005 thì bắt buộc nhập) Datasource: Nhập vào tên server muốn liên kết tới Catalog: Nhập vào tên database trên server muốn liên kết Hình 4: Nhập thông tin linked server . Trang 12 Phần II: Cơ sở dữ liệu phân tán trong SQL Server SQL Server là hệ quản trị cơ sở dữ liệu ngoài hỗ trợ cơ sở dữ liệu quan hệ, nó còn hỗ trợ cơ sở dữ liệu phân tán. Nó cho phép tạo. lý cơ sở dữ liệu, … Tiểu luận này trình bày khái quát về cơ sở dữ liệu phân tán, đồng thời trình bày sự hỗ trợ cơ sở dữ liệu phân tán trong một hệ quản trị cơ sở dữ liệu phổ biến, đó là SQL. thiệu cơ sở dữ liệu phân tán 4 1. Cơ sở dữ liệu phân tán là gì? 4 2. Ưu và nhược điểm của hệ dữ liệu phân tán 6 3. Các loại truy xuất cơ sở dữ liệu phân tán 6 4. Các đặc điểm chính của hệ phân