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

nghiên cứu mô hình kháchchủ, đặc biệt là ứng dụng mô hình kháchchủ trong SQL server 2000 để lưu trữ thông tin

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 (399.68 KB, 72 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

1

Khoa: Qu¶n lý


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

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
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

2

Khoa: Quản lý


Luận văn tốt nghiệp
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: Sử dụng mô hình SQL Server 2000 trong mô hình
khách/chủ
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.

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 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

3

Khoa: Quản lý


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

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

I.

Giới thiệu về mô hình Khách/Chủ
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. Nhng mô hình về
Khách/Chủ đợc thực sự chấp nhận vào cuối những năm 1980. Mô hình này 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,
các thiết bị đầu cuối này sẽ thu nhận các thao tác của ngời sử dụng và thông
tin sau đó gửi tới máy chủ xử lý. Tiếp theo ngời ta phát triển mô hình kiến trúc

chia sẻ file. Các máy chủ lấy các files từ các vị trí đợc chia sẻ để gửi tới ngời
yêu cầu để chạy trên môi trờng máy tính cá nhân. 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 cục bộ đã thay đổi vì số ngời sử dụng thờng xuyên
tăng lên, việc sử dụng giao diện đồ hoạ trở lên phổ dụng làm cho máy tính lớn
và thiết bị đầu cuối 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.

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ột Client sẽ gửi
yêu cầu tới Server theo một số giao thức nào đó, và thông tin hoặc hành động

4

Khoa: Quản lý


Luận văn tốt nghiệp
này sẽ đợc Server gửi trả lại. Hình dới đây thể hiện mô hình Khách/Chủ cơ
bản:

Tính năng cơ bản của mô hình Khách/Chủ:
1) Các Client và Server là các modules hàm cùng định nghĩa
giống nhau (ví dụ: chúng cùng che dấu cài đặt thông tin). Các
hàm thực hiện bởi một Client và một Server có thể đợc cài đặt
bởi một modules phần mềm, thành phần phần cứng, hoặc kết
hợp cả hai. Client hoặc Server thờng là chạy trên hai máy khác

nhau nhng cũng có thể Client và Server chạy trên cùng một
máy.
2) Quan hệ giữa Khách và Chủ trong mô hình Khách/Chủ thực ra
là quan hệ giữa hai hàm modules. Khi một module phía
Khách khởi tạo một yêu cầu dịch vụ thì tơng ứng bên phía
Chủ sẽ đáp trả bằng cách gọi một module thích hợp để đáp trả
yêu cầu của máy Khách. Tuy nhiên, một máy Chủ phục vụ
yêu cầu dịch vụ cho máy Khách nào đó cũng có thể trở thành
một máy Khách đối với máy Chủ khác.
3) Thay đổi thông tin giữa Khách và Chủ chỉ thông qua các gói
tin (ví dụ: không thông tin nào là đợc thay đổi qua biến toàn
cục). Các yêu cầu dịch vụ và thông tin cần thêm là đợc đặt
trong các gói tin để gửi đến máy Chủ. Máy Chủ sẽ gửi lại các
yêu cầu bằng cách tơng tự nh là máy Khách, tức là máy Chủ
trả lời các yêu cầu này cũng bằng gói tin.
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ủ:

5

Khoa: Quản lý


Luận văn tốt nghiệp
+ 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). 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 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 có thể không cần phải quá mạnh.
+ 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 nê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. Vì vậy, 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

6

Khoa: Quản lý


Luận văn tốt nghiệp
một điều kiện là: 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.

1.3. Mô hình Khách/Chủ trong chia sẻ thiết bị
Mô hình Khách/Chủ nổi lên nh một mô hình cao cấp của chia sẻ thiết bị
trong phạm vi một mạng LAN. Trong 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 cho các dịch vụ xuất phát từ các máy PC
khác sinh ra. Trong một số kiểu chia 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

Client

Client

Server

Printer

Data

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ị


7

Khoa: Quản lý


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

1.4. Kiến 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, hệ điều hành sẽ 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 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.
Ví dụ: Dới đây là 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

8

Khoa: Quản lý


Luận văn tốt nghiệp
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. Kiến trúc phần mềm và cơ sở dữ liệu trong mô hình
Khách/Chủ
2.1. Mô hình Khách/Chủ trong xử lý cơ sở dữ liệu
Chúng ta nhận thấy sự tơng tác của các quá trình 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. 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:

9

Khoa: Quản lý



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ới 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.

10

Khoa: Quản lý


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

Screen

Presentation logic


Business logic
Database logic

If ...
Then ...
Move
SQL

DBMS
(Database Manager
System)

Database

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

2.2. Mô hình cơ sở dữ liệu Khách/Chủ

ứng dụng cơ sở dữ liệu Khách/Chủ cũng nh mọi ứng dụng cơ sở dữ liệu
khác đề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).

11

Khoa: Quản lý


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

- Bản thân cơ sở dữ liệu (The Database).
Nhng các ứng dụng 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.
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.

CSDL

Phần mềm
CSDL
SERVER

Mạng

Client

Client

Client

ứng dụng

ứng dụng

ứng dụng


Phần mềm
CSDL

Phần mềm
CSDL

Phần mềm
CSDL

12

Khoa: Quản lý


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

Hình 1-4 : Mô hình cơ sở dữ liệu Khách/Chủ ( Client/Server Database
model).
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ủ, ngời ta 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 trạm làm việc 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.

13

Khoa: Quản lý


Luận văn tốt nghiệp
- 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
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. Kiến trúc phần mềm Khách/Chủ
2.3.1. Mục đích
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

14

Khoa: Quản lý



Luận văn tốt nghiệp
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 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ở
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.
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) : 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) : 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.

15

Khoa: Quản lý


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

Two Tiers
User System Interface
+ Some Processing
management
Database management
+ Some Processing
Management

Hình 1-5 : Thiết kế kiến trúc Chủ/Khách hai lớp
Nói chung, giao diện hệ thống ngời sử dụng ở client kết thúc các dịch
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
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, 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

16

Khoa: Quản lý


Luận văn tốt nghiệp
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 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.
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
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

17

Khoa: Quản lý


Luận văn tốt nghiệp
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 gồm:
1) 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
Hình 1-6: Kiến trúc Chủ/Khách ba lớp
Database
management

18

Khoa: Quản lý


Luận văn tốt nghiệp
2) 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. Các dịch vụ
này chia sẻ bởi nhiều ứng dụng.
- Mức giữa này có thể xử lý hàng đợi, thực thi các ứng dụng hoặc
chuẩn bị dữ liệu. Chẳng hạn, nh hàng đợi máy chủ sẽ cung cấp một
hàng đợi để nhận các yêu cầu từ máy khách ( sau khi máy khách
gửi yêu cầu thì nó sẽ thoát ra). Và lúc này, hàng đợi máy chủ 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.
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).
Ví dụ khi thêm một Server vào mức giữa sẽ 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. Việc tập chung 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 hoá các chức năng hệ
thống. 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à
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ụ trong ứng dụng internet chẳng hạn. Các ứng dụng
này thờng có các internet 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

19


Khoa: Quản lý


Luận văn tốt nghiệp
nên để liên kết chúng lại với nhau ngời ta đặt một mức trung gian,
đó là một web Server. Khi đó mức này nhận các yêu cầu từ các
Internet Clients và sinh HTML để sử dụng các dịch vụ đợc cung
cấp bởi lớp tác vụ.
2) 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ủ
dành riêng cho các dịch vụ về file 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 khóa (locking) ràng buộc
(consistency ) và sao lu (replication).
Kiến trúc ba mức giải quyết công việc hợp lý hơn. Nó đợc đa ra để 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ễ dà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 phát
triển ứng dụng trực quan trong kiến trúc hai mức.
Ư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

20

Khoa: Quản lý


Luận văn tốt nghiệp
- 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
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.

21

Khoa: Quản lý


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

Chơng 2
Sử dụng SQL Server 2000 trong mô hình
Khách/Chủ
I. Cấu trúc cơ bản của SQL Server 2000
Năm 1988, Microsoft phát hành phiên bản đầu tiên của SQL Server. Nó đợc thiết kế trên nền OS/2 và đợc phát triển bởi Microsoft và Sybase.
Trong những năm 1990, Microsoft bắt đầu phát triển phiên bản đầu tiên
của SQL Server trên nền NT. Trong những năm đấy, Microsoft quyết định

SQL Server nên kết hợp chặt chẽ với hệ điều hành NT. Trong năm 1993,
windows NT 3.1 và SQL Server 4.2 cho NT đợc phát hành. Triết lý của
Microsoft là kết hợp một cơ sở dữ liệu hiệu suất cao cùng với giao diện dễ sử
dụng đã đợc chứng minh là thành công. Microsoft nhanh chóng trở thành nhà
cung cấp nổi tiếng về phần mềm cơ sở dữ liệu quan hệ. Năm 1994, Microsoft
và Sybase chính thức kết thúc hợp tác. Năm 1995, Microsoft phát hành phiên
bản SQL Server 6.0. Phiên bản 6.0 về căn bản cải thiện việc thực hiện, cung
cấp cài đặt sao lu dữ liệu, thực hiện quản trị tập trung. Năm 1996, Microsoft
phát hành phiên bản SQL Server 6.5. Phiên bản này cải tiến đáng kể cải tiến
đáng kể công nghệ đang tồn tại và cung cấp một vài tính năng mới. Năm
1997, Microsoft phát hành phiên bản Enterprise Edition 6.5. Năm 1998,
Microsoft phát hành phiên bản SQL Server 7.0. Năm 2000, Microsoft phát
hành SQL Server 2000. Phiên bản này khắc phục những thiếu sót và những
vấn đề cha giải quyết một cách triệt để trong phiên bản SQL Server 7.0. Theo
các nhà phát triển SQL Server, phiên bản mới này của SQL Server sẽ là công
nghệ còn phát triển trong 10 năm tới.

1.1. Cơ sở dữ liệu

22

Khoa: Quản lý


Luận văn tốt nghiệp
Một cơ sở dữ liệu trong SQL Server 2000 bao gồm tập hợp các bảng
cho phép lu trữ dữ liệu và các đối tợng khác nh views, indexs, stored
procedure, và trigger. Một bảng bao gồm tập hợp các dòng (bản ghi) và cột
(thuộc tính). Mỗi cột trong bảng đợc thiết kế để lu trữ một loại thông tin nào
đó (ví dụ nh ngày tháng, tên, ngày sinh...). Các bảng này có một vài loại điều

khiển nh Constraints, rules, trigges... để đảm bảo tính đúng đắn của dữ liệu.
Mỗi bảng có thể có nhiều chỉ mục cho phép tìm kiếm các dòng nhanh chóng.
Ràng buộc đợc thêm vào bảng để đảm bảo dữ liệu quan hệ giữa các bảng khác
có tính toàn vẹn và nhất quán. Một cơ sở dữ liệu cũng có thể có các stored
procudure sử dụng mã lập trình Transact-SQL để thực hiện các thao tác trên
dữ liệu.
Một số tính chất của SQL Server 2000 :
Tính ổn định:
SQL Server 2000 cho phép nhiều ngời dùng 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. 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ị 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 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 ngời sử dụng đợ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 hoặc hệ thống xử
lý dữ liệu kinh doanh. 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 ngời sử dụng 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,

23

Khoa: Quản lý


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

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.
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. 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 ngời sử dụng cố gắng đọc hoặc sửa dữ liệu đang đợc sử
dụng bởi ngời khác.

1.2. 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ị và
lệnh đợc định nghĩa bởi phần mềm quản trị cơ sở dữ liệu. 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).

1.3. Ngôn ngữ đánh dấu mở rộng
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ễ
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ệ.


24

Khoa: Quản lý


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

1.4. Các thành phần của SQL Server 2000
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): Là các ứng
dịch vụ chính của SQL Server, dùng để thực thi việc lu trữ và truy vấn dữ liệu.
- SQL Server Agent (SQL Server Agent Service): Đảm bảo nhiệm vụ
nh một lịch trình để thực thi các dịch vụ backup dữ liệu, replication
- Microsoft Search Service
- Microsoft Distributed Transaction Coordinator (MS DTC Service): Là
mở rộng của SQL Server 2000, bao gồm các chức năng nh trao đổi dữ liệu, và
giao tiếp dữ liệu giữa các cơ sở dữ liệu khác nhau.
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

II. Các thành phần Server
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.

25

Khoa: Quản lý


×