Bài giảng SQL Server (Bản đẹp)

1.1 Các hệ thống SQL Server

SQL Server 2000 là một hệ thống quản lý cơ sở dữ liệu (Relational Database

Management System (RDBMS) ) sử dụng Transact-SQL để trao đổi dữ liệu giữa Client

computer và SQL Server computer. Một RDBMS bao gồm databases, database engine và

các ứng dụng, dùng để quản lý dữ liệu và các bộ phận khác nhau trong RDBMS.

SQL Server 2000 được tối ưu để có thể chạy trên môi trường cơ sở dữ liệu rất lớn

(Very Large Database Environment) lên đến Tera-Byte và có thể phục vụ cùng lúc cho

hàng ngàn user. SQL Server 2000 có thể kết hợp "ăn ý" với các server khác như

Microsoft Internet Information Server (IIS), E-Commerce Server, Proxy Server.

1.2 Các công cụ của SQL Server

a) SQL Server có 7 phiên bản:

* Enterprise: Chứa đầy đủ các đặc trưng của SQL Server, có thể chạy tốt trên hệ

thống lên đến 32 CPUs và 64 GB RAM. Thêm vào đó nó có các dịch vụ giúp cho việc

phân tích dữ liệu rất hiệu quả (Analysis Services)

* Standard: Rất thích hợp cho các công ty vừa và nhỏ vì giá thành rẻ hơn nhiều so

với Enterprise Edition, nhưng lại bị giới hạn một số chức năng cao cấp (advanced

features) khác, edition này có thể chạy tốt trên hệ thống lên đến 4 CPU và 2 GB RAM.

* Personal: được tối ưu hóa để chạy trên PC nên có thể cài đặt trên hầu hết các phiên

bản windows kể cả Windows 98.

* Developer: Có đầy đủ các tính năng của Enterprise Edition nhưng được chế tạo đặc

biệt như giới hạn số lượng người kết nối vào Server cùng một lúc. Ðây là edition mà

các bạn muốn học SQL Server cần có. Chúng ta sẽ dùng edition này trong suốt khóa

học. Edition này có thể cài trên Windows 2000 Professional hay Win NT Workstation.

* Desktop Engine (MSDE): Ðây chỉ là một engine chạy trên desktop và không có

user interface (giao diện). Thích hợp cho việc triển khai ứng dụng ở máy client. Kích

thước database bị giới hạn khoảng 2 GB.

* Win CE: Dùng cho các ứng dụng chạy trên Windows CE.5

* Trial: Có các tính năng của Enterprise Edition, download free, nhưng giới hạn thời

gian sử dụng.

b) Cài đặt SQL Server:

Khác với một số phần mềm khác như Microsoft Office, Visual Studio, Delphi,.

việc cài đặt Microsoft SQL Server không đơn giản. Do đó, sẽ hướng dẫn bạn các bước để

tự cài đặt cơ sở dữ liệu Microsoft SQL Server Personal.

Đây là phiên bản làm việc trong môi trường Windows Me, Windows 98,

Windows NT Workstation 4.0 hoặc Windows 2000 Professional. Bạn có thể cài đặt và

sử dụng Microsoft SQL Server trên máy tính đơn (Stand-Alone) mà không cần phải cài

đặt Windows NT Server hoặc không cần trang bị một hệ thống mạng máy tính.

pdf 181 trang yennguyen 5020
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng SQL Server (Bản đẹp)", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng SQL Server (Bản đẹp)

Bài giảng SQL Server (Bản đẹp)
 1
MỤC LỤC 
Chương 1. TỔNG QUAN SQL SERVER 2000 ................................................... 4 
1.1 Các hệ thống SQL Server .................................................................................................. 4 
1.2 Các công cụ của SQL Server ............................................................................................. 4 
Chương 2. QUẢN LÝ CÁC DỊCH VỤ SQL SERVER ..................................... 15 
2.1 Các dịch vụ SQL Server .................................................................................................. 15 
2.2 Sử dụng trình quản lý dịch vụ SQL Server ....................................................................... 15 
2.2.1 Tiện ích Book Online................................................................................................ 15 
2.2.2 Tiện ích Client NetWork Utility ................................................................................ 16 
2.2.3 Tiện ích Import and Export Data ............................................................................... 17 
2.2.4 Tiện ích Profiler........................................................................................................ 17 
2.2.5 Tiện ích Query Analyzer ........................................................................................... 18 
2.2.6 Tiện ích Server Network Utility ................................................................................ 19 
2.2.7. Tiện ích Service Manager ........................................................................................ 19 
2.3 Sử dụng SQL Server Enterprise Manager ........................................................................ 20 
Chương 3. TẠO CƠ SỞ DỮ LIỆU ..................................................................... 22 
3.1 Các hệ thống Cơ sở dữ liệu .............................................................................................. 22 
3.1.1 Khái niệm về cơ sở dữ liệu ....................................................................................... 22 
3.1.2 Ý nghĩa của từng loại cơ sở dữ liệu đã được tạo tự động trong quá trình cài đặt 
Microsoft SQL Server ....................................................................................................... 22 
3.1.3 Các tập tin vật lý lưu trữ cơ sở dữ liệu ...................................................................... 23 
3. 2 Tạo cơ sở dữ liệu ............................................................................................................ 25 
3.2.1 Các thuộc tính của một cơ sở dữ liệu trong Microsoft SQL Server ............................ 25 
3.2.2 Tạo Cơ sở dữ liệu (Sử dụng tiện ích Enterprise Manager) ......................................... 26 
3.2.3 Xóa cơ sở dữ liệu ...................................................................................................... 29 
Chương 4. TẠO VÀ QUẢN LÝ BẢNG (Table) ................................................ 32 
4.1 Khái niệm về bảng........................................................................................................... 32 
4.1.1 Khái niệm ................................................................................................................. 32 
4.1.2 Các thuộc tính của bảng ............................................................................................ 32 
4.2 Các kiểu dữ liệu .............................................................................................................. 33 
4.3 Tạo bảng và quản lý bảng ................................................................................................ 36 
4.3.1 Tạo cấu trúc bảng dữ liệu .......................................................................................... 36 
4.3.2 Quản lý bảng ........................................................................................................... 42 
Chương 5. BIỂU ĐỒ CƠ SỞ DỮ LIỆU (DataBase Diagram) .......................... 63 
5.1 Tạo một DataBase Diagram ............................................................................................. 63 
5.1.1 Khái niệm về mô hình quan hệ dữ liệu ...................................................................... 63 
5.1.2 Tạo mới mô hình quan hệ dữ liệu.............................................................................. 63 
5.2 Quản lý các đối tượng CSDL trong DataBase Diagram ................................................... 66 
Chương 6. GIỚI THIỆU NGÔN NGỮ TRUY VẤN DỮ LIỆU SQL ............... 70 
6.1 Các lệnh truy vấn và thao tác trên dữ liệu của SQL .......................................................... 70 
6.1.1 Lệnh INSERT INTO ................................................................................................ 70 
6.1.2 Lệnh DELETE FROM .............................................................................................. 73 
6.1.3 Lệnh UPDATE SET ................................................................................................. 76 
 2
6.1.4 Lệnh SELECT FROM .............................................................................................. 78 
6.1.5 Truy vấn con ............................................................................................................ 96 
6.2 Các hàm của SQL Server ................................................................................................102 
6.2.1 Các hàm toán học ....................................................................................................102 
6.2.2 Các hàm xử lý chuỗi ký tự .......................................................................................103 
6.2.3 Các hàm xử lý ngày tháng và thời gian ....................................................................103 
6.3 Bảng ảo (Virtual table - view) trong SQL SERVER .......................................................103 
6.3.1 Khái niệm về bảng ảo ..............................................................................................104 
6.3.2 Tạo bảng ảo bằng tiện ích Enterprise Manager .........................................................104 
6.3.3 Xem và cập nhật dữ liệu bảng ảo .............................................................................107 
6.3.4 Hủy bỏ bảng ảo........................................................................................................108 
6.3.5 Tạo mới bảng ảo bằng lệnh CREATE VIEW ...........................................................109 
6.3.6 Sửa đổi nội dung bảng ảo .........................................................................................114 
Chương 7. TẠO VÀ QUẢN LÝ STORE PROCEDURE ............................... 116 
7.1 Khái niệm Store Procedure (thủ tục nội tại) ....................................................................116 
7.2 Tạo Store Procedure .......................................................................................................118 
7.2.1 Tạo mới một thủ tục nội tại ......................................................................................118 
7.2.2 Gọi thực hiện thủ tục nội tại .....................................................................................120 
7.2.3 Hủy bỏ thủ tục nội tại ..............................................................................................121 
7.2.4 Thay đổi nội dung của thủ tục nội tại .......................................................................121 
7.2.5 Tham số bên trong thủ tục nội tại .............................................................................123 
7.3 Quản lý Store Procedure .................................................................................................128 
7.3.1 Thủ tục lưu trữ (Stored procedure) ...........................................................................128 
7.3.2 Các hàm cập nhật, xóa, và một số ví dụ về cách sử dụng các hàm Store Procedure ..129 
7.3.3 Biểu thức Case.........................................................................................................131 
7.3.4 Cấu trúc điều khiển ..................................................................................................135 
Chương 8. TẠO TRANSACTION VÀ TRIGGER ........................................ 143 
8.1 Giao tác (Transaction) ....................................................................................................143 
8.1.1 Khái niệm về giao tác ..............................................................................................143 
8.1.2 Giao tác không tường minh ......................................................................................144 
8.2 Cách tạo (Transaction) ...................................................................................................145 
8.2.1 Giao tác tường minh ................................................................................................145 
8.2.2 Lệnh chỉ định bắt đầu một giao tác ..........................................................................146 
8.2.3 Các lệnh chỉ định kết thúc một giao tác ....................................................................147 
8.2.4 Phân vùng trong giao tác..........................................................................................148 
8.2.5 Kiểm lỗi bên trong giao tác ......................................................................................150 
8.3 Trigger ...........................................................................................................................153 
8.3.1 Khái niệm ................................................................................................................153 
8.3.2 Cú pháp ...................................................................................................................153 
8.3.3 Lệnh xóa Trigger .....................................................................................................153 
Chương 9. SAO LƯU VÀ KHÔI PHỤC DỮ LIỆU......................................... 155 
* Những lý do phải sao lưu và khôi phục dữ liệu. .............................................................155 
9.1 Các phương pháp sao lưu dữ liệu ....................................................................................155 
9.1.1 Các loại BACKUP ...................................................................................................155 
9.1.2 Sao lưu cơ sở dữ liệu - BACKUP DATABASE .......................................................155 
9.1 Màn hình Backup Database ............................................................................................156 
 3
9.2 Các phương pháp khôi phục dữ liệu................................................................................156 
9.2.1 Các mô hình phục hồi dữ liệu ..................................................................................156 
9.2 Màn hình đặt mô hình khôi phục dữ liệu ........................................................................157 
9.2.2 Khôi phục dữ liệu – RESTORE DATABASE ..........................................................158 
9.3 Màn hình khôi phục dữ liệu ............................................................................................158 
Chương 10. QUẢN LÝ - BẢO MẬT VÀ NGƯỜI DÙNG TRONG SQL 
SERVER ............................................................................................................ 159 
10.1 Khái niệm .....................................................................................................................159 
10.2 Sử dụng Enterprise Manager cấp phát quyền cho người dùng .......................................159 
10.2.1 Tạo tài khoản đĕng nhập (Login Acount) ...............................................................159 
10.2.2 Thay đổi thuộc tính cho Login ...............................................................................160 
10.2.3 Cấp quyền thực thi trên mỗi CSDL ........................................................................161 
10.2.4 Cấp quyển tạo đối tượng trên CSDL ......................................................................161 
Xóa User trên một CSDL: ................................................................................................161 
Tạo User với Login đã có: ................................................................................................161 
10.2.5 Xóa tài khoản đĕng nhập ........................................................................................161 
10.3 Sử dụng Query Analyzer cấp phát quyền cho người dùng .............................................161 
10.3.1 Tạo tài khoản đĕng nhập (Login Acount): ..............................................................161 
10.3.2 Thay đổi mật khẩu .................................................................................................162 
10.3.3 Cấp quyền truy xuất CSDL hiện hành cho Login ...................................................162 
10.3.4 Xóa quyền truy xuất CSDL hiện hành ....................................................................163 
10.3.5 Cấp quyền thực thi trên CSDL ...............................................................................163 
10.3.6 Từ chối quyền thực thi trên CSDL .........................................................................164 
10.3.7 Xóa bỏ quyền thực thi đã cấp hoặc từ chối trên CSDL ...........................................164 
10.3.8 Cấp quyền tạo đối tượng trong CSDL ....................................................................165 
10.3.9 Từ chối quyền tạo đối tượng trên CSDL ................................................................165 
10.3.10 Xóa bỏ quyền tạo đối tượng đã cấp hoặc từ chối trên CSDL ................................165 
10.4. Vai trò của User trong SQL Server ..............................................................................165 
10.4.1 Tạo vai trò trên CSDL ...........................................................................................165 
10.4.2 Thêm User vào Role ..............................................................................................166 
BÀI TẬP ............................................................................................................ 167 
TÀI LIỆU THAM KHẢO ................................................................................. 181 
 4
Chương 1. TỔNG QUAN SQL SERVER 2000 
1.1 Các hệ thống SQL Server 
SQL Server 2000 là một hệ thống quản lý cơ sở dữ liệu (Relational Database 
Management System (RDBMS) ) sử dụng Transact-SQL để trao đổi dữ liệu giữa Client 
computer và SQL Server computer. Một RDBMS bao gồm databases, database engine và 
các ứng dụng, dùng để quản lý dữ liệu và các bộ phận khác nhau trong RDBMS. 
SQL Server 2000 được tối ưu để có thể chạy trên môi trường cơ sở dữ liệu rất lớn 
(Very Large Database Environment) lên đến Tera-Byte và có thể phục vụ cùng lúc cho 
hàng ngàn user. SQL Server 2000 có thể kết hợp "ĕn ý" với các server khác như 
Microsoft Internet Information Server (IIS), E-Commerce Server, Proxy Server.... 
1.2 Các công cụ của SQL Server 
a) SQL Server có 7 phiên bản: 
* Enterprise: ... ,...n ] } FROM security_account [ ,...n ] 
Ví dụ: DENY CREATE TABLE FROM Joe, [Corporate\BobJ] 
10.3.10 Xóa bỏ quyền tạo đối tượng đã cấp hoặc từ chối trên CSDL 
REVOKE { ALL | statement [ ,...n ] } FROM security_account [ ,...n ] 
Ví dụ: REVOKE CREATE TABLE FROM Joe, [Corporate\BobJ] 
10.4. Vai trò của User trong SQL Server 
SQL Server hổ trợ 2 nhóm roles:sion 28—SQL Server Security 321 
o Vai trò trên SQL Server Chứa các quyền quản trị SQL Server 
o Vai trò trên Database: Chứa các quyền quản lý và thực thi trên các đối tượng 
của CSDL. Ngoài các vai trò được cung cấp bởi SQL Server có thể tạo thêm 
vai trò khác. 
10.4.1 Tạo vai trò trên CSDL 
* Trong EM: Mở CSDL, Click phải vào mục Roles và chọn New Database Role, 
Nhập tên Role mới và click nút Add để thêm User 
* Trong QA: SP_ADDROLE [@rolename =] 'role' [ , [@ownername =] 'owner'] 
Ví dụ: Trong CSDL QLDeTai thêm role 'QuanLy' 
SP_ADDROLE 'QuanLy' 
 166
Go 
GRANT SELECT ON DeTai TO QuanLy 
10.4.2 Thêm User vào Role 
SP_ADDROLEMEMBER [@rolename =] 'role', 
 [@membername =] 'UserName' 
Ví dụ: Cấp quyền truy cập CSDL QLDeTai cho User và thêm vai trò ‘QuanLy’ cho User. 
USE QLDeTai 
GO 
EXEC SP_GRANTDBACCESS 'Server4\User01', 'Hong' 
GO 
EXEC SP_ADDROLEMEMBER 'QuanLy', 'Hong' 
 167
BÀI TẬP 
Bài 1: 
Table SINHVIEN 
HOSV TENSV MASV NGAYSINH PHAI MAKHOA 
Tran Minh Son S001 1985-05-01 Nam CNTT 
Nguyen Quoc Bao S002 1986-06-15 Nam CNTT 
Phan Anh Tung S003 1983-12-20 Nam QTKD 
Bui Thi Anh Thu S004 1985-02-01 Nu QTKD 
Le Thi Lan Anh S005 1987-07-03 Nu DTVT 
Nguyen Thi Lam S006 1984-11-25 Nu DTVT 
Phan Thi Ha S007 1988-07-03 Nu CNTT 
Tran The Dung S008 1985-10-21 Nam CNTT 
Table KHOA 
MAKHOA TENKHOA 
AVAN Khoa anh van 
CNTT Cong nghe thong tin 
DTVT Dien tu vien thong 
QTKD Quan tri kinh doanh 
Table MONHOC 
TENMH MAMH SOTIET 
Anh van AV 45 
Co so du lieu CDDL 45 
Ky thuat lap trinh KTLT 60 
Ke toan tai chinh KTLT 45 
Toan cao cap TCC 60 
Tin hoc van phong THVP 30 
Tri tue nhan tao TTNT 60 
 168
Table KETQUA 
MASV MAMH LANTHI DIEM 
S001 CSDL 1 4 
S001 TCC 1 6 
S002 CSDL 1 3 
S002 CSDL 2 6 
S003 KTTC 1 5 
S004 AV 1 8 
S004 THVP 1 4 
S004 THVP 2 8 
S006 TCC 1 5 
S007 AV 1 2 
S007 AV 2 9 
S007 KTLT 1 6 
S008 AV 1 7 
Câu 1: Tạo CSDL, các bảng và các khoá ngoại cho trên 
Câu 2: Xóa các ràng buộc khoá ngoại tham chiếu đến bảng SINHVIEN và bảng 
MONHOC 
Câu 3: Xóa bảng KHOA và bảng MONHOC 
Câu 4: Tạo lại các bảng và các khóa ngoại đã xóa ở câu 2 và 3 
Câu 5: Nhập dữ liệu cho tất cả các bảng 
Câu 6: Sửa số tiết của môn "Tri Tue Nhan Tao" lại 50 tiết 
Câu 7: Xóa kết qủa của sinh viên có mã sinh viên S001 
Câu 8: Chèn lại sinh viên S001 vừa xóa ở câu 7 
Câu 9: Sửa sinh viên 'Nguyen Thi Lam' thành 'Nguyen Thanh Son' và phái thành 'Nam' 
Câu 10: Chuyển sinh viên 'Le Thi Lan Anh' sang khoa CNTT 
Câu 11: Cho biết kết qủa học tập của sinh viên có mã S007 
Câu 12: Liệt kê những sinh viên sinh vào ngày 03 tháng 07 
Câu 13: Cho biết danh sách sinh viên mà họ có chứa chữ Anh 
Câu 14: Cho biết kết quả học tập gồm: HOSV, TENSV, MAMH, LANTHI, DIEM của 
sinhviên S007 
 169
Câu 15: Cho biết kết quả học tập gồm: HOSV, TENSV, TENMH, LANTHI, DIEM của 
sinh viên S007 
Câu 16: Cho biết danh sách sinh viên Nam khoa 'Cong Nghe Thong Tin' sắp tĕng dần 
theo tên 
Câu 17: Cho danh sách các môn học trên 40 tiết và có tên bắt đầu bằng chữ T 
Câu 18: Liệt kê những sinh viên từ 22 tuổi trở lên khoa 'Cong Nghe Thong Tin' và khoa 
'Dien Tu Vien Thong' 
Câu 19: Cho biết tên khoa nào không có Sinh Viên 
Câu 20: Cho danh sách sinh viên chưa học môn nào, thông tin gồm Ho, Ten, Ngaysinh, 
Tenkhoa 
Câu 21: Cho danh sách những sinh viên đã học môn có mã AV, sắp giảm dần theo ngày 
sinh. Thông tin hiển thị gồm MASV,HOSV,TENSV,NGAYSINH,ten KHOA 
Câu 22: Cho biết tên sinh viên được điểm cao nhất 
Câu 23: Cho biết sinh viên nào rớt môn CSDL ở lần thi thứ nhất 
Câu 24: Cho biết sinh viên nào rớt môn CSDL ở lần thi thứ nhất mà chưa thi lại lần 2 
Câu 25: Đếm số lượng sinh viên của khoa 'Quan Tri Kinh Doanh' 
Câu 26: Đếm số lượng sinh viên của từng khoa 
Câu 27: Cho biết tên khoa có đông sinh viên nhất 
Câu 28: Cho biết điểm thấp nhất của mỗi môn học 
Câu 29: Cho biết tên môn học nào chưa có sinh viên học 
Câu 30: Cho biết điểm trung bình lần thi thứ nhất của sinh viên S004 
Câu 31: Cho biết điểm trung bình, điểm lớn nhất, điểm nhỏ nhất lần thứ nhất của từng 
sinh viên. Thông tin gồm TenSV, TenKhoa, DiemTB 
 170
Bài 2: 
Người ta cần viết chương trình quản lý điểm và đề tài tốt nghiệp tại một khoa của 
một trường đại học với các đặc trưng như sau: 
- Một sinh viên có thể làm nhiều đề tài 
- Một đề tài có thể có nhiều sinh viên tham gia 
- Một đề tài có một giáo viên hướng dẫn và một giáo viên phản biện 
- Điểm của một sinh viên là trung bình cộng của 5 điểm 
 (GVHD + GVPB + 3*GVUV) 
- Một giáo viên có 2 tham số là học vị và học hàm. 
- Một học vị thuộc một chuyên nghành nhất định. 
- Một sinh viên phải trải qua 2 kỳ bảo vệ là thử và thật. 
- Điểm số chỉ cho trong buổi bảo vệ thật 
- Một hội đồng phải có một chủ tịch 
- Chủ tịch hội đồng có thể vừa phản biện hay hướng dẫn 
- Hội đồng thật có thể khác hội đồng thử 
- Cần lưu dấu vết học vị cho các giáo viên 
- Một giáo viên có thể hướng dẫn nhiều đề tài, phản biện nhiều đề tài. 
Sau khi phân tích ta có mô hình ERD như sau 
SINHVIEN(MSSV, TENSV, SODT, LOP, DIACHI) 
DETAI(MSDT, TENDT) 
SV_DETAI(MSSV, MSDT) 
GIAOVIEN(MSGV, TENGV, DIACHI, SODT, MSHHAM, NAMHH) 
HOCVI(MSHV, TENHV) 
CHUYENNGHANH(MSGV, TENCN) 
GV_HV_CN(MSGV, MSHV, MSCN, NAM) 
HOCHAM(MSHH, TENHH) 
GV_HDDT(MSGV, MSDT, DIEM) 
GV_PBDT(MSGV, MSDT, DIEM) 
GV_UVDT(MSGV, MSDT, DIEM) 
HOIDONG(MSHD, PHONG, TGBD, NGAYHD, TINHTRANG, MSGVCTHD) 
HOIDONG_GV(MSHD, MSGV) 
DOIHONG_DT(MSHD, MSDT, QUYETDINH) 
 171
Kiểu dữ liệu của các bảng 
Tên bảng Tên cột Kiểu dữ liệu Ghi chú 
SINHVIEN MSSV Char(6) Khoá chính 
TENSV Varchar(30) Not null 
SODT Varchar(10) 
LOP Char(6) Not null 
DIACHI Char(50) Not null 
Tên bảng Tên cột Kiểu dữ liệu Ghi chú 
DETAI MSDT Char(6) Khoá chính 
TENDT Varchar(30) Not null 
Tên bảng Tên cột Kiểu dữ liệu Ghi chú 
SV_DETAI MSSV Char(6) Tc SINHVIEN 
MSDT Char(6) Tc DETAI 
Tên bảng Tên cột Kiểu dữ liệu Ghi chú 
GIAOVIEN MSGV Smallint Khoá chính 
TENGV Varchar(30) Not null 
DIACHI Varchar(50) Not null 
SODT Varchar(10) Not null 
MSHHAM Smallint Tc HOCHAM 
NAMHH SmallDatetime Not null 
Tên bảng Tên cột Kiểu dữ liệu Ghi chú 
HOCVI MSHV Smallint Khoá chính 
TENHV Varchar(10) Not null 
Tên bảng Tên cột Kiểu dữ liệu Ghi chú 
CHUYENNGANH MSCN Smallint Khoá chính 
TENCN Varchar(30) Not null 
 172
Tên bảng Tên cột Kiểu dữ liệu Ghi chú 
GV_HV_CN MSGV Smallint Khoá chính, tc 
GIAOVIEN 
MSHV Smallint Khoá chính, tc HOCVI 
MSCN Smallint Khoá chính, tc 
CHUYENNGHANH 
NAM SmallDatetime Not null 
Tên bảng Tên cột Kiểu dữ liệu Ghi chú 
HOCHAM MSHH Smallint Khoá chính 
TENHH Varchar(20) Not null 
Tên bảng Tên cột Kiểu dữ liệu Ghi chú 
GV_HDDT MSGV Smallint Khoá chính, tc 
GIAOVIEN 
MSDT Char(6) Khoá chính, tc DETAI 
DIEM Float Not null 
Tên bảng Tên cột Kiểu dữ liệu Ghi chú 
GV_PBDT MSGV Smallint Khoá chính, tc 
GIAOVIEN 
MSDT Char(6) Khoá chính, tc 
DETAI 
DIEM Float Not null 
Tên bảng Tên cột Kiểu dữ liệu Ghi chú 
GV_UVDT MSGV Smallint Khoá chính, tc 
GIAOVIEN 
MSDT Char(6) Khoá chính, tc 
DETAI 
DIEM Float Not null 
 173
Tên bảng Tên cột Kiểu dữ liệu Ghi chú 
HOIDONG MSHD Smallint Khoá chính 
PHONG Smallint 
TGBD SmallDatetime 
NGAYHD SmallDatetime Not null 
TINHTRANG Varchar(30) Not null 
MSGVCTHD Smallint tc GIAOVIEN 
Tên bảng Tên cột Kiểu dữ liệu Ghi chú 
HOIDONG_GV MSHD Smallint Khoá chính, tc 
HOIDONG 
MSGV Smallint Khoá chính, tc 
GIAOVIEN 
Tên bảng Tên cột Kiểu dữ liệu Ghi chú 
HOIDONG_DT MSHD Smallint Khoá chính, tc 
HOIDONG 
MSDT Char(6) Khoá chính, tc 
DETAI 
QUYETDINH Char(10) 
Ghi chú: tc là tham chiếu 
Ví dụ: tc GIAOVIEN là tham chiếu đến table GIAOVIEN 
MỘT SỐ DỮ LIỆU MẪU 
1. Table SINHVIEN 
MSSV TENSV DIACHI LOP SODT 
97TH01 Nguyễn Vĕn An 12 NTMK 97TH01 9688543 
97TH02 Trần Hùng 13/4 LCT 97TH01 8453443 
97TH03 Lê Thuý Hằng 20 Pasteur 97TH01 8544457 
97TH04 Ngô Khoa 54/12 LHP 97TH02 8545439 
97TH05 Phạm Tài 12 HBT 97TH02 8149023 
97TH06 Đinh Tiến 31 THĐ 97TH01 8956123 
 174
2. Table DETAI 
MSDT TENDT 
97001 Quản lý thư viện 
97002 Nhận dạng vân tay 
97003 Bán đấu giá trên mạng 
97004 Quản lý siêu thị 
97005 Xử lý ảnh 
3. Table SV_DETAI 
MSSV MSDT 
97TH01 97004 
97TH02 97005 
97TH03 97001 
97TH04 97002 
97TH05 97003 
97TH06 97005 
4. Table HOCHAM 
MSHH TENHH 
1 Phó giáo sư 
2 Giáo sư 
5. Table GIAOVIEN 
MSGV TENGV DIACHI SODT MSHH NAMHH 
1 Nguyễn Vĕn A 11 NVĐ 8754321 1 1996 
2 Trần Thu Trang 56 XVNT 8964334 1 1996 
3 Lê Trung 12/5 CMTT 8903561 1 1996 
4 Nguyễn Thị Loan 321 BTX 8012864 2 1997 
5 Chu Vĕn Tiên 1/60 TVĐ 8157906 2 1997 
 175
6. Table HOCVI 
MSHV TENHV 
1 KS 
2 CN 
3 Th.S 
4 TS 
5 TSKH 
7. Table CHUYENNGANH 
MSCN TENCN 
1 Hệ thống thông tin 
2 Mạng 
3 Đồ họa 
4 Công nghệ phần mềm 
8. Table GV_HV_CN 
MSGV MSHV MSCN NAM 
1 1 1 1999 
1 1 2 1999 
1 2 1 1998 
2 3 2 1997 
3 2 4 1997 
4 3 2 1996 
9. Table GV_HDDT 
MSGV MSDT DIEM 
1 97001 7 
2 97002 8 
5 97003 9 
4 97004 8.5 
3 97005 7 
 176
10. Table GV_PBDT 
MSGV MSDT DIEM 
1 97005 5 
2 97001 7 
5 97004 6 
4 97003 8.5 
3 97002 8 
6 97006 9 
11. Table GV_UVDT 
MSGV MSDT DIEM 
5 97005 6 
2 97005 5 
4 97005 5 
3 97001 7 
4 97001 7 
5 97001 8 
3 97003 10 
1 97003 7 
2 97003 7 
1 97004 8 
2 97004 9 
3 97004 5 
1 97002 9 
4 97002 9 
5 97002 6 
1 97006 7 
2 97006 7 
4 97006 7 
12. Table HOIDONG 
MSHD PHONG TGBD NGAYHD TINHTRANG MSGVCTHD 
1 002 7:00 30/10/2001 Thật 1 
2 102 7:00 30/10/2001 Thử 2 
3 003 8:00 31/10/2001 3 
 177
13. HOIDONG_GV 
MSHD MSGV 
1 1 
1 2 
1 3 
1 4 
2 3 
2 2 
2 5 
2 4 
3 1 
3 2 
3 3 
3 4 
4 3 
4 2 
4 5 
4 4 
14. HOIDONG_DT 
MSHD MSDT QUYETDINH 
1 97001 Được 
1 97002 Được 
2 97003 Không 
2 97004 Không 
1 97005 Được 
3 97001 Không 
3 97002 Được 
3 97004 Không 
4 97003 Không 
4 97005 Không 
4 97006 Được 
 178
A. VIEW 
1. Ứng với mỗi đề tài cho biết: Tên đề tài, tên sinh viên tham gia, tên giáo viên hướng 
dẫn, tên giáo viên phản biện. 
2. Ứng với mỗi giáo viên cho biết: Tên đề tài hướng dẫn. 
3. Ứng với mỗi giáo viên cho biết: Tên đề tài phản biện. 
4. Ứng với mỗi hội đồng bảo vệ thử cho biết: Tên đề tài, quyết định được bảo vệ thật 
không? 
5. Ứng với mỗi hội đồng bảo vệ thật cho biết: Tên đề tài, điểm cuối cùng của mỗi đề 
tài (DIEMTB) 
6. Ứng với mỗi đề tài cho biết: Tên đề tài, tên sinh viên, điểm của mỗi giáo viên 
thuộc hội đồng. 
7. Ứng với mỗi hội đồng cho biết: Thời gian, ngày, số lượng đề tài bảo vệ, tên chủ 
tịch hội đồng. 
8. Ứng với mỗi hội đồng cho biết: Tên giáo viên thuộc hội đồng và số điện thoại. 
9. Ứng với mỗi giáo viên cho biết: Số đề tài hướng dẫn, số đề tài phản biện, số đề tài 
là ủy viên. 
B. STORED PROCEDUREDS VỚI THAM SỐ VÀO 
1. Tham số đưa vào là MSGV, TENGV, SODT, DIACHI, MSHH, NAMHH. Trước 
khi insert dữ liệu cần kiểm tra MSHH đã tồn tại trong table HOCHAM chưa, nếu 
chưa trả ra giá trị 0. 
2. Tham số đưa vào là MSGV, TENGV, SODT, DIACHI, MSHH, NAMHH. Trước 
khi insert dữ liệu cần kiểm tra MSGV có trùng không, nếu trùng trả về giá trị 0. 
3. Giống câu 1 và câu 2 kiểm tra xem MSGV có trùng không . MSHH tồn tại chưa, 
nếu MSGV trùng trả về 0, nếu MSHH chưa tồn tại trả về 1, ngược lại cho insert dữ 
liệu. 
4. Đưa vào MSDT cũ, TENDETAI mới hãy cập nhật TENDETAI mới với MSDT cũ 
không đổi nếu không tìm thấy trả về 0 ngược lại cập nhật và trả về 1. 
5. Tham số đưa vào MSSV, TENSV mới, DIACHI mới thủ tục dùng để cập nhật sinh 
viên trên. Nếu không tìm thấy trả về 0, ngược lại cập nhật và trả về 1. 
6. Đưa vào MSDT hãy chuyển đổi sao cho với đề tài đó 
GVHD → GVPB, GVPB → GVHD. Nếu không tìm thấy trả về giá trị 0. 
7. Đưa vào TENGV, TENSV. Hãy chuyển đề tài của sinh viên đó cho giáo viên mới 
hướng dẫn với TENGV là tham số vào. Nếu không tìm thấy, hoặc tìm thấy nhưng 
không duy nhất thì trả về 0,1. 
8. Đưa vào TENSV nếu không vi phạm ràng buộc toàn vẹn về khóa ngoại thì xóa. 
Ngược lại trả về 0. 
 179
C. STORED PROCEDUREDS VỚI THAM SỐ VÀO VÀ RA 
1. Đưa vào TENHV Trả ra: Số GV thỏa học vị, nếu không tìm thấy trả về 0. 
2. Đưa vào MSDT Cho biết: Điểm trung bình của đề tài, nếu không tìm thấy trả về 0. 
3. Đưa vào TENGV Trả ra: Số điện thoại của giáo viên, nếu không tìm thấy trả về 0. 
4. Đưa vào MSHD Trả ra: Tên chủ tịch hội đồng và số điện thoại, nếu không tìm thấy 
trả về 0. 
5. Đưa vào TENHV Cho biết: Số đề tài hướng dẫn, số đề tài phản biện do giáo viên 
đó phụ trách. 
D. TRIGGER 
1. Tạo trigger thỏa mãn điều kiện khi xóa một đề tài sẽ xóa các thông tin liên quan. 
2. Tạo trigger thỏa mãn điều kiện khi xóa một sinh viên sẽ xóa các thông tin liên 
quan. 
3. Tạo trigger thỏa mãn điều kiện khi xóa một hội đồng sẽ xóa các thông tin liên 
quan. 
4. Tạo trigger thỏa mãn ràng buộc là khi đổi một mã số đề tài (MSDT) sẽ thay đổi các 
thông tin liên quan. 
5. Tạo trigger thỏa mãn ràng buộc là khi đổi một mã số giáo viên (MSGV) sẽ thay 
đổi các thông tin liên quan. 
6. Tạo trigger thỏa mãn ràng buộc là khi đổi một mã số hội đồng (MSHD) sẽ thay đổi 
các thông tin liên quan. 
7. Tạo trigger thỏa mãn ràng buộc là một hội đồng không quá 10 đề tài. 
8. Tạo trigger thỏa mãn ràng buộc là một giáo viên không thể vừa phản biện vừa 
hướng dẫn 1 đề tài. 
9. Tạo trigger thỏa mãn ràng buộc là 1 đề tài không quá 3 sinh viên. 
10. Tạo trigger thỏa mãn ràng buộc là một giáo viên muốn có học hàm PGS phải là 
tiến sĩ. 
11. Tạo trigger thỏa mãn ràng buộc là một giáo viên muốn có học hàm GS phải là tiến 
sĩ khoa học. 
12. Viết trigger đảm bảo không mâu thuẫn trên nĕm nhận học vị và nĕm nhận học 
hàm. 
E. BACKUP & RESTORE 
1. Sau khi đã tạo CSDL. 
a. Backup CSDL ra đĩa mềm hay đĩa cứng. 
b. Restore CSDL trở lại như ban đầu. 
Khi làm nhớ nhận xét các yếu tố sau: 
 180
 Kích thước CSDL và CSDL Backup. Các đối tượng CSDL và CSDL Backup. Thời gian Backup và Restore. Backup theo phương pháp nào? 
2. Cũng như câu trên nhưng: Backup và Restore trên đĩa cứng. Nhớ nhận xét như câu 1. 
3. Di chuyển CSDL: 
Có thể dùng phương pháp: 
a. Backup (đã biết ở câu 1, 2) 
b. Tạo tập tin *.spl Có thể taọ trực tiếp bằng Query Analyzer. Có thể tạo ngược nhờ Enterprise. 
 181
TÀI LIỆU THAM KHẢO 
[1]. Nguyễn Thiên Bằng, “Giáo trình SQL Server 2000”, NXB Lao động - Xã hội, 
2004. 
[2]. Đoàn Thiện Ngân, “Lập trình SQL cĕn bản”, NXB Lao động - Xã hội, 2003. 
[3]. Phạm Hữu Khang, “Lập trình ứng dụng chuyên nghiệp SQL Server 2000”, NXB 
Lao động - Xã hội, 2005. 
[4]. Nguyễn Thiện Tâm, Trần Xuân Hải, “Giáo trình SQL SERVER 2000”, NXB Đại 
học Quốc gia TPHCM, 2006. 
[5]. www.sinhvienit.Net 
[6]. Nguyễn Gia Tuấn Anh, Trương Châu Long, “Bài tập & Bài giải tham khảo SQL 
SERVER 7.0”, NXB Thanh Niên, 2003. 
[7]. Marcilina S. Garcia, Jamie Reding, Edward Whalen, Steve Adrien DeLuca, SQL 
Server 2000 Administrator’s Companion, Microsoft Press, 2000. 

File đính kèm:

  • pdfbai_giang_sql_server_ban_dep.pdf