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