Tải bản đầy đủ (.doc) (83 trang)

Bài toán “quản lý đào tạo khoa học sau đại học của trường đại học sư phạm

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 (697.1 KB, 83 trang )

Luận văn tốt nghiệp

Bảng viết tắt
ADO: ActiveX Data Objects
ANSI: American National Standards Institute
API: Application Programming Interface
DB: Database
DBMS: Database Management System
DNA: Distributed Internet Application
DAO: Data Access Object
HTML: Hypertext Maskup Language
ISO: International Standards Organization
IPC: Windows Interprocess Communications
IPX/SPX: Internetwork Package Exchange/Sequence Package
Exchange
MFC: Microsoft Foundation Classes
MS DTC Service: Microsoft Distributed Transaction Coordinator
LAN: Local Access Network
Net-Libraries: Network-Libraries
SP: Store Procedure
SQL: Structured Query Language
PC: Profetionnal Computer
ODBC: Open Database Connectivity
TCP/IP: Tranfer Control Protocol/ Internet Protocol
T-SQL: Transact-SQL
TDS: Tabular Data Stream
USI: User System Interface
UPS: Uninterruptable Power Supply
VIA: Virtual Interface Architecture
XML: Extensible Markup Language


Mở đầu
Trong những năm gần đây, đi đôi với sự phát triển mạnh mẽ của khoa
học kỹ thuật, tin học đã đi sâu ứng dụng vào mọi lĩnh vực khác nhau trong đời
sống xã hội. Đặc biệt là trong việc xây dựng hệ thống quản lý thông tin, giúp
ích rất nhiều cho công việc, chi phí, thời gian và nhân lực...Ta có thể kể ra đây

1


Luận văn tốt nghiệp
một số áp dụng: hệ thống quản lý đào tạo giáo dục nhằm trợ giúp lãnh đạo các
trờng học trong công tác quản lý học tập, đào tạo, tra cứu, tìm kiếm... Hệ
thống tra cứu thông tin có thể có thể ứng dụng cho việc quản lý th viện, giúp
cho nhiều ngời ở nhiều địa điểm khác nhau mà không phải chờ đợi và công
việc tra cứu tìm ra cuốn sách mình cần cũng vô cùng nhanh chóng. Nh vậy
chúng ta cũng có thể thấy rõ ràng một thực tế là các hệ thống thông tin rất đa
dạng về mọi mặt, cả về nội dung và phơng pháp lu trữ. Kết quả tất yếu là việc
quản lý các thông tin đó sẽ không đợc thống nhất, dễ gây ra sai lệnh, nhầm
lẫn, khó khăn cho việc tra cứu, tìm kiếm...
Để giải quyết vấn đề trên, luận văn đi sâu nghiên cứu mô hình
Khách/Chủ, đặc biệt là ứng dụng mô hình Khách/Chủ trong SQL Server 2000
để lu trữ thông tin.
Những vấn đề luận văn nghiên cứu:
Kiến trúc mô hình Client/Server
Mô hình Client/Server trong SQL Server 2000
Xét một ví dụ cụ thể cho những phần nghiên cứu luận văn
Bài toán Quản lý Đào tạo Khoa học sau Đại học của tr ờng Đại học S phạm
Luận văn sẽ đợc thiết kế bao gồm bốn chơng sau:
CHƯƠNG I: Giới thiệu về mô hình Client/Server
Nội dung phần này là đa ra kiến thức cơ bản về mô hình Client/Server,

cấu trúc phần mềm, kiến trúc phần mềm hai lớp, kiến trúc phần mềm ba lớp
của mô hình Client/Server.
CHƯƠNG II: Mô hình Client/Server trong SQL Server 2000
Nội dung phần này giới thiệu về SQL Server 2000, các thành phần
chính của máy chủ, máy khách và hệ thống cơ sở dữ liệu Client/Server.
CHƯƠNG III: Bài toán Quản lý Đào tạo Khoa học sau Đại học
Nội dung phần này trình bày phân tích thiết kế hệ thống thông tin cho
bài toán Quản lý Khoa học sau Đại học.
CHƯƠNG IV: Thiết kế hệ thống Quản lý Đào tạo Khoa học
Nội dung phần này trình bày thiết kế hệ thống thông tin cho bài toán
Quản lý Khoa học sau Đại học.

2


Luận văn tốt nghiệp
Trong một thời gian hạn hẹp và khả năng còn nhiều hạn chế, hơn nữa
phạm vi nghiên cứu của đề tài lớn nên chắc chắn luận văn còn nhiều khiếm
khuyết. Em rất mong đợc sự đóng góp ý kiến của các thầy cô giáo và toàn thể
các bạn đồng nghiệp.
Cuối cùng, em xin chân thành cảm ơn Thạc sĩ Đỗ Văn Thành, Kỹ s
Phạm Thành Giang Phòng tin học viễn thông, các thầy cô giảng dạy khoa
Toán-Tin, đã tận tình hớng dẫn, giúp đỡ và tạo mọi điều kiện về cơ sở vật chất
giúp em hoàn thành bài luận văn này.
Sinh viên

Chơng 1
Mô hình Khách/Chủ
I.


Giới thiệu về mô hình Khách/Chủ

Hiện nay, những PC riêng lẻ không còn đáp ứng nổi nhu cầu công việc,
yêu cầu xử lý lợng thông tin lớn, làm việc theo nhóm, phân chia tài nguyên
chung...Vì vậy, sự cần thiết của một mạng máy tính là đơng nhiên. Nhng vấn
đề ở đây là trong môi trờng mạng, các tài nguyên dùng chung đồng thời cho
nhiều ngời, thông tin bị phân tán ở nhiều nơi khác nhau trên mạng, thì việc
quản lý hệ thống rất phức tạp, đòi hỏi phải có một mô hình quản lý để có thể
quản lý tối đa những lợi thế đồng thời phải đảm bảo đợc độ tin cậy trong môi
trờng thông tin phân tán nhiều ngời sử dụng.
Trong quá trình phát triển đã có nhiều mô hình quản lý khác nhau để
giải quyết vấn đề trên nhng có hai mô hình đợc quan tâm nhiều là:
+ Mô hình phàn tán
+ Mô hình Khách/Chủ

3


Luận văn tốt nghiệp

1.1. Định nghĩa mô hình Khách/Chủ
Mô hình Khách/Chủ là mô hình mà cơ sở thông tin đợc xây dựng tập
trung tại một điểm gọi là Server và việc khai thác cơ sở thông tin này đợc phân
tán tại nhiều điểm khác nhau, các điểm này gọi là Client.
Mô hình này đợc áp dụng trên mạng máy tính dới dạng các chơng trình
phục vụ (Server) và chơng trình khách (Client). Mô hình này đợc đánh giá là
tốt trong việc xử lý phân tán cơ sở dữ liệu tập trung.
Mô hình Khách/Chủ có thể coi là mức cao hơn của mô hình xử lý các
thiết bị dùng chung trên mạng cục bộ. Trong môi trờng LAN, các PC đợc nối
với các thiết bị hệ thống cho phép các máy này dùng chung các tài nguyên nh

máy in, đĩa cứng, ổ đĩa CDROM. Rõ ràng việc xử lý các ứng dụng đợc xử lý
trên các máy PC riêng lẻ và chỉ một vài chức năng nh in ấn, vào ra tệp là phân
tán.
Mô hình Khách/Chủ là mô hình mở rộng việc xử lý của các thiết bị
dùng chung. Khi các thiết bị dùng chung đợc hỗ trợ nhiều lên, các trạm chỉ
thực hiện một phần ứng dụng. Phần khác của ứng dụng đợc phân tán cho một
máy chủ mới có khả năng dùng chung cho các trạm. Các máy khách yêu cầu
máy chủ xử lý chúng và gửi kết quả về cho máy khách. Việc xử lý chia đều cả
cho máy khách và máy chủ.
1.2. Ưu nhợc điểm của máy tính Khách/Chủ
Ưu điểm của mô hình Khách/Chủ:
+ Nâng cao đợc vai trò của máy tính để bàn, giúp các trạm làm việc có
khả năng thực hiện nhiều công việc trớc đây chỉ thực hiện đợc trên máy tính
lớn (Frame) và nh vậy chi phí mạng sẽ giảm đáng kể.
+ Cho phép một số thao tác dữ liệu đợc gói gọn trên nút chứa dữ liệu.
Vì vậy, thông tin lu thông trên mạng và thời gian trả lời giảm, thông lợng và
khả năng mang thông tin của mạng tăng lên. Ngợc lại yêu cầu về giải thông
(Band Width) giảm kéo theo là chi phí giảm.
+ Cho phép dùng các giao diện đồ họa trên các trạm làm việc giúp việc
sử dụng và đào tạo dễ dàng hơn.
+ Chú ý đến khuyến khích chấp nhận hệ thống mở. Thực tế mô hình
Khách/Chủ có thể chạy trên các cấu hình phần cứng và phần mềm khác nhau.
+ Việc cài đặt mô hình này dễ hơn mô hình phân tán.
+ Trong mô hình các máy trạm (Workstation) có thể không cần phải
quá mạnh.

4


Luận văn tốt nghiệp

+ Các quá trình xử lý gần với dữ liệu hơn do đó giảm tối đa sự lu
chuyển trên mạng.
+ Quản lý, kiểm soát dữ liệu tốt hơn đảm bảo tính duy nhất của dữ
liệu trong mạng.
+ Có điều kiện tốt nhất để bảo vệ và bảo quản dữ liệu.
+ Phù hợp với phần lớn các mô hình quản lý trong nhiều lĩnh vực nên
có thị trờng phát triển rộng.
Nhợc điểm của mô hình Khách/Chủ:
+ Dữ liệu lu chuyển trên đờng rất lớn dễ có sự sai lệch số liệu do vật lý.
+ Khối lợng dữ liệu tại Server rất lớn truy cập sẽ chậm.
+ Nếu quá nhiều các quá trình quan trọng mà nằm tại máy chủ thì có thể
phát sinh hiện tợng nút cổ chai (BottleNeck). Tuy nhiên với sự phát triển vợt
bậc của ngành điện tử nói chung và máy tính nói riêng thì những nhợc điểm
trên đã đợc khắc phục. Ngoài ra rất nhiều ngành và cơ sở kinh tế chấp nhận
một điều kiện là tuy chậm nhng tin cậy và có khả năng làm chủ do đó mô
hình Khách/Chủ là sự lựa chọn tuyệt vời trong mô hình quản lý dữ liệu ngày
nay.
Một chứng minh cụ thể là phần lớn các dịch vụ quan trọng có nhiều ngời sử dụng trong Internet đều áp dụng mô hình Khách/Chủ nh : Telnet, FTP, ...

1.3. Kiểu chia sẻ theo mô hình Khách/Chủ
Kiểu các quá trình Khách/Chủ nổi lên nh một mô hình cao cấp của các
kiểu có các quá trình chia sẻ thiết bị trong phạm vi một mạng LAN. Trong
một môi trờng mạng LAN chia sẻ thiết bị, mỗi máy tính cá nhân gắn liền với
một hệ thống thiết bị cho phép các máy tính này có thể chia sẻ tài nguyên
chung. Việc chia sẻ file trên đĩa cứng hoặc máy in là một ví dụ. Trong phạm vi
mạng LAN, thiết bị dùng để chia sẻ đợc gọi là máy chủ (server), tên Server đợc tiếp cận theo nghĩa các thiết bị chia sẻ đợc sử dụng để nhận các yêu cầu
ClientPC khác sinh ra. Trong một số kiểu chia
cho các dịch vụ xuất phát từ các máy
sẻ cổ điển, các máy PC (Client) thờng phát sinh quá trình yêu cầu chia sẻ các
thiết bị nh máy in, hoặc tệp. Tất cả các quá trình này đều thông qua Server.

Tóm lại
: Yêu
cầu phát sinh từ Client và sẽ đợc Server
xử lý và trả lời.
Client
Clien
t

Server

Data

5

Printer


Luận văn tốt nghiệp

Hình 1-1 : Mô hình trên cho ta một hình ảnh thực của hệ thống đợc
sử dụng trong quá trình chia sẻ thiết bị

1.4. Cấu trúc của mô hình Khách/Chủ
Mô hình Khách/Chủ đứng trên quan điểm xây dựng đợc chia thành các
mức. Mỗi mức phần lớn đều do một loại phần mềm đóng gói chịu trách
nhiệm.
Server
Client
Các ứng dụng


Các ứng dụng
Các dịch vụ
thiết yếu

Thực hiện
Giao tiếp với
mạng

Các ứng dụng
chia sẻ dữ liệu

Hệ điều hành
Giao tiếp với mạng

Network
Hình 1-2 : Mô tả các mức của mô hình Khách/Chủ
Tại máy khách (Client):
Xuất phát là các phần mềm ứng dụng yêu cầu. Những yêu cầu này đợc
chuyển cho mức xử lý, mức này làm nhiệm vụ đóng gói, thiết lập giao tiếp với
giao thức mạng (Network protocol) ở mức dới. Phần thông tin này sẽ đợc mức
mạng (Network) gửi đi.
Tại máy chủ (Server) :
Thông tin nhận đợc sẽ đợc phần giao tiếp với mạng chuyển lên trên để
hệ điều hành phát sinh quá trình và quản lý quá trình phục vụ cho yêu cầu này.
Hệ điều hành ở đây phần lớn dùng hệ điều hành đa nhiệm. Thông tin yêu cầu

6


Luận văn tốt nghiệp

sẽ đợc hai nhóm dịch vụ phục vụ phân tích và gửi lên các ứng dụng để khai
thác thông tin cần thiết. Quá trình trả lời đợc thực hiện ngợc lại.
Mô hình trên đợc phát triển bởi các nhóm thành viên của ISO
(International Standards Organization).
Các xử lý giữa Khách/Chủ dựa trên các DATA FILE
1. Trạm Client yêu cầu một ứng dụng
2. Server gửi ứng dụng này cho Client
3. Client yêu cầu các tệp dữ liệu
4. Server gửi toàn bộ tệp dữ liệu cho Client
5. Tiến trình xảy ra tại Client trên tệp dữ liệu
6. Client trả lại Server tệp dữ liệu sau khi đã thay đổi hoặc thực hiện
xong công việc.

II. Cấu trúc phần mềm và cơ sở dữ liệu trong mô hình
Khách/Chủ
2.1. Các mức xử lý cơ sở dữ liệu trên mô hình Khách/Chủ
Chúng ta nhận thấy sự tơng tác của các xử lý đợc phát sinh và diễn ra
trên kiến trúc Khách/Chủ. Có những nét đặc thù đáng chú ý ở các xử lý qua lại
giữa các mức tổ hợp của các ứng dụng khác nhau. Trong kiến trúc Khách/Chủ
sự trao đổi ở đây chính là sự trao đổi giữa máy khách đa ra yêu cầu và máy
chủ thực hiện trả lời yêu cầu này.
Các tổ hợp xử lý đợc phân chia theo một thứ tự nhất định. Nhìn một
cách tổng thể các tổ hợp xử lý của một kiểu ứng dụng đợc phân chia thành các
mức sau :
Mức trình bày logic :
Đây là sự tham gia của các chơng trình ứng dụng dùng trao đổi
trực tiếp với một trạm đầu cuối hoặc một trạm làm việc (Workstation). Công
việc thực hiện của mức logic trình bày là khuôn dạng trình bày trên màn hình,
đọc và ghi các thông tin lên màn hình, quản lý các cửa sổ, bàn phím, các thao
tác của con chuột. Có một vài công cụ đã đợc xây dựng cho tầng này là IBMs

CICS, IMS/DC và TSC. Tuy nhiên, các ứng dụng trên chỉ tập trung vào môi trờng máy tính lớn (MainFrame). Các giao diện Graphics trên các PC cũng đợc
cung cấp nh OS/2, Present Manager, MicroSofts Windows. Trên môi trờng
Unix cũng có X Windows, OSFs Motif and SUNs Open Look...
Mức tác vụ logic:

7


Luận văn tốt nghiệp
Đây là sự tham gia của các chơng trình ứng dụng sử dụng dữ liệu
đầu vào (từ màn hình hoặc từ cơ sở dữ liệu) để thực hiện các chơng trình cần
thiết. Các chơng trình đợc ngời lập trình viên viết trên các ngôn ngữ thế hệ 3
(Third Generation Languages).
Mức logic dữ liệu :
Đây là sự tham gia của các chơng trình mà các chơng trình này
trực tiếp thao tác với các cơ sở dữ liệu. Cơ sở dữ liệu đợc quản lý trực tiếp bởi
hệ thống quản lý cơ sở dữ liệu. Thao tác cơ sở dữ liệu dựa trên các lợc đồ quan
hệ đã đợc thiết kế trên các ngôn ngữ nh SQL hoặc bằng cách thông qua ngôn
ngữ thế hệ 3 hoặc thế hệ 4.
Xử lý dữ liệu :
Đây là những xử lý thực tế trên các cơ sở dữ liệu, các xử lý này
đợc thực hiện bởi hệ quản trị cơ sở dữ liệu. Nghĩa là hệ quản trị cơ sở dữ liệu
xử lý công việc hoàn toàn độc lập trên nền của mức logic tác vụ, nghĩa là trên
mức tác vụ ngời lập trình không phải quan tâm đến hoạt động trên hệ quản trị
cơ sở dữ liệu nào. Mặc dù vậy dớiScreen
quan điểm kiến trúc thì quá trình xử lý dữ
liệu là phần thiết yếu nhất trong các tổ hợp trên.

Presentation logic


Business logic
Database logic

DBMS
(Database Manager
System)

Database

8

If ...
Then ...
Move
SQL


Luận văn tốt nghiệp

Hình 1-3 : Sơ đồ các mức xử lý dữ liệu của mô hình Khách/Chủ

2.2. Cấu trúc cơ sở dữ liệu Khách/Chủ
Nhìn chung mọi ứng dụng cơ sở dữ liệu đều bao gồm các thành phần:
- Thành phần xử lý ứng dụng (Application processing components).
- Thành phần phần mềm cơ sở dữ liệu (Database software components).
- Bản thân cơ sở dữ liệu (The Database).

CSDL

Phần mềm

CSDL
SERVER

Mạng

Client
Client
HìnhClient
1-4 : Mô hình cơ sở dữ liệu Khách/Chủ ( Client/Server Database
ứng dụng
ứng dụng
model). ứng dụng
Phần mềm
CSDL

Phần mềm
CSDL

9

Phần mềm
CSDL


Luận văn tốt nghiệp
Trong mô hình cơ sở dữ liệu Khách/Chủ, cơ sở dữ liệu nằm trên một
máy tính khác với các máy có thành phần xử lý ứng dụng. Nhng phần mềm cơ
sở dữ liệu đợc tách ra khỏi hệ thống Client chạy các chơng trình ứng dụng và
hệ thống Server lu trữ cơ sở dữ liệu.
Trong mô hình này, các thành phần xử lý ứng dụng trên hệ thống Client

đa ra yêu cầu cho phần mềm cơ sở dữ liệu trên máy tính Client, phần mềm
này sẽ kết nối với phần mềm cơ sở dữ liệu chạy trên Server để truy cập vào cơ
sở dữ liệu và gửi trả kết quả cho máy Client.
Mới nhìn mô hình cơ sở dữ liệu Khách/Chủ có vẻ giống nh mô hình
file-server. Nhng mô hình cơ sở dữ liệu Khách/Chủ có nhiều thuận lợi hơn mô
hình file-server. Với mô hình file-server, thông tin gắn với sự truy cập cơ sở dữ
liệu vật lý phải chạy trên toàn mạng. Một giao tác yêu cầu nhiều sự truy cập
dữ liệu có thể gây ra lu lợng truyền trên mạng tăng.
Giả sử một ngòi dùng cuối tạo ra một vấn tin (information query) để
lấy dữ liệu tổng số trên 1000 sản phẩm chẳng hạn, lúc đó ngời sử dụng đòi hỏi
lấy dữ liệu từ 1000 bản ghi. Với cách tiếp cận file-server nội dung của tất cả
1000 bản ghi sẽ đợc đa lên mạng, vì phần mềm cơ sở dữ liệu chạy trên máy
của ngời sử dụng phải truy cập từng bản ghi để thỏa mãn yêu cầu của ngời sử
dụng. Với cách tiếp cận cơ sở dữ liệu Khách/Chủ, chỉ có lời gọi vấn tin ban
đầu và kết quả cuối cùng đợc đa lên mạng là đủ. ở đây phần mềm cơ sở dữ
liệu chạy trên máy lu trữ dữ liệu sẽ xử lý các bản ghi dữ liệu theo yêu cầu vấn
tin của ngời sử dụng và sau đó trả về kết quả cuối cùng.
Phần mềm tiền xử lý (Front-end software)
Trong mô hình cơ sở dữ liệu Khách/Chủ, thờng nói đến các front-end
software và back-end software. Front-end software đợc chạy trên một máy
tính cá nhân hoặc một Workstation và đáp ứng các yêu cầu đơn lẻ riêng biệt,
phần mềm này đóng vai trò của Client trong ứng dụng cơ sở dữ liệu
Khách/Chủ và thực hiện chức năng hớng tới nhu cầu của ngời dùng cuối cùng,
phần mềm Front-end software thờng đợc chia làm các loại nh sau :
- Phần mềm cơ sở dữ liệu ngời dùng cuối (End user database software) :
Phần mềm cơ sở dữ liệu này có thể thực hiện bởi ngời sử dụng cuối cùng trên
chính hệ thống của họ để truy cập vào các hệ thống cục bộ nhỏ cũng nh kết
nối với các cơ sở dữ liệu lớn trên cơ sở dữ liệu Server.
- Phần mềm báo cáo và truy vấn đơn giản (Simple query and reporting
software) : Phần mềm này đợc thiết kế để cung cấp các công cụ dễ dùng hơn


10


Luận văn tốt nghiệp
trong việc lấy dữ liệu từ cơ sở dữ liệu và tạo các báo cáo đơn giản từ cơ sở dữ
liệu đã có.
- Phần mềm phân tích dữ liệu (Data analysis software) : Phần mềm
này cung cấp các hàm về tìm kiếm, khôi phục, chúng có thể cung cấp các
phân tích phức tạp cho ngời dùng.
- Công cụ phát triển ứng dụng (Application development tools) : Các
công cụ này cung cấp các khả năng về ngôn ngữ mà các nhân viên hệ thống
thông tin chuyên nghiệp sử để xây dựng cơ sở dữ liệu của họ. Các công cụ về
thông dịch, biên dịch đơn đến các công cụ CASE (Computer Aided Software),
chúng tự động tất cả các bớc trong quá trình phát triển ứng dụng và sinh ra chơng trình cho các ứng dụng cơ sở dữ liệu.
- Công cụ quản trị dữ liệu (Data Administration Tools) : Các công cụ
này cho phép ngời quản trị cơ sở dữ liệu sử dụng máy tính cá nhân hoặc trạm
làm việc để thực hiện việc quản trị cơ sở dữ liệu nh định nghĩa các cơ sở dữ
liệu, thực hiện lu trữ hay phục hồi.
Phần mềm hậu xử lý (Back-end software)
Phần mềm này bao gồm phần mềm cơ sở dữ liệu Khách/Chủ và phần
mềm mạng chạy trên máy đóng vai trò là Server cơ sở dữ liệu.

2.3. Cấu trúc phần mềm Khách/Chủ
2.3.1. Mục đích và nguồn gốc
Thuật ngữ Khách/Chủ đợc sử dụng đầu tiên vào đầu những năm 1980
trong cuộc hội thảo về máy tính cá nhân trên mạng. Một mô hình thực sự về
Khách/Chủ đợc thực sự chấp nhận vào cuối những năm 1980. Cấu trúc phần
mềm Khách/Chủ rất linh hoạt và đợc xây dựng dựa trên cơ sở tin nhắn
(message_based) với mục đích nâng cao khả năng sử dụng, tính mềm dẻo, tơng tác trong xử lý và khả năng cân bằng trong sự so sánh giữa

Trung tâm (Centralized), máy tính lớn (Mainframe) và tính toán chia sẻ thời
gian (time sharing computing).

ở đây Client đợc định nghĩa nh một nơi đa ra các yêu cầu về dịch vụ
(Requester of services) và máy chủ là ngời cung cấp dịch vụ (Provider of
services). Một máy tính đơn có thể vừa là máy khách vừa là máy chủ.
Quá trình phát triển của mô hình Khách/Chủ là bắt nguồn từ việc xây
dựng các mô hình theo kiến trúc máy tính lớn (Mainframe), ở đây ngời dùng
tơng tác với máy chủ (host) thông qua các thiết bị đầu cuối (terminal), các

11


Luận văn tốt nghiệp
thiết bị đầu cuối này sẽ thu nhận (capture) các thao tác của ngời sử dụng
(keytrokes) và thông tin sau đó gửi tới máy chủ xử lý. Cấu trúc phần mềm
máy tính lớn (Mainframe) không bó gọn trong một nền phần cứng. Ngời dùng
có thể tơng tác thông qua các máy tính cá nhân (PCs) hoặc các trạm làm việc
UNIX. Giới hạn của phần mềm cấu trúc Mainframe là không hỗ trợ giao diện
đồ họa đối với ngời sử dụng và hạn chế việc truy nhập tới nhiều cơ sở dữ liệu
từ nhiều vị trí khác biệt về mặt địa lý.
Tiếp theo ngời ta đã phát triển mô hình kiến trúc chia sẻ file. Những
mạng máy tính sơ khai đều đợc xây dựng dựa trên việc chia sẻ các files trên
các máy PC. Các máy chủ lấy các files từ các vị trí đợc chia sẻ (Shared
location) để gửi tới ngời yêu cầu để chạy (including logic and data) trên môi
trờng máy tính cá nhân (desktop environment). Cấu trúc chia sẻ files này chỉ
tiện lợi khi số ngời sử dụng chia sẻ là ít, nội dung cập nhật không thờng xuyên
và khối lợng dữ liệu chuyển tải là ít. Đến những năm 1990 các mạng tính toán
theo mô hình mạng cục bộ (PC LAN Computing) đã thay đổi vì số ngời sử
dụng thờng xuyên tăng lên (online user) cùng với việc sử dụng giao diện đồ

họa trở lên phổ dụng làm cho máy tính lớn (Mainframe) và thiết bị đầu cuối
(terminal) không còn thích hợp nữa. Từ đây các máy PC đợc sử dụng theo cấu
trúc Khách/Chủ kéo theo kiến trúc Khách/Chủ ra đời.
Cấu trúc Khách/Chủ ra đời để thay thế sự giới hạn của cấu trúc chia
sẻ files. ở đây chủ yếu nói đến một máy chủ dữ liệu (Database Server) để thay
thế cho file server. Các yêu cầu của ngời sử dụng có thể đợc trả lời trực tiếp
bằng việc sử dụng các hệ thống quản lý dữ liệu quan hệ (Relational Database
Management System-DBMS). Cấu trúc Khách/Chủ giảm rất lớn tải truyền
thông trên mạng (Reduce Network Traffic) bằng việc cung cấp các trả lời truy
vấn (query response) thay vì chuyển tải toàn bộ file dữ liệu. Nó cải tiến trong
việc cập nhật dữ liệu từ các chơng trình tơng tác trực tiếp với ngời sử dụng
(front end GUI) tới các dữ liệu chia sẻ. Trong Khách/Chủ các gọi thủ tục từ xa
RPCs (Remote Procedure Calls) hoặc các câu lệnh của các ngôn ngữ truy vấn
chuẩn SQL (Standard Query Language) là các chuẩn đặc trng truyền thông
giữa client và server.

2.3.2. Kiến trúc phần mềm hai lớp
Kiến trúc phần mềm hai lớp đợc phát triển vào những năm 1980 bắt
nguồn từ thiết kế kiến trúc phần mềm cho file server. Kiến trúc hai lớp này đợc phát triển nhằm nâng cao khả năng sử dụng bằng việc hỗ trợ các nền cơ sở

12


Luận văn tốt nghiệp
và giao diện thân thiện với ngời sử dụng, và nâng cao tính ổn định khi hệ
thống ngời sử dụng lên đến hàng trăm. Mặt khác nó là một hệ thống rất mềm
dẻo và linh hoạt vì nó cho phép dữ liệu đợc chia sẻ trong các môi trờng đồng
nhất, và yêu cầu xen kẽ các phép toán rất ít (request minimal operator
intervention).
Kiến trúc hai lớp bao gồm ba cấu thành phân tán trên hai mức đó là :

Client (requester of services), server (provider of services) và thành phần thứ
ba là :
1. Giao diện hệ thống ngời sử dụng (User System Interface) : Giao
diện hệ thống với ngời sử dụng chẳng hạn nh phiên (session), nhập
dữ liệu (input text), hộp thoại (dialog) và một số dịch vụ quản lý
màn hình (display management services).
2. Quản lý tiến trình (Processing management) : Quản lý tiến trình
chẳng hạn nh phát triển các tiến trình, quy định các quy tắc với
các tiến trình, kiểm soát tiến trình và các dịch vụ cung cấp tài
nguyên cho tiến trình.
3. Quản lý cơ sở dữ liệu (Database Management) : Quản lý cơ sở dữ
liệu chẳng hạn nh dữ liệu (data) và dịch vụ về file (file services).
Thiết kế hai lớp này cung cấp giao diện với ngời sử dụng là duy nhất
đối với client. Nó quản lý dữ liệu (Database Management) trên server và chia
sẻ việc quản lý tiến trình giữa client và server.
Two Tiers
User System Interface
+ Some Processing
management
Database management
+ Some Processing
Management

Nói chung,
hệkế
thống
dụng ở client
kết thúc các dịch
Hìnhgiao
1-5 diện

: Thiết
kiếnngời
trúc sử
Chủ/Khách
hai lớp
vụ từ server quản lý dữ liệu. Trong nhiều thiết kế hai mức, hầu hết các phần
ứng dụng xử lý tiến trình nằm trong môi trờng client. Còn Server quản lý dữ
liệu thông thờng chỉ cung cấp các phần xử lý tiến trình có liên quan đến việc
truy cập dữ liệu (related to acessing data). Các phần này thờng đợc cài đặt
trong các nội thủ tục (Store Procedure). Các máy khách thờng truyền thông

13


Luận văn tốt nghiệp
với máy chủ thông qua các câu lệnh SQL hoặc các giao diện ở mức gọi (Calllevel interface). Điều này cho ta thấy rằng liên kết giữa hai lớp có thể thay đổi
động dựa trên yêu cầu về dữ liệu và dịch vụ của ngời sử dụng.
Trong cấu trúc Khách/Chủ hai lớp này các hệ thống giao diện với ngời
sử dụng nằm trên môi trờng máy cá nhân (Destop environment) và các dịch vụ
quản lý dữ liệu nằm trên máy chủ. Máy chủ phải là một máy tính đủ mạnh để
có thể đủ khả năng phục vụ nhiều client. Trên các máy chủ quản lý dữ liệu
này cung cấp các nội thủ tục (Stored Procedure) và bẫy (Trigger). Các nội thủ
tục (Stored Procedure) là các thủ tục chơng trình đợc lu trữ trên dữ liệu (ở đây
bắt nguồn từ ý niệm là chơng trình phải lu trữ cùng với dữ liệu) và các Trigger
là các bẫy cũng nằm trên dữ liệu, nó đợc sử dụng khi ta kích hoạt một thao
tác cơ bản với dữ liệu (Delete, Update, Change, ...).
Cấu trúc Khách/Chủ hai lớp này là một giải pháp tốt cho việc xây dựng
mô hình tính toán phân tán khi nhóm làm việc có từ 10 đến 100 ngời cùng làm
việc trên mạng LAN. Tất nhiên, nó cũng có những giới hạn nhất định khi số
ngời làm việc đồng thời lớn hơn 100 thì khả năng thực hiện của nó sẽ giảm.

Đó là kết quả của việc máy chủ quản lý các kết nối (connection) thông qua
thông điệp để duy trì các kết nối (keep-alive message) với các máy khách
thậm chí kể cả lúc không làm gì. Một hạn chế khác nữa đó là việc thiết lập các
dịch vụ quản lý tiến trình không mềm dẻo khi ta chọn các hệ quản lý dữ liệu
khác nhau (Database Management System-DBMS), và các thiết lập hiện hành
cũng bị hạn chế khi ta di chuyển các chức năng chơng trình hiện hành sang
một server luôn kéo theo việc sửa đổi lại các mã chơng trình (regenerating
procedural code).
So sánh với cấu trúc phần mềm file server thì ta thấy kiến trúc hai lớp
này tiện lợi, ổn định, nhiều tính năng đợc sử dụng hơn và cung cấp giao diện
theo ngời sử dụng (a customized user system interface).
Trong kiến trúc này chúng ta có thể cấu hình một server hoạt động nh
một client đối với một server khác. Điều này đợc hiểu nh một thiết kế kiến
trúc hai lớp theo chuỗi (a chained two tier architecturre design).
Ưu nhợc điểm :
- Tính ổn định (Scalability): Kiến trúc phần mềm hai mức chỉ chạy ổn
định đối với các hệ thống khoảng 100 ngời sử dụng. Nếu số lợng client lớn
quá thì server sẽ bị quá tải bởi việc liên tục kiểm soát các thông điệp để duy

14


Luận văn tốt nghiệp
trì kết nối (keep-alive message) với client, thậm chí khi client không thực
hiện một tác vụ nào. Mặt khác, việc cài đặt các tác vụ logic (business logic)
trong các nội thủ tục (Stored Procedure) có thể giảm tính ổn định vì các ứng
dụng logic sẽ di chuyển tới server quản lý dữ liệu nhiều hơn, các nhu cầu xử
lý các tiến trình tăng lên và nh thế sẽ hạn chế số lợng ngời sử dụng.
- Cấu hình và quản trị hệ thống (System administration and
configuration): Trong kiến trúc hai lớp này rất khó bảo trì và quản lý hệ thống

vì các ứng dụng nằm trên các client cho nên tất cả các việc nâng cấp đều phải
thực hiện, cài đặt và kiểm thử trên từng client. Đặc biệt điều này dẫn tới mất
tính đồng bộ trong cấu hình của client và có thể thiếu những thay đổi cần thiết
trên các client dẫn đến công việc quản trị sẽ khó khăn lên rất nhiều.
Bó công việc (Batch jobs): Trong kiến trúc hai mức này không hiệu quả
khi ta chạy các chơng trình theo bó (running batch programs) vì các client sẽ
ngừng hoạt động cho tới khi bó công việc kết thúc, thậm chí ngay cả khi các
công việc đó hoàn toàn thực hiện trên server.

2.3.3. Kiến trúc phần mềm ba lớp
Kiến trúc phần mềm ba lớp đợc đa ra vào những năm 1990 nhằm giải
quyết những hạn chế của kiến trúc phần mềm hai lớp. ở đây một lớp thứ ba
(middle tier server (nằm giữa client và server quản lý dữ liệu. Lớp giữa này sẽ
cung cấp các quản lý tiến trình nơi mà các tác vụ logic (business logic) và các
quy tắc (rules) đợc thực hiện và chia sẻ giữa hàng trăm users. Nó cung cấp các
chức năng nh các hàng đợi (queue), thực thi ứng dụng (application excution)
và trình diễn dữ liệu (Database Staging). Kiến trúc ba lớp này dùng trong việc
thiết kế các kiến trúc Khách/Chủ phân tán rất hiệu quả. Nó nâng cao khả năng
thực thi, tính linh hoạt, dễ bảo trì, khả năng sử dụng lại và tính ổn định. Nó dấu
sự phức tạp trong xử lý phân tán đối với user.
Một kiến trúc Client/.Server ba lớp bao gồm mức cao nhất đó là giao
diện hệ thống với ngời sử dụng nơi chứa các dịch vụ cho ngời dùng (Such as
session, text input, dialog, and display management).
Three Tiers
User System
Interface
Process
Management
15


Database
management
Hình
1-6: Kiến trúc Chủ/Khách ba lớp


Luận văn tốt nghiệp

Có rất nhiều cách để thêm vào mức giữa này (middle tier) chẳng hạn
nh thêm một :
- Máy kiểm soát các tiến trình giao dịch (transaction processing
monitor).
- Server xử lý các thông điệp (message server).
- Server chứa các ứng dụng (application server).
Lớp giữa này có thể xử lý các hàng đợi (queue), thực thi các ứng dụng
(application execute) hoặc chuẩn bị dữ liệu (Database Staging). Chẳng hạn nh
hàng đợi máy chủ (queue server) sẽ cung cấp một hàng đợi để nhận các yêu
cầu từ máy khách (sau khi client gửi resquest thì nó sẽ thoát ra-disengage).
Và lúc này hàng đợi máy chủ (queue server) sẽ truy cập dữ liệu và trả về cho
máy khách. Hơn nữa các mức giữa này thờng đợc lập lịch và độ u tiên trong
các tiến trình. Vì vậy, giải quyết công việc hợp lý hơn. Kiến trúc ba mức này
đợc đa ra và cải tiến cho các nhóm làm việc có số lợng ngời làm việc lớn
(hàng ngàn ngời). Kiến trúc này đem lại sự mềm dẻo và linh hoạt hơn hẳn
kiến trúc hai mức, nó dễ dàng chuyển các module chơng trình ứng dụng từ
máy này sang máy khác trong kiến trúc ba lơp rất dễ ràng. Tuy nhiên, một hạn
chế trong kiến trúc ba mức này là môi trờng phát triển ứng dụng là gián tiếp
nên khó hơn hẳn việc phát triển ứng dụng trực quan trong kiến trúc hai mức
(the visually-oriented development of two tier applications).
Mức thứ ba cung cấp các chức năng về quản lý dữ liệu và là máy chủ
(server) dành riêng cho các dịch vụ về file và dữ liệu. Thành phần quản lý dữ

liệu này đảm bảo rằng dữ liệu toàn vẹn thông qua môi trờng phân tán. Nó sử
dụng các đặc trng nh khoá (locking), giàng buộc (consistency) và sao lu
(replication).
Mức giữa cung cấp các dịch vụ về quản lý tiến trình, chẳng hạn nh phát
sinh tiến trình, phát sinh các quy định đối với tiến trình, quản lý tiến trình và
cấp phát tài nguyên cho tiến trình (Process development, process enactment,

16


Luận văn tốt nghiệp
process mnitoring, and process resourcing). Các dịch vụ này chia sẻ bởi nhiều
ứng dụng.
Server mức giữa (chẳng hạn nh application server) nâng cao hiệu suất,
linh hoạt, dễ bảo trì, khả năng sử dụng lại và tính ổn định bằng việc tập chung
các xử lý logic (centralizing process logic). Việc tập trung các xử lý logic làm
cho công tác quản trị các thay đổi quản lý sẽ dễ dàng hơn rất nhiều vì đó
chính là việc nội địa hóa các chức năng hệ thống (localizing system
functionality), vì thế các thay đổi chỉ cần viết một lần rồi đặt lên server mức
giữa, thế là nó tồn tại cho toàn hệ thống.
Đôi khi, mức giữa đợc chia ra làm nhiều đơn vị với các chức năng riêng
biệt, trong trờng hợp này nó đợc đề cập đến nh một kiến trúc nhiều lớp. Ví dụ
một trờng hợp chẳng hạn nh ứng dụng Internet. Các ứng dụng này thờng có
các light client viết bằng HTML và application server viết bằng C++ hoặc
Java, khoảng cách giữa hai lớp rất lớn nên để liên kết chúng lại với nhau ngời
ta đặt một mức trung gian (intermediate layer) đó là một Web Server. Khi đó
mức này nhận các resquest từ các Internet clients và sinh HTML để sử dụng
các dịch vụ đợc cung cấp bởi Business layer (lớp tác vụ).
Ưu nhợc điểm :
Việc xây dựng một phần mềm kiến trúc ba mức là một công việc phức

tạp. Các công cụ lập trình hỗ trợ thiết kế rất ít, không cung cấp đầy đủ tất cả
các dịch vụ cần thiết để xây dựng lên môi trờng tính toán phân tán.
Một vấn đề tiềm tàng nữa là, trong thiết kế ba mức này không phải lúc
nào các chức năng logic giữa các mức cũng đợc phân biệt rõ ràng. Có một số
logic quản lý tiến trình xuât hiện cả ba mức. Vì vậy, việc cài đặt các chức
năng đặc biệt phải dựa trên các điều kiện cụ thể sau :
- Dễ phát triển và kiểm thử
- Dễ quản trị
- ổn định
- Hiệu suất cao (Performance-including both processing and
network load)
Trong chơng này đã trình bày chi tiết về mô hình Khách/Chủ.
Các cấu trúc phần mềm, cấu trúc cơ sở dữ liệu của mô hình Khách/Chủ, kiến
trúc phần mềm hai lớp, ba lớp, và các u nhợc điểm cúa nó. Chơng tiếp theo ta

17


Luận văn tốt nghiệp
sẽ đi sâu vào nghiên cứu ứng dụng của mô hình Khách/Chủ trong SQL Server
2000.

18


Luận văn tốt nghiệp

Chơng 2
Mô hình Khách/Chủ trong SQL Server 2000
I. Cấu trúc cơ bản của SQL Server 2000

Lịch sử của SQL Server : Do IBM sáng tạo vào thập niên 70 của thế kỷ
này chú trọng thiết kế cho các truy vấn (queries) về CSDL (các câu hỏi về cơ
sở dữ liệu) gọi là SEQUEL, trích từ cụm từ Structered English Query
Language. Trải qua thời gian ngôn ngữ đợc bổ sung, vì thế nó không chỉ là
ngôn ngữ truy vấn mà còn đợc sử dụng để xây dựng cơ sở dữ liệu cũng nh
quản lý an toàn cho cơ cấu cơ sở dữ liệu. IBM phát hành SEQUEL trong hầu
khắp các lĩnh vực và thờng đợc gọi là SQL. Do tính thừa kế phát âm từ
SEQUEL tơng tự nh ngời ta đánh vần từ này là S-Q-L.
Các phơng tiện CSDL ngày nay sử dụng các phiên bản khác nhau của
SQL. Microsoft SQL Server sử dụng phiên bản gọi là Transact-SQL (T-SQL:
Chuyển tác-SQL)

1.1. Cơ sở dữ liệu
Mỗi cơ sở dữ liệu ở đây tơng tự nh một file dữ liệu, đó là nơi lu trữ dữ
liệu. Các ngời sử dụng không thể xem trực tiếp các thông tin về dữ liệu mà
phải chạy các chơng trình ứng dụng để truy nhập các dữ liệu từ cơ sở dữ liệu
và chuyển thành dạng có thể hiểu đợc.
ở đây các hệ thống cơ sở dữ liệu đợc thiết kế và tổ chức rất chặt chẽ để
đảm bảo rằng sẽ không có dữ liệu trùng lặp mà ngời sử dụng hoặc các ứng
dụng cập nhật vào cùng một thời điểm. Các mẩu tin liên quan (related pieces
of data) sẽ đợc nhóm lại với nhau để tạo thành các cấu trúc đơn hoặc bản ghi
(a single structure or record), và các quan hệ sẽ đợc định nghĩa giữa các cấu
trúc và bản ghi này.
Khi làm việc với các file dữ liệu, ứng dụng phải đợc mã hóa để làm
việc với cấu trúc đã đợc xác định của mỗi file dữ liệu. Ngợc lại, các cơ sở dữ
liệu bao gồm các danh mục chỉ dẫn (catalog) để các ứng dụng biết đợc dữ liệu
tổ chức nh thế nào. Các ứng dụng cơ sở dữ liệu thông dụng có thế sử dụng các
danh mục chỉ dẫn để trả về dữ liệu cho ngời sử dụng từ cơ sở dữ liệu động
khác nhau mà không cần chỉ định khuôn dạng định sẵn.


19


Luận văn tốt nghiệp
Một cơ sở dữ liệu thờng có hai phần chính là : Các files chứa cơ sở dữ
liệu vật lý và phần mềm hệ thống quản lý cơ sở dữ liệu (Database
Management System-DBMS Software) mà ứng dụng sử dụng để truy cập dữ
liệu. Các DBMS chịu trách nhiệm về cấu trúc cơ sở dữ liệu, bao gồm :
- Duy trì quan hệ giữa dữ liệu trong cơ sở dữ liệu.
- Đảm bảo dữ liệu đợc lu trữ đúng và các quy tắc định nghĩa quan hệ dữ
liệu là không bị vi phạm (violated).
Khôi phục lại dữ liệu (all data) trong trờng hợp hệ thống bị lỗi.

1.2. Cơ sở dữ liệu quan hệ
Mặc dù có nhiều cách khác nhau để tổ chức dữ liệu trong cơ sở dữ liệu
nhng cơ sở dữ liệu quan hệ (relational databases) là một trong những cách
hiệu quả nhất. Hệ thống cơ sở dữ liệu quan hệ là một ứng dụng của lý thuyết
tập hợp trong toán học để giải quyết bài toán tổ chức dữ liệu có hiệu quả.
Trong cơ sở dữ liệu quan hệ, dữ liệu đợc sắp xếp vào trong các bảng.
Một bảng đại diện cho một lớp các đối tợng và là một thành phần quan
trọng đối với tổ chức cơ sở dữ liệu. Ví dụ, một công ty có một cơ sở dữ liệu
gồm các bảng chứa các nhân công, những bảng khác là khách hàng và các
kho. Mỗi bảng bao gồm các cột và dòng. Mỗi cột đại diện cho một số thuộc
tính của đối tợng mà đối tợng đó là đại diện của bảng. Chẳng hạn một bảng
Employee có các cột là : Firstname, Lastname, EmployeeID, Department,
Paygrade và Jobtitle. Khi đó mỗi dòng là một thể hiện của đối tợng đại diện
cho bảng. Ví dụ, mỗi dòng trong bảng Employee đại diện cho một nhân công
có mã số EmployeeID là 1234 chẳng hạn.
Khi tổ chức dữ liệu trong bảng, thông thờng có thể tìm nhiều cách để
định nghĩa các bảng. Lý thuyết cơ sở dữ liệu quan hệ đa ra phơng pháp chuẩn

hóa dữ liệu nhằm đảm bảo cho tập các bảng định nghĩa sẽ đợc tổ chức hiệu
quả.
Một số tính chất của SQL Server 2000 :
Scalable (Tính ổn định):
SQL Server 2000 cho phép nhiều users truy cập cùng một thời điểm.
Một thực thể của SQL Server 2000 bao gồm những tệp mà đợc tạo ra bởi một
tập hợp cơ sở dữ liệu và một bản sao của phần mềm quản trị cơ sở dữ liệu
(DBMS Software). Các ứng dụng chạy trên các máy tính client sử dụng thành
phần giao tiếp SQL Server để truyền các chỉ thị (Commands) qua mạng đến
thực thể SQL Server 2000 trên máy Server. Khi một ứng dụng kết nối đến một

20


Luận văn tốt nghiệp
thực thể của SQL Server 2000, nó có thể tham chiếu đến bất kỳ dữ liệu nào
trong thực thể đấy với điều kiện user đợc quyền truy cập. Thành phần truyền
thông cũng cho phép truyền thông giữa SQL Server 2000 và ứng dụng chạy
trên Server. Có thể chạy nhiều thực thể SQL Server 2000 trên một máy tính.
SQL Server đợc thiết kế để cung cấp truyền tải Web (Largest Web
Sites) hoặc hệ thống xử lý dữ liệu kinh doanh (Enterprise Data Processing
Systems). Các ứng dụng trên Server có khả năng làm việc với vài Clients tại
một thời điểm. Nhng đối với SQL Server 2000 thì những Server đa xử lý có
khả năng kết nối hàng ngàn users tại cùng một thời điểm. Dữ liệu trong bảng
SQL Server có thể đợc phân ra để trên các Server khác nhau, vì vậy một vài
máy tính đa xử lý có thể hợp tác để cung cấp cho hệ thống lớn yêu cầu xử lý
cơ sở dữ liệu. Những nhóm Server có cơ sở dữ liệu này gọi là federations
(Liên bang).
Trong khi SQL Server thiết kế để làm việc nh một Server trong mạng
Khách/Chủ, nó cũng có khả năng làm việc trực tiếp trên một client nh một cơ

sở dữ liệu đơn (A Stand-Alone Database). Sự ổn định và tính năng dễ sử dụng
của SQL Server 2000 cho phép nó làm việc hiệu quả trên các client mà không
tiêu tốn nhiều tài nguyên.
SQL Server 2000 có các tính năng đặc trng để tránh các vấn đề logic
xảy ra nếu nh một user cố gắng đọc hoặc sửa dữ liệu đang đợc sử dụng bởi ngời khác.

1.3. Ngôn ngữ truy vấn cấu trúc
Để làm với dữ liệu trong CSDL, phải sử dụng một tập hợp các chỉ thị
(Commands) và lệnh đợc định nghĩa bởi phần mềm quản trị cơ sở dữ liệu
(DBMS Software). Có một vài ngôn ngữ khác nhau có thể sử dụng với cơ sở
dữ liệu quan hệ nhng ngôn ngữ SQL là thông dụng nhất. Chuẩn ngôn ngữ
SQL đợc đa ra bởi hai tổ chức đó là ANSI (American National Standards
Institute) và ISO (International Standards Orgainzation). SQL Server 2000
cung cấp Entry Level of SQL-92, mà chuẩn SQL đợc xuất bản bởi ANSI và
ISO năm 1992.

1.4. Ngôn ngữ đánh dấu mở rộng (Extensible Markup Language
)
XML nổi lên là chuẩn của Internet cho dữ liệu. XML là tập hợp các thẻ
có thể sử dụng để định nghĩa tài liệu siêu văn bản. Tài liệu XML có thể dễ

21


Luận văn tốt nghiệp
dàng xử lý bởi HMTL (Hypertext Markup Language), ngôn ngữ quan trọng
nhất để hiển thị trang Web.
Hầu hết lệnh SQL trả về kết quả theo quan hệ hoặc sắp xếp theo bảng,
nhng thành phần cơ sở dữ liệu SQL Server 2000 còn cung cấp một mệnh đề
cho XML có thể trả về kết quả nh là tài liệu XML. SQL Server 2000 cũng

cung cấp truy vấn XPath từ ứng dụng Internet và ứng dụng Intranet. Tài liệu
XML có thể đợc thêm vào CSDL SQL Server và mệnh đề OPENXML
(OPENXML Clause) có thể sử dụng để thể hiện dữ liệu từ tài liệu XML nh là
một tập hợp kết quả quan hệ.

II. Các thành phần chính của Server
Bên cạnh th viện về mạng (Net-Libraries), Microsoft SQL Server 2000
còn có một số thành phần chính sau :
- SQL Server Database engine (MSSQL Server Service)
- SQL Server Agent (SQL Server Agent Service)
- Microsoft Search Service
- Microsoft Distributed Transaction Coordinator (MS DTC Service)
Thành phần chính của
SLQ Server 2000

Net-Libraries

SQL Server
Database engine
(MSSQL Server
Sợvice)

SQL Server Agent
(SQL Agent
Service)

Microsoft Search
Service

Microsoft

Distributed
Transaction
Coordinator

Hình 2-1: Các thành phần chính của Server
Thành phần của Server cung cấp với những máy tính chạy trên nền Windows
NT, Windows 2000 và Windows 98. Nó không cung cấp trên máy chạy
Windows 95. Khi SQL Server chạy trên Windows NT hoặc Windows 2000 thì
SQL Server Database engine, SQL Server Agent và MS DTC đợc cài đặt nh
các services. Còn trên Windows 98, thành phần Server không đợc cài đặt nh
một dịch vụ bởi vì hệ điều hành không cung cấp dịch vụ. Dịch vụ Microsoft
Search (dịch vụ tìm kiếm) không cung cấp trên Windows 98 và Windows 95.
Các thành phần của Server có thể ngừng hoặc khởi động theo một số
cách sau :

22


Luận văn tốt nghiệp
- Windows NT và Windows 2000 có thể tự động khởi động các service
khi hệ điều hành khởi động
- Sử dụng SQL Server Service Manager để khởi động hoặc dừng dịch vụ
- Sử dụng SQL Server EnterPrise Manager để khởi động hoặc dừng dịch
vụ
- Trên Windows NT hoặc Windows 2000, sử dụng lệnh NET START và
lệnh NET STOP ở MSDOS Prompt để khởi động hoặc dừng dịch vụ.
SQL Server 2000 cho phép nhiều thực thể SQL Server trên một máy chạy
Windows NT hoặc Windows 2000. Mỗi thực thể có bản sao SQL Server Service
và SQL Server Agent Service của chính nó. Chỉ có duy nhất một bản sao dịch vụ
tìm kiếm (Microsoft Search Service) hoặc MS DTC Service. Các dịch vụ này đợc

chia sẻ cho các thực thể SQL Server chạy trên cùng một máy.

2.1

Kiến trúc Server (Server Architecture)

Các thành phần của Microsoft SQL Server nhận các lệnh SQL từ Clients
và xử lý những lệnh đó. Trong phần này chỉ giới thiệu một số thành phần
chính liên quan đến việc xử lý các câu lệnh nhận đợc từ các SQL Server
Clients.

23


Luận văn tốt nghiệp
Hình 2-2 : Minh họa việc xử lý các câu lệnh nhận đợc từ các SQL
Server Clients

2.1.1. dòng dữ liệu xếp theo bảng (Tabular Data Stream)
Microsoft SQL Server 2000 sử dụng giao thức mc ứng
dụng(application_ level protocol) gọi là TDS (Tabular Data Stream) để giao
tiếp giữa ứng dụng client và SQL Server.
Các client sử dụng các giao thức mức ứng dụng để gửi các câu lệnh
SQL lên SQL Server, đợc gọi là TDS ( Tabular Data Stream). SQL Server 2000
chấp nhận các phiên bản sau của TDS.
TDS 8.0 đợc gửi bởi các client chạy phiên bản SQL Server
client từ SQL Server 2000. Các client chạy TDS 8.0 hỗ trợ tất cả các điểm đặc
trng của SQL Server 2000
+ TDS 7.0 đợc gửi bởi các client chạy SQL Server client của phiên
bản SQL Server 7.0. Các client chạy TDS 4.2 không đợc hỗ trợ các tính năng

đặc trng trong SQL Server 2000, lúc đó SQL Server phải điều chỉnh lại dữ liệu
để gửi trả lại các client sử dụng TDS 7.0. Thí dụ, một client TDS 7.0 không hỗ
trợ loại dữ liệu sql- variant vì vậy SQL Server 2000 phải chuyển đổi tất cả
cácn dữ liệu sql-variant đến unicode.
+ TDS 4.2 đợc gửi bởi các client chạy SQL Server client từ phiên
bản SQl Server 6.5, 6.0 và 4.21a. Các client chạy TDS 4.2 không cung cấp các
tính năng đặc trng của cả SQL Server 2000 và SQL Server 7.0. Lúc đó SQL
Server phải điều chỉnh lại dữ liệu để gửi trả lại đối với client sử dụng TDS 4.2.
Thí dụ, client sử dụng TDS 4.2 không cung cấp loại dữ liệu unicode, vì vậy
SQL Server 2000 phải chuyển đổi bất kỳ kiểu dữ liệu unicode nào thành
character trớc khi gửi đến client. Vì vậy, có thể dẫn tới mất các ký tự mở rộng.
Các client chạy TDS 4.2 không cung cấp các kiểu dữ liệu char, varchar, binary,
hoặc varbinary lớn hơn 255 bytes, vì vậy SQL Server 2000 phải cắt (truncate)
tất cả các giá trị lớn hơn 255 bytes trớc khi gửi chúng đến client.

2.1.2. Th viện mạng máy chủ (Server Net- Libraries)
Các gói TDS đợc tạo bởi các nhà cung cấp Microsoft OLE DB dùng cho
SQL Server, các ODBC driver của SQL Server, hoặc th viện động DB- Library
DLL. Sau đó các gói TDS đợc chuyển cho SQL Server Client NetLibrary, và
nó sẽ gói các gói TDS (encapsu lates the TDS packets) thành các gói dữ liệu
theo giao thức mạng (network protocol packets) đợc nhận bởi Server Net-

24


Luận văn tốt nghiệp
Library, các gói này sẽ đợc mở ra và chuyển tới Server cơ sở dữ liệu quan hệ
(to the relational database server) .
Tiến trình trên sẽ đợc thực hiện ngợc lại khi gỉ trả kết quả về
client.

Mỗi server có thể đồng thời lắng nghe nhiều giao thức mạng và chúng
sẽ chạy một Server Net- Library cho mỗi giao thức đó.

2.1.3. Cơ sở dữ liệu quan hệ (Relational Database Engine)
Database Server xử lý tất cả các yêu cầu đợc chuyển tới nó từ Server NetLibraries. Nó dịch tất cả các câu lệnh SQL thành sơ đồ thực thi (excution
plans), và sau đó sử dụng các sơ đồ này để truy cập các dữ liệu yêu cầu để tạo
ra kết quả gửi về cho client.

III. Các thành phần của client (Client Components)
Các client không thể truy cập Microsoft SQL Server 2000 trực tiếp. Để
thay thế các client sử dụng các chơng trình viết sẵn để truy cập dữ liệu trên
SQL Server. Các chơng trình ứng dụng này có thể là các tiện ích đó kèm cùng
với SQL Server 2000, các ứng dụng thứ ba (third party applications) chạy trên
SQL Server 2000, hoặc các ứng dụng riêng của các công ty (In- house
applications) đợc phát triển bởi các nhà lập trình trên nền SQL Server 2000
hoặc các trang web. SQL Server 2000 có thể truy cập đợc thông qua các kiến
trúc khác nhau: Com, Microsoft Activex, hoặc Windows DNA (distributed
Internet Application). SQL Server 2000 hỗ trợ hai lớp chính của ứng dụng:
- Câu lệnh Transact. SQL đợc gửi bởi ứng dụng cơ sở dữ liệu quan hệ
(Relational database applications) tới database engine. Kết quả đợc trả về nh
một tập hợp quan hệ.
- ứng dụng Internet gửi câu lệnh Transact. SQL hoặc
XPath queries đến database engine, kết quả trả về là những tài liệu XML.
Relational Database APIs:
ứng dụng cơ sở dữ liệu quan hệ là đợc viết để truy cập SQL Server 2000
thông qua giao diện lập trình ứng dụng cơ sở dữ liệu (database application
programming interface :API). Một cơ sở dữ liệu API gồm hai phần :
Các lệnh ngôn ngữ để truyền đến dữ liệu (the language statements
passed to the database). Ngôn ngữ dùng trong ứng dụng SQL Server 2000
quan hệ là Trasact-SQL.Transact đợc hỗ trợ tất cả các lệnh SQL của SQL-92


25


×