Tải bản đầy đủ (.docx) (28 trang)

Tiểu luận môn cơ sở dữ liệu nâng cao CƠ SỞ DỮ LIỆU PHÂN TÁN VÀ SQL SERVER 2005

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (314.91 KB, 28 trang )

ĐẠ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Ỹ
________ ________
CƠ SỞ DỮ LIỆU NÂNG CAO
Đề tài:

CƠ SỞ DỮ LIỆU PHÂN TÁN
VÀ SQL SERVER 2005

Giảng viên hướng dẫn : PGS.TS. ĐỖ PHÚC
Học viên thực hiện : Lê Thị Xuân Diệu
Mã số : CH1101076
TP. HCM, năm 2012
1
MỤC LỤC
LỜ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
Phầ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ống
phầ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 thao
tá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, SQL
Server 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à giao
diệ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-
ecommerce) và kho dữ liệu (data warehousing). Ngoài ra những cải tiến quan trọng trong
Trang 4
HV: Lê Thị Xuân Diệu CH1101076

SQL Server 2005 là thêm các dịch vụ mới như: dịch vụ báo cáo (reporting service), service
broker 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)
Workgroup 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)
Trang 5
HV: Lê Thị Xuân Diệu CH1101076
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
Thành phần Server Chức năng
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ến
trì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
khai 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
Trang 6
HV: Lê Thị Xuân Diệu CH1101076
I.3.3 Các thành phần Client
Thành phần Client Chức năng
Connectivity Component
Là các thành phần cho việc truyền thông giữa
Client 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
• Tính năng cơ bản
 Những cải tiến trong việc phân tích cơ sở dữ liệu: SQL Server 2005 giới
thiệu rất nhiều phương pháp cải tiến và các tính năng mới. Những cải tiến
và các tính năng bao gồm kết hợp với Microsoft. NET Framework, XML
mới công nghệ, cải tiến Transact-SQL, loại dữ liệu mới, và các cải tiến
cho các quy mô và tính khả dụng của các cơ sở dữ liệu quan hệ.
 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ệu
một thiết kế gần như hoàn toàn mới, cung cấp cho các doanh nghiệp khai
thác, chuyển đổi.
 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ảng
tả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 doanh
nghiệp xây dựng các ứng dụng phong phú và cung cấp các thông báo kịp
thờ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ụ cho
việc quản lý, phân phối. Dịch vụ báo cáo cho phép các doanh nghiệp kinh
Trang 7
HV: Lê Thị Xuân Diệu CH1101076
doanh 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ạp
và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 đợi
nhằ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ới
nhau.
 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áp
kinh 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ăng

mớ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ống
Mỗ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ẽ
Có 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ác
trong 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ệu
chí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 8
HV: Lê Thị Xuân Diệu CH1101076
Phầ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ập
hợ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 ta
phâ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àm
cho 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 9
HV: Lê Thị Xuân Diệu CH1101076
- 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ất
vớ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. Tuy
nhiê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í
Trang 10
HV: Lê Thị Xuân Diệu CH1101076
Mô hình cơ sở dữ liệu phân tán
nà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 CSDL
phâ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ình
nà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.
Trang 11
HV: Lê Thị Xuân Diệu CH1101076
Các mức trong suốt phân tán
- 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 đối
tượng, dịch vụ và các thành phần sử dụng để quản lý SQL Server. SQL-DMF cung cấp
mộ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ập
tứ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 SQL
Server 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ệu

chỉ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ời
cả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 12
HV: Lê Thị Xuân Diệu CH1101076
III.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 Transact-SQL kết nối thực thi một lệnh Transact-
SQL là bắt đầu một giao tác phân tán.
• Khi SQL Server Database Engine thực thi câu lệnh chính là quá trình điều
khiể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ặc
phâ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
hiện, server điều khiển sẽ tự động gọi điều phối giao tác phân tán (Microsoft
Trang 13
HV: Lê Thị Xuân Diệu CH1101076
Distributed Transaction Coordinator (MS DTC)) để tạo danh sá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ông
việ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 trong
Transact-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: COMMIT TRANSACTION,

COMMIT WORK, ROLLBACK TRANSACTION 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ục hồ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.
@tran_name_variable: Là tên của biến người dùng định nghĩa chứa tên một giao
tác dùng để theo dõi giao 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.
Phân quyền
Trang 14
HV: Lê Thị Xuân Diệu CH1101076
BEGIN DISTRIBUTED TRANSACTION phân quyền mặc định đến các người dùng hợp
lệ.
III.3 Liên kết SQL bằng thủ tục hệ thống
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ừ xa. Bằng cách sử dụng các cơ chế chúng ta có thể truy cập, thực hiện các thao
tác sửa đổi, bổ sung dữ liệu và thực hiện các thủ tục từ xa. Có thể sử dụng lệnh Transact-
SQL với chức năng OPENROWSET để truy vấn một nguồn dữ liệu từ xa mà không cần
một linked server.
Để tạo liên kết server bằng thủ tục hệ thống chúng ta sử dụng thủ tục có tên
sp_addlinkedserver với cú pháp như sau:
Sp_adlinkedserver [@server=] ‘server’

[,[@srvproduct=] ‘product_name’]
[,[@provider=] ‘provider_name’]
[,[@data [,[@location=] ‘location’]
[,[@provstr=] ‘provider_string’]
[,[catalog=] ‘catalog’]
Trong đó, tham số:
[@server=] ‘server’: Tên server dùng để tham chiếu khi bạn khai báo truy cập dữ liệu
[@srvproduct=] ‘product_name’: Tên sản phẩm ứng với 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
[@provstr=] ‘provider_string’: Chuỗi ứng với trình điều khiển cơ sở dữ liệu
[@datasrc=] ‘data_source’: Tên Server hay địa chỉ IP cài đặt SQL Server mà bạn
muốn tạo liên kết.
[@catalog=] ‘catalog’: Tên cơ sở dữ liệu bạn muốn truy cập sau khi liên kết
Trang 15
HV: Lê Thị Xuân Diệu CH1101076
Sau khi tạo liên kết SQL Server thành công, để có thể truy cập và sử dụng dữ liệu
trong các đối tượng Table hay View của cơ sở dữ liệu muốn liên kết đến, chúng ta cần khai
báo đặc quyền truy cập.
Người quản trị hệ thống có thể điều khiển và có thể truy xuất một máy chủ liên kết cá
biệt bằng việc thiết lập một ánh xạ đăng nhập bằng cách sử dụng thủ tục hệ thống
sp_addlinkedsrvlogin. Thủ tục này cho phép thiết lập từ xa một tên đăng nhập và mật
khẩu cho một tên đăng nhập nội bộ cụ thể. Thủ tục cũng cho phép để thiết lập chính ánh
xạ cho các đăng nhập xác thực Windows.
Chúng ta sử dụng thủ tục hệ thống có tên sp_addlinkedsrvlogin với cú pháp như sau:
sp_addlinkedsrvlogin
[@rmtsrvname=] ‘rmtsrvname’]
[,[@useself=] ‘useself’]
[,[@locallogin=] ‘locallogin’]
[,[@rmtuser=] ‘rmtuser’]
[,[@rmtpassword=] ‘rmtpassword’]

Trong đó, tham số:
[@rmtsrvname=] ‘rmtsrvname’: Tên máy chủ liên kết.
[@useself=] ‘useself’: Khi giá trị thật sự được sử dụng, các SQL cục bộ đăng nhập
được sử dụng để kết nối vào tên máy chủ từ xa. Nếu giá trị chưa sử dụng thì các tham số
locallogin, rmtuser và rmtpassword của thủ tục sp_addlinkedsrvlogin sẽ được áp dụng vào
việc lập một ánh xạ mới.
[@locallogin=] ‘locallogin’: Tên đăng nhập. Nếu tham số này là rỗng thì việc thiết
lập ánh xạ sẽ được áp dụng cho tất cả các tên đăng nhập.
[@rmtuser=] ‘rmtuser’: Tên của người dùng từ xa.
[@rmtpassword=] ‘rmtpassword’: Mật khẩu của người dùng từ xa.
Chú ý bảo mật: Khi kết nối đến một nguồn dữ liệu khác, SQL Server đóng vai trò đăng
nhập hợp lý cho Windows xác thực của các đăng nhập; Tuy nhiên, SQL Server không thể
Trang 16
HV: Lê Thị Xuân Diệu CH1101076
đóng vai trò cho Windows xác thực các đăng nhập. Do đó, với SQL Server xác thực các
đăng nhập, SQL Server có thể truy xuất nguồn dữ liệu khác như là các file hoặc các nguồn
dữ liệu không quan hệ như Active Directory, bằng cách sử dụng các ngữ cảnh bảo mật của
tài khoản trong Windows cấp dưới mà dịch vụ SQL Server đang chạy. Để làm điều này có
khả năng đưa đăng nhập truy xuất đến các nguồn dữ liệu khác mà chúng không có phân
quyền, nhưng các tài khoản dưới của dịch vụ SQL Server đang chạy không được phân
quyền. Khả năng này nên được cân nhắc kỹ khi truy xuất đến một SQL Server xác thực
đăng nhập đến một máy chủ liên kết bằng cách sử dụng thủ tục sp_addlinkedsrvlogin.
III.4 Truy vấn phân tán
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 hỗn tạp (không
đồng nhất). Những nguồn dữ liệu có thể được lưu trữ trong cùng hoặc các máy tính khác.
Microsoft SQL Server 2005R2 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ể sử dụng các câu truy vấn phân tán để truy xuất 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.
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ừ nguồn cung cấp OLE DB được tham chiếu
đến các câu lệnh Transact-SQL như là các bảng.
Các table và view trong các nguồn dữ liệu bên ngoài có thể tham chiếu trực tiếp trong
các câu lệnh Transact-SQL gồm: SELECT, INSERT, UPDATE, và DELETE.
Chú ý: Việc sử dụng các câu truy vấn phân tán trong SQL Server là tương tự các chức
năng của bảng liên kết qua ODBC. Chức năng này được hỗ trợ trước đây của Microsoft
Access, bây giờ được xây dựng vào SQL Server sử dụng OLE DB như là giao diện cho dữ
liệu bên ngoài.
Minh hoạ sau đây trình bày các kết nối giữa một máy trạm với một mẫu cài đặt của
SQL Server với một nguồn cung cấp OLE DB.
Trang 17
HV: Lê Thị Xuân Diệu CH1101076
Việc chỉ rỏ một mẫu cài đặt của SQL Server 2005 trong một máy chủ đang chạy đa
mẫu cài đặt của SQL Server 2005 đòi hỏi cú pháp không thay đổi đến các yếu tố của
Transact-SQL mà đã được sử dụng trong các câu truy vấn phân tán. Các mẫu cài đặt có thể
được xác định trong các câu truy vấn phân tán bằng cách sử dụng một trong các phương
pháp sau:
• Xác định một tên máy chủ bằng cách sử dụng cú pháp
'server_name\instance_name' trong tham số @datasrc của sp_addlinkedserver.
• Xác định 'server=server_name\instance_name' trong chuổi kết nối (connection
string).
Nếu một mẫu cài đặt không được xác định, câu truy vấn phân tán kết nối đến cài
đặt mặt định của SQL Server 2005 trong máy chủ đã chỉ định.
Ví dụ:
Giả sử chỉ định một mẫu cài đặt có tên là BANK trong một máy chủ có tên là
VCB_TPHCM như sau:
+ Chỉ định một liên kết server trong một mẫu cài đặt của SQL Server sử dụng

@datasrc:
Trang 18
HV: Lê Thị Xuân Diệu CH1101076
sp_addlinkedserver @server = ' VCB_TPHCM /BANK _1', @provider =
'SQLOLEDB',@datasource = ‘VCB_TPHCM /BANK’
+ Chỉ định một liên kết server trong một mẫu cài đặt của SQL Server sử dụng
INSTANCENAME trong một chuổi “provider”:
sp_addlinkedserver @server = ' VCB_TPHCM/BANK_2', @provider =
'SQLOLEDB', @provstr = 'Server=VCB_TPHCM;INSTANCENAME=BANK'
+ Chỉ định một mẫu cài đặt của SQL Server trong OPEN DATASOURCE sử dụng Data
Source:
SELECT *
FROM OPENDATASOURCE(
'SQLOLEDB',
'Data Source=VCB_TPHCM/BANK;User ID=sa;Password=123'
).Northwind.dbo.Categories
+ Chỉ định một mẫu cài đặt của SQL Server trong OPENROWSET sử dụng một chuổi
người cung cấp (provider):
SELECT a.*
FROM OPENROWSET(
'SQLOLEDB',
'Data Source= VCB_TPHCM;INSTANCENAME=BANK;
User ID=sa;Password=123',
Northwind.dbo.Categories
) AS a
+ Chỉ định một mẫu cài đặt của SQL Server trong OPENROWSET sử dụng một tham số
của nguồn dữ liệu (datasource):
SELECT a.*
FROM OPENROWSET(
Trang 19

HV: Lê Thị Xuân Diệu CH1101076
'SQLOLEDB','VCB_TPHCM/BANK','sa','123',
'SELECT * FROM Northwind.dbo.Categories'
) AS a
III.5 Linked Server
Sau khi một máy chủ liên kết (linked server ) được định nghĩa, để các đối tượng tham
chiếu dữ liệu trong máy phục vụ liên kết. Chúng ta có thể sử dụng một tên gồm 4 thành
phần: linked_server_name.catalog.schema.object_name trong các câu lệnh của Transact-
SQL để tham chiếu các đối tượng dữ liệu trong máy chủ liên kết đó.
Bảng dưới đây mô tả các phần của 4 tên bộ phận (Part name).
Part name Mô tả
linked_server_name Liên kết đến máy chủ đang tham chiếu đến dữ liệu nguồn (OLE
DB data source)
Catalog Catalog trong OLE DB data source chứa đối tượng (database)
Schema Lược đồ trong catalog chứa đối tượng
object_name Đối tượng dữ liệu trong lược đồ
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 (database) và schema tham chiếu đến một định danh chủ nhân tạo
đối tượng (owner ID)
Sự minh hoạ này trình bày 4 thành phần của SQL Server giải quyết đến một đối
tượng trong nguồn cung cấp QLE DB.
Trang 20
HV: Lê Thị Xuân Diệu CH1101076
III.6 Kiến trúc của câu truy vấn phân tán
Microsoft SQL Server 2005 hỗ trợ hai phương thức để tham chiếu nguồn dữ liệu
OLE DB hỗn tạp trong câu lệnh Transact-SQL.
• Tên máy chủ liên kết (Linked server names):

Thủ tục bảo quản hệ thống (system stored procedures) sp_addlinkedserver và
sp_addlinkedsrvlogin được sử dụng để đưa một tên máy chủ đến một dữ liệu nguồn OLE
DB. Các đối tượng trong các máy chủ liên kết có thể được tham chiếu trong các câu lệnh
Transact-SQL sử dụng bốn thành phần.
Ví dụ: Nếu một máy chủ liên kết tên là BANK được định nghĩa dựa vào một mẫu
cài đặt khác của SQL Server 2005, câu lệnh sau tham chiếu một bảng trong máy chủ đó.
SELECT HoTenNV , CongViec
FROM BANK.DB_NHANSU.QLNS.NHANVIEN
Tên máy chủ liên kết cũng có thể được chỉ định trong một câu lệnh OPENQUERY
để mở một rowset từ dữ liệu nguồn OLE DB. Rowset này có thể tham chiếu như là một
bảng dữ liệu trong câu lệnh Transact-SQL.
• Tên bộ nối Ad hoc (Ad hoc connector names)
Để ít xảy ra các tham chiếu đến một dữ liệu nguồn, các chức năng OPENROWSET
hoặc OPENDATASOURCE được chỉ định với các thông tin cần thiết để kết nối đến máy
chủ liên kết. Rowset có thể được tham chiếu như cách một bảng được tham chiếu trong
câu lệnh Transact-SQL.
Ví dụ:
SELECT *
Trang 21
HV: Lê Thị Xuân Diệu CH1101076
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'c:\MSOffice\Access\Samples\Northwind.mdb';'Admin';'';
Employees)
Những người dùng SQL Server liên lạc giữa máy quan hệ và máy lưu trữ. Máy
quan hệ ngắt xuống từng câu lệnh Transact-SQL vào một khối các hoạt động trong các
rowset OLE DB đơn được mở bởi máy lưu trữ từ các bảng dữ liệu cơ sở. Nghĩa là máy
quan hệ cũng có thể mở các rowset OLE DB đơn trong một vài dữ liệu nguồn OLE DB.
Máy quan hệ sử dụng các giao diện lập trình ứng dụng (API) OLE DB để mở các
rowset trong các máy chủ liên kết, tìm nạp từng dòng và quản lý các giao tác (transaction).
Mỗi dữ liệu nguồn OLE DB truy xuất như một máy chủ liên kết, một nguồn cung cấp

OLE DB phải được hiện diện trong máy chủ đang chạy SQL Server. Việc thiết lập các
hoạt động mà có thể sử dụng để dựa vào một chỉ định nguồn dữ liệu OLE DB phụ thuộc
vào khả năng của nguồn cung cấp OLE DB.
Với mỗi mẫu cài đặt của SQL Server 2005, các thành viên của nhóm sysadmin
được cố định vai trò máy chủ cho phép hoặc không cho phép sử dụng các “tên bộ nối ad-
hoc” cho một nguồn cung cấp OLE DB sử dụng thuộc tính của SQL Server là
DisallowAdhocAccess. Khi ad-hoc truy xuất nó cho phép tất cả thành viên đã đăng nhập
vào mẫu cài đặt đó có thể thực thi các câu lệnh SQL chứa đựng bộ nối ad-hoc, tham chiếu
Trang 22
HV: Lê Thị Xuân Diệu CH1101076
vào dữ liệu nguồn trong mạng mà có thể được truy xuất sử dụng nguồn cung cấp OLE
DB. Để điều khiển việc truy xuất các thành viên có vai trò sysadmin có thể không cho
phép ad-hoc truy xuất bởi nguồn cung cấp OLE DB. Theo cách đó giới hạn người dùng
những nguồn dữ liệu tham chiếu bằng liên kết máy chủ chỉ được định nghĩa bởi người
quản trị. Theo mặc định, truy xuất ad-hoc được nhúng trong nguồn cung cấp OLE DB và
không cho phép tất cả các nguồn cung cấp khác.
Các câu truy vấn phân tán có thể cho phép người sử dụng truy xuất nguồn dữ liệu
(ví dụ: các file, các nguồn dữ liệu không quan hệ ) sử dụng ngữ cảnh bảo mật của tài
khoản Microsoft Windows mà SQL Server đang chạy. SQL Server 2005 đóng vai trò thích
hợp đăng nhập cho đăng nhập Windows; tuy nhiên, đó là điều không thể thực hiện được
của việc đăng nhập SQL Server.
Đây có thể là khả năng cho phép một người dùng truy vấn phân tán truy xuất nguồn
dữ liệu khác mà họ không được phân quyền, nhưng các tài khoảng bên dưới mà dịch vụ
SQL Server đang chạy có phân quyền. Sử dụng sp_addlinkedsrvlogin để định nghĩa sự
chỉ định đăng nhập mà uỷ quyền để truy xuất máy chủ tương ứng. Điều khiển này không
có sẵn cho ad-hoc. Vì thế sử dụng thận trọng trong việc nhúng một nguồn cung cấp OLE
DB cho truy xuất ad-hoc.
Khi có thể thực hiện được, SQL Server đẩy các hành động quan hệ như là nối, hạn
chế, chiếu, sắp xếp, và nhóm bằng các thao tác đến nguồn dữ liệu OLE DB. SQL Server
không mặc định quét bảng cơ sở vào SQL Server và biểu diễn chính các thao tác quan hệ.

SQL Server truy vấn OLE DB quyết định mức của ngữ pháp của SQL mà nó hỗ trợ, và
trên cơ sở các thông tin đó, việc đẩy như là nhiều thao tác quan hệ có thể thực hiện được
đến nguồn cung cấp.
SQL Server 2005 chỉ rỏ một máy cho một nguồn cung cấp OLE DB để trả lại các
trạng thái biểu thị các giá trị khoá ra sao được phân tán bên trong nguồn dữ liệu OLE DB.
Điều này đặt ra cho tối ưu truy vấn SQL Server cao hơn phân tích kiểu dữ liệu trong
nguồn dữ liệu dựa vào các yêu cầu của mỗi câu lệnh SQL, làm tăng thêm khả năng tối ưu
truy vấn để tạo ra các kế hoạch thực thi tối ưu.
Trang 23
HV: Lê Thị Xuân Diệu CH1101076
III.7 Ánh xạ các kiểu dữ liệu trong câu truy vấn phân tán
Một nguồn cung cấp OLE DB đưa các kiểu dữ liệu của nó vào trong các điều khoản
của định danh kiểu của OLE DB được gọi là DBTYPEs. Các kiểu dữ liệu được chuyển
đổi giữa các kiểu dữ liệu OLE DB và các kiểu dữ hệ thống của SQL Server bằng ánh xạ
dữ liệu:
• Từ các kiểu dữ liệu của OLE DB đến các kiểu dữ liệu của SQL Server. Sự chuyển
đổi này xuất hiện khi SQL Server đọc dữ liệu từ nguồn dữ liệu của OLE DB. Cả
trong các câu lệnh SELECT hoặc việc đọc bên cạnh các câu lệnh UPDATE,
INSERT, hoặc DELETE.
Từ các kiểu dữ liệu của SQL Server đến các kiểu dữ liệu của OLE DB. Sự chuyển đổi này
xuất hiện khi SQL Server viết dữ liệu, hầu như trong các câu lệnh INSERT hoặc
UPDATE, trong nguồn dữ liệu OLE DB mà sửa đổi các bảng là bảng từ xa.
III.8 Tùy chọn để định nghĩa liên kết máy chủ
Các tuỳ chọn liên kết máy chủ được định nghĩa bằng sử dụng điều khiển
sp_serveroption và cách SQL Server sử dụng đối chiếu từ các máy chủ liên kết:
• Sử dụng sự tham chiếu từ xa (use remote collation) mục chọn này chỉ định sự tham
chiếu một cột từ xa hoặc một máy chủ địa phương sẽ được sử dụng. Khi true, sự
tham chiếu các cột được sử dụng cho các nguồn dữ liệu SQL Server, và sự tham
chiếu được chỉ định trong collation name được sử dụng cho các nguồn dữ liệu. Khi
false các câu truy vấn phân tán luôn luôn sử dụng các tham chiếu mặc định của máy

chủ địa phương và collation name các tham chiếu của các cột từ xa được bỏ qua.
• Tuỳ chọn collation name chỉ định tên của tham chiếu sử dụng bởi nguồn dữ liệu từ
xa nếu use remote collation là true và dữ liệu nguồn không phải là một dữ liệu
nguồn của SQL Server. Tên phải là một trong các tham chiếu hỗ trợ bởi SQL
Server. Sử dụng tuỳ chọn này khi bạn truy xuất một nguồn dữ liệu OLE DB khác
SQL Server, nhưng những tham chiếu thoả một trong các tham chiếu của SQL
Server. Các nguồn dữ liệu SQL Server báo cáo các cột tham chiếu của chúng, và
collation name được bỏ qua cho các máy chủ liên kết mà tham chiếu các nguồn dữ
liệu SQL Server .
Chú ý: Sử dụng các tuỳ chọn liên kết máy chủ chỉ là cách để cho phép tham chiếu
từ xa. Do đó, các câu lệnh truy vấn được xây dựng sử dụng ad-hoc cung cấp bởi
Trang 24
HV: Lê Thị Xuân Diệu CH1101076
OPENROWSET và OPENDATASOURCE không thể sử dụng các thông tin tham chiếu
của dữ liệu ký tự từ xa. Hơn nữa, tất cả các máy chủ liên kết trong phiên bản SQL Server
7.0 được nâng cấp lên SQL Server 2000 hoặc về sau được thiết lập use remote collation =
false
Tổng hợp các thiết lập tuỳ chọn
Bảng sau tổng hợp các SQL Server xác định các tham chiếu mà được sử dụng cho
mỗi cột khi use remote collation được thiết lập là True (hoặc On)
Kiểu
Linked
server
Tên tham chiếu không thiết lập
Tên tham chiếu thiết lập (đến
CollX)
SQL Server Các cột từ xa thực sự tham chiếu
Các cột từ xa thực sự tham
chiếu
Others

Mặt định tham chiếu mẫu cài đặt cục bộ của
SQL Server.
CollX
Bảng sau tổng hợp cách mà SQL Server xác định tham chiếu mà được sử dụng cho
mỗi cột khi mà use remote collation được thiết lập là False (hoặc Off).
Kiểu
Linked
server
Tên tham chiếu không thiết lập Tên tham chiếu thiết lập (đến CollX)
SQL Server
Mặt định tham chiếu mẫu cài đặt cục
bộ của SQL Server
Mặt định tham chiếu mẫu cài đặt cục
bộ của SQL Server
Others
Mặt định tham chiếu mẫu cài đặt cục
bộ của SQL Server
Mặt định tham chiếu mẫu cài đặt cục
bộ của SQL Server
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)
Với SQL Server 2005, chắc chắn rằng các nguồn cung cấp OLE DB được cài đặt
trong tất cả các nút (node) của nhóm (cluster). Ngoài ra, một vài nguồn cung cấp mà được
Trang 25
HV: Lê Thị Xuân Diệu CH1101076

×