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.
Tóm tắt nội dung tài liệu: 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:
bai_giang_sql_server_ban_dep.pdf

