Vì thế đề tài “Quản lý đăng ký môn học của sinh viên” sử dụng hệ quản trị cơ sở dữ liệu SQL Server trên môi trường đa người dùng là hy vọng có thể giúp cho sinh viên tự đăng ký môn học
Trang 1Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
MỤC LỤC
GIỚI THIỆU ĐỀ TÀI 6
Phần I : CƠ SỞ LÝ THUYẾT .10
Chương 1: Giới thiệu mô hình Client/ Server và hệ quản trị cơ sở dữ liệu Microsoft SQL Server 10
I Mô hình Client/Server 10
1 Khái niệm về phần cứng 10
2 Khái niệm về xử lý 10
II Cơ sở dữ liệu phân tán 12
1 Hệ thống phân tán .12
2 Giới thiệu MS DTC 13
3 Các giao dịch phân tán(Distributed Transactions) 14
4 Một số lệnh được sử dụng trong giao dịch 15
III Giới thiệu Microsoft SQL Server 18
A Giới thiệu 18
B SQL Server và mô hình Client/Server 19
C Các kiểu đối tượng 19
1 Bảng (table) 20
2 Khung nhìn (View) 20
3 Chỉ mục (index) 20
4 Kiểu dữ liệu (Data type) 21
5 Trị ngầm định ( Default value) 22
6 Qui tắc (Rule) 22
7 Thủ tục trữ sẵn (Stored Procedures) 22
Trang 2Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
8 Bộ trích khởi (Trigger) 23
9 Ràng buộc (Contraint) 23
D Kiến trúc kho lưu trữ dữ liệu 23
1 Trang (Page) 23
2 Liên trang (Extend page) 24
3 Đơn vị phân bổ 24
4 Các sổ theo dõi giao dịch 24
E Cách tạo các cơ sở dữ liệu 24
1 Tạo cơ sở dữ liệu bằng SQL Enterprice Manager 24
2 Tạo cơ sở dữ liệu bằng Transact_SQL 25
3 Ấn định các tuỳ chọn cho cơ sở dữ liệu 26
F Cách tạo các đối tượng cơ sở dữ liệu 28
1 Tạo bảng 28
2 Tạo khung nhìn 29
3 Tạo chỉ mục .30
G Quản trị tài khoản người dùng 30
1 Đăng nhập và các tài khoản người dùng 31
2 Tạo nhóm người dùng 34
H Quản trị dữ liệu 36
1 Lưu dự phòng cơ sở dữ liệu 36
2 Phục hồi cơ sở dữ liệu 37
Cấp phát và thu hồi các quyền cho người dung 38
Chương 2 : Trình điều khiển ODBC và những cải tiến tốc độ trong mô hình Client/Server 40
I Trình điều khiển ODBC 40
Trang 3Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
A Kiến trúc ODBC 40
1 Lớp ứng dụng 40
2.Bộ quản lý điều khiển 40
3 Trinh điều khiển ODBC 41
4 Nguồn dữ liệu 41
B Cách hoạt động của các trình điều khiển ODBC 41
1 Trình điều khiển đơn tầng 41
2 Trình điều khiển đa tầng 42
II Những vấn đề trong môi trường đa người dùng 43
1 Khoá chặt 43
2 Nghẽn 43
3 Khoá chết 44
III Những cải tiến nhằm giảm thiểu việc truyền dữ liệu trên mạng 44
1 Chọn những hàng cần thiết 44
2 Chọn những cột cần thiết 44
3 Chỉ cập nhật những cột đã thay đổi 45
4 Sử dụng thủ tục có sẵn 45
IV Hỗ trợ của Visual Foxpro cho mô hình client/server 45
1 Mục đích của nguyên mẫu 45
2 Xây dựng một nguyên mẫu cục bộ cho ứng dụng 46
3 Sự tiện dụng tiện ích Upsizing Wizard để đưa các bảng dữ liệu lên server 47
4 Một số lệnh_hàm cơ bản của Visual Foxpro hỗ trợ cho việc lập trình Client/server 47
Phần II :XÂY DỰNG ỨNG DỤNG 49
Chương 3 : Thu thập thông tin và tổ chức dữ liệu 49
Trang 4Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
I Quá trình tìm kiếm thông tin 49
1 Thông tin về sinh viên 49
2 Thông tin về khoa 49
3 Thông tin về ngành học trong khoa 49
4 Thông tin về đối tượng 49
5 Thông tin về môn học 49
6 Thông tin về học kỳ niên khoá 49
7 Thông tin về lớp học 50
8 Thông tin về nhóm học lịch học 50
9 Thông tin về phòng học 50
10 Việc đăng ký môn học 50
11 Việc mở môn học 50
12 Thông tin về phiếu thu 50
II Xây dựng các thực thể 53
III Các phụ thuộc hàm 55
IV Các liên kết 56
V Mô hình quan niêm cho dữ liệu (MCD) 58
VI Mô hình luận lý cho dữ liệu (MLD) 61
VII Mô hình vật lý cho dữ liệu (MPD) và các ràng buộc toàn vẹn 61
VIII Lưu đồ dòng dữ liệu 65
IX Mô hình quan niệm cho xử lý 66
X Thiết kế các mẫu from 67
Chương 4 : Giới thiệu chương trình 71
I Giới thiệu chung 71
1 Mục đích của chương trình 71
Trang 5Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
2 Yêu cầu của chương trình 71
3 Ngôn ngữ cài đặt 71
II Giới thiệu hệ thông menu 72
Phần III : KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 74
I Kết luận 74
II Hướng phát triển 74
Trang 6Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
GIỚI THIỆU ĐỀ TÀI
I Giới thiệu:
Hiện nay, chúng ta đang sống trong kỷ nguyên của Công Nghệ Thông Tin (CNTT) Không ai có thể nghi ngờ gì về vai trò của CNTT trong đời sống,
trong hoạt động kinh doanh, thương mại …từ doanh nghiệp, xí nghiệp, công ty,
đến quốc gia, quốc tế Đặc biệt từ khi mạng máy tính ra đời, việc nắm bắt thông
tin lại trở nên nhanh chóng, dễ dàng, chính xác và kịp thời hơn…
Càng ngày yêu cầu của người dùng càng cao, khối lượng dữ liệu cần xử
lý ngày càng nhiều Hệ thống Client_Server và sự hỗ trợ về CSDL phân tán đã
giúp cho việc lưu trữ các dữ liệu lớn trên một hay nhiều nơi khác nhau tuỳ theo
nhu cầu và chức năng của chương trình nhưng vẫn đảm bảo được tính nhất
quán, chính xác và an toàn Rất tiện dụng trong việc truy xuất dữ liệu vì ở bất
kỳ trạm làm việc nào cũng cảm thấy dữ liệu đang ở tại máy tính của mình
Cùng với sự phát triển của CNTT, từng bước các ban ngành, tổ chức, cơ quan…đã ứng dụng vào công tác quản lý với mong mỏi đạt được sự nhanh
chóng, chính xác, an toàn…Cũng như đối với trường học: Giáo dục hay Đào
tạo cũng rất cần việc quản lý học sinh, sinh viên trong học tập Có nhiều công
cụ với nhiều tính năng mới cho phép triển khai các ứng dụng trong việc quản lý
tốt hơn như SQL Server, Oracle, Access…
Thực trạng đăng ký môn học tại phòng Giáo vụ trường Đại học Cần Thơ
hiện nay là quá tải Vì thế đề tài “Quản lý đăng ký môn học của sinh viên” sử
dụng hệ quản trị cơ sở dữ liệu SQL Server trên môi trường đa người dùng là hy
vọng có thể giúp cho sinh viên tự đăng ký môn học tại mỗi khoa làm giảm sự
trì trệ trong việc đăng ký ở phòng Giáo vụ
II Mô tả hệ thống:
Một sinh viên sau khi hoàn thành thủ tục nhập học phải cho biết họ và tên, ngày sinh, giới tính, quê quán gồm tên huyện và tên tỉnh Nếu sinh viên
thuộc đối tượng (con liệt sĩ, con thương binh, con gia đình có công với nước,
vùng sâu, vùng xa…) thì có một tỷ lệ tương ứng giảm học phí Mỗi sinh viên
có một mã số gọi là mã số sinh viên, mã số này là duy nhất, không thay đổi
trong suốt quá trình sinh viên học tại trường Căn cứ ngành học sinh viên thi
đậu vào mà sinh viên đó sẽ thuộc sự quản lý của một khoa nào đó: nghĩa là mỗi
sinh viên thuộc một ngành, một khoa có thể gồm nhiều ngành học khác nhau
Vào đầu học kỳ mới sinh viên đến phòng Giáo vụ đăng ký các môn học
Việc đăng ký môn học được thể hiện qua một phiếu đăng ký Trên phiếu đăng
ký có thông tin về sinh viên (mã sinh viên, họ tên), ngày đăng ký, học kỳ và
niên khoá đăng ký Một phiếu đăng ký có thể có nhiều môn học (mã môn, tên
môn và số đơn vị học trình tương ứng với môn đó) Các môn học mà sinh viên
đăng ký phải được dạy trong học kỳ mà phòng Giáo vụ đã có kế hoạch trong
thời khoá biểu và được thông báo cho sinh viên biết trước khi đăng ký
Trang 7Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
Mỗi môn học ngoài việc định danh bằng tên còn kèm theo số tín chỉ học trình và được gán cho một mã số môn học Môn học được chia làm hai loại:
môn lý thuyết và môn thực hành Nếu đăng ký môn lý thuyết sinh viên phải trả
27000 đồng/tín chỉ, còn với môn thực hành là 37000 đồng/tín chỉ Mỗi ngành
học bao gồm một hệ thống nhiều môn mà sinh viên thuộc ngành đó phải theo
học nằm trong nội dung chương trình giảng dạy của ngành đó; có thể có nhiều
môn thuộc chương trình giảng dạy của nhiều ngành học khác nhau Mỗi học
kỳ, căn cứ vào việc đăng ký các môn học và đối tượng của sinh viên mà người
ta xác định được số tiền học phí mà mỗi sinh viên sẽ phải đóng
Sau khi đăng ký môn học xong, sinh viên phải đến phòng Tài vụ của trường để đóng học phí Mỗi lần khi một sinh viên đến nộp học phí, một phiếu
thu được lập, trên đó ghi nhận mã số sinh viên, ngày lập, số tiền mà sinh viên
đóng và được đánh số thứ tự để tiện việc theo dõi Mỗi phiếu thu chỉ thu tiền
học phí của một sinh viên tại một học kỳ Mỗi học kỳ, sau khi cho sinh viên
đăng ký môn học, để khuyến khích sinh viên đóng học phí sớm nhà trường
cũng qui định một ngày mà sinh viên đóng trước ngày đó sẽ được giảm một tỷ
lệ là 5% Sinh viên có thể đóng học phí nhiều lần trong cùng học kỳ nhưng phải
trước ngày hết hạn đóng học phí
Khi hết hạn đóng học phí phòng Tài vụ sẽ thống kê xác định danh sách những sinh viên còn nợ học phí trong học kỳ đó để gửi cho bộ phận quản lý của
phòng Giáo vụ loại bỏ những sinh viên đó ra khỏi danh sánh dự thi
III Yêu cầu đối với hệ thống:
Để quản lý việc đăng ký môn học cho sinh viên, thực hiện xây dựng hệ thống thông tin quản lý trên mạng cục bộ đáp ứng được các nhu cầu về quá
trình quản lý, thống kê, truy vấn và in ấn…Với các mục tiêu cần đạt được:
v Dựa vào dữ liệu về hồ sơ sinh viên, môn học, dự kiến kế hoạch giảng dạy ở mỗi học kỳ
v Thiết kế quá trình đăng ký môn học trên nhiều máy cùng một lúc, để sinh viên có thể đăng ký ở nhiều nơi
v In các báo biểu phục vụ trong việc đăng ký môn học và xếp lịch học cụ thể cho từng sinh viên
v Thống kê các báo biểu cần thiết cho việc quản lý học tập của sinh viên
v Thống kê kết quả thu học phí theo từng khoa, ngành và in danh sách sinh viên nợ học phí
IV Hướng giải quyết:
Với mục tiêu đề ra, phương pháp giải quyết được thực hiện như sau :
Trang 8Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
♦ Cơ sở dữ liệu được tổ chức trên Microsoft SQL Server, từ đó các trạm làm việc có thể dùng chung cơ sở dữ liệu này mà vẫn bảo đảm được
tính nhất quán, chính xác và an toàn
♦ Do hệ thống sử dụng trên mạng cục bộ nên ứng dụng được viết bằng Microsoft Visual Foxpro 7.0 thông qua ODBC (Open Database
Connectivity) để truy xuất cơ sở dữ liệu
Nội dung của đề tài bao gồm :
Phần I: GIỚI THIỆU ĐỀ TÀI
• Giới thiệu
• Mô tả hệ thống
• Yêu cầu đối với hệ thống
• Hướng giải quyết
Phần II: CƠ SỞ LÝ THUYẾT
Chương 1 : Giới thiệu mô hình Client_Server và hệ quản trị cơ sở dữ liệu
Microsoft SQL Server
Chương này nhằm giới thiệu mô hình Client_Server, cách thức hoạt động, các đặc điểm để nó tồn tại một cách vững mạnh trên hệ thống cơ sở dữ
liệu quan hệ và giới thiệu sơ lược về hệ quản trị cơ sở dữ liệu Microsoft SQL
Server, cách tạo các đối tượng cơ sở dữ liệu, cấp quyền cho người dùng và
các thành phần chính yếu để xây dựng một cơ sở dữ liệu cho chương trình
Chương 2 : Trình điều khiển ODBC và những cải tiến tốc độ trong mô hình
Client_Server
Chương này nhằm giới thiệu trình điều khiển ODBC, cách thức hoạt động của nó, những vấn đề cần quan tâm trong môi trường đa người dùng,
những cải tiến nhằm giảm thiểu việc truyền dữ liệu trên mạng và những hỗ trợ
của Visual Foxpro cho mô hình Client_Server
Phần III: ỨNG DỤNG TRONG CÔNG TÁC QUẢN LÝ
Chương 3: Thu thập thông tin và tổ chức dữ liệu
Chương này giới thiệu sơ lược về quá trình thu thập các thông tin cần thiết để xây dựng, tổ chức các mô hình MCD, MLD, MCT cho hệ thống quản
lý đăng ký môn học của sinh viên trường Đại học Cần Thơ
Chương 4: Giới thiệu chương trình
Chương này giới thiệu chung về mục đích, yêu cầu, ngôn ngữ cài đặt cho chương trình Giới thiệu hệ thống menu được xây dựng trên máy khách
Phần IV: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
Trang 9Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
Khái quát lại các vấn đề đã thực hiện được cũng như những vấn đề chưa thực hiện được hoàn chỉnh và đưa ra hướng giải quyết, phát triển thêm cho sau
này
Em xin chân thành cảm ơn Khoa Công Nghệ Thông Tin đã tạo điều kiện
cho em làm đề tài luận văn này Đặc biệt em xin cảm ơn Thầy Đinh Khắc
Quyền và Thầy Nguyễn Thái Nghe đã hướng dẫn tận tình giúp em hoàn thành
luận văn này Dù đã có rất nhiều cố gắng, tuy nhiên do thời gian tương đối hạn
hẹp và kiến thức còn giới hạn, kinh nghiệm thực tế ít nên chắc rằng chương
trình không tránh khỏi những thiếu sót, rất mong nhận được sự chỉ dạy, góp ý
của các thầy cô và các bạn đọc để chương trình được hoàn thiện hơn
Cần Thơ, ngày 10/02/2003 Nguyễn Thuý Hạnh
Trang 10Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
Chương 1 : MÔ HÌNH CLIENT-SERVER và HỆ QUẢN TRỊ CƠ SỞ
DỮ LIỆU MICROSOFT SQL SERVER
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 thi nhanh 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 phải cần
tính toán sao cho việc truyền dữ liệu là tốt nhất ( giảm lượng lưu thông 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ện ngườ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áy Client gởi tới máy chủ 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 ) Máy server khi
nhận được yêu cầu truy vấn, sau khi kiểm tra quyền truy cập của người sử
dụng, 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ửi trả về kết quả truy vấn theo yêu cầu của máy client Khi nhận được yêu
cầu truy cập 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ải bảo đảm việc cập nhật không phá vỡ tính toàn
vẹn của 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 các thông tin cần một cách thông suốt cho dù dữ liệu thực sự
nằm phân tán trên nhiều máy chủ khác nhau hay cơ sở dữ liệu phân tán trên
những ứng dụng của khách hàng Những yêu cầu này sẽ được diễn dịch bởi
ứng dụng Server, Server tiến hành thực hiện yêu cầu và gởi trả kết quả thực
hiện (nếu thành công) hoặc thông báo lỗi về cho khách hàng
Trong hệ thống quản trị cơ sở dữ liệu mạng, khái niệm Client_Server được hiểu như sau: một ứng dụng khách hàng (Client) sẽ yêu cầu cung cấp dữ
liệu trích từ một hệ thống quản trị cơ sở dữ liệu quan hệ (RDBMS: Relational
Database Management Sysrem) Hệ thống RDBMS (Server) sẽ xử lý yêu cầu
và gởi trả kết quả thực hiện cho khách hàng
Trang 11Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
Mô hình truy xuất giữa Client/Server Kiến trúc Client_Server là một phương pháp lý tưởng để tập trung quản
lý các tập tin cơ sở dữ liệu khi kích thước các tập tin này là khá lớn và được
sử dụng bởi nhiều người ở nhiều nơi khác nhau Người sử dụng không trực
tiếp thao tác trên các tập tin cơ sở dữ liệu đặt trên Server mà chỉ thông qua
các câu truy vấn SQL để yêu cầu Sever thực hiện và trả về kết quả thực hiện
cho mình
Như vậy ứng dụng Client_Server cho phép chuyển việc xử lý dữ liệu từ trạm làm việc tới Server giảm đi việc dữ liệu phải chuyển đi chuyển về giữa
Client_Server tránh được tình trạng quá tải trên mạng và sự đòi hỏi về nguồn
lực của mạng, đảm bảo yêu cầu máy chủ có thể phục vụ tốt cho nhiều máy
khách, thời gian thực thi cũng nhanh hơn so với khi trạm làm việc
(workstation) thực hiện truy tìm dữ liệu Chỉ cần Server là một máy đủ mạnh,
máy khách cũng trở nên thông minh và năng động hơn
Mô hình Client_Server tồn tại và phát triển mạnh hơn trong giai đoạn hiện nay trên cơ sở dữ liệu quan hệ là nhờ vào những ưu điểm sau:
♦ Đảm bảo tính toàn vẹn dữ liệu: bảo đảm việc ngăn chặn các lỗi và những bấc hợp lệ trong việc lưu trữ dữ liệu Trong hệ thống cơ sở dữ liệu
quan hệ, tính toàn vẹn dữ liệu có thể được cài đặt ở cấp Server Khi dữ liệu
thay đổi ở hệ thống cơ sở dữ liệu quan hệ, nó sẽ tự động hiển thị giống như
Yêu cầu
Trả lời Yêu cầu
Yêu cầu
Client 1
Client 2
Client n
Trang 12Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
được tạo trên Server hoặc một bảng đã tồn tại có thay đổi thì cũng không ảnh
hưởng đến hoạt động của hệ thống
♦ Lưu trữ dữ liệu hiệu quả, bảo đảm tính nhất quán
qua nhiều dạng phương tiện liên lạc khác nhau: mạng tốc độ cao, đường điện
thoại…Chúng không chia sẻ bộ nhớ cũng như đĩa Các máy tính trong một hệ
thống phân tán có thể rất đa dạng về kích cỡ cũng như chức năng từ các
workstation đến các mainrame Các máy tính trong hệ thống phân tán được
tham chiếu bởi một số các tên khác nhau site, note phụ thuộc vào ngữ cảnh
mà máy được đề cập
Hệ thống phân tán là CSDL phân tán được tách biệt về mặt địa lý, được quản lý tách biệt và có một sự hợp nhất chậm Và có sự phân biệt giữa các giao
dịch cục bộ (local) và toàn thể (global) Giao dịch cục bộ là một giao dịch truy
xuất dữ liệu trong một site tại đó giao dịch đã được khởi xướng Giao dịch toàn
thể là một giao dịch mà nó truy xuất dữ liệu trong một site từ một site khác tại
đó nó được khởi xướng hoặc truy xuất dữ liệu trong một vài site khác nhau
2 Giới thiệu MS DTC :
Microsoft Distributed Transaction Coordinator (MS DTC) là một nhà quản
lý giao dịch cho phép các client ứng dụng trên một vài nguồn dữ liệu khác nhau
Site C Site A
Mạng
Site B Liên lạc thông
qua mạng
Trang 13Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
trong một giao dịch MS DTC liên kết đến các giao dịch phân tán đến tất cả các
server trong giao dịch
SQL server có thể tham gia vào một giao dịch bằng cách:
ü Gọi thủ tục lưu trữ trên các server từ xa đang chạy SQL server
ü Giao dịch cục bộ được cải tiến một cách tự động hoặc tường minh đến một giao dịch phân tán và thêm vào những server từ xa trong giao dịch
ü Cập nhật dữ liệu trên nhiều dữ liệu nguồn OLE DB Nếu dữ liệu nguồn OLE DB này chứa giao diện của giao dịch phân tán OLE
DB thì SQL server cũng có thể thêm chúng vào giao dịch phân tán
Dịch vụ MS DTC liên kết đến giao dịch phân tán để chắc chắn rằng hoặc tất cả
mọi sự cập nhật trên tất cả server được lâu dài hoặc tất cả được xoá bỏ trong
trường hợp lỗi
Trang 14Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
Các ứng dụng SQL server cũng có thể gọi MS DTC một cách trực tiếp để bắt
đầu một giao dịch phân tán một cách tường minh Một hoặc nhiều server đang
chạy SQL server có thể được cung cấp thông tin để thêm vào giao dịch phân
tán và liên kết đến giao dịch bằng MS DTC
3 Các giao dịch phân tán (Distributed Transactions)
Các giao dịch phân tán liên kết hai hay nhiều server được xem như là những nhà quản lý tài nguyên Việc quản lý các giao dịch phải được liên kết
với những nhà quản lý tài nguyên bởi một bộ phận server được gọi là nhà quản
lý giao dịch Microsoft SQL server có thể thao tác như là một nhà quản lý tài
nguyên trong các giao dịch phân tán Các giao dịch phân tán được liên kết bởi
nhiều nhà quản lý giao dịch như MS DTC, hay những nhà quản lý giao dịch
khác có chứa X/Open XA cho tiến trình giao dịch phân tán
Một giao dịch trong một SQL server riêng lẻ liên kết đến hai hay nhiều
cơ sở dữ liệu thật ra chỉ là một giao dịch phân tán Tuy nhiên SQL quản lý giao
dịch phân tán cho phép người sử dụng thao tác như là một giao dịch cục bộ
Trong một ứng dụng, một giao dịch phân tán được quản lý bởi một giao dịch cục bộ Khi kết thúc một giao dịch, chương trình ứng dụng yêu cầu hoặc là
giao dịch được bàn giao (committed) hoặc bị cuộn lại (rollback), một giao dịch
phải được quản lý bởi những nhà quản lý giao dịch để làm tối thiểu hoá sự rủi
ro của việc thất bại trên mạng, điều này có thể dẫn đến một số nhà quản lý tài
nguyên cho các giao dịch được bàn giao thành công trong khi những nhà quản
lý tài nguyên khác thì cuộn lại các giao dịch Việc quản lý các tiến trình của
Trang 15Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
giao dịch thành công gồm hai giai đoạn: giai đoạn chuẩn bị và giai đoạn bàn
giao
ü Giai đoạn chuẩn bị:
Khi nhà quản lý giao dịch nhận một yêu cầu commit, nó sẽ gởi một lệnh chuẩn bị đến tất cả các nhà quản lý tài nguyên được lên kết trong giao dịch Khi
đó, mỗi nhà quản lý tài nguyên sẽ thực thi mọi yêu cầu để cho các giao dịch tồn
tại bền lâu và tất cả các buffer sẽ lưu trữ một sổ ghi lộ trình (log) để ghi lại
những hình ảnh thay đổi của giao dịch, sau đó sẽ được ghi lên đĩa Sau khi mọi
nhà quản lý tài nguyên hoàn thành giai đoạn chuẩn bị nó sẽ gởi trả về kết quả
thành công hay thất bại của giai đoạn chuẩn bị đến nhà quản lý giao dịch
ü Giai đoạn bàn giao (commit):
Nếu nhà quản lý giao dịch nhận được kết quả trả về là thành công từ tất
cả các nhà quản lý tài nguyên, nó sẽ gởi lệnh commit đến mọi nhà quản lý tài
nguyên Những nhà quản lý tài nguyên có thể hoàn thành thành công giao dịch
Nếu tất cả các nhà quản lý tài nguyên thông báo một giao dịch thành công hoàn
toàn thì nhà quản lý giao dịch sẽ gởi thông báo thành công đến ứng dụng Nếu
có bất cứ nhà quản lý tài nguyên nào trả về kết quả thất bại của giai đoạn chuẩn
bị thì nhà quản lý tài nguyên sẽ gởi một lệnh cuộn lại (rollback) đến mỗi nhà
quản lý tài nguyên và trả về thông báo thất bại của ứng dụng
Ứng dụng SQL server có thể quản lý giao dịch phân tán hoặc bằng lệnh Transact_SQL hoặc bằng cơ sở dữ liệu API
4 Một số lệnh được sử dụng trong giao dịch
Để bắt đầu của một giao dịch phân tán được quản lý bởi MS DTC theo cú pháp sau:
[transaction_name | @tran_name_variable]
Trong đó:
Transaction_name: tên giao dịch do người dùng định nghĩa để theo dõi giao
dịch, gồm 32 ký tự và theo qui tắc đặt tên
@Tran_name_variable: tên biến do người dùng định nghĩa có kiểu dữ liệu
gồm: char, nchar, varchar, nvarchar
Khi SQL thực thi câu lệnh BEGIN DISTRIBUTED TRANSACTION là lệnh khởi đầu một giao dịch và được điều khiển cho đến khi hoàn tất giao dịch
Khi có một lệnh COMMIT TRANSACTION hay ROLLBACK
TRANSACTION theo sau được phát ra thì việc điều khiển server yêu cầu MS
DTC phải tổ chức lại việc phân tán các giao dịch đến những server có liên
quan Các SQL server từ xa được thêm vào trong một giao dịch phân tán bằng
hai phương pháp:
Trang 16Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
ü Một nối kết sẵn có để thêm vào một giao dịch phân tán thực hiện một lời gọi thủ tục từ xa tham chiếu đến một server từ xa
ü Một nối kết sẵn có để thêm vào một giao dịch phân tán thực thi một câu lệnh truy vấn phân tán tham chiếu đến một server từ xa
Ví dụ : nếu lệnh BEGIN DISTRIBUTED TRANSACTION được phát ra trên
Server A, nối kết gọi một thủ tục lưu trữ trên Server B và một thủ tục lưu trữ
khác trên Server C, và một thủ tục lưu trữ trên Server C thực thi một truy vấn
phân tán đối với Server D, khi đó tất cả bốn server được liên quan với nhau
trong một giao dịch phân tán Server A là khởi đầu, điều khiển giao dịch server
trong giao dịch
Những nối kết liên quan trong giao dịch phân tán Transact_SQL không nhận một đối tượng giao dịch, chúng có thể đến nối kết khác để thêm vào trong
giao dịch phân tán Phương pháp duy nhất để một server từ xa thêm vào một
giao dịch là ở sau cùng của một lời gọi thủ tục từ xa hay một câu truy vấn phân
tán
Ví dụ sau là cập nhật trường class_name của bảng Author trên dữ liệu cục bộ
và từ xa Dữ liệu cục bộ và từ xa có thể thực thi hoặc lệnh commit hoặc
rollback
USE pubsGO
SET au_lname = 'McDonald' WHERE au_id = 7008'
'409-56-EXECUTE remote.pubs.dbo.changeauth_lname 56-7008','McDonald'
Tran_name_variable: tên biến do người dùng định nghĩa, nó phải có
kiểu dữ liệu là char, nchar, varchar, ncharvar
Trang 17Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
Công việc của lập trình viên là phát ra lệnh COMMIT TRANSACTION tại thời điểm ngay khi các giao dịch tham chiếu đến tất cả các dữ liệu là hợp lý
Nếu giao dịch được bàn giao là một giao dịch phân tán, COMMIT TRANSACTION gởi lệnh ứng tác đến MS DTC để thực hiện hai giai đoạn của
giao thức để hoàn thành giao dịch và bàn giao đến tất cả các server có liên quan
trong giao dịch Nếu một giao dịch cục bộ liên kết hai hay nhiều cơ sở dữ liệu
trên cùng server, SQL server thực hiện hai giai đoạn hoàn thành giao dịch để
bàn giao đến tất cả cơ sở dữ liệu liên quan trong giao dịch
Việc bàn giao các giao dịch bên trong không có tài nguyên giải phóng hoặc sự thay đổi lâu dài Việc thay đổi dữ liệu lâu dài và tài nguyên được giải
phóng chỉ khi các giao dịch phía ngoài được bàn giao Mỗi lệnh COMMIT
TRANSACTION phát ra khi @@trancount >1, một cách đơn giản là giảm
@@trancount xuống 1 Khi @@trancount giảm đến 0, thì các giao dịch bên
trong được bàn giao hoàn toàn Lệnh COMMIT TRANSACTION được phát ra
sẽ tham chiếu đến tên của giao dịch bên ngoài khi còn tồn tại những giao dịch
bên trong giảm @@trancount xuống 1
Ví dụ:
BEGIN TRANSACTIONUSE pubs
ROLLBACK [TRAN[SACTION] [transaction_name |
@tran_name_variable | savepoint_name | @savepoint_variable] ]
Trong đó:
Transact_name: là tên gán cho giao dịch được gán bởi lệnh BEGIN
TRANSACTION sau đó
@tran_name_variable: tên biến do người dùng định nghĩa, nó có kiểu dữ liệu
char, nchar, varchar, nvarchar
Trang 18Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
Savepoint_name: là tên được chỉ định trong câu lệnh SAVE TRANSACTION
sử dụng savepoint_name khi điều kiện Rollback là nên ảnh hưởng chỉ một phần
của giao dịch
@savepoint_name: là tên biến do người dùng định nghĩa nó có kiểu dữ liệu là
char, nchar, varchar, ncharvar
Rollback Transaction: xoá tất cả những thay đổi trên dữ liệu từ khi bắt đầu giao dịch hoặc từ một điểm dừng (savepoint) Nó cũng giải phóng tài
nguyên mà giao dịch chiếm giữ
Câu lệnh Rollback Transaction chỉ rõ một tên điểm dừng thì sẽ không có bất cứ khoá nào giải phóng
Rollback Transaction: không thể tham chiếu đến một điểm dừng trong các giao dịch phân tán được bắt đầu hoặc giao dịch thực hiện một cách tường
minh bằng câu lệnh Begin Distributed Transaction hoặc nhảy từ một giao dịch
thực hiện đối với tên điểm dừng gần nhất
Nếu một lệnh Rollback Transaction được phát ra trong một lệnh ứng tác thì:
ü Tất cả những thay đổi trên dữ liệu trong giao dịch hiện hành được cuộn lại
ü Lệnh ứng tác tiếp tục thực thi bất cứ câu lệnh nào sau lệnh Rollback Nếu những câu lệnh này làm thay đổi dữ liệu thì những sửa đổi này không được cuộn lại
ü Một nhóm lệnh sau câu lệnh được kích động bởi lệnh ứng tác thì không được thực thi
III CƠ SỞ DỮ LIỆU MICROSOFT SQL SERVER :
A GIỚI THIỆU :
Hệ quản trị cơ sở dữ liệu SQL Server đầu tiên được Sysbase thiết kế trên nền OS/2 sau đó được Microsoft phát triển để chạy trên nền Windows NT
vào những năm đầu thập niên 90 SQL Server đã được nâng cấp qua nhiều
phiên bản và phiên bản mới nhất hiện nay là SQL Server 2000 Ngoài những
ưu điểm trong việc quản trị và sử dụng được dễ dàng hơn nhờ giao diện đồ
hoạ thân thiện với người dùng, SQL Server còn có các đặc điểm quan trọng
sau:
Trang 19Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
• Đa xử lý: có thể thực hiện cùng lúc nhiều tác vụ
• Không phụ thuộc vào mạng: hệ điều hành Windows NT hỗ trợ nhiều kiểu giao thức mạng khác nhau cho phép người dùng có thể lựa chọn giao
thức phù hợp với công việc
• Tính tương thích: SQL Server có thể chạy trên nhiều nền phần cứng khác nhau mà Windows NT đã hỗ trợ
• Độ tin cậy và tính an toàn cao: ngoài cấp độ bảo mật của Windows
NT, SQL Sever còn có thêm ba cấp độ bảo mật: cấp đăng nhập SQL Server,
cấp cơ sở dữ liệu và cấp đối tượng cơ sở dữ liệu
B SQL SERVER VÀ MÔ HÌNH CLIENT/SERVER :
Client /Server có thể được xác định như một ứng dụng được chia thành hai phần: một phần chạy trên Server (máy chủ), và phần khác chạy trên các
Workstations (máy trạm) Phía server của ứng dụng cung cấp độ bảo mật, tính
năng chịu lỗi, hiệu suất, chạy đồng thời, và sao lưu dự phòng tin cậy Phía
Client cung cấp giao diện với người sử dụng và có thể chứa các báo cáo, các
truy vấn và các forms SQL server là phần Server của chương trình, có nhiều
Client khác nhau có thể kết nối vào SQL server, trong đó có cả các tiện ích của
SQL Server, chẳng hạn như SQL Server query analyzer
Các lợi điểm của Server bao gồm :
ü Đáng tin cậy
ü Chạy đồng thời
ü Khoá tinh xảo
ü Chịu lỗi
ü Phần cứng có hiệu suất cao
ü Điều khiển tập trung
Các lợi điểm của Client bao gồm :
ü Dễ sử dụng
ü Hỗ trợ trên nhiều nền phần cứng
ü Hỗ trợ trên nhiều ứng dụng phần mềm
ü Quen thuộc với người dùng
C CÁC KIỂU ĐỐI TƯỢNG :
Các cơ sở dữ liệu trên SQL Server bao gồm cả dữ liệu lẫn đối tượng cơ
sở dữ liệu Đối tượng cơ sở dữ liệu (Database objects) được dùng để chứa dữ
liệu (là một đối tượng ví dụ như là một bảng) hoặc để tương tác với dữ liệu
Trang 20Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
(là một đối tượng ví dụ như là một thủ tục có sẵn) Về cốt lõi mọi thứ do SQL
Server quản lý đều là đối tượng bao gồm các cơ sở dữ liệu SQL và các thứ
mà từng cơ sở dữ liệu chứa đựng Một cơ sở dữ liệu có thể chứa các loại đối
tượng khác nhau như bảng, khung nhìn, chỉ mục, kiểu dữ liệu, trị ngầm định,
các quy tắc, thủ tục có sẵn, bộ trích khởi và các ràng buộc …
hoặc có sự kết nối của hai hay nhiều bảng Bản thân kiểu xem không thực sự
chứa dữ liệu mà chỉ trỏ tới dữ liệu đã được lựa chọn và thể hiện bằng hình
ảnh
Ví dụ : CREAT VIEW tenkhoa AS SELECT tenkhoa FROM khoa
Trang 21Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
Chỉ mục là đối tượng cơ sở dữ liệu dùng để tăng tốc độ truy cập dữ liệu Chỉ mục chứa biến trỏ được sắp xếp theo thứ tự trỏ đến dữ liệu lưu trữ
trong các bảng, cho phép nhanh chóng định vị dữ liệu SQL Server có các
loại chỉ mục:
a Chỉ mục kết cụm (Clustered index ) :
Chỉ mục kết cụm buộc các hàng trong bảng lưu trữ theo thứ tự, dùng một cột của bảng để sắp xếp các hàng Một bảng chỉ có duy nhất một chỉ
mục kết cụm
b Chỉ mục phi cụm (Nonclustered index ) :
Chỉ mục phi cụm không dàn xếp dữ liệu mà chỉ trỏ đến dữ liệu trong bảng Chỉ mục phi cụm yêu cầu nhiều phạm vi lưu trữ hơn chỉ mục kết cụm
nhưng dùng ít phạm vi hơn khi tạo Truy xuất dữ liệu dùng chỉ mục kết cụm
thường nhanh hơn so với chỉ mục phi cụm
c Các chỉ mục duy nhất (Unique index) và không duy nhất unique index) :
(Non-Tính duy nhất xác định dữ liệu có được phép trùng lặp hay không trong chỉ mục Chẳng hạn, có một chỉ mục dựa vào mã số sinh viên, hai
sinh viên không thể có cùng một mã số nếu chỉ mục là duy nhất, mặc định
đối với chỉ mục trong SQL Server là không duy nhất, có nghĩa là cho phép
trùng lặp dữ liệu
Nếu dữ liệu thích hợp, việc tạo một chỉ mục duy nhất có thể nâng cao hiệu suất sử dụng chỉ mục, sẽ không cần tìm tiếp đến cuối sau khi đã
tìm thấy
Chỉ mục Clustered là ứng cử viên tốt cho chỉ mục duy nhất vì SQL Server luôn buộc các chỉ mục Clustered là duy nhất Nếu ta tạo một chỉ
mục Clustered không duy nhất, SQL Server sẽ ngầm tạo thêm một giá trị
khóa để thành chỉ mục duy nhất
d Chỉ mục một cột và chỉ mục nhiều cột :
Nhiều chỉ mục chỉ có một cột, ta cũng có thể tạo ra chỉ mục nhiều cột (chỉ mục hỗn hợp) Chỉ mục nhiều cột tương đối hữu ích vì SQL Server
có thể dùng một chỉ mục trên một bảng trong một truy vấn đơn giản Các
chỉ mục nhiều cột có thể là loại Clustered hay Non-clustered
4 Kiểu dữ liệu ( Datatype ) :
Kiểu dữ liệu định nghĩa hoặc mô tả kiểu của dữ liệu có thể đưa vào một cột và cách nó được lưu trữ trong cơ sở dữ liệu Kiểu dữ liệu phải được
chỉ định cho mọi cột trong bảng SQL Server có thể gộp nhiều kiểu dữ liệu
Trang 22Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
chuẩn, ngoài ra ta còn có thể tạo ra các kiểu dữ liệu tuỳ biến theo nhu cầu
của người sử dụng (kiểu dữ liệu do người dùng định nghĩa)
Các kiểu dữ liệu chuẩn
Kiểu dữ liệu Tên Transact-SQL Approximate Numbers
Binary Character Date & Time Dollars & Cents Exact Numbers Integers
Special Text & Images
Float(n), real Binary(n), varbinary(n) Char(n), varchar(n) Datetime, smalldatetime Money, smallmoney Dacimal, numeric Int, smallint, tinyint Bit, timestamp, user-defined Text, image
vào phải nằm trong miền giá trị chấp nhận được, nếu khơng sẽ nhận được
thơng báo dữ liệu bị sai và cần phải sửa lại dữ liệu đĩ
FROM khoa Thực thi thủ tục , ta được kết quả :
Trang 23Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
Các trình trích khởi thường được các phát triển viên Transac-SQL tạo
ra để bảo đảm sự toàn vẹn dữ liệu bằng cách ngăn không cho những thay đổi
không nhất quán được thực hiện
9 Ràng buộc ( Constraint ) :
Các hạn chế dùng để củng cố tính nguyên vẹn dữ liệu Trong nhiều cách chúng cũng giống như kiểu dữ liệu, trị ngầm định, quy tắc hay bộ trích
khởi, đều dùng để bảo đảm tính nguyên vẹn cho dữ liệu
D KIẾN TRÚC KHO LƯU TRỮ DỮ LIỆU :
1 Trang ( Page ) :
Mọi thông tin trong SQL Server được lưu trữ trong một trang Trang là cấu trúc dữ liệu nhỏ nhất được dùng trong một cơ sở dữ liệu
Mỗi trang có thể lưu giữ được 2 KB ( 2,048 byte) thông tin Một trang gồm
phần đầu trang (header) với 32 bytes dùng để định danh duy nhất dữ liệu lưu
trữ trên trang, 2016 bytes còn lại dùng chứa dữ liệu Phần đầu được SQL
Server dùng để định danh duy nhất dữ liệu lưu trữ trên trang đó SQL Server
có năm kiểu trang khác nhau:
§ Trang phân bổ [allocation pages]: dùng để điều khiển việc phân
bổ các trang cho các bảng và các chỉ mục trong một cơ sở dữ liệu
§ Trang sổ theo dõi và dữ liệu [ data and log pages]: dùng để lưu trữ dữ liệu cơ sở dữ liệu và dữ liệu sổ theo dõi giao dịch
Trang 24Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
§ Trang chỉ mục [index pages]: dùng để lưu trữ thông tin lập chỉ mục
§ Trang phân phối [distributio pages]: dùng để lưu trữ thông tin
về các chỉ mục trong một cơ sở dữ liệu
§ Trang văn bản/hình ảnh [text/image pages]: dùng để lưu trữ các khối văn bản hay các đối tượng nhị phân lớn (BLOB)
2 Liên trang ( Extent page ) :
Liên trang là cấu trúc dữ liệu được hình thành bởi 8 trang liền kề nhau
SQL Server tự động phân bố một liên trang mỗi khi tạo một cơ sở dữ liệu mới
như một bảng chẳng hạn Một liên trang chỉ có thể gộp một đối tượng cơ sở
dữ liệu
3 Đơn vị phân bố ( Allocation unit ) :
Một cấu trúc dữ liệu được hình thành bởi 32 liên trang (256 trang) tương ứng với 512 KB Do đó mỗi khi một cơ sở dữ liệu mới được tạo, không
gian được phân bố từng 512 KB một
4 Các sổ theo dõi giao dịch ( Transaction log ) :
Khi một cơ sở dữ liệu được tạo ra bằng SQL Server, một sổ theo dõi giao dịch cũng được tạo ra cùng lúc Sổ theo dõi giao dịch là khu lưu trữ dành
riêng trên một thiết bị dùng để tự động ghi lại tất cả mọi thay đổi đã thực hiện
cho các đối tượng cơ sở dữ liệu, trước khi các thay đổi đó được thực hiện trên
cơ sở dữ liệu Đây là tính năng dùng lỗi quan trọng của SQL Server giúp
ngăn ngừa một cơ sở dữ liệu không bị phân huỷ
Khi một cơ sở dữ liệu được tạo, ta phải chỉ định vị trí của thiết bị được dùng để lưu trữ sổ theo dõi giao dịch
E CÁCH TẠO CÁC CƠ SỞ DỮ LIỆU :
Tạo một cơ sở dữ liệu , thực ra là ta phân bổ không gian trên một thiết bị
để lưu trữ dữ liệu và các đối tượng cơ sở dữ liệu đồng thời cũng đang tạo ra
các bảng hệ thống tồn tại trong một cơ sở dữ liệu SQL Server
Có được một cơ sở dữ liệu, ta có thể bổ sung các bảng, kiểu xem, chỉ mục
và các đối tượng cần thiết khác hình thành nên cơ sở dữ liệu hoàn chỉnh
Tương tự, ta cũng có hai cách được sử dụng để tạo một cơ sở dữ liệu mới:
1 Tạo một cơ sở dữ liệu bằng SQL Enterprises Manager :
Thực hiện theo các bước :
• Từ cửa sổ Server Manager của SQL Server Manager, mở thư liệu SQL Server
Trang 25Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
• Mở thư liệu Database, lựa New Database từ lệnh đơn (hoặc nhắp phải chuột, chọn New)
• Nhập tên cho cơ sở dữ liệu trong hộp thoại ‘Name’ của Tab
‘General’ , ví dụ là ‘QLDKMH ‘ Khung Database file bắt đầu thay đổi, một
file database có tên QLDKMH_Data với kích thước ban đầu là 1 MB trong
thư mục mặc định Mssql/data Nếu nhìn vào File Properties ở cuối hộp thọai,
nhận thấy tùy chọn Automatically Grow file được chọn với thuộc tính File
grow đã được thiết đặt mặc định , kích thước file tối đa được đặt mặc định là
Unrestricted filegrowth Ta có thể thay đổi hoặc giữ nguyên các thuộc tính
mặc định của cơ sở dữ liệu
• Nhắp chọn Tab Transaction Log, ta thấy có một tên mặc định là
‘QLDKMH_Log’ với kích thước 1 MB
• Nhắp Ok để hoàn thành việc tạo cơ sở dữ liệu mới
2 Tạo cơ sở dữ liệu bằng Transact-SQL :
Cú pháp của điều lệnh Transact-SQL dùng tạo cơ sở dữ liệu mới :
CREAT DATABASE database_name
[ON {[PRIMARY]
( NAME = logical_name, FILENAME=’physical_name’
[.SIZE = size ]
Trang 26Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
[.MAXSIZE = max_size : UNLIMITED ] [.FILEGROWTH = growth_increment ] ) }1 … n]]
[LOG ON
{( NAME = logical_name FILENAME=’physical_name’
[.SIZE = size : UNLIMITED ] [.MAXSIZE = max_size : UNLIMITED ] [.FILEGROWTH = growth_increment ] )}
[1 … n]]
FOR LOAD : FOR ATTACH ] Trong đó :
database_name : tên gán cho cơ sở dữ liệu mới
ON PRIMARY : đặc tả file cơ sở dữ liệu này là thành viên của nhóm file nào , nhóm file mặc định là PRIMARY
NAME : xác định tên file dùng trong SQL Server để gán cho file
cơ sở dữ liệu vật lý trên đĩa cứng
FILENAME : tên đường dẫn và tên file liên quan đến nơi lưu trữ
cơ sở dữ liệu trên đĩa cứng
SIZE : xác định kích thước của file cơ sở dữ liệu (tính theo MB hay KB)
MAXSIZE : xác định kích thước tối đa mà file cơ sở dữ liệu có thể đạt tới (tính theo MB hay KB)
FILEGROWTH : xác định gia lượng dùng để phát triển tự động file cơ sở dữ liệu có thể đạt tới (tính theo MB, KB hay phần trăm kích thước
của file khi phát triển, mặc định là 1 MB)
LOG ON : miêu tả nơi định vị các file nhật ký giao tác và kích thước của chúng
FOR LOAD : tham số này đánh dấu cơ sở dữ liệu chỉ dành cho dbo
FOR ATTACH : tham số này gắn lại một tập hợp các file hình thành nên cơ sở dữ liệu Các file cơ sở dữ liệu phải được tạo trước và sau đó
được tách khỏi SQL Server
3 Ấn định các tuỳ chọn cho cơ sở dữ liệu :
Trang 27Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
Mỗi cơ sở dữ liệu đều có nhiều tuỳ chọn đa dạng mà ta cần thay đổi để
có thể thực hiện một số công việc cơ sở dữ liệu Các tuỳ chọn này có thể
được thay đổi từ SQL Enterprise Manager hoặc từ thủ tục trữ sẵn trong Query
Analyzer Ở đây ta sử dùng SQL Enterprise Manager để thực hiện
Từ SQL Enterprise Manager, nhắp phải vào cơ sở dữ liệu mà ta sẽ thực hiện thay đổi thuộc tính cho các tuỳ chọn, chọn Properties, hộp thoại
Properties xuất hiện với các mục :
a Mục chọn Option :
Gồm có các tuỳ chọn sau :
• DBO use only : tuỳ chọn cấu hình cơ sở dữ liệu để chỉ mình DBO (Database Owner : sở hưũ chủ cơ sở dữ liệu) mới có quyền truy cập cơ
sở dữ liệu đó Ngầm định của tuỳ chọn này là trạng thái tắt
• Single user : tuỳ chọn ấn định mỗi lần chỉ có một người dùng được quyền truy cập cơ sở dữ liệu Được sử dụng khi muốn ngăn không cho
người dùng truy cập một cơ sở dữ liệu nào đó Ngầm định của tuỳ chọn này là
trạng thái tắt
• Read only : tuỳ chọn ấn định cơ sở dữ liệu ở tình trạng chỉ đọc,
không người dùng nào có thể thay đổi các khoản tin trong cơ sở dữ liệu
Ngầm định của tuỳ chọn này là trạng thái tắt
• AN SI NULL Default : tuỳ chọn xác định các cột mới tạo trong một bảng sẽ được ấn định ngầm định là ' null ' hay ' not null '
• Recursive Triggers : Trigger đệ quy xảy ra khi có sự kiện chỉnh sửa dữ liệu trên một bảng làm khởi động một Trgger trên một bảng khác và
bảng này lại khởi động Trigger của bảng ban đầu
• Select into/Bulk copy : nếu ấn định tuỳ chọn này thì sẽ không thực hiện tác vụ theo dõi Tác vụ không ghi sổ theo dõi (Non Logged
Operation ) là tác vụ bỏ qua sổ theo dõi giao dịch nên ta phải sao lưu cơ sở dữ
liệu sau khi thực hiện các sửa đổi Ngầm định của tuỳ chọn này là trạng thái
tắt
• Truncate log on checkpoint : các điểm kiểm tra được dùng để ghi chép các trang dữ liệu đã dùng và đưa các bản ghi từ RAM vào đĩa cứng
Khi hệ thống chạy một điểm kiểm tra, tuỳ chọn này sẽ xóa các giao tác được
chuyển giao từ nhật ký giao tác
• Torn page detection : phát hiện khi nào phần trang ghi chép xuất
hiện trên đĩa ( một dạng dữ liệu hỏng ) Nên chọn tuỳ chọn này
• Auto close : cơ sở dữ liệu sẽ tự động đóng lại khi người dùng
cuối cùng thoát khỏi nó
• Shrink : dùng để giảm kích thước file cơ sở dữ liệu và file nhật
ký
Trang 28Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
• Auto creat statistics : tự động tạo các thống kê trên phần trăm
phân phối giá trị trong cột dữ liệu
• Auto update statistics : kết hợp với Auto creat statistics Theo
thời gian thông tin trong các cột sẽ thay đổi, tuy nhiên các thống kê trên các
cột này sẽ không thay đổi
• Use quoted identifiers : cho phép sử dụng dấu ngoặc kép như
một phần của ký hiệu định danh SQL Server
được cấp quyền này
• Quyền dùng lệnh Backup DB và Backup Log: cho phép người dùng được phép sao lưu cơ sở dữ liệu và nhật ký giao tác
F CÁCH TẠO CÁC ĐỐI TƯỢNG CƠ SỞ DỮ LIỆU :
Hoàn thành việc tạo cơ sở dữ liệu , tiếp theo là việc bổ sung các đối tượng cơ cở dữ liệu cần thiết để lưu trữ dữ liệu của hệ thống
Ví dụ : CREAT TABLE khoa ( makhoa char(2)
tenkhoa char(40) )
Trang 29Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
v Sử dụng SQL Server Enterprise Manager ta có thể tạo bảng mới một cách nhanh chóng và thuận tiện hơn, các bước thực hiện tuần tự như sau:
• Từ SQL Server Enterprise Manager chọn Database, nhắp chọn
database cần tạo bảng
• Nhắp phải vào Table, chọn New Table
• Nhập tên bảng, tên các trường, kiểu dữ liệu, độ rộng các trường, quy định trường có thể có giá trị NULL hay không, và khóa cho bảng
2 Tạo khung nhìn ( View ) :
Có được một hay nhiều bảng trong cơ sở dữ liệu , ta có thể dùng điều lệnh Transact-SQL để tạo các kiểu xem với cú pháp như sau :
CREAT VIEW view_name
[WITH ENCRYPTION]
AS select_statement [WITH CHECK OPTION]
Trong đó : view_name : tên kiểu xem sẽ tạo
Ví dụ : tạo một View đơn giản như sau : CREAT VIEW tenkhoa
Trang 30Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
AS SELECT makhoa,tenkhoa FROM khoa
index_name : tên của chỉ mục sẽ tạo
column_name : cột được chọn làm chỉ mục table_name : tên bảng làm cơ sở cho chỉ mục
Properties trên thanh công cụ, chọn Tab Index/ Keys, tạo các chỉ mục, đặt
thuộc tính cho chỉ mục (Clustered/ NonClustered ), nhắp Close để thoát và lưu
lại những thay đổi
G QUẢN TRỊ TÀI KHOẢN NGƯỜI DÙNG :
Một trong các công việc quan trọng của nhà quản trị cơ sở dữ liệu (DBA: Database Administrator) là tạo và quản trị các ID đăng nhập, ID người
dùng cơ sở dữ liệu, các nhóm, bổ sung hoặc xóa các người dùng trong nhóm
Những công việc này được thực hiện thông qua SQL Enterprise Manager
hoặc bằng các thủ tục dự trữ sẵn
Trang 31Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
1 Đăng nhập và các tài khoản người dùng SQL Server :
SQL Server sử dụng hai kiểu tài khoản :
a ID đăng nhập ( Login Id ) :
Là tên mà SQL Server dùng để định danh người dùng khi đăng nhập Người dùng muốn truy cập dữ liệu trong một cơ sở dữ liệu trên SQL Server, trước hết họ phải đăng nhập SQL Server bằng một Id đăng nhập và
mật khẩu (Password) thích hợp Đăng nhập thành công vào SQL Server,
không đồng nghĩa với việc người dùng này có quyền truy cập mọi dữ liệu
trong một cơ sở dữ liệu do SQL Server quản trị Người dùng cần phải có một
Id người dùng cơ sở dữ liệu thích hợp
v Sử dụng Enterprise Manager để tạo Id đăng nhập ta thực hiện từng bước như sau :
• Từ Enterprise Manager thực hiện chọn tuần tự Security \ Logins \ New Login
• Trong Tab General, nhập tên cho Id đăng nhập sẽ tạo trong hộp thoại ' Login name ' , mật khẩu, Database truy cập mặc định và ngôn ngữ sử
dụng cho Id này
• Trong Tab Server Roles, cấp quyền truy cập cho Id đăng nhập
• Trong Tab Database Access, chọn Database và các quyền mà Id đăng nhập này được truy cập trong từng Database (tương ứng là mỗi Id người
dùng cơ sở dữ liệu cho Database được chọn )
• Nhắp nút ‘Apply’ và ‘Ok’ hoàn thành việc tạo một Id mới Tiếp tục tạo các Id cho người dùng khác theo nhu cầu
Sau khi tạo, SQL Server 2000 kiểm tra tài khoản người dùng có hợp lệ hay
không, có tồn tại trên hệ điều hành NT/2000 hay không Nếu tất cả thông tin
đều hợp lệ, đăng ký thành công
Trang 32Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
Login User
Tạo tài khoản người dùng
Trang 33Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
v Sử dụng thủ tục trữ sẵn để tạo Id đăng nhập, trong cửa sổ của Query Analyzer (hoặc trong các đoạn chương trình ứng dụng ) ta sử dụng thủ
tục trữ sẵn sp_addlogin,dạng đơn giản như sau:
sp_addlogin [@loginname=] ’login’ [,@password=] ‘password’
Trong đó :
login : tên người sử dụng sẽ dùng khi đăng nhập
password : mật khẩu cho tài khoản đăng nhập này, mật khẩu là rỗng
nếu không chỉ ra
Ví dụ : sp_addlogin ’dinhdanh’ ‘matkhau’
b ID người dùng cơ sở dữ liệu (Database user Id ) :
Đây là tên mà SQL Server dùng để định danh người dùng khi sử dụng
cơ sở dữ liệu
Đăng nhập thành công vào SQL Server, muốn truy một cơ sở dữ liệu, người dùng cần phải có Id người dùng cơ sở dữ liệu thích hợp đối với mỗi cơ
sở dữ liệu riêng biệt
Khi tạo Id đăng nhập, Id này sẽ có trong Database mặc định và những
Database mà Id này được truy cập tới khi chọn trong Tab Database Access
v Sử dụng Enterprise Manager để tạo Id người dùng cơ sở dữ liệu
ta thực hiện từng bước như sau :
• Chọn Database muốn cho người dùng sử dụng
• Nhắp phải vào ‘Users ‘, chọn New Database User …
• Trong Tab General, chọn Id đăng nhập sẽ tạo trong hộp thoại '
Login name ' , nhập tên (Id người dùng cơ sở dữ liệu )
• Trong danh sách Database role membership, đặt cho người dùng này thuộc vào nhóm sử dụng nào
• Nhắp nút ‘Ok’ hoàn thành việc tạo một Id mới Tiếp tục tạo các
Id cho người dùng khác theo nhu cầu
Trang 34Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
v Sử dụng thủ tục trữ sẵn để tạo Id đăng nhập, trong cửa sổ của Query Analyzer (hoặc trong các đoạn chương trình ứng dụng ) ta sử dụng thủ
tục trữ sẵn sp_adduser, dạng đơn giản như sau:
sp_adduser [@loginname=] ’login’ [,@databasename=] ‘database’
Trong đó :
login : tên người sử dụng sẽ dùng khi đăng nhập
Database : cơ sở dữ liệu mà ID này được quyền đăng nhập
• Từ Enterprise Manager chọn thư liệu Database để mở các cơ sở
dữ liệu được quản lý trên hệ phục vụ
• Chọn cơ sở dữ liệu nơi ta muốn tạo nhóm mới
• Chọn Roles \ New Database Role…
Trang 35Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
• Nhập tên nhóm mới
• Nhắp nút Add nếu muốn thêm người dùng vào nhóm vừa tạo
• Nhắp ‘Ok’ hoàn thành việc tạo nhóm mới
• Muốn chỉnh sửa quyền truy cập cơ sở dữ liệu cho nhóm người dùng, nhắp đúp vào tên nhóm (hoặc nhắp phải chuột vào tên nhóm, chọn
Properties ), nhắp vào Pemissions để chỉnh sửa quyền truy cập cho nhóm
v Sử dụng thủ tục trữ sẵn để tạo nhóm người dùng mới, trong cửa
sổ của Query Analyzer (hoặc trong các đoạn chương trình ứng dụng ) ta sử
dụng thủ tục trữ sẵn sp_addrole, dạng đơn giản như sau:
sp_addrole [@rolename=] ‘role’
Trang 36Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
1 Lưu dự phòng cơ sở dữ liệu :
Lưu dự phòng cơ sở dữ liệu là tiến trình tạo ra các bản sao dữ liệu ngoài tuyến, được thực hiện nhằm tạo thuận lợi cho việc phục hồi thông tin
trong trường hợp bị hư hỏng, mất dữ liệu hay di dời từ hệ phục vụ này sang
hệ phục vụ khác
Để lưu dự phòng cơ sở dữ liệu ta phải tạo thiết bị lưu dự phòng và xổ các cơ sở dữ liệu vào các thiết bị này
a Tạo các thiết bị lưu dự phòng :
Muốn tạo một thiết bị lưu dự phòng mới, ta thực hiện tuần tự theo các bước :
• Từ Enterprise Manager chọn Management
• Nhắp chuột phải vào Backup, chọn New Backup Device
• Nhập tên và vị trí cho thiết bị sẽ tạo dự phòng
• Nhắp ‘Ok’ để hoàn thành việc tạo một thiết bị lưu dự phòng mới
b Xổ các cơ sở dữ liệu vào thiết bị (tạo tập tin Backup ) :
Muốn xổ các cơ sở dữ liệu vào thiết bị, ta thực hiện theo các bước sau:
• Từ Enterprise Manager chọn Management
• Nhắp chuột phải vào Backup, chọn Backup Database (hoặc nhắp phải vào Database, chọn All Tasks, chọn Backup Databasse )
• Chọn Database và thiết bị dùng trong đợt lưu dự phòng
• Chọn tên file Backup sẽ tạo ra sau khi hoàn thành
• Chọn ‘Ok’ để khởi động ngay đợt lưu dự phòng hoặc chọn Schedule để chạy vào lần sau
Trang 37Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
2 Phục hồi cơ sở dữ liệu :
Để phục hồi cơ sở dữ liệu , ta thực hiện theo các bước :
• Từ Enterprise Manager tuần tự chọn menu Tools\ Database Backup\ Restore (hoặc nhắp phải vào Database, chọn All Tasks, chọn
Restore Database )
• Chọn cơ sở dữ liệu (nguồn) muốn phục hồi (từ Database / Filegroups or Flies / From Device )
• Chọn (đặt ) tên cho cơ sở dữ liệu sau khi được phục hồi (đích)
• Nhắp ‘Ok’ để bắt đầu việc phục hồi cơ sở dữ liệu
• Tiếp tục thực hiện đối với các cơ sở dữ liệu khác nếu cần