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ầnchính của máy chủ, máy khách và hệ thống cơ sở dữ liệu Client/Server
Trang 1Bả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 PackageExchange
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 khoahọ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 đờisố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
Trang 2mộ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áctrờ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úpcho nhiều ngời ở nhiều địa điểm khác nhau mà không phải chờ đợi và côngviệ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ậychú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 đadạ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ệcquản lý các thông tin đó sẽ không đợc thống nhất, dễ gây ra sai lệnh, nhầmlẫ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ìnhKhá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ớpcủ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ầnchí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 chobà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ánQuản lý Khoa học sau Đại học
Trang 3Trong một thời gian hạn hẹp và khả năng còn nhiều hạn chế, hơn nữaphạ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ếmkhuyế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ỹ sPhạm Thành Giang – Phòng tin học viễn thông, các thầy cô giảng dạy khoaToá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ấtgiúp em hoàn thành bài luận văn này
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ênchung 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 chonhiều ngời, thông tin bị phân tán ở nhiều nơi khác nhau trên mạng, thì việcquả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ôitrờ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ủ
Trang 41.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ậptrung 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ântá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ìnhphụ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ácthiết bị dùng chung trên mạng cục bộ Trong môi trờng LAN, các PC đợc nốivớ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 nhmá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ântá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ộtmá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ầumá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ínhlớ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ìnhKhá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ảiquá mạnh
Trang 5+ 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
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áckiểu có các quá trình chia sẻ thiết bị trong phạm vi một mạng LAN Trongmộ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ớimộ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ênchung Việc chia sẻ file trên đĩa cứng hoặc máy in là một ví dụ Trong phạm vimạ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ầucho 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ácthiế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
Server
Client Clien t
Trang 6Tạ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 đợcchuyể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ớigiao thức mạng (Network protocol) ở mức dới Phần thông tin này sẽ đợc mứcmạ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
Hệ điều hành Giao tiếp với mạng
Server
NetworkHình 1-2 : Mô tả các mức của mô hình Khách/Chủ
Trang 7sẽ đợc hai nhóm dịch vụ phục vụ phân tích và gửi lên các ứng dụng để khaithá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ệnxong 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 ratrên kiến trúc Khách/Chủ Có những nét đặc thù đáng chú ý ở các xử lý qua lạigiữ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áychủ 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ộtcá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ácmứ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 đổitrực tiếp với một trạm đầu cuối hoặc một trạm làm việc (Workstation) Côngviệ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 thaotá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à IBM’sCICS, 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 đợccung cấp nh OS/2, Present Manager, MicroSoft’s Windows Trên môi trờngUnix cũng có X Windows, OSF’s Motif and SUN’s Open Look
Mức tác vụ logic:
Trang 8Đâ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ầnthiế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àytrự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ônngữ 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ênmứ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
Screen
Presentation logic
Business logic Database logic
DBMS (Database Manager System)
If
Then
Move SQL
Trang 9Hì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)
Hình 1-4 : Mô hình cơ sở dữ liệu Khách/Chủ ( Client/Server Databasemodel)
Mạng
Client
Phần mềm CSDL SERVER CSDL
Trang 10Trong mô hình cơ sở dữ liệu Khách/Chủ, cơ sở dữ liệu nằm trên mộtmá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ỏilấ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áycủ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ấntin 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-endsoftware và back-end software Front-end software đợc chạy trên một máytí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ệuKhá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ênchí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ếtnố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
Trang 11trong 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ềmnà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ácphâ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áccô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ốngthô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ạmlà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ầnmề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 1980trong 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ầnmề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ờigian (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 ofservices) 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âydựng các mô hình theo kiến trúc máy tính lớn (Mainframe), ở đây ngời dùngtơng tác với máy chủ (host) thông qua các thiết bị đầu cuối (terminal), các
Trang 12thiế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ềmmá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ệcUNIX 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) để thaythế 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ếpbằng việc sử dụng các hệ thống quản lý dữ liệu quan hệ (Relational DatabaseManagement System-DBMS) Cấu trúc Khách/Chủ giảm rất lớn tải truyềnthông trên mạng (Reduce Network Traffic) bằng việc cung cấp các trả lời truyvấn (query response) thay vì chuyển tải toàn bộ file dữ liệu Nó cải tiến trongviệ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ừ xaRPCs (Remote Procedure Calls) hoặc các câu lệnh của các ngôn ngữ truy vấnchuẩn SQL (Standard Query Language) là các chuẩn đặc trng truyền thônggiữa client và server
Trang 13và 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ềmdẻo và linh hoạt vì nó cho phép dữ liệu đợc chia sẻ trong các môi trờng đồngnhất, và yêu cầu xen kẽ các phép toán rất ít (request minimal operatorintervention).
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) : Giaodiện hệ thống với ngời sử dụng chẳng hạn nh phiên (session), nhậpdữ 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ìnhchẳng hạn nh phát triển các tiến trình, quy định các quy tắc vớicác tiến trình, kiểm soát tiến trình và các dịch vụ cung cấp tàinguyê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
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ệctruy cập dữ liệu (related to acessing data) Các phần này thờng đợc cài đặttrong các nội thủ tục (Store Procedure) Các máy khách thờng truyền thông
Trang 14vớ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 level interface) Điều này cho ta thấy rằng liên kết giữa hai lớp có thể thay đổi
(Call-độ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ệunà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 (ở đâybắ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 thaotá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ựngmô 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àmviệ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 quathông điệp để duy trì các kết nối (keep-alive message) với các máy kháchthậ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ácdị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ệukhác nhau (Database Management System-DBMS), và các thiết lập hiện hànhcũng bị hạn chế khi ta di chuyển các chức năng chơng trình hiện hành sangmột server luôn kéo theo việc sửa đổi lại các mã chơng trình (regeneratingprocedural 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ớpnà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ệntheo 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 nhmột client đối với một server khác Điều này đợc hiểu nh một thiết kế kiếntrú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ớnquá 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
Trang 15trì kết nối (“keep-alive” message) với client, thậm chí khi client không thựchiệ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 ứngdụ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ốngvì 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ảithự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ấttính đồng bộ trong cấu hình của client và có thể thiếu những thay đổi cần thiếttrê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áccô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ảiquyế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ácquy tắc (rules) đợc thực hiện và chia sẻ giữa hàng trăm users Nó cung cấp cácchứ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ệcthiế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ăngthự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à giaodiệ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 assession, text input, dialog, and display management)
Trang 16Có 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 processingmonitor)
- 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 nhhàng đợi máy chủ (queue server) sẽ cung cấp một hàng đợi để nhận các yêucầ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ề chomá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 trongcá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ẳnkiế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ạnchế 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ếpnê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átsinh 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,
Trang 17process 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 chungcác xử lý logic (centralizing process logic) Việc tập trung các xử lý logic làmcho 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 systemfunctionality), vì thế các thay đổi chỉ cần viết một lần rồi đặt lên server mứcgiữ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êngbiệ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ặcJava, 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ụngcá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ứctạ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úcnà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ứcnă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ử
Trang 18sÏ ®i s©u vµo nghiªn cøu øng dông cña m« h×nh Kh¸ch/Chñ trong SQL Server2000.
Trang 19Chơ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 QueryLanguage 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 nhquản lý an toàn cho cơ cấu cơ sở dữ liệu IBM phát hành SEQUEL trong hầukhắ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 ứngdụ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ấutrú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àmviệ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ácdanh mục chỉ dẫn để trả về dữ liệu cho ngời sử dụng từ cơ sở dữ liệu độngkhác nhau mà không cần chỉ định khuôn dạng định sẵn
Trang 20Mộ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 (DatabaseManagement 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ệunhng cơ sở dữ liệu quan hệ (relational databases) là một trong những cáchhiệu quả nhất Hệ thống cơ sở dữ liệu quan hệ là một ứng dụng của lý thuyếttậ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 quantrọ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ệugồ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áckho 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ộctí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ảngEmployee 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ệncho 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ẩnhó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ệuquả
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ộttậ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ànhphần giao tiếp SQL Server để truyền các chỉ thị (Commands) qua mạng đếnthực thể SQL Server 2000 trên máy Server Khi một ứng dụng kết nối đến một
Trang 21thực thể của SQL Server 2000, nó có thể tham chiếu đến bất kỳ dữ liệu nàotrong thực thể đấy với điều kiện user đợc quyền truy cập Thành phần truyềnthông cũng cho phép truyền thông giữa SQL Server 2000 và ứng dụng chạytrê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 WebSites) hoặc hệ thống xử lý dữ liệu kinh doanh (Enterprise Data ProcessingSystems) Các ứng dụng trên Server có khả năng làm việc với vài Clients tạimộ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ảngSQL Server có thể đợc phân ra để trên các Server khác nhau, vì vậy một vàimá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ạngKhá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ụngcủa SQL Server 2000 cho phép nó làm việc hiệu quả trên các client mà khôngtiê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 đề logicxả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 StandardsInstitute) và ISO (International Standards Orgainzation) SQL Server 2000cung 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ễ
Trang 22dàng xử lý bởi HMTL (Hypertext Markup Language), ngôn ngữ quan trọngnhấ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ũngcung cấp truy vấn XPath từ ứng dụng Internet và ứng dụng Intranet Tài liệuXML 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 2000cò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 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ạyWindows 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 nhcác services Còn trên Windows 98, thành phần Server không đợc cài đặt nhmột dịch vụ bởi vì hệ điều hành không cung cấp dịch vụ Dịch vụ MicrosoftSearch (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 :
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 Distributed Microsoft
Transaction Coordinator
Hình 2-1: Các thành phần chính của Server
Trang 23- Windows NT và Windows 2000 có thể tự động khởi động các servicekhi 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ịchvụ
- 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ạyWindows 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 đợcchia 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ầnchính liên quan đến việc xử lý các câu lệnh nhận đợc từ các SQL ServerClients
Trang 24Hình 2-2 : Minh họa việc xử lý các câu lệnh nhận đợc từ các SQLServer 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 ứngdụng(application_ level protocol) gọi là TDS (Tabular Data Stream) để giaotiế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ệnhSQL lên SQL Server, đợc gọi là TDS ( Tabular Data Stream) SQL Server 2000chấ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 Serverclient từ SQL Server 2000 Các client chạy TDS 8.0 hỗ trợ tất cả các điểm đặctrng của SQL Server 2000
+ TDS 7.0 đợc gửi bởi các client chạy SQL Server client của phiênbả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ênbản SQl Server 6.5, 6.0 và 4.21a Các client chạy TDS 4.2 không cung cấp cáctính năng đặc trng của cả SQL Server 2000 và SQL Server 7.0 Lúc đó SQLServer 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ậySQL Server 2000 phải chuyển đổi bất kỳ kiểu dữ liệu unicode nào thànhcharacter 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 choSQL Server, các ODBC driver của SQL Server, hoặc th viện động DB- LibraryDLL Sau đó các gói TDS đợc chuyển cho SQL Server Client Net—Library, và
nó sẽ gói các gói TDS (encapsu lates the TDS packets) thành các gói dữ liệutheo giao thức mạng (network protocol packets) đợc nhận bởi Server Net-
Trang 25Library, 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 Libraries Nó dịch tất cả các câu lệnh SQL thành sơ đồ thực thi (excutionplans), và sau đó sử dụng các sơ đồ này để truy cập các dữ liệu yêu cầu để tạo
Net-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ênSQL Server Các chơng trình ứng dụng này có thể là các tiện ích đó kèm cùngvới SQL Server 2000, các ứng dụng thứ ba (third party applications) chạy trênSQL Server 2000, hoặc các ứng dụng riêng của các công ty (In- houseapplications) đợc phát triển bởi các nhà lập trình trên nền SQL Server 2000hoặc các trang web SQL Server 2000 có thể truy cập đợc thông qua các kiếntrúc khác nhau: Com, Microsoft Activex, hoặc Windows DNA (distributedInternet 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ề nhmộ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 2000thông qua giao diện lập trình ứng dụng cơ sở dữ liệu (database applicationprogramming 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 statementspassed to the database) Ngôn ngữ dùng trong ứng dụng SQL Server 2000quan hệ là Trasact-SQL.Transact đợc hỗ trợ tất cả các lệnh SQL của SQL-92
Trang 26entry Level và thêm nhiều đặc trng của SQL-92 Nó còn hỗ trợ các mở rộng củaODBC đối với SQL-92 và các mở rộng dành riêng cho Transact-SQL.
Tập hợp các hàm hoặc các giao diện hớng đối tợng và các phơng thức
đợc sử dụng để gửi các lệnh tới cơ sở dữ liệu và xử lý các kết quả mà dữ liệutrả về
Các hỗ trợ API nguyên thủy sử dụng các lời gọi hàm API đợc ánh xạtrực tiếp với giao thức (protocol) của mạng làm phơng tiện để gửi tới máy chủ(Server) ở đây không cần có sự chuyển đổi trung gian nào để thành API khác.SQL Server cung cấp các hỗ trợ nguyên thủy cho hai lớp chính sau :
ODBC
SQL Server 2000 bao gồm cả trình điều khiển ODBC nguyên thủy(inlcudes a native ODBC driver) Trình điều khiển này hỗ trợ các ứng dụnghoặc các thành phần có sử dụng ODBC, hoặc các APIs sử dụng ODBC, chẳnghạn nh DAO, RDO, và MFC (Microsoft Foundation Classes)
Một ví dụ cho việc hỗ trợ không nguyên thủy cho API, đó là một cơ sởdữ liệu không có OLE DB nhng lại có trình điều khiển ODBC Một ứng dụngOLE DB có thể dùng OLE DB cho ODBC driver để kết nối với cơ sở dữ liệu
đó thông qua một trình điều khiển ODBC Provider này sẽ ánh xạ các lời gọihàm của OLE DB API từ ứng dụng tới lời gọi hàm ODBC và gửi tới trình
điều khiển ODBC
Ngoài ra SQL Server 2000 còn hỗ trợ :
DB-Library :
DB-Library là một API đặc trng đối với SQL Server 2000 và MicrosoftSQL Server SQL Server hỗ trợ các ứng dụng DB-Library đợc viết bằng ngônngữ C Các ứng dụng DB-Library đang tồn tại viết trên nền SQL Server cácphiên bản trớc đây của Microsoft SQL Server có thể chạy trên SQL Server
2000, nhng nhiều tính năng đợc giới thiệu trong SQL Server 2000 và SQLServer 7.0 là không đợc hỗ trợ đối với các ứng dụng DB-Library này
Trang 272000, ứng dụng IIS có thể sử dụng ba cách sau để thực hiện câu lệnh XPathqueries hoặc Transact-SQL.
- Thực hiện một Uniform Resource Locator (URL) cái mà tham chiếu
đến th mục ảo gốc (virtual root) và bao gồm một câu lệnh XPath query hoặcTransact-SQL với For XML
- Sử dụng ADO API để thực hiện một XPath query đến câu lệnhTransact-SQL với For XML
- Sử dụng OLE DB API để thực hiện một một XPath query đến câu lệnhTransact-SQL với For XML
Microsoft OLE DB Provider sử dụng cho SQL Server 2000, SQL Server
2000 ODBC driver, và DB-Library đợc cài đặt nh một DLL (th viện liên kết
động-Dynamic Link Library), dùng để truyền thông với SQL Server thông quacác thành phần đợc gọi từ Client Net-Library
Trang 28Hình 2-3 : Mô tả truyền thông giữa máy tính khách và chủ thông qua mạng.
• Trong một hệ thống nhiều lớp, nh Windows DNA, các Client Applicationlogic chạy trên hai hoặc nhiều vị trí :
- Một thin Client chạy trên các máy địa phơng (local computer) củangời sử dụng và chủ yếu là để hiển thị kết quả tới ngời dùng
- Còn lớp các tác vụ (Business logic) nằm trên Server Applications vàchạy trên Server.Các thin Client yêu cầu các hàm từ ứng dụng Server (ServerApplication), các ứng dụng Server này là các multithread application nên cóthể làm việc với nhiều users cùng một lúc ứng dụng Server là cái để mở kếtnối đến cơ sở dữ liệu Server.ứng dụng Server (Server Application) có thể chạytrên máy Server nh cơ sở dữ liệu, hoặc có thể kết nối thông qua mạng đến mộtServer khác, cái này coi nh cơ sở dữ liệu Server
Một trờng hợp đặc trng cho các ứng dụng Internet : Chẳng hạn, mộtServer Application có thể chạy trên Microsoft Internet Information Services(IIS) và phục vụ hàng ngàn Thin Client chạy trên Internet hoặc Intranet.ServerApplication sẽ dùng một phần kết nối (uses a pool of connections) để truyềnthông với một hoặc nhiều thực thể của SQL Server 2000 Các thực thể SQLServer 2000 có thể đợc cài đặt trên cùng một máy với IIS, hoặc có thể cài đặt
ở Server khác trên mạng
Trang 29• Trong hệ thống Khách/Chủ hai lớp, các user chạy ứng dụng trênmáy tính cục bộ của họ, đợc biết nh một ứng dụng Client Các ứng dụng nàykết nối qua mạng đến SQL Server 2000 chạy trên máy tính Server ứng dụngClient chạy cả mức tác vụ logic (business logic) và các đoạn mã (the code) đểhiển thị kết quả về cho user, vì thế thỉnh thoảng nó đợc coi nh một thick client.
Những tiện lợi của hệ thống cơ sở dữ liệu Server
Dữ liệu đợc lu trữ và quản lý tại một điểm trung tâm đem lại cho ta một số tiện lợi sau :
• Mỗi hạng mục dữ liệu đợc lu trữ ở vị trí trung tâm (Each data item is stored
in a central location ) nơi mà tất cả ngời sử dụng có thể làm việc với nó.Các bản sao riêng biệt không lu trữ trên mỗi client, điều đó sẽ giảm cácvấn đề với ngời sử dụng và để đảm bảo chắc chắn rằng tất cả họ làm việcvới cùng một thông tin Hệ thống của họ không cần đảm bảo rằng tất cảbản sao của dữ liệu đợc cập nhật cùng với giá trị hiện hành, bởi vì chỉ cómột bản sao ở vị trí trung tâm
• Các tác vụ hoặc quy tắc về an toàn (Business and Security rules) có thể
định nghĩa một lần trên Server và áp dụng cho tất cả các user Điều này cóthể thực hiện trực tiếp trên cơ sở dữ liệu thông qua việc dùng các dàngbuộc về dữ liệu (constraints), stored procedures và triggers (các bẫy).Tacũng có thể thực hiện điều đó trên Server Application
• Một Server cơ sở dữ liệu quan hệ (a relational database server) làm giảm sựvận chuyển của mạng bằng việc chỉ gửi trả các dữ liệu mà ứng dụng cần.Ví
dụ, nếu một ứng dụng làm việc với một file server cần hiển thị danh sáchtên các nhà đại diện bán hàng ở Oregon, nó phải lấy tất cả file employee.Nếu ứng dụng làm việc với server cơ sở dữ liệu quan hệ, nó gửi lệnh sau:
SELECT FIRST_NAME, LAST_NAME
FROM EMPLOYEESWHERE MP_TITLE=’SALES REPRESENTATIVE’AND EMP_STATE=’OR’
Cơ sở dữ liệu quan hệ sẽ gửi trả lại tất cả tên của các đại diện bán hàng
ở Oregon, mà không phải tất cả các thông tin trong employees
• Chi phí về phần cứng giảm (Hardware costs can be minimized)
Trang 30Vì dữ liệu không lu trữ trên mỗi client, nên các client không có cáckhông gian đĩa giành riêng để lu trữ dữ liệu Các client cũng không cần có khảnăng xử lý để quản lý dữ liệu cục bộ, và server không cần có khả năng xử lýgiành riêng cho việc hiển thị dữ liệu.
Các Server có thể cấu hình để nâng cao công suất vào/ra (I/Ocapacities) cần thiết để gửi và nhận dữ liệu.Các client có thể cấu hình để hiểnthị dữ liệu nhận đợc từ server tốt hơn
Server có thể đặt ở một vị trí tơng đối an toàn và trang bị các thiết
bị nh UPS (Uninterruptable Power Supply) sẽ kinh tế hơn là trang bị cho tất cả client.
• Công tác bảo trì chẳng hạn nh lu trữ và khôi phục dữ liệu(backup/restore data) cũng đơn giản hơn vì chúng tập trung tại máychủ trung tâm)
Trong các hệ thống Khách/Chủ lớn, hàng ngàn ngời sử dụng có thểkết nối tới SQL Server cùng một thời điểm SQL Server hoàn toàn đợc bảo vệcho môi trờng này với các chế độ bảo vệ để tránh các lỗi (problems) Chẳnghạn nh nhiều ngời sử dụng cùng cập nhật một mẩu dữ liệu cùng một thời
điểm SQL cũng cấp phát các tài nguyên sẵn có rất hiệu quả, nh bộ nhớ, giảithông của mạng (network bandwidth), và đọc/ghi đĩa (disk I/O), cho nhiều ng-
ời sử dụng
Các ứng dụng SQL Server có thể chạy trên cùng một máy với SQL Server ứng dụng kết nối đến SQL Server 2000 bằng cách sử dụng thành phần IPC (Windows Interprocess Communications), chẳng hạn
nh chia sẻ bộ nhớ, thay vì sử dụng mạng Điều này cho phép SQL Server
sử dụng đợc trong các hệ thống nhỏ, những nơi mà các ứng dụng cần lu trữ dữ liệu cục bộ.
Trang 31Hình 2-4 : Hình họa SQL Server 2000 hoạt động nh là cơ sở dữ
liệu server cho cả large Web site và hệ thống Khách/Chủ
4.2 Hệ thống cơ sở dữ liệu cá nhân
Mặc dù SQL Server 2000 làm việc nh một cơ sở dữ liệu Server rất hiệuquả, bên cạnh đó nó có thể đợc dùng trong các ứng dụng đòi hỏi các cơ sở dữliệu đứng một mình (stand-alone databases) lu trữ cục bộ trên các client SQLServer có thể tự động cấu hình để chạy tốt trên tài nguyên sẵn có của client màkhông cần có một ngời quản trị dữ liệu cho mỗi client Các nhà cung cấp ứngdụng cũng có thể nhúng SQL Server để trở thành một bộ phận lu trữ dữ liệucủa ứng dụng của họ
Khi các client sử dụng các cơ sở dữ liệu SQL cục bộ, ứng dụng kết nối đến thực thể cục bộ của database engine cũng tơng tự nh cách chúng kết nối qua mạng tới một database engine chạy trên một remote server.
Trang 32Cái khác nhau là kết nối cục bộ thông qua IPCs cục bộ nh là chia sẻ bộ nhớ, còn kết nối xa (remote connections) phải thông qua mạng.
Hình 2-5 : Minh hoạ sử dụng SQL Server 2000 trong hệ thống cơ
sở dữ liệu desktop
Các thành phần truyền thông
Microsoft SQL Server 2000 sử dụng thành phần gọi là th viện mạngclient (Client Net-Libraries)
Sau đây là những thành phần quản lý truyền thông giữa SQL Server
2000 và các Client của nó theo thứ tự sau :
1 Các ứng dụng client (Client Application) gọi OLE DB, ODBC, Library, hoặc Embedded SQL API Do đó các OLE DB Provider, ODBCdriver, hoặc DB-Library DLL sẽ đợc sử dụng trong truyền thông củaSQL Server
DB-2 OLE DB Provider, ODBC driver, hoặc DB-Library DLL gọi Net-Librarycủa Client Từ đây Client Net-Library gọi một IPC API
3 Lời gọi IPC API của Client sẽ đợc chuyển tới Server Net-Library bằngcác mức dới của IPC Nếu đó là một local IPC thì các lời gọi sẽ đợcchuyển bằng cách sử dụng thao tác IPC của windows (a windowsoperating IPC) chẳng hạn nh Shared Memory hoặc local Named Pipes.Nếu đó là một network IPC thì network protocol stack trên client sửdụng mạng để truyền thông với network protocol stack trên server
4 Net-Library trên Server chuyển các yêu cầu đợc gửi từ Client lên SQLServer 2000
Trang 33Các trả lời từ SQL Server 2000 tới Client theo thứ tự ngợc lại thứ tự trên.
Hình 2-6 : trên đây là minh họa của đờng dẫn truyền thông khi ứngdụng SQL Server chạy trên cùng máy tính cài đặt SQLServer 2000
Sau đây là minh họa đờng dẫn truyền thông khi ứng dụng SQL Server
2000 kết nối thông qua một mạng Lan hoặc Wan tới một thực thể của SQLServer 2000 trên máy khác.Trong phần minh họa chỉ ra OLE DB Provider choSQL Server 2000, các ODBC Driver của SQL Server, và DB-Library DLL sửdụng các Net-Libraries đợc chỉ định, nhng ở đây không có sự ngăn cách nàocác thành phần này với Net-Libraries Mỗi trình điều khiển provider, driver, vàDB-Library có thể sử dụng bất cứ SQL Server Net-Libraries nào
Trang 34Hình 2-7 : Minh họa đờng dẫn truyền thông khi ứngdụng SQL Server 2000 kết nối thông qua một mạng Lan hoặc Wan tới mộtthực thể của SQL Server 2000 trên máy khác.
SQL Server 2000 phân loại Net-Libraries thành Net-Libraries gốc vàthứ hai OLE DB Provider cho SQL Server 2000, SQL Server 2000 ODBCDriver, DB-Library DLL, và database engine chỉ giao tiếp trực tiếp với mộttrong hai Net-Libraries gốc :
• Mặc định kết nối local giữa một ứng dụng và SQL Server 2000 chạytrên cùng một máy sử dụng th viện mạng gốc bộ nhớ chia sẻ (SharedMemory Primary Net-Library) Đờng dẫn này thể hiện ở hình trên
• Nhiều máy tính kết nối giao tiếp thông qua Super Socket primary Library, Super Socket Net-Library có hai đờng dẫn truyền thông :
Net Nếu bạn chọn một TCP/IP Sockets kết nối hoặc một NWLINK IPX/SPXkết nối, th viện Super Socket (Super Socket Net-Library) trực tiếp gọiWindows Socket 2 API cho truyền thông giữa ứng dụng và SQL Server 2000
- Nếu là một kết nối Named Pipes, Virtual Interface Architecture (VIA)SAN, Multiprotocol, AppleTalk, hoặc Banyan VINES là đợc chọn, một thành
Trang 35phần con của Super Socket Net-Library, gọi là Net-Library router, nạp th việnmạng thứ hai (secondary Net-Library) cho giao thức đợc chọn và routes gọi tấtcả th viện mạng (Net-Library) đến nó.
Hình 2-8 : Hình này thể hiện chi tiết về đờng dẫn truyền thôngthông qua Client và Server Net-Libraries cho kết nối mạng giữa một máy tínhchạy thành phần Client SQL Server 2000 và một chạy SQL Server 2000
Chơng này đã trình bày chi tiết cho ta thấy ứng dụng của mô hìnhKhách/Chủ trong SQL Server 2000 Khái quát về cấu trúc cơ bản của SQLServer 2000, các thành phần chính của máy chủ, thành phần của máy khách vàkiến trúc Khách/Chủ cũng nh cách thức, phơng tiện để giao tiếp giữa máykhách và máy chủ…Chơng tiếp theo sẽ đi vào xây dựng bài toán Quản lý Đào
Trang 36tạo Khoa học sau Đại học để minh họa cho phần lý thuyết về mô hìnhKhách/Chủ và ứng dụng của nó trong SQL Server 2000.
Chơng 3 Xây dựng chơng trình Quản lý Đào tạo Khoa
học theo mô hình Client/Server
3.1 Yêu cầu đối với hệ thống
• Quản lý đợc hồ sơ của các học viên, các báo cáo thống kê, in cácquyết định
• Mẫu thống kê theo chuyên ngành, theo giới, theo độ tuổi (theocác các tiêu chuẩn của mục nhập vào)
• Thống kê số học viên bảo vệ luận văn hàng năm
• Quản lý quyết định bảo vệ, luận văn, danh sách các thành viêntrong hội đồng bảo vệ
• Quản lý bảng điểm cá nhân, in bảng điểm cá nhân…
• Lập kế hoạch giảng dạy cho từng lớp trong mỗi học kỳ của nămhọc, in kế hoạch, sửa chữa thông tin về kế hoạch học tập…
• In giấy xác nhận
• Quản lý điểm môn học, phân phòng thi cho các học viên
• Giáo viên hớng dẫn, thay đổi giáo viên hớng dẫn
• Danh sách cán bộ giảng dạy, chuyên ngành, học hàm Danh sáchchung (có bao nhiêu ngời tham gia giảng dạy), danh sách cán bộ giảng dạyhàng năm
3.2 Kiến trúc hệ thống
Hệ thống Quản lý Đào tạo Khoa học sau Đại học đợc chia thành haiphần Phần một là giao diện chơng trình dùng để ngời dùng thao tác vào hệthống đến cơ sở dữ liệu, phần này đặt trên các máy khách của ngời dùng Phầnhai là một máy gọi là máy chủ dùng để lu thông tin về cơ sở dũ liệu, phần này
có tác dụng lu trữ thông tin, và một số tác vụ thực hiện trên dữ liệu
Ch ơng trình
Ch ơng trình
Dữ liệu Quản
lý Đào tạo Khoa học sau
Đại học Mạng LAN
Trang 37• Báo cáo: Giúp đa ra các báo cáo thông kê theo một số tiêu chínhất định nh thống kê số học viên bảo vệ hàng năm, báo cáo kinh phí hàngnăm, bảng điểm cá nhân…
• Từ điển: Cho phép nhập các thông tin mang tính chất từ điển nhmôn học, khoa, khoá học, học vị, học hàm…
3.3.1 Phân rã chức năng 1
Quản lý học viên 2
Quản lý học tập 3
Báo cáo 5
Hệ thống
1
Quản lý thi 4
Quản lý đ o t à ạo khoa học
Từ điển 6 Hình 3.2: Sơ đồ phân rã chức năng mức 0
Trang 38• Đăng nhập: Kiểm tra quyền truy cập của ngời sử dụng Mỗi ngời
sử dụng đợc ngời quản trị cấp cho một tên và mật mã truy cập, ứng với têntruy cập này thì đợc một số quyền nhất định với chơng trình
• Đổi mật khẩu: Để ngời truy cập vào chơng trình hiện thời có thểthay đổi mã truy cập của mình
• Quản lý ngời dùng: Để nhà quản trị có thể thêm mới một ngờidùng, cấp quyền cho ngời dùng này hay có thể huỷ bỏ ngời dùng…
• Cấu hình hệ thống: Để xác định máy chủ lu trữ cơ sở dữ liệu vàtên máy trạm truy cập cũng nh tên truy nhập và mật khẩu truy cập vào máychủ
• Tìm kiếm: Giúp ngời sử dụng tìm kiếm học viên theo một số tiêuchí nào đó tuỳ theo yêu cầu của ngời sử dụng
3.3.2 Phân rã chức năng 2
Hệ thống 1
Đăng nhập
1.1
Đổi mật khẩu 1.2
Quản lý ng
ời dùng 1.3
Cấu hình
hệ thống 1.4
Tìm kiếm 1.5
Hình 3.3: Sơ đồ phân rã chức năng mức 1
Quản lý học viên 2
Danh sách học viên 2.1
Trang 39• Danh sách học viên: Quản lý danh sách học viên theo lớp, chọn mã lớp thì
sẽ liệt kê ra danh sách học viên của lớp này Nó cũng có chức năng nhthêm mới học viên, sửa thông tin học viên…
3.3.3 Phân rã chức năng 3
• Lập kế hoạch học tập: Lập kế hoạch học tập cho mỗi lớp trong một kỳ,nếu môn nào mà đã học rồi thì thông báo, còn nếu cha học thì lập kếhoạch học tập cho lớp này
• Quản lý điểm cho học viên: Nhập điểm cho học viên theo phòng thi
• Quản lý kết quả luận văn: Lu kết quả luận văn của mỗi học viên, sửakết quả bảo vệ…
• Thành lập hội đồng bảo vệ luận văn: Trớc khi một học viên bảo vệ luậnvăn thì trờng có thành lập một hội đồng để đánh giá kết quả của học
luận văn 3.3
Thành lập hội
đồng bảo
vệ luận văn 3.4
Phân giáo viên
h ớng dẫn 3.5
Danh sách môn học theo cn khoá 3.7
Chuyển lớp học
3.6
Hình 3.5: Sơ đồ phân rã chức năng 3
Trang 40các thành viên trong hội đồng đợc chọn ra từ danh sách giáo viên lu trữ
và ứng với mỗi thành viên này thì có biết trách nhiệm của thành viên
- Lập danh sách dự lại: Lọc ra hết các học viên bị trợt một môn họcnào đó và phân số học viên này vào phòng thi bất kỳ
- Lên danh sách dự thi: Lọc ra hết danh sách học viên thi lần đầu cũng
nh thi lại môn học nào đó, số học viên này đợc ngời sử dụng có thể phân vàophòng thi tuỳ ý
Quản lý thi 4
Lên danh sách
dự thi 4.1.3
Hình 3.6: Sơ đồ phân rã chức năng 4