I.2 Giới thiệu hệ quản trị cơ sở dữ liệu SQL Server Microsoft SQL Sever là một hệ quản trị cơ sở dữ liệu quan hệ cung cấp cách tổ chức dữ liệu bằng cách lưu chúng vào các bảng.. Ngoài ra
Trang 1ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
ĐẠI HỌC CÔNG NGHỆ THÔNG TIN CHƯƠNG TRÌNH ĐÀO TẠO THẠC SỸ
Trang 2TP HCM, năm 2012
Trang 3MỤC LỤC
Phần I TỔNG QUAN VỀ SQL SERVER 2005 1
I.1 Định nghĩa hệ quản trị cơ sở dữ liệu 1
I.2 Giới thiệu hệ quản trị cơ sở dữ liệu SQL Server 1
I.3 Các thành phần trong SQL Server 2005 1
I.3.1 Các phiên bản SQL Server 2005 2
I.3.2 Các thành phần Server trong SQL server 2005 3
I.3.3 Các thành phần Client 4
I.3.4 Các tính năng của SQL Server 2005 4
I.3.5 Kiểu tập tin cơ sở dữ liệu 5
Phần II KHÁI QUÁT VỀ CƠ SỞ DỮ LIỆU PHÂN TÁN 7
II.1 Các khái niệm về cơ sở dữ liệu phân tán 7
II.2 Kiến trúc cơ bản của CSDL phân tán 8
II.3 Các lý do để sử dụng CSDL phân tán 9
Phần III CƠ SỞ DỮ LIỆU PHÂN TÁN TRONG SQL SERVER 2005 10
III.1 Framework quản lý phân tán SQL (SQL Distributed Management Framework) 10
III.2 Giao tác phân tán 11
III.3 Liên kết SQL bằng thủ tục hệ thống 13
III.4 Truy vấn phân tán 15
III.5 Linked Server 19
III.6 Kiến trúc của câu truy vấn phân tán 20
III.7 Ánh xạ các kiểu dữ liệu trong câu truy vấn phân tán 23
III.8 Tùy chọn để định nghĩa liên kết máy chủ 23
III.9 Những điều lưu ý của Máy chủ liên kết trong một nhóm SQL Server (Clustered SQL Server) 25
III.10 Loopback các máy chủ liên kết 26
III.11 Microsoft OLE DB Provider cho Oracle (từ SQL Server) 27
III.12 Tạo trong suốt dữ liệu 27
III.13 Tài liệu tham khảo 28
Trang 4LỜI MỞ ĐẦU
Trong sự phát triển của xã hội ngày nay, công nghệ thông tin có một bước phát triển mới và hàng ngày lượng thông tin dữ liệu tăng dần và trở thành một khối dữ liệu khổng lồ Với nhu cầu phát triển thì áp dụng cơ sở dữ liệu phân tán để đáp ứng được lượng dữ liệu ngày càng lớn đó Ví dụ ngày nay chúng ta thấy có rất nhiều ngân hàng phát triển và có xu hướng mở chi nhánh tại các tỉnh thành vì thế cơ sở dữ liệu phân tán là rất phù hợp với xu hướng hiện tại Tại các chi nhánh có thể quản lý nhân viên thông tin của chi nhánh mình nhưng cũng có một máy chủ, chi nhánh chính nắm bắt được tất cả các tình hình của các chi nhánh con đó.
Trong bài tìm hiểu này với khoảng thời gian ngắn em xin giới thiệu tổng quát về cơ sở
dữ liệu phân tán và cơ sở dữ liệu phân tán trong SQL server 2005
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 những kiến thức vô cùng quý báu, xin chân thành cám ơn ban cố vấn học tập và ban quản trị chương trình đào tạo thạc sĩ Công nghệ thông tin qua mạng của Đại Học Quốc Gia TPHCM đã 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.
Em xin chân thành cảm ơn
Lê Thị Xuân Diệu
Trang 5Phần I TỔNG QUAN VỀ SQL SERVER 2005
I.1 Định nghĩa hệ quản trị cơ sở dữ liệu
Hệ quản trị cơ sở dữ liệu (Database Management System -DBMS): Là một hệ thốngphần mềm cho phép tạo lập cơ sở dữ liệu và điều khiển mọi truy nhập của cơ sở dữ liệu đó
Trên thị trường Việt Nam hiện nay đã xuất hiện khá nhiều phần mềm quản trị cơ sở dữliệu như: DB2, Oracle, Access, Foxpro, SQL server, Oracle…
Hệ quản trị cơ sở dữ liệu quan hệ (Relation Database Management System –RDBMS)
là một hệ quản trị cơ sở dữ liệu theo mô hình quan hệ
I.2 Giới thiệu hệ quản trị cơ sở dữ liệu SQL Server
Microsoft SQL Sever là một hệ quản trị cơ sở dữ liệu quan hệ cung cấp cách tổ chức
dữ liệu bằng cách lưu chúng vào các bảng Dữ liệu quan hệ được lưu trữ trong các bảng vàcác quan hệ đó được định nghĩa giữa các bảng với nhau
Người dùng truy cập dữ liệu trên server thông qua ứng dụng Người quản trị cơ sở dữliệu truy cập server trực tiếp để thực hiện chức năng cấu hình, quản trị và thực hiện các thaotác bảo trì cơ sở dữ liệu
Ngoài ra SQL Server là một cơ sở dữ liệu có khả năng mở rộng, nghĩa là chúng có thểlưu một lượng lớn dữ liệu và hỗ trợ tính năng cho phép nhiều người dùng truy cập dữ liệuđồng thời
Các phiên bản SQL Server phổ biến hiện nay trên thị trường là SQL Server 7.0, SQLServer 2000, SQL Server 2005, SQL Server 2008
I.3 Các thành phần trong SQL Server 2005
SQL Server 2005 nâng cao hiệu năng, độ tin cậy, khả năng lập trình đơn giản và giaodiện dễ sử dụng hơn so với SQL Server 2000 SQL Server 2005 tập trung vào khả năng xử lýgiao dịch trực tuyến (online transaction processing - OLTP), ứng dụng thương mại điện tử (e-
Trang 6ecommerce) và kho dữ liệu (data warehousing) Ngoài ra những cải tiến quan trọng trongSQL Server 2005 là thêm các dịch vụ mới như: dịch vụ báo cáo (reporting service), servicebroker và sự thay đổi đáng kể trong cỗ máy cơ sở dữ liệu.
I.3.1 Các phiên bản SQL Server 2005
Trước khi đi vào các thành phần của SQL Server 2005, ta xét các phiên bản của SQL Server 2005 SQL Server 2005 được sử dụng rộng rãi cho nhiều đối tượng khác nhau nên Microsoft cung cấp nhiều phiên bản khác nhau cho phù hợp với các yêu cầu về chi phí, thời gian thực hiện, của các tổ chức, cá nhân Năm phiên bản của SQL Server 2005 là:
Microsoft SQL Server 2005 Enterprise Edition
Microsoft SQL Server 2005 Standard Edition
Microsoft SQL Server 2005 Workgroup Edition
Microsoft SQL Server 2005 Developer Edition
Microsoft SQL Server 2005 Express Edition
Hầu hết các tổ chức đều chọn trong ba phiên bản SQL Server 2005
Enterprise Edition, SQL Server 2005 Standard Edition, và SQL Server 2005
Workgroup Edition Các tổ chức chọn một trong ba phiên bản này với lý do là chỉ có các phiên bản Enterprise, Standard, và Workgroup được cài đặt và sử dụng trong môi trường server phục vụ cho hoạt động thực tế
SQL Server 2005 Enterprise Edition (32-bit và 64-bit)
Enterprise Edition được sử dụng trong các doanh nghiệp, tổ chức có các mức yêu cầu xử
lý giao dịch trực tuyến trên diện rộng (online transaction processing - OLTP), khả năng phân tích
dữ liệu phức tạp cao, hệ thống kho dữ liệu (data warehousing systems) và web sites Enterprise Edition phù hợp cho các tổ chức lớn và các yêu cầu phức tạp.
SQL Server 2005 Standard Edition (32-bit và 64-bit)
Standard Edition là phiên bản phục vụ cho việc quản trị và phân tích dữ liệu phù hợp cho các doanh nghiệp, tổ chức vừa và nhỏ Nó bao gồm các giải pháp cần thiết cho thương mại điện
tử (e-commerce), kho dữ liệu (data warehousing) và dòng doanh nghiệp (line-of-business)
SQL Server 2005 Workgroup Edition (32-bit only)
Trang 7Workgroup Edition là giải pháp quản trị dữ liệu phù hợp cho các doanh nghiệp, tổ chức nhỏ chỉ cần một cơ sở dữ liệu không giới hạn kích tthước hoặc số người sử dụng Workgroup Edition là lý tưởng cho các mức cơ sở dữ liệu tin cậy, mạnh mẽ và dễ quản trị
SQL Server 2005 Developer Edition (32-bit và 64-bit) Developer Edition có tất cả các tính năng của phiên bản SQL Server 2005 Enterprise Edition, nhưng nó chỉ là phiên bản sử dụng cho phát triển và kiểm tra ứng dụng Phiên bản này phù hợp cho các cá nhân, tổ chức xây dựng và kiểm tra ứng dụng
SQL Server 2005 Express Edition (32-bit only) SQL Server Express, dễ sử dụng và quản trị cơ sở dữ liệu đơn giản
Được tích hợp với Microsoft Visual Studio 2005, SQL Server Express trở nên dẽ dàng để phát triển các ứng dụng dữ liệu giầu khả năng, an toàn trong lưu trữ, và nhanh chóng triển khai
SQL Server Express là phiên bản miễn phí, có thể dùng như một cơ sở dữ liệu máy khách hoặc cơ sở dữ liệu máy chủ đơn giản SQLServer Express là lựa chọn tốt cho những người dùng chỉ cần một phiên bản SQL Server 2005 nhỏ gọn, dùng trên máy chủ có cấu hình thấp, những nhà phát triển ứng dụng không chuyên hay những người yêu thích xây dựng các ứng dụng nhỏ.
I.3.2 Các thành phần Server trong SQL server 2005
Các thành phần server của SQL Server 2005 được cho trong bảng sau
SQL Server Database
Cỗ máy cơ sở dữ liệu bao gồm Database Engine, lõi dịch vụ cho việc lưu trữ, xử lý và bảo mật dữ liệu, sao lưu và đồng bộ
(Replication), tìm kiếm toàn văn (Full text Search) và công cụ cho việc quản trị cơ sở dữliệu quan hệ và XML
Analysis Services
Bao gồm công cụ cho việc tạo và quản lý tiếntrình phân tích trực tuyến và các ứng dụng khai thác dữ liệu
Reporting Services Reporting Service bao gồm các thành phần
server và client cho việc tạo quản lý và triển
Trang 8khai báo cáo Reporting services cũng là nền tảng cho việc phát triển và xây dựng các ứng dụng báo cáo
Notification services
Dịch vụ thông báo Notification services là nền tảng cho sự phát triển và triển khai các ứng dụng thông báo Notification services ó thể gửi thông báo đến hàng ngàn người đăng
ký sử dụng nhiều loại dịch vụ khác nhau
Intergration Services
Intergration Services là tập hợp các công cụ
đồ họa và các đối tượng lập trình cho việc di chuyển sao chép và chuyển đổi dữ liệu
I.3.3 Các thành phần Client
Connectivity Component Là các thành phần cho việc truyền thông giữaClient và Server, và các thư viện mạng như
DB- Library, ODBC, OLE DB
I.3.4 Các tính năng của SQL Server 2005
Công cụ quản lý: SQL Server 2005 giới thiệu một bộ công cụ quản lý vàquản lý các API để tạo ra môi trường dễ sử dụng và hỗ trợ cho các hoạtđộng của quy mô lớn triển khai SQL Server
Dịch vụ chuyển đổi dữ liệu (DTS): DTS cho SQL Server 2005 giới thiệumột thiết kế gần như hoàn toàn mới, cung cấp cho các doanh nghiệp khaithác, chuyển đổi
Trang 9 Nhân bản cải tiến: SQL Server 2005 giới thiệu một số cải tiến và các phụkiện để nhân rộng các dịch vụ và đơn giản hóa việc cài đặt, cấu hình vàgiám sát các nhân bản topologies
Giao diện truy cập dữ liệu: Cải tiến cho ADO.NET đã được thực hiện.SQL bản mới của khách hàng được giới thiệu
Tính năng nâng cao
Dịch vụ thông báo: Dịch vụ thông báo của SQL Server là một nền tảngtảng giúp tập trung phát triển các ứng dụng thông báo và triển khai cácứng dụng trên một quy mô lớn Dịch vụ thông báo cho phép các doanhnghiệp xây dựng các ứng dụng phong phú và cung cấp các thông báo kịpthời, chẳng hạn như thị trường chứng khoán thông báo, tin tức đăng ký,gói phân phối các thông báo
Dịch vụ báo cáo: Là một công cụ soạn thảo báo cáo mới và phục vụ choviệc quản lý, phân phối Dịch vụ báo cáo cho phép các doanh nghiệp kinhdoanh một cách dễ dàng tích hợp các dữ liệu từ các nguồn dữ liệu hỗn tạpvào kho dữ liệu tạo ra sự phong phú, tương tác
Dịch vụ môi giới: Là công nghệ mới sử dụng hệ thống tin nhắn hàng đợinhằm tăng độ tin cậy và bảo mật trong kết nối giữa các cơ sở dữ liệu vớinhau
Cải tiến của Database Engine: Mở rộng quy mô, độ tin cậy, tính khảdụng, các dữ liệu chương trình, kinh doanh thông minh và các giải phápkinh doanh trực tuyến
Cơ chế xử lý cơ sở dữ liệu của SQL Server 2005 được bổ sung tính năngmới cũng như nâng cao những khã năng về lập trình như bổ sung kiểu dữliệu mới, kiểu dữ liệu XML và khác nữa
I.3.5 Kiểu tập tin cơ sở dữ liệu
Trong SQL Server 2005, mỗi cơ sở dữ liệu được tổ chức trên nhiều tập tin hệ thốngMỗi cơ sở dữ liệu có tập tin riêng
Dữ liệu và thông tin log được lưu trong file riêng rẽ
Trang 10Có 3 loại tập tin cơ sở dữ liệu trong SQL Server gồm:
Tập tin dữ liệu chính: Là điểm bắt đầu của cơ sở dữ liệu và các tập tin kháctrong cơ sở dữ liệu Tập tin có phần mở rộng mdf
Tập tin dữ liệu thứ cấp: Chứa tất cả tập tin dữ liệu ngoại trừ tập tin dữ liệuchính Tập tin có phần mở rộng *.ndf
Tập tin log: Chứa tất cả các thông tin log dùng để khôi phục cơ sở dữ liệu.Phải có ít nhất một file log cho mỗi cơ sở dữ liệu Tập tin có phần mở rộng là.ldf
Trang 11Phần II KHÁI QUÁT VỀ CƠ SỞ DỮ LIỆU PHÂN TÁN
II.1 Các khái niệm về cơ sở dữ liệu phân tán
- CSDL phân tán (Distributed DataBase - DDB) là một tập hợp nhiều CSDL có liên
đới logic và được phân bố trên một mạng máy tính Trong khái niệm này có hai thuật ngữquan trọng trong các định nghĩa này là “liên đới logic” và “phân bố trên một mạng máy tính”
- Liên đới logic: Toàn bộ dữ liệu của CSDL phân tán có một số các thuộc tính ràng
buộc chúng với nhau, điều này giúp chúng ta có thể phân biệt một CSDL phân tán với một tậphợp CSDL cục bộ hoặc các tập tin lưu trữ tại các vị trí khác nhau trong một mạng máy tính
- Phân bố trên một mạng máy tính: Toàn bộ dữ liệu của CSDL phân tán không được
lưu trữ ở một nơi mà lưu trữ trên nhiều trạm thuộc mạng máy tính, điều này giúp chúng taphân biệt CSDL phân tán với CSDL tập trung đơn lẻ
- Hệ quản trị CSDL phân tán (Distributed Database Management System D-DBMS)
được định nghĩa là một hệ thống phần mềm cho phép quản lý các hệ CSDL phân tán và làmcho sự phân tán trở nên “trong suốt” đối với người sử dụng
- Hệ CSDL phân tán (Distributed DataBase System - DDBS) được xây dựng dựa trên
hai công nghệ cơ bản là CSDL và mạng máy tính Một hệ CSDL phân tán không phải là một
“tập hợp các tập tin” được lưu trữ riêng rẽ tại mỗi nút của một mạng máy tính Để tạo ra một
hệ CSDL phân tán các tập tin không chỉ có liên đới logic mà chúng còn phải có cấu trúc vàđược truy xuất qua một giao diện chung
Trang 12- Hệ CSDL phân tán không thuần nhất: Các CSDL cục bộ ở các nơi (Site) không dùng
chung một hệ quản trị CSDL
- Hệ CSDL phân tán thuần nhất: Các CSDL cục bộ ở tất cả các nơi (Site) đều dùng
chung một hệ quản trị CSDL Trong bài báo này chỉ đề cập đến hệ CSDL phân tán thuần nhấtvới hệ quản trị CSDL SQL Server
II.2 Kiến trúc cơ bản của CSDL phân tán
Kiến trúc này không biểu diễn tường minh cho mọi hệ cơ sở dữ liệu phân tán Tuynhiên, với kiến trúc này các mức của CSDLPT được trình bày mang tính khái niệm thích hợp
- Sơ đồ tổng thể: Định nghĩa tất cả các dữ liệu sẽ được lưu trữ trong CSDL phân tán.
Trong mô hình quan hệ, sơ đồ tổng thể bao gồm định nghĩa của các tập quan hệ tổng thể
- Sơ đồ phân đoạn: Mỗi quan hệ tổng thể có thể chia thành một vài phần không gối lên
nhau được gọi là đoạn (fragments) Có nhiều cách khác nhau để thực hiện việc phân chia này.Ánh xạ (một - nhiều) giữa sơ đồ tổng thể và các đoạn được định nghĩa trong sơ đồ phân đoạn
- Sơ đồ định vị: Các đoạn là các phần logic của quan hệ tổng thể được định vị vật lý
trên một hoặc nhiều vị trí trên mạng Sơ đồ định vị định nghĩa đoạn nào định vị tại các vị trí
Mô hình cơ sở dữ liệu phân tán
Trang 13nào Lưu ý rằng kiểu ánh xạ được định nghĩa trong sơ đồ định vị quyết định CSDL phân tán
là dư thừa hay không
- Sơ đồ ánh xạ địa phương: Ánh xạ các ảnh vật lý và các đối tượng được lưu trữ tại
một trạm (tất cả các đoạn của một quan hệ tổng thể trên cùng một vị trí tạo ra một ảnh vật lý)
II.3 Các lý do để sử dụng CSDL phân tán
- Các tổ chức có cấu trúc phân tán: Trong thực tế có nhiều tổ chức được phân tán khắp
nơi, trong khi đó, dữ liệu quản lý ngày càng lớn và phục vụ cho đa người dùng nằm phân tán,
vì vậy CSDL phân tán là con đường thích hợp với cấu trúc tự nhiên của các tổ chức đó
- Cần kết nối các CSDL có sẵn: CSDL phân tán là giải pháp tự nhiên khi có các CSDL
đang tồn tại và sự cần thiết xây dựng một ứng dụng toàn cục Trong trường hợp này CSDLphân tán được tạo theo tiến trình từ dưới lên dựa trên nền tảng CSDL đang tồn tại Tiến trìnhnày đòi hỏi phải tái cấu trúc các CSDL cục bộ ở một mức nhất định
- Sự lớn mạnh của tổ chức: Các tổ chức có thể phát triển mở rộng bằng cách thành lập
thêm các đơn vị mới, vừa có tính tự trị, vừa có quan hệ với các đơn vị tổ chức khác
- Giảm chi phí truyền thông: Tăng ứng dụng cục bộ làm giảm chi phí truyền thông.
- Nâng cao hiệu suất: Có cơ chế xử lý song song và phân mảnh dữ liệu theo ứng dụng
làm cực đại hóa tính cục bộ của ứng dụng
Các mức trong suốt phân tán
Trang 14- Tăng độ tin cậy và tính sẵn sàng: Nếu có một thành phần nào đó của hệ thống bị
hỏng, hệ thống vẫn có thể duy trì hoạt động
Phần III CƠ SỞ DỮ LIỆU PHÂN TÁN TRONG SQL SERVER 2005
III.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 đốitượng, dịch vụ và các thành phần sử dụng để quản lý SQL Server SQL-DMF cung cấpmột framework quản lý mềm dẽo và thích hợp, thích hợp với nhu cầu của một tổ chức Nólàm giảm yêu cầu cần thiết cho các tác vụ bảo trì chăm sóc của người sử dụng (nhưbackup dữ liệu và thông báo cảnh báo) bằng việc cung cấp các dịch vụ tương tác ngay lậptức với SQL Server Các thành phần khoá của SQL-DMF hỗ trợ quản lý các mẫu của SQLServer trong mạng bằng cách cho phép định nghĩa:
- Tất cả đối tượng của SQL Server và phân quyền (permissions) của chúng
- Lập lại các hành động việc quản trị để nắm bắt khoảng cách và thời gian
- Hiệu chỉnh các hành động khi các điều kiện đặc biệt được phát hiện Việc hiệuchỉnh các hành động có thể cả tác vụ định nghĩa để giải quyết các hậu quả, hoặc các lờicảnh báo bằng cách đánh trang hoặc e-mail đến người mà có thể giải quyết hậu quả
- Minh họa cho thấy các thành phần chính trong SQL-DMF
Trang 15III.2 Giao tác phân tán
Một giao tác phân tán bắt đầu trong Transact-SQL với một cấu trúc tương đối đơn giản
Một kịch bản hay ứng dụng SQL kết nối thực thi một lệnh SQL là bắt đầu một giao tác phân tán
Transact- Khi SQL Server Database Engine thực thi câu lệnh chính là quá trình điềukhiển máy chủ trong giao tác
Tiếp theo kịch bản hoặc ứng dụng thực thi trên các máy cục bộ hoặcphân tán các truy vấn trở lại các linked server
Khi các truy vấn phân tán và thủ tục điều khiển từ xa được gọi để thực
Trang 16(Microsoft Distributed Transaction Coordinator (MS DTC)) để tạo danhsách các linked server trong giao tác phân tán
Khi kịch bản hay ứng dụng đưa ra lệnh COMMIT hoặc ROLLBACK,server điểu khiển sẽ gọi MS DTC để quản lý hai giai đoạn hoặc làchuyển giao quá trình xử lý hoặc là thông báo cho các linked server đểphục hồi lại các giao dịch
Các câu lệnh Transact-SQL điều khiển các giao tác phân tán rất ít vì hầu hết các côngviệc được thực hiện nội bộ bởi các SQL Server Database Engine và MS DTC
Một lệnh Transact-SQL yêu cầu những kịch bản hay ứng dụng trongTransact-SQL gồm:
Bắt đầu một giao tác phân tán
Thực thi các truy vấn phân tán trở lại các máy chủ
Gọi các câu lệnh chuẩn Transact-SQL: COMMITTRANSACTION, COMMIT WORK, ROLLBACKTRANSACTION hay ROLLBACK WORK để kết thúc giao tác
Đối với bất kỳ giao tác phân tán Transact-SQL thì Database Engine sẽ xử lýkịch bản hoặc kết nối tự động để gọi MS DTC nhằm chuyển giao hay phụchồi giao tác
Có thể bắt đầu giao tác phân tán trong Transact-SQL bằng các cách sau:
Cú pháp:
BEGIN DISTRIBUTED TRANSACTION
[ transaction_name | @tran_name_variable ]
Các tham số:
transaction_name: Là một giao tác người dùng định nghĩa để theo dõi giao tác
phân tán bên trong tiện ích MS DTC Transaction_name phải thích ứng với các quy luật
định danh nhưng chỉ 32 ký tự đầu tiên được sử dụng