Tuy nhiên, đối với bất kỳ hệ thống mạng nào, khi xây dựng cácứng dụng trên nó, ta cũng cần phải tính toán sao cho việc truyền dữ liệu là tốt nhất Giảmlượng lưu trữ dữ liệu trên đường tr
Trang 1CHƯƠNG 1
TỔNG QUAN VỀ HỆ THỐNG QUẢN LÝ THI TRẮC NGHIỆM
I ĐẶC TẢ YÊU CẦU:
Mỗi một khoa trong một khoá học của trường Đại Học Dân Lập Kỹ Thuật Công Nghệ córất nhiều sinh viên, mỗi sinh viên chỉ học tại một lớp mà lớp học đó chỉ thuộc mốt khoá họcvà thuộc một khoa duy nhất Khoá học được hiểu là năm bắt đầu của sinh viên khi trúngtuyển vào trường Thông tin về sinh viên gồm mã sinh viên, họ tên sinh viên, phái ngày sinh,nơi sinh, … Thông tin về lớp gồm mã lớp, tên lớp mã khoa, mã khoá học
Do việc nâng cao chất lượng đào tạo ngày một phù hợp với thực tế, nên một số môn họccủa các khoa trong các khoá học sẽ giống nhau Ví dụ nhu khoa Công nghệ thông tin vàkhoa Điện tử sẽ có một số môn học giống nhau ở giai đoạn đại cương; do đó việc làm bài thivới những câu hỏi giống nhau cũng không ngoại lệ Câu hỏi sẽ được các giáo viên ra đề ứngvới các môn học mà giáo viên đó có thể giảng dạy Thông tin về môn học gồm mã môn học,tên môn học, số tiết học của môn học đó Thông tin cá nhân của giáo viên gồm mã giáoviên, họ tên giáo viên, phái, ngày sinh, nơi sinh, … và câu hỏi sẽ được xác định với nhữngthông tin: mã câu hỏi, nội dung câu hỏi, độ khó dễ, giáo viên soạn câu hỏi, câu hỏi thuộcmôn học nào và trạng thái của câu hỏi này; câu hỏi còn được sử dụng nữa hay không Vì làcâu hỏi thi trắc nghiệm nên tương ứng với câu hỏi thi sẽ có các câu chọn để trả lời cho câuhỏi đó, một câu hỏi được giới hạn tối đa là 6 câu chọn, và chỉ có một câu chọn là đúng chomột câu hỏi Thông tin về câu chọn gồm mã câu chọn, đáp án đúng của câu chọn đó, và mãcâu hỏi của câu chọn
Trong một học kỳ, ngoài kỳ thi chính thức cho những môn học được giảng dạy trong họckỳ đó, khoa còn tổ chức các kỳ thi lại hoặc kỳ thi học lại cho những sinh viên không đạt.Thông tin về kỳ thi về gồm mã kỳ thi, tên kỳ thi Trong mỗi đợt thi sẽ có thông báo về thờigian thi, môn thi của đợt thi này, đợt thi của khoá nào, khoa nào, thi cho kỳ thi gì…
Để đánh giá việc học tập của sinh viên, kết quả này sẽ dựa vào bài thi của sinh viên Bàithi của sinh viên gồm một số câu hỏi được lấy ngẫu nhiên khi sinh viên nhập vào mã số cùngvới mật khẩu của mình để log vào phần làm bài thi dành cho sinh viên, trong số câu hỏi thisẽ có tỷ lệ câu hỏi khó, bài thi còn gồm những thông tin như mả bài thi, mã đợt thi, mã sinhviên, số câu làm đúng, kết quả, trạng thái bài thi đã được làm hay chưa
Bên trên là những thông tin cơ bản cần thiết để bắt đầu cho công việc phân tích và thiết kếhệ thống
Nguyễn Minh Quân
Trang 2II XÂY DỰNG MÔ HÌNH QUAN NIỆM DỮ LIỆU THEO MÔ HÌNH THỰC THỂ KẾT HỢP EER (Enteded Entity Relationship):
II.1 Mô Tả Thực Thể –Ý Nghĩa
1 LOP (MALOP, TEN LOP, GHICHU)
Mỗi lớp có một mã lớp (MALOP) và tên lớp (TENLOP) để phân biệt với các lớp họckhác nhau và ghi chú (GHICHU) để ghi chú thêm thông tin về lớp học đó
2 SINHVIEN ( MASV, HOTENSV, PHAI, NGAYSINH, NOISINH, DIACHI, DTHOAI,
HINH, GHICHU)
Mỗi sinh viên có một mã sinh viên (MASV) để phân biệt với các sinh viên khác và có họtên (HOTENSV), phái (PHAI), ngày sinh (NGAYSINH), nơi sinh (NOISINH), địa chỉ(DIACHI), điện thoại (DTHOAI) và hình (HINH) kèm với ghi chú ( GHICHU) tương ứngvới sinh viên đó
3 KHOA ( MAKHOA, TENKHOA, GHICHU)
Mỗi khoa có một mã khoa (MAKHOA) tên khoa (TENKHOA) để phân biệt với các khoakhác kèm với ghi chú (GHICHU) Dđể ghi chú thêm thông tin về khoa
4 KHOAHOC (MAKH, TENKH, GHICHU)
Mỗi khóa học có một mã khoá học (MAKH) tên khóa học (TENKH) để phân biệt với cáckhóa học khác kèm với ghi chú (GHICHU) để ghi chú thêm thông tin về khoá học đó
5 MONHOC (MAMH, TENMH, SOTIET, GHICHU)
Mỗi môn học có một mã môn học (MAMH) tên môn học (TENMH) để phân biệt với cácmôn học khác, số tiết của môn học đó ( SOTIET) với ghi chú (GHICHU) để ghi chúthêm thông tin về môn học đó
6 CAUHOI (MACH, NDUNGCH, DOKHODE, HINH, TRANGTHAI, GHICHU)
Mỗi câu hỏi có một mã câu hỏi (MACH), nội dung câu hỏi (NDUNGCH) đề phân biệtvới các câu hỏi khác, độ khó dễ của câu hỏi (DOKHODE), hình ảnh minh hoạ cho câuhỏi đó (HINH), trạng thái của câu hỏi ( TRANGTHAI) xem câu hỏi đó còn được sử dụngnữa hay không, và ghi chú (GHICHU) để ghi chú thêm thông tin cho câu hỏi đó nếu cầnthiết
7 GIAOVIEN (MAGV, HOTENGV, PHAI, NGAYSINH, NOISINH, DIACHI,
DTHOAI, HOCVI, HINH, GHICHU)
Nguyễn Minh Quân
Trang 38 CAUCHON (MACC, NDUNGCC, DANDUNGSAI, GHICHU)
Mỗi câu chọn có một mã riêng (MACC), nội dung câu chọn (NDUNGCC) để phân biệtvới các câu chọn khác, câu chọn đó là đúng hay là sai (DANDUNGSAI) và ghi chú(GHICHU) để mô tả thêm thông tin về câu chọn đó
9 BAITHI (MABT, SOCAUDUNG, KETQUA, THAMGIA, GHICHU)
Mỗi bài thi có một mã bài thi xác định (MABT), số câu đúng của bài thi (SOCAUDUNG),kết quả bài thi (KETQUA), trạng thái bài thi đã được thi hay chưa (THAMGIA) và ghichú (GHICHU) để ghi chú thông tin của bài thi
10 KYTHI ( MAKT, TENKT, GHICHU)
Mỗi kỳ thi có một mã kỳ thi phân biệt (MAKT), và tên của kỳ thi đó (TENKT) và ghi chú(GHICHU) về kỳ thi này
11 DOTTHI (MADT, TENDT, NGAYTHI, KETTHUC, TGIANTHI, SOCAUHOI,
PTCAUKHO, GHICHU)
Mỗi đợt thi được mở ra gồm có mã đợt thi (MADT), tên đợt thi (TENDT), ngày thi(NGAYTHI), thời gian thi (TGIANTHI), số câu hỏi trong đợt thi này (SOCAUHOI), phầntrăm câu khó trong tổng số câu của đơtï thi này (PTCAUKHO), trang thái của đợt thi đãkết thúc hay chưa (KETTHUC) và ghi chú (GHICHU) để mô tả thêm thông tin về đợt thinày
II.2 Mô tả mối kết hợp của các thực thể:
1 Một sinh viên chỉ thuộc một lớp, và một lớp có nhiều sinh viên
2 Một khoa tổ chức nhiều lớp, và một lớp chỉ thuộc một khoa
3 Một khoá học có nhiều lớp , một lớp chỉ thuộc một khóa học
Nguyễn Minh Quân
Trang 44 Một môn học sẽ có nhiều đợt thi, một đợt thi chỉ thuộc một môn học.
5 Một khóa học sẽ có nhiều đợt thi, một đợt thi chỉ thuộc một khóa học
6 Một khoa sẽ có nhiều đợt thi, một đợt thi chỉ thuộc một khoa
7 Một kỳ thi sẽ có nhiều đợt thi, một đợt thi chỉ thuộc một kỳ thi
8 Một sinh viên có nhiều bài thi, một bài thi chỉ thuộc một sinh viên
9 Một bài thi chỉ thuộc một đợt thi, một đợt thi có nhiều bài thi
10 Một bài thi có nhiều câu hỏi, một câu hỏi có trong nhiều bài thi
11 Một câu hỏi có nhiều câu chọn, một câu chọn chỉ thuộc một câu hỏi
12 Một giáo viên ra nhiều câu hỏi, một câu hỏi được ra bởi một giáo viên
Quan hệ mới được sinh ra từ mối liên kết
BAILAMSV (MABT, MACH)
Nguyễn Minh Quân
Trang 51,1 1,n
Một bài làm của sinh viên chỉ có một câu chọn là đúng cho một câu hỏi, một câu chọn có thể xuất hiện trong nhiều bài làm của các sinh viên
Mối liên kết giữa BAILAMSV và CAUCHON
II.3 Xây dựng mô hình thực thể ERD:
Nguyễn Minh Quân
CAUCHON
Trang 6IV THIẾT LẬP CÁC TABLE:
1 LOP ( MALOP, TENLOP, MAKHOA, MAKH, GHICHU)
MALOP Khoá chính Varchar(10) Mã duy nhất của một lớp học
TENLOP Varchar(20) Tên lớp học của khoa trong khoá
học MAKHOA Khoá ngoại Varchar(10) Lớp học này thuộc khoa nào
MAKH Khoá ngoại Varchar(10) Lớp học này thuộc khoá học nào
GHICHU Nvarchar(1000) Ghi chú thông tin về lớp học Null
2 SINHVIEN ( MASV, HOTENSV, PHAI, NGAYSINH, NOISINH, DIACHI, DTHOAI,
MALOP, MATKHAU, HINH, ONLINE, GHICHU)
MASV Khoá chính Varchar(10) Mã duy nhất của một sinh viên
HOTENSV Varchar(30) Họ và tên của sinh viên
PHAI Bit Sinh viên là nam hay nữ
NGAYSINH Datetime Ngày sinh của sinh viên
NOISINH Varchar(30) Nơi sinh của sinh viên
DIACHI Varchar(50) Địa chỉ thường trú của sinh viên
DTHOAI Varchar(20) Số điện thoại liên lạc Null MALOP Khoá ngoại Varchar(10) Mã lớp mà sinh viên theo học
MATKHAU Varchar(15) Mật khẩu để đăng nhập vào hệ
thống HINH Image Hình ảnh sinh viên
ONLINE Bit Trang thái có online hay không
GHICHU Varchar(1000) Ghi chú thêm thông tin sinh viên Null
3 KHOA ( MAKHOA, TENKHOA, GHICHU)
MAKHOA Khoá chính Varchar(10) Mã duy nhất của một khoa
TENKHOA Varchar(20) Tên của khoa
Nguyễn Minh Quân
Trang 7GHICHU Varchar(1000) Ghi chú thông tin về khoa Null
4 KHOAHOC ( MAKH, TENKH, GHICHU)
MAKH Khoá chính Varchar(10) Mã duy nhất của một khoá học
TENKH Varchar(20) Tên của khoá học
GHICHU Varchar(1000) Ghi chú thông tin về khoá học Null
5 MONHOC ( MAMH, TENMH, SOTIET, GHICHU)
MAMH Khoá chính Varchar(10) Mã duy nhất của một môn học
TENMH Varchar(20) Tên của môn học
SOTIET Char(5) Số tiết học của một môn học
GHICHU Varchar(1000) Ghi chú thông tin về môn học Null
6 CAUHOI ( MACH, NDUNGCH, DOKHODE, HINH, MAGV, MAMH,
TRANGTHAI, GHICHU)
MACH Khoá chính Varchar(10) Mã duy nhất của một câu hỏi
NDUNGCH Varchar(1000) Nội dung của câu hỏi
DOKHODE Bit Độ khó dễ của câu hỏi
HINH Image Hình vẽ minh hoạ cho câu hỏi
MAGV Khoá ngoại Varchar(10) Mã giáo viên ra câu hỏi
MAMH Khoá ngoại Varchar(10) Câu hỏi thuộc môn học nào
TRANGTHAI Bit Câu hỏi còn được sử dụng hay
không GHICHU Varchar(1000) Ghi chú thông tin về câu hỏi Null
7 GIAOVIEN ( MAGV, HOTENGV, PHAI, NGAYSINH, NOISINH, DIACHI,
DTHOAI, HOCVI, MANHOM, MATKHAU, HINH, ONLINE, GHICHU)
MAGV Khoá chính Varchar(10) Mã duy nhất của một giáo viên
HOTENGV Varchar(30) Họ và tên của giáo viên
PHAI Bit Giáo viên là nam hay nữ
NGAYSINH Datetime Ngày sinh của sinh viên
NOISINH Varchar(30) Nơi sinh của sinh viên
DIACHI Varchar(50) Địa chỉ thường trú của sinh viên
DTHOAI Varchar(20) Số điện thoại liên lạc Null
Nguyễn Minh Quân
Trang 8HOCVI Varchar(15) Học vị của giáo viên
HINH Image Hình ảnh của giáo viên Null MATKHAU Varchar(15) Mật khẩu để đăng nhập vào hệ
thống ONLINE Bit Trạng thái có online hay không
GHICHU Varchar(1000) Ghi chú thêm thông tin về giáo
viên
Null
8 CAUCHON ( MACC, NDUNGCC, DANDUNGSAI, MACH, GHICHU)
MACC Khoá chính Varchar(10) Mã duy nhất của một câu chọn
NDUNGCC Varchar(1000) Nội dung của câu chọn
DANDUNGSAI Bit Đáp án đúng sai của câu chọn
MACH Khoá ngoại Varchar(10) Mã câu hỏi ứng với các câu chọn
GHICHU Varchar(1000) Ghi chú thông tin về câu chọn Null
9 BAITHI ( MABT, MADT, MASV, SOCAUDUNG, KETQUA, THAMGIA, GHICHU)
MABT Khoá chính Varchar(10) Mã duy nhất của một bài thi
MADT Khoá ngoại Varchar(10) Mã bài thi sẽ thuộc kỳ thi nào
MASV Khoá ngoại Varchar(10) Mã bài thi của sinh viên nào
SOCAUDUNG Char(5) Số câu sinh viên làm đúng
KETQUA Bit Sinh viên đậu hay rớt
THAMGIA Bit Sinh viên có thi hay chưa
GHICHU Varchar(1000) Ghi chú thông tin về bài thi Null
10 KYTHI (MAKT, TENKT, GHI CHU)
MAKT Khoá chính Int(4) Mã duy nhất của một bài thi
TENKT Varchar(20) Mã duy nhất của một câu hỏi
GHICHU Varchar(1000) Mã câu chọn của sinh viên ứng với
câu hỏi
Null
11 DOTTHI ( MADT, TENDT, MAKT, MAKH, MAKHOA, MAMH, NGAYTHI,
TGIANTHI, SOCAUHOI, KETTHUC, PTCAUKHO, GHICHU)
MADT Khoá chính Varchar(10) Mã duy nhất của một đợt thi
TENDT Varchar(20) Tên của đợt thi
Nguyễn Minh Quân
Trang 9MAKT Khoá ngoại Int(4) Mã kỳ thi thuộc đợt thi nào
MAKH Khoá ngoại Varchar(10) Mã khoá học thuộc đợt thi nào
MAKHOA Khoá ngoại Varchar(10) Mã khoa thuộc đợt thi nào
MAMH Khoá ngoại Varchar(10) Mã môn học thuộc đợt thi nào
NGAYTHI Datetime Ngày thi của một môn học
KETTHUC Bit Trạng thái của đợt thi
TGIANTHI Datetime Thời gian thi cho một môn học
SOCAUHOI Char(5) Số câu hỏi cho một môn thi
PTCAUKHO
12 BAILAMSV ( MABT, MACH, MACC, DUNGSAI)
MABT Khoá chính Varchar(10) Mã duy nhất của một bài thi
MACH Khoá chính Varchar(10) Mã duy nhất của một câu hỏi
MACC Khoá ngoại Varchar(10) Mã câu chọn của sinh viên ứng với
câu hỏi DUNGSAI Bit Câu chon này la đúng hay sai
Mối quan hệ giữa các table (cuối chương)
VI CÀI ĐẶT CÁC RÀNG BUỘC TOÀN VẸN VÀ TẦM ẢNH HƯỞNG:
VI 1 Ràng buộc toàn vẹn có bối cảnh là một quan hệ:
a Ràng buộc toàn vẹn về miền giá trị:
R1 Ngày sinh của sinh viên phải có năm sinh sao cho tuổi sinh viên lớn hơn hoặc bằng 16 tuổi và nhỏ hơn 60 tuổi
Biểu diễn:
sv SINHVIEN
Year (now () – Year (sv.[NGAYSINH]) >=16and Year (now () – Year (sv.[NGAYSINH]) < 60Cuối
Tầm ảnh hưởng:
Nguyễn Minh Quân
Trang 10R2 Ngày sinh của giáo viên phải có năm sinh sao cho tuổi giáo viên lớn hơn hoặcbằng 18 tuổi và nhỏ hơn hoặc bằng 60 tuổi
Biểu diễn:
sv GIAOVIEN
Year (now () – Year (sv.[NGAYSINH]) >=18and Year (now () – Year (sv.[NGAYSINH]) < 60Cuối
Tầm ảnh hưởng:
b Ràng buộc toàn vẹn liên thuộc tính: không có
c Ràng buộc toàn vẹn liên bộ:
R3 Mỗi sinh viên có một mã sinh viên khác nhau để phân biệt
Biểu diễn:
q1, q2 SINHVIEN
q1 MASV < > q2 MASVCuối
Tầm ảnh hưởng:
Tầm ảnh hưởng:
Nguyễn Minh Quân
Trang 11R5 Mỗi khoa có một mã khoa khác nhau để phân biệt
Biểu diễn:
q1, q2 KHOA
q1 MAKHOA < > q2 MAKHOACuối
Tầm ảnh hưởng:
Tầm ảnh hưởng:
Tầm ảnh hưởng:
R8 Mỗi câu hỏi có một mã câu hỏi khác nhau để phân biệt
Biểu diễn:
q1, q2 CAUHOI
Nguyễn Minh Quân
Trang 12q1 MACH < > q2 MACHCuối
Tầm ảnh hưởng:
Tầm ảnh hưởng:
Tầm ảnh hưởng:
Tầm ảnh hưởng:
Nguyễn Minh Quân
Trang 13R11 Thêm Xoá Sửa
Tầm ảnh hưởng:
Tầm ảnh hưởng:
Tầm ảnh hưởng:
Nguyễn Minh Quân
Trang 14R15 Mỗi đợt thi có một mã đợt thi khác nhau để phân biệt
Biểu diễn:
q1, q2 DOTTHI
q1 MADT < > q2 MADTCuối
Tầm ảnh hưởng:
VI 2 Ràng buộc toàn vẹn có bối cảnh trên nhiều quan hệ:
Ràng buộc toàn vẹn về phụ thuộc tồn tại:
R1 :LOP(MAKHOA) KHOA(MAKHOA) LOP(MAKH)
KHOAHOC(MAKH)
q LOP, q1 KHOA/ q MAKHOA = q1 MAKHOA
q2 KHOAHOC/ q MAKH = q2 MAKHCuối
Tầm ảnh hưởng:
Tầm ảnh hưởng:
Nguyễn Minh Quân
Trang 15R3 :CAUHOI(MAGV) GIAOVIEN(MAGV) CAUHOI(MAMH)
MONHOC(MAMH)
q CAUHOI, q1 GIAOVIEN/ q MAGV = q1 MAGV
q2 MONHOC/ q MAMH = q2 MAMHCuối
Tầm ảnh hưởng:
Tầm ảnh hưởng:
R5 :BAITHI(MASV) SINHVIEN(MASV) BAITHI(MADT)
DOTTHI(MADT)
q BAITHI, q1 SINHVIEN/ q MASV = q1 MASV
q2 DOTTHI/ q MADT = q2 MADTCuối
Tầm ảnh hưởng:
Nguyễn Minh Quân
Trang 16R6 :DOTTHI(MAKT) KYTHI(MAKT) DOTTHI(MAKH)
KHOAHOC(MAKH) DOTTHI(MAKHOA) KHOA(MAKHOA)
DOTTHI(MAMH) MONHOC(MAMH)
q DOTTHI, q1 KYTHI/ q MAKT = q1 MAKT
q2 KHOAHOC/ q MAKH = q2 MAKH
q3 KHOA/ q MAKHOA = q3 MAKHOA
q4 MONHOC/ q MAMH = q4 MAMHCuối
Tầm ảnh hưởng:
Nguyễn Minh Quân
Trang 17Khoá : { MABT, MACH}
F = {MABT, MACH ->MACH, DUNGSAI}
Nguyễn Minh Quân
Trang 18CHƯƠNG 2
MÔ HÌNH CLIENT/ SERVER
I Các Khái Niệm:
1.1 Khái niệm về phần cứng:
Client/ Server là kiến trúc gồm hai thành phần máy Client va Server, hai thành phần nàyliên lạc với nhau thông qua hệ thống mạng
Nguyễn Minh Quân
Client/ Server Software
NetworkOperating
OperatingSystem
Client/ ServerSoftware
Network OperatingSystemOperating SystemRDBMS
Network
CablesRouterBridgeGateway
Trang 191.2 Khái niệm về xử lý:
Khi xây dựng và khai thác ứng dụng trên môi trường mạng, một trong những điều kiệncần quan tâm trước tiên là việc đánh giá các tính năng của hệ thống mạng Việc xây dựng vàkhai thác ứng dụng trên mạng sẽ dễ dàng hơn nếu có một hệ thống mạng ổn định, thực thinhanh chóng và đáng tin cậy Tuy nhiên, đối với bất kỳ hệ thống mạng nào, khi xây dựng cácứng dụng trên nó, ta cũng cần phải tính toán sao cho việc truyền dữ liệu là tốt nhất ( Giảmlượng lưu trữ dữ liệu trên đường truyền mà vẫn đáp ứng yêu cầu về dữ liệu) và an toàn nhất.Mô hình tính toán Client/ Server nhằm giải quyết vấn đề này
Trong mô hình tính toán Client/ Server, các việc xử lý dữ liệu, xử lý logic và giao diệnngười dùng được phân chia ra và được thực hiện tại nhiều điểm khác nhau trong mạng MáyClient gửi đến máy chủ yêu cầu truy vấn dữ liệu hoặc cập nhật dữ liệu (thêm, xoá, sửa, cácmẫu tin) Máy Server khi nhận các yêu cầu truy vấn, sau khi kiểm tra quyền truy cập củangười yêu cầu, sẽ tiến hành chọn lọc tình toán tổng hợp thông tin trong cơ sở dữ liệu để gửitrả kết quả truy vấn theo yêu cầu của máy Client Khi nhận được yêu cầu cập nhật dữ liệu( thêm, xoá , sửa), máy chủ ngoài việc kiểm tra quyền truy cập của người yêu cầu còn phảibảo đảm việc cập nhật không páh vỡ tính toàn vẹn dữ liệu Database Server còn có nhiệm vụliên lạc với các cơ sở dữ liệu khác để để lấy được thông tin cần thiết, bảo đảm cho ngườidùng có được những thông tin cần thiết một cách thông suốt cho dù dữ liệu thực sự nằm phântán ở nhiều máy chủ khác nhau
Việc phân chia nhiệm vụ giữa Client và Server là nhân tố quyết định sự thành bại củaviệc ứng dụng mô hình tính toán Client/ Server
II Phân loại ứng dụng Client/ Server:
Thông thường một ứng dụng được chia làm 6 ứng dụng sau:
Giao diện người dùng (User Interface) : là những thể hiện trên màn hình mà userthấy và có thể tương tác được
Login trình bày (Presentation Logic): là những gì xảy ra khi user tương tác vàonhững thể hiện trên màn hình
Logic ứng dụng (Application Logic): là những chương trình hay đoạn chương trìnhthi hành những chức năng nào đó
Truy vấn dữ iệu và kết quả (data request and results acceptance)
Toàn vẹn dữ liệu (Data integrity): như chứng nhận hợp lệ an toàn vá toàn diện
Quản lý dữ liệu vật lý( Data Phisical Management): Thêm, xoá, sửa và phục hồidữ liệu
Nguyễn Minh Quân
Trang 20Đối với ứng dụng Client/ Server thì tuỳ thuộc vào yêu cầu của nó mà mỗi nhiệm vụ đượcđặt vào thành phần Client hay Server để cho ở đó nó được thực hiện hiệu quả nhất Dựa vàocách đặt các nhiệm vụ trên mà người ta đã phân ra ứng dụng Client/ Server thành 3 loại:Host-Based Processing, Client-Based Processing và Cooperative Processing.
III Server:
1 Khái niệm về phần cứng:
Là một máy tính có cấu hình tuỳ thuộc vào việc ta sử dụng môi trường phần mềm nào đểxây dựng các ứng dụng và yêu cầu về cấu hình của hệ điều hành muốn dùng trên Server
2 Khái niệm về xử lý:
Là máy tính cung cấp dịch vụ cho những máy khác trên mạng, các dịch vụ như chia sẽfile, cầu nối mạng, xử lý ứng dụng…
Đối với mô hình Client/ Server Server làm nhiệm vụ quản lý việc truy cập CSDL, nhậncác yêu cầu từ Client -> Xử lý -> Gửi kết quả về cho Client theo yêu cầu
3 Phân loại Server:
Dựa vào chức năng của Server người ta chia Server ra làm 6 loại: File Server, DataServer, Computer Server, Application Server và Communication Server
Việc khoá file thề hiện việc khoá một phần hay toàn bộ file, không phân chiakhoá để đọc và khoá để ghi
Computer Server
Nguyễn Minh Quân
Trang 21Quản lý những chức năng: Khi Client đòi hỏi dữ liệu, nó sẽ yêu cầu Data Servertheo cách lấy dữ liệu ít nhất mà vẫn thoả mãn yêu cầu của Client, sau đó nó sẽ xử lýtrên những dữ liệu này và gửi kết quả về cho Client.
Database Server
Sự kết hợp của Computer Server với Data Server Khi Client gưi yêu cầu đếnServer, Server có thể chấp nhận hoặc không, nếu chấp nhận Server sẽ truy cập đếndữ liệu cần thiết đang nằm trên Server cục bộ ( Local) hoặc trên các Server khácnhau để xử lý và trả kết qua về cho Client
Cách xử lý này giúp tối ưu hoá đường truyền:
* Client chịu trách nhiệm trình bày và là đầu vào các yêu cầu gửi cho Server
* Server lo quản trị CSDL, quản lý sự hợp tác với những Server khác
Communication Server
Đóng vai trò là một cầu nối cho một Client ở xa vào một LAN khác, một máy tínhtrung hoặc lớn
4 Như thế nào là một Server tốt ?
Một Server tốt phải phục vụ cho nhiều người sử dụng, hoạt động nhanh, an toàn, có khảnăng phục hồi dữ liệu khi có sự cố, nghĩa là phải có các đặc tính sau:
Disk Array:
Nhiều đĩa vật lý có thể được quản lý như một đĩa logic và xuyên suốt đối vớingười dùng
Mirror Disk:
Có hai đĩa trống chứa cùng dữ liệu, khi bị hư một đĩa thì sẽ phục hồi từ đĩa còn lại
Error Correction Code Memory:
Dùng biểu diễn chuẩn để phát hiện và sửa chữa khi có những sai sót trong lúcchuyển dữ liệu trên Server
Nguyễn Minh Quân
Trang 225 Phần mềm Server:
Dựa vào nhiệm vụ, người ta phân chia thành 8 loại phần mềm hoạt động trên Server.Nhưng phải có cơ chế kết hợp với nhau thành một thể thống nhất Tám loại bao gồm:Network Management Environment, Network Computing Environment and Extention,Network Operating System, Server Operating System, Loadabel Module, DataBaseManagement, DataBase Gateway, Application
ApplicationLoadable
Modules
DataBaseManagement
DataBaseGatewaysServer Operating System
Network Operating SystemNetwork Computing EnvironmentNetwork Management Environment
Network Management Environment:
Khi một hệ thống thông tin có tính phân tán thì cần có một hệ thống quản lý mạngmà bất chấp môi trường phần cứng và phần mềm của nó Toàn bộ hệ thống mạngphải được xem như một thể duy nhất và việc xử lỳ nó như một tiến trình
Network Computing Environment:
Môi trường tính toán mạng cho phép những ứng dụng phân tán ở nhiều môi trườngphần cứng và phần mềm
Các chuẩn OSF (Open Software Foundation) hổ trợ cho cấu trúc này là:
Môi trường phân tán (DCE : Distribute Computing Environment)
Tính toán hướng mở rộng mạng (ONC : Open Network Computing)
Network Operating System :
Hệ điều hành mạng quản lý các xử lý liên quan đến xuất/ nhập của Server
Loadable Module:
Là những Module phần mềm được load trên Server nhằm làm tăng thêm chứcnăng cho hệ điều hành
Server Operating System:
Nguyễn Minh Quân
Trang 23Hệ điều hành Server quản lý các tài nguyên của Server Nó tương tác với hệ điềuhành mạng và phần mềm xử lý dữ liệu để nhận và trả lời các yêu cầu từ người dùng.
6 Hệ điều hành cho Server:
Các hệ điều hành thông dụng Windows NT, Unix, OS/2
7 Hệ quản trị cơ sở dữ liệu trên Server:
Các phần mềm quản trị CSDL trên Server hiện nay:
1 Khái niệm phần cứng:
Là một máy desktop thực thi phần mềm Client ( Client Software)
Desktop là thuật ngữ dùng để chỉ toàn bộ màng hình giao diện người sử dụng – máytính: gồm các cửa sổ, biểu tượng, và các hộp thoại… Trên Client có thể chạy các phầnmềm giao tiếp, hệ điều hành, phần mềm truyền thông
2 Khái niệm xử lý:
Trong môi trường Client/ Server, công việc chính của Client là thực hiện chức năngtrình bày, xử lý các tương tác giữa người ứng dụng và sử dụng Máy Client gửi tới máychủ các yêu cầu truy vấn dữ liệu hoặc cập nhật dữ liệu ( Thêm, xoá, sửa các mẫu tin)đồng thời nhận được các kết quả trả về từ máy Server
3 Như thế nào là Client tốt?
Một client tốt phải đáp ứng được nhu cầu sau:
* Giao diện đáp ứng được các tác vụ cần thiết và thân thiện với người sử dụng
* Không trình bày những thông tin không cần thiết đối với công việc của máy trạmlàm việc
4 Phần cứng Client:
Nguyễn Minh Quân
Trang 24Là một máy tính có cấu hình tuỳ thuộc vào việc ta sử dụng môi trường phần mềm nàođể xây dựng các ứng dụng và yêu cầu về cấu hình của hệ điều hành muốn dùng trênClient.
5 Phần mềm Client:
Hệ điều hành:
Microsoft Windows ( Windows 3.x, Windows 95, Windows NT Workstation)DOS, OS/2, UNIX Client
Phần mềm:
Một máy Client có thể chạy 4 loại phần mềm: Môi trường giao tiếp, logic ứngdụng hệ điều hành Client và hệ điều hành mạng Tuỳ theo yêu cầu của ứng dụngmà ta lựa chọn phần mềm thích hợp
Môi trường giao tiếp:
Giúp cho người dùng không cần biết dữ liệu nằm ở đâu mà vẫn truy cập được.Đáp ứng việc gửi những yêu cầu và nhận kết quả từ Server
Định dạng kết quả đúng yêu cầuGiúp truy vấn nhanh dữ liệu
V Lợi ích của mô hình Client/ Server:
1 Tiết kiệm ( Dollars Saving):
Chi phí về phần cứng: Máy Server và Client đều có thể là những máy tính không đắttiền lắm không cần phải sử dụng những máy điện toán mainframe đắt tiền
Chi phí phần mềm: Những ứng dụng trên cấu trúc Client/ Server có thể phát triển vớithời gian ít hơn so với việc phát triển trên môi trường mainframe và phần mềm trên máy
vi tính thì rẻ hơn nhiều
2 Tăng năng suất sản phẩm (Increased Productive):
Thông qua giao diện người sử dụng có thể dễ dàng truy cập dữ liệu mà không cầnphải biết cách thức luư trữ của những dữ liệu mà mình truy cập
Hiện nay có nhiều công cụ mạnh giúp dễ dàng thiết kế cài đặt một ứng dụng trên cấutrúc Client/ Server
3 Uyển chuyển và rộng rãi (Flexibility and Scalbility):
Bằng cách phân chia ứng dụng thành những nhiệm vụ nên có thể dễ dàng hoà hợp vớinhững kỹ thuật mới đồng thời vẫn bảo đảm tương thích với những kỹ thuật củ mà ít gặpkhó khăn
Việc xây dựng theo module khiến cho công việc sửa chữa bổ sung được dễ dàng
4 Tận dụng tài nguyên (Resource Utilization):
Nguyễn Minh Quân
Trang 25Cho phép liên kết với những ứng dụng và phần cứng hiện có một cách hiệu quả mà không cần phải thay đổi.
5 Điều khiển tập trung (Centralize Control):
6 hệ thống mở (Opening system):
Cấu trúc Client/ Server kết hợp với kỹ thuật Rightsizing làm tăng kích thước uyển chuyển và mở rộng
Kỹ thuật Rightsizing bao gồm:
* Downsizing: Chuyển từ môi trường lớn sang môi trường nhỏ hơn
* Upsizing: Chuyển từ môi trường nhỏ sang môi trường lớn
* Smartsizing: Tính toán phân chia và đạt các nhiệm vụ lại cho thích hợp với môi trường mới
VI Các chú ý khi xây dựng ứng dụng Client/ Server:
Khi thực hiện các tính toán Client/ Server cần quan tâm đến các vấn đề sau:
* Khả năng hoạt động của hệ thống mạng: Tốc độ truyền, độ tin cậy đường truyền,khả năng hoạt động của máy Server, khả năng hoạt động của máy Client
* Giảm thiểu dữ liệu truyền: Phân phối hợp lý các xử lý ( tuỳ trường hợp cụ thể mà
ta có thể đặt các xử lý ở Server hoặc Client, tuy nhiên ưu tiên việc tận dụng đạtcác xử lý ở Server để giảm dữ liệu truyền tải trên đường truyền)
* Tính toán sao cho hợp lý thời gian giữ kết nối của máy Client với Server
* Tận dụng sao chép đối với trường hợp hệ thống mạng diện rộng (WAN)
* Xây dựng hợp lý các chỉ mục (index) trên cơ sở dữ liệu
* Tận dụng các thủ tục có sẵn
* Tối ưu hoá hệ thống phục vụ SQL Server: Dung lượng bộ nhớ xem xét trường hợpphân tán sao cho hợp lý
* Chạy thử trên ứng dụng trên máy Server, và chạy thử trên máy Client, sau đó sosánh và hiệu chỉnh mạng nếu cần thiết
Nguyễn Minh Quân
Trang 26CHƯƠNG 3
CẤU HÌNH CƠ SỞ DỮ LIỆU
CLIENT/ SERVER
Nhìn chung mọi ứng dụng cơ sở dữ liệu bao gồm các 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 itself)
Nguyễn Minh Quân
Trang 27Các mô hình về xử lý cơ sở dữ liệu khác nhau là bởi các trường hợp của 3 loại thành phần nóitrên định vị ở đâu Đây là 5 mô hình kiến trúc dựa trên cấu hình phân tán về truy cập dữ liệucủa hệ thống máy tính Client/ Server.
Mô hình cơ sở dữ liệu tập trung (Centralize database model)
Mô hình cơ sở dữ liệu theo kiểu file-server (File-server database model)
Mô hình xử lý từng phần cơ sở dữ liệu (Database extract processing model)
Mô hình cơ sở dữ liệu Client/ Server (Client/ Server database model)
Mô hình cơ sở dữ liệu phân tán (Distributed database model)
I Mô hình cơ sở dữ liệu tập trung (Centralized database model):
Trong mô hình này, các thành phần xử lý ứng dụng , phần mềm cơ sở dữ liệu và bản thân
cơ sở dữ liệu đều ở trên một bộ xử lý
Ví dụ người dùng máy tính cá nhân có thể chạy chương trình ứng dụng có sử dụng phầnmềm cơ sở dữ liệu Oracle để truy cập đến cơ sở dữ liệu nằm trên đĩa cứng của máy tính cánhân đó Từ khi càc thành phần ứng dụng, phần mềm cơ sở dữ liệu và bản thân cơ sở dữ liệucùng nằm trên một máy tính thì ứng dụng đã thích hợp với mô hình tập trung
Hầu hết công việc xử lý luồng thông tin chính được thực hiện bởi nhiều tổ chức mà vẫnphù hợp với mô hình tập trung Ví dụ một bộ xử lý main fram chạy phần mềm cơ sở dữ liệuIMS hoặc DB2 của IBM có thể cung cấp cho các trạm làm việc ở các vị trí phân tán sự truynhập nhanh chóng tới cơ sở dữ liệu trung tâm Tuy nhiên trong rất nhiều hệ thống như vậy, cả
3 thành phần của ứng dụng cơ sở dữ liệu đều thực hiện trên cùng một máy mainframe Dođó, cấu hình này cũng thích hợp với mô hình tập trung
II Mô hình cơ sở dữ liệu theo kiểu file-server (File – server database model):
Trong mô hình cơ sở dữ liệu theo kiểu file-server các thành phần ứng dụng và phần mềm
cơ sở dữ liệu ở trên một hệ thống máy tính và các file vật lý tạo nên cơ sở dữ liệu nằm trên
Nguyễn Minh Quân
Server
Ưùng dụng Phần mềm CSDL
CSDL
Trang 28một hệ thống máy tính khác Một cấu hình như vậy thường được dùng trong môi trường cụcbộ, trong đó có một hoặc nhiều hệ thống máy tính đóng vai trò của server, luư trữ các file dữliệu cho hệ thống máy tính khác thâm nhập tới Trong môi trường file-server, phần mềmmạng được thi hành và làm cho các phần mềm ứng dụng cũng như phần mềm cơ sở dữ liệuchạy trên hệ thống của người dùng cuối coi các file hoặc cơ sở dữ liệu trên file server thực sựnhư là trên máy tính của người chính họ.
Mô hình file server rất giống với mô hình tập trung Các file cơ sở dữ liệu nằm trên máykhác với các thành phần ứng dụng và phần mềm cơ sở dữ liệu; tuy nhiên, các thành phần ứngdụng và phần mềm cơ sở dữ liệu có thể có cùng thiết kế để vận hành một môi trường tậptrung Thực chất phần mềm mạng đã làm cho phần mềm ứng dụng và phần mềm cơ sở dữliệu tưởng rằng chúng đang truy cập cơ sở dữ liệu trong môi trường cục bộ Một môi trườngnhư vậy có thể phức tạp hơn mô hình tập trung bởi vì phần mềm mạng có thể phải thực hiện
cơ chế đồng thời cho phép nhiều người dùng cuối có thể truy nhập vào cùng cơ sở dữ liệu
III Mô hình xử lý từng phần cơ sở dữ liệu ( Database extract processing model):
Một mô hình khác trong đó có một cơ sở dữ liệu ở xa có thể được truy nhập bởi phầnmềm cơ sở dữ liệu, được gọi là xử lý dữ liệu từng phần
Với mô hình này, người sử dụng có thể tại một máy tính cá nhân kết nối với hệ thốngmáy tính ở xa nơi có dữ liệu monh muốn Người sử dụng sau đó có thể tác động trực tiếp đếnphần mềm chạy trên máy ở xa và tạo yêu cầu để lấy dữ liệu từ cơ sở dữ liệu đó Người sửdụng cũng có thể chuyển dữ liệu từ máy tính ở xa về chính máy tính của mình và vào đĩacứng và có thể thực hiện việc sao chép bằng phần mềm cơ sở dữ liệu trên máy tính cá nhân
Nguyễn Minh Quân
Server
Ưùng dụng Phần mềm CSDL
CSDL
MạngMô hình CSDL File-Server
Trang 29Với cách tiếp nhận này, người sử dụng phải biết chắc chắn là dữ liệu nằm ở đâu và làmnhư thế nào để truy nhập và lấy dữ liệu từ một máy tính ở xa Phần mềm ứng dụng đi kèmcần phải có trên hai hệ thống máy tính để kiểm soát sử truy cập dữ liệu và chuyển dữ liệugiữa hai hệ thống Tuy nhiên, phần mềm cơ sở dữ liệu chạy trên hai máy không cần biết rằngviệc xử lý cơ sở dữ liệu từ xa đang diễn ra vì ngưòi sử dụng tác động tới chúng một cách độclập.
IV Mô hình cơ sở dữ liệu Client/ Server (Client/ Server database model):
Trong mô hình cơ sở dữ liệu Client/ Server, cơ sở dữ liệu nằm trên một máy khác với cácmáy có thành phần xử lý ứng dụng Nhưng phần mềm cơ sở dữ liệu được tách ra giữa hệthống Client chạy các chương trình ứng dụng và hệ thống server lưu 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ầucho phần mềm cơ sở dữ liệu trên máy 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 Phần mềm cơ sở dữ liệu trên server sẽ truy cập vào cơ sở dữ liệu vàgửi trả kết quả cho máy Client
Nguyễn Minh Quân
Server
Phần mềm CSDL Ưùng dụng
CSDL
Mạng
Phần mềm CSDL Ưùng dụng CSDL
Mô hình xử lý từng phần CSDL
ServerMô hình CSDL Client/ Server
Khách hàng
CSDL
Phần mềm CSDL
Ưùng dụng Phần mềm CSDL
Mạng
Trang 30Thoạt nhìn, mô hình cơ sở dữ liệu Client/ Server có vẻ giống như mô hình file-server, tuynhiên, mô hình Client/ Server có rất nhiều thuận lợi hơn mô hình file-server Với mô hình fileserver, thông tin gắn với sự truy nhập cơ sở dữ liệu có thể gây ra tắc ngẽn lưu lượng truyềntrên mạng.
Giả sử, một người dùng cuối tạo ra một vấn tin để lấy dữ liệu tổng số, yêu cầu đòi hỏi lấydữ 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 tin phảiđư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 nhập từbản ghi để thoả 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 Client/Server, chỉ có lời vấn tin khởi động ban đầu và kết quả cuối cùng cần đưa lên mạng, phầnmềm cơ sở dữ liệu chạy trên máy lưu giữ cơ sở dữ liệu sẽ truy nhập các bản ghi cần thiết, xửlý chúng và gọi các thủ tục cần thiết để đưa ra kết quả cuối cùng
Front-end software:
Trong mô hình cơ sở dữ liệu Client/ Server, thường nói đến các phần mềm front-endsoftware và back-end software được chạy trên một máy tính cá nhân hoặc một workstationvà đá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 ứngdụng cơ sở dữ liệu Client/ Server và thực hiện các chức năng hướng tới nhu cầu của ngườidùng cuối cùng, phần mềm Front-end software thường được chia thành các loại sau:
End user database software: Phần mềm cơ sở dữ liệu này có thể được thực hiệnbởi người sử dụng cuối trên chính hệ thống của họ để truy nhập các cơ sở dữ liệucục bộ nhỏ cũng như kết nối với các cơ sở dữ liệu lớn hơn trên cơ sở dữ liệuServer
Simple query and reporting software: phần mềm này được thiết kế cung cấp cáccông cụ dễ sử 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ừ dữ liệu đã có
Data analysissoftware: 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
Nguyễn Minh Quân
Trang 31 Application development tools : Các công cụ này cung cấp các khả năng về ngônngữ mà các nhân viên hệ thống thông tin chuyên nghiệp sử dụng để xây dựng cácứng dụng cơ sở dữ liệu của họ Các công cụ ở đây bao gồm các công cụ về thôngdịch, biên dịch đơn đến các công cụ CASE (Computr Aided SoftwareEngineering), 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.
Database Administration Tolls : 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 lưu trữ hay phục hồi
Back-end software:
Phần mềm này bao gồm phần mềm cơ sở dữ liệu Client/ Server và phần mềm mạng chạytrên máy đóng vai trò là server cơ sở dữ liệu
V Distributed database model (Mô hình cơ sở dữ liệu phân tán):
Cả hai mô hình File-Server và Client/ Server đều giả định là dữ liệu nằm trên một bộ xửlý khác, còn mô hình cơ sở dữ liệu phân tán lại giả định bản thân cơ sở dữ liệu có ở trênnhiều máy khác nhau
CHƯƠNG 4
TRUY CẬP CƠ SỞ DỮ LIỆU TỪ XA
Nguyễn Minh Quân
Mạng
Server CSDL
Mô hình CSDL phân tán
Trang 32CLIENT/ SERVER
I Client/ Server và các thành phần:
Trước nay, mô hình đối tượng cơ sở dữ liệu (hay nói khác hơn là hệ điều hành ) đã chechắn phần làm việc phức tạp khi truy cập cơ sở dữ liệu từ xa, ta không nhận thấy sự khác biệtkhi cơ sở dữ liệu chứa trên mạng hay trên máy cục bộ
Thuật ngữ thành phần trung gian (middle-tier) đã làm thay đổi từ khi kỹ thuật Client/Server được giới thiệu lần đầu tiên Ví dụ ta tạo điều khiển Active x nhúng trong một ứngdụng Client để nói chuyện với một thành phần Active X Server cũng chứa trên Client Sau đóthành phần Active X Server sẽ nói chuyện với Active X Server chứa trên máy thuộc tầngtrung gian Đến lượt tầng trung gian sẻ nói chuyện với Server cơ sở dữ liệu chứa trên WinNTServer
Một số khái niệm cơ bản:
Active X:
Là một khái niệm gắn liền với các đối tượng trong chương trình dùng giao tiếpvới nhau Nó không phải là một sản phẩm, cũng không phải là một kỹ thuật
Điều khiển Active X :
Là một thành phần thường có giao diện (nhưng không phải toàn bộ các thànhphần đều có) Thành phần lưới CSDL (DB Grid) được cung cấp bởi Visual Basic làthành phần Active X Aán bản Profession và Enterprise có vô số thành phần nhưthế
Active X Server:
Còn gọi là thành phần mã hoá Active X Active X Server là một thành phầnđưa ra một hay nhiều lớp chứa trong một khối đã được biên dịch Ưùng dụng này sẽđược dùng các đối tượng sinh ra từ các lớp chứa trong thành phần Active X Ta cóthe73 truy cập khối biên dịch này thông qua kỹ thuật COM (Component ObjectModel)
II Cấu trúc Client/ Server Three-Tier:
1 Khái niệm về hệ thống Three-Tier :
Thật ra khái niệm cơ bản của Three-tier Client Server cũng xuất hiện nhiều ngoàiđời sống xã hội có thể hình dung nó như sau:
Một người khách hàng, một chương trình, đi vào quán bar Anh ta ngồi xuống mộtcái bàn và chờ đợi người phục vụ đi tới
Nguyễn Minh Quân
Trang 33Người phục vụ hỏi: “ Anh dùng gì?”
Người khách trả lời: “ Cho tôi một ly rượu loại mạnh”
Người phục vụ quay vào bàn và nói với Batender: “ Người khách muốn một lyLong Island iced tea”
Người Bartender pha thức uống theo yêu cầu và chuyển ly cho người phục vụ ,người phục vụ mang nó đến bàn của người khách Người khách uống xong lại gọingười phục vụ tới và nói “ Tôi muốn 55 ly nữa”
Không do dự người phục vụ nói “ Oâng không điên đó chứ? Họ sẽ bắt tôi vì phạmtội, một lần chỉ uống 1 ly Đó là luật.”
Người khách nhân nhượng và giảm yêu cầu của mình xuống “ OK cho tôi thêmmột nữa”
Người phục vụ trở lại quầy bar và yêu cầu Bartender pha một ly Long Island icedtea nữa Lần này người Bartender từ chối “ Chúng ta đã hết rượu này rồi”
Người phục vụ trở lại với tay không và giải thích không thể phục vụ được
Người khách rời khỏi quán bar
Ơû đây có một số điểm đáng lưu ý:
Làm sao để phân biệt giữa Client và Server ?
Client thì đưa ra các yêu cầu còn server thì thực hiện các yêu cầu đó
Ơû đây có bao nhiêu người liên quan ? Ở đây có khách hàng, người phục vụ,bartender – 3 người (ba cấp – three tier) Lưu ý rằng chúng ta không thể đề cập đếnnhững khách hàng khác Để là một cấp, một người phải là một phần trong toàn bộ quátrình từ lúc yêu cầu được đưa ra cho đến khi nó được hoàn tất
Người khách không giải thích làm thế nào để có ly rượu đó, người phục vụ tạo ramột yêu cầu nào đó để bartender làm theo
Người phục vụ không cần hỏi bartender có nên phục vụ cho khách 55 ly một lúckhông? Anh ta đã biết trước quy luật, tương tự như vậy nếu người phục vụ yêu cầu 10
ly thì bartender biết rằng anh ta đang có 10 người khách
Không có gì ngăn cản việc mang cùng một lúc 55 ly ra cho khách hàng Cũngnhư không có gì ngăn cản bartender cùng một lúc 55 ly rượu Giới hạn ở đây được ápđặt như một quy luật kinh doanh (bussiness rule)
Cũng có thể rút ra một số điều khác nữa:
Nguyễn Minh Quân
Trang 34Server không phải là nô lệ Người phục vụ có thể nói “ Không, anh không thể cócùng một lúc 55 ly” Tương tự như bartender củng có thể nói “ Không, chúng ta đã hếtphụ liệu rối” Trong các trường hợp như vậy, server được xem là Client.
Khi người khách có yêu cầu, người phục vụ không mang cả bar ra, cũng khôngcùng một lúc mang 5 chai ra để phục vụ cho khách Anh ta chỉ mang một ly trong đóchứa đúng một loại thức uống mà ông khách yêu cầu Trên khay của mình, anh ta cóthể có nhiều ly khác nhau nhưng không ảnh hưởng gì đến yêu cầu này
Nếu bartender đang phục vụ cho người khác, khi người phục vụ tới cũng khôngsao Mỗi một giao dịch thì độc lập, không ảnh hưởng đến khả năg của hệ thống trongviệc phục vụ các giao dịch khác
Xem xét những gải thiết sau đây:
Nếu người khách hàng ngồi ở quầy bar thay vì ngồi ở bàn thì chỉ có 2 người liênquan tới giao dịch – client và server Trong trường hợp này mà bartender phải biếtrằng anh ta không nên phục vụ 55 ly một lúc cho khách, đây là mô hình Two-tierClient Server
Giả sử có 75 người khách đang ngồi tại quán bar Quá đông để bartender có thểphục vụ được Vậy nên chăng có một hạn chế nào đó về số lượng khách có thể phụcvụ trực tiếp từ bar ?
Nấu nhảy vào bar và tự pha chế thức uống cho mình đó là mô hình hệ thống tier Không có gì đảm bảo sẽ không pha một ly “ tệ” không thể chịu được và anh ta sẽlàm rượu đổ tràn lan ra ngoài
One-2 So sánh ba hệ thống One-Tier, Two-Tier, Three-Tier:
One-Tier : Một chương trình làm tất cả mọi việc:
Hệ thống One-Tier dùng một chương trình làm hết tất cả mọi việc Hình bêndưới minh hoạ ứng dụng chạy trên mainframe Nó chịu trách nhiệm về mọi mặt củahệ thống: giao diện người dùng, chuần hoá đầu vào, thi hành luật kinh doanh, xử lýyêu cầu xuất nhập các file dữ liệu
Nguyễn Minh Quân
Chương trình ứng dụng Giao diện chuẩn hoá Thi hành luật kinh doanh Xử lý yêu cầu
Terminal
Người dùng trên một
Terminal
Người dùng trên một
Terminal
Người dùng trên một
Terminal
Hệ thống One-tier MainFrame
Trang 35Khách quan về hệ thống One-tier là hệ thống file Server tựa PC Đây là hệthống thường gặp ở các công ty nhỏ có ít hơn 10 trạm làm việc trên một hệ thốngLAN chia sẽ các database Access hay Foxpro.
Các thuật ngữ one-tier và Client Server thì loại trừ lẫn nhau Theo định nghĩa hệthống Client/ Server phải có ít nhất 2 máy, một máy đóng vai trò Client , maý cònlại đóng vai trò Server
Như vậy, mô hình one-tier sẽ làm việc rất nặng
Mô hình Two-Tier : làm việc thông minh hơn, bớt cực hơn
Hệ thống Two-Tier dưới đây thật sự là một bước tiến tới đa xử lý Đây là mô hìnhClient/ Server phổ biến nhất ngày nay, trên lý thuyết thì database trên Server khôngcần phải là database quan hệ
Nguyễn Minh Quân
Database trên đĩa
Database server
DBMS Quan hệ Thi hành luật kinh doanh Xử lý yêu cầu
Mạng Enterprice LAN hay WAN
Trạm làm việc Front-End Giao diện người dùng Kiểu dữ liệu chuẩn hoá Luật kinh doanh chuẩn
Trạm làm việc Front-End Giao diện người dùng Kiểu dữ liệu chuẩn hoá Luật kinh doanh chuẩn
Trang 36Trong hệ thống này nhiệm vụ của chương trình ứng dụng được phân chia làm 2phần Client ứng dụng front-end, thu nhập các input của người dùng, chuẩn hoá cáckiểu dữ liệu (như ngày tháng hay số điện thoại) và chuẩn hoá các luật kinh doanh đơngiản (như là đơn đặt hàng này có thể nhằm vào những loại hàng nào mà công tykhông có) Còn phía Server thì có trách nhiệm thi hành thật sự các luật kinh doanh.Có nghĩa là nó hoạt động thật sự như người gác cổng loại bỏ tất cả những yêu cầu cóthể gây ra những dữ liệu sai có thể lưu vào database.
Mô hình này chiếm tải mạng nhẹ hơn mô hình One-Tier Client không cần Serverchuyển cho mình một khối lượng lớn hơn các file dữ liệu qua mạng Ví dụ Client chỉcần chuyển qua mạng bởi chuổi text theo tieu chuẩn ASCII mô tả những gì nó cầnxem (query) và những gì phải thay đổi trong dữ liệu (transaction) Trong thực tế tất cảnhững yêu cầu được viết bằng một ngôn ngữ gọi là Structure Query Language (SQL).Chuỗi ký tự đó sẽ được diễn dịch tại Server bởi một hệ thống CSDL quan hệ như là :Oracle, Sysbase, Informix hay Microsoft SQL Server
Nguyễn Minh Quân
Trang 37Trong hình vẽ trên, luật kinh doanh xuất hiện ở cả hai nơi Client và Server Nhữngchuẩn hoá đơn giản sẽ được thực hiện ở Client còn server thì thi hành chúng thực sự,.Sự bất lợi ở đây là khi ta thay đổi luật thì phải làm ở cả hai nơi.
Có nhiều nguyên nhân để đặt luật kinh doanh ở hai nơi như trên Thứ nhất servercó thể ở rất xa trong LAN, điều này bắt buộc server phải chuẩn hoá tất cả các luật đểđảm bảo thống nhất dữ liệu sẽ làm chậm ứng dụng đi rất nhiều Thứ hai, giao diện vớingười dùng được thiết kế để lấy được những thuận lợi của kinh doanh Ví dụ các yêucầu có thể được thực hiện bằng các listbox kéo xuống thay vì người dùng phải vật vãvới các dòng SQL Bởi vì trong mô hình dữ liệu được rút ra từ nhu cầu của luật kinhdoanh
Three-Tier : Con đường dẫn tới xử lý phân bố :
Một hệ thống Three-Tier, hay đôi khi là n-tier, là một mô hình được biến đổi từcác mô hình trứơc đó Các front-end sẽ nhỏ gọn hơn nó sẽ chỉ chứa code để thu thậpdữ liệu một cách sạch sẽ và hiệu quả Luật kinh doanh sẽ được dời càng nhiều càngtốt sang “tầng giữa” gọi là tầng dịch vụ hay là middleware Tầng có nhiệm vụ tạo racác giao dịch sẽ chuyển cho các Server dữ liệu
Hệ thống Tree-Tier có thể được gọi là n-tier bởi vì tầng giữa có thể phức tạp vớinhiều thành phần tương tác nhau Nếu chúng ta coi mỗi thành phần là một tầng thìchúng ta có thể lên rất nhiều tầng Vì thế một số người đã gọi mô hình này là n-tier.Mô hình two-tier dựa trên các câu lệnh SQL để giao tiếp giữa các tầng Nhưngthật không may, SQL là một ngôn ngữ thông dịch cho nên chúng được kiểm tra cúpháp và chuẩn hoá trước khi thi hành Mặc dù chúng có một ưu điểm to lớn là việc gửicác yêu cầu từ môi trường này sang môi trường khác – như là từ một PC sang hệthống UNIX– nhưng nó có một số nhược điểm làm chậm chương trình
Nguyễn Minh Quân
Cơ sở dữ
liệu trên
đĩa
Datavase RDBMS Server Xử lý yêu cầu Xuất nhập file dữ liệu
Datavase RDBMS Server Xử lý yêu cầu Xuất nhập file dữ liệu
Server ứng dụng Tầng giữa (middleware) Thi hành luật kinh doanh
Mạng LAN hay MAN
Trạm làm việcFront-endGiao diện
Trạm làm việcFront-endGiao diện
Trang 38Trong những hệ thống Three-Tier mới đây, người ta vẫn dùng các chuỗi text đểgiao tiếp qua mạng Điều này có nghĩa là tầng giữa vẫn chậm (bởi vì chúng phải diễndịch các chuỗi) và thụ động (vì chúng xử lý các chuổi như là những thực tế đóng kín dichuyển từ nơi này sang nơi khác- giống như bưu điện xử lý một lá thư).
Với sự phát triển nhanh chóng của Microsoft nhu là một cấu hình chuẩn cho PC,cộng với sự xuất hiện của Network OLE thì đã có một giao thức được định nghĩa chosự giao tiếp giữa các ứng dụng thay cho việc gửi các chuổi text như trước Đó làremote OLE một cánh cửa mở rộng cho dù hiện thời nó chạy vẫn còn khá chậmnhưng trong tương lai gần, hu vọng chúng ta sẽ được chứng kiến những tiến bộ đầykịch tính của nó
Một ưu điểm to lớn của mô hình Three-Tier là chúng ta không cần dùng SQL đểmã hoá các luật kinh doanh Trong mô hình Two-tier các luật kinh doanh nằm ở cácserver chỉ nói có một ngôn ngữ đó là SQL Bởi vì SQL dựa trên nền của lý thuyết tậphợp cho nên nó chỉ lý tưởng cho việc chọn lựa dữ liệu từ một khối lớn nhưng dùng nórất bất tiện cho việc mô tả những luật kinh doanh Các luật kinh doanh dường như dễmô tả hơn khi dùng ngôn ngữ lập trình như VB hay C++
Các mô hình dịch vụ : mọi thứ đều có việc làm :
Nguyễn Minh Quân
Trang 39Đi từ mô hình Two-tier sanng mô hình Three-tier thì dường như không phải là mộtbước tiến lớn chỉ cần thên một khối trong mô hình gọi là Tầng giữa Nhưng thực tếtrong mô hình Three-tier khái niệm mỗi tầng được đại diện bởi một chương trình bịmất hết ý nghĩa Đột nhiên khái niệm xử lý phân bố trở nên hiện thực hơn bao giờhết.
Trong hệ thống Two-tier Client Server dường như phải được phát triển đồng thời;cái này đựơc thiết kế để giao tiếp với cái kia và ngược lại Trong nhiều hệ thống Two-tier mỗi truy xuất từ một back-end không thiết kế cho nó đều để lại các lổ thủng về anninh
Trong hệ thống Three-tier, tầng giữa là một tập hợp các chương trình cung cấpcác dịch vụ cho các front-end Vì vậy, khi nó được thiết kế tốt thì hệ thống vừa dễphát triển vừa dễ bảo đảm an ninh
Ta có thể chia thành phần trung gian qua nhiều máy Vì vậy, cấu trúc 3 tầng khiđó trở thành cấu trúc n tầng
III Triền khai Active X DLL từ xa dùng MTS ( Microsoft Transaction Server):
Nguyễn Minh Quân
Private Network
SQL Server DBMS
VB App
Lược đồ Client/ Server
LAN Protocols
LAN Protocols Requests Data
Windows 32-bit Client Database Server
Máy Client
Máy tính trung gian
Thành phần Active X Truy vấn CSDL Cung cấp các đối tượng cho Client
Cấu trúc Client/ Server n tầng trung gian thể hiện trên một máy
Máy Server CSDL
Trang 40Triển khai 1 thành phần Active X dùng MTS là cách dễ nhất để tạo 1 ứng dụng phântán.
MTS chạy trên WinNT, Win95 và Win98 nhưng hiệu quả nhất là là chạy trên WinNT.MTS có trong bộ VinNt 5.0 nhưng với Nt4.0 ta phải cài đặt phiên bản của MTS dùngWindows Option Pack kèm theo đĩa CD của Visual Basic Option Pack được áp dụng choWin95, Win98 khi cài NT Option Pack trên máy không phải NT ta có Personal WebServer đối với Win95 và một phiên bản hạn chế của MTS Cách này thuận tiện ví ta cóthể dùng máy Win95, Win98 để páht triển chương trình thử nghiệm và kiểm nghiệm sauđó dùng Nt Server để triển khai nếu cần
Triển khai thành phần từ xa MTS2.0 có 3 bước :
1 Tạo gói MTS để chứa thành phần: gói MTS là nơi chứa logic cho 1 hay nhiềumodul lớp chứa trong Active X DLL và gói tạo sẵn
2 Đặt thành phần vào gói: chỉ cần ta kéo lê Active X DLL vào gói tạo sẵn
3 Export gói ra từ MTS và cài đặt vào máy Client nhằm cho phép ứng dụng Clienttruy cập thành phần chạy dưới MTS ta phải đăng ký vào Register của máyClient để báo rằng thành phần đang chạy từ xa
Nguyễn Minh Quân