Bài giảng tóm tắt Hệ quản trị cơ sở dữ liệu - Tạ Thị Thu Phượng

MỤC LỤC

Chương 1: Tổng quan về Hệ quản trị cơ sở dữ liệu .Trang 1

I. Giới thiệu.1

II. Cấu trúc và thành phần của hệ quản trị cơ sở dữ liệu .2

Chương 2: Xây dựng, quản lý và khai thác cơ sở dữ liệu.5

I. Khái niệm cơ sở dữ liệu .5

II. Tạo cơ sở dữ liệu. .5

III. Kiểu dữ liệu. .6

IV. Tạo và quản lý bảng. .7

V. Các thao tác trên dữ liệu.11

VI. Truy vấn dữ liệu .12

VII. Tạo và sử dụng khung nhìn (View).14

VIII. Tạo và sử dụng chỉ mục (Index).14

IX. Chuyển đổi dữ liệu với các ứng dụng khác.18

Chương 3: T-SQL nâng cao .19

I. Khai báo và sử dụng biến .19

II. Cấu trúc điều khiển.20

III. Thủ tục thường trú (Stored Procedures) .22

IV. Kiểu dữ liệu cursor .26

V. Hàm người dùng (User Defined Functions).32

VI. Triggers và cài đặt ràng buộc dữ liệu .35

Chương 4: Bảo mật và an toàn dữ liệu .40

I. Bảo mật trong hệ quản trị cơ sở dữ liệu .40

II. Bản sao dữ liệu .46

III. Sao lưu và khôi phục dữ liệu .59

IV. Quản lý giao dịch .61

Chương 5: Lập trình cơ sở dữ liệu.92

I. Lập trình ADO.NET.92

II. Thiết kế chức năng đọc/ ghi dữ liệu .95

III. Tạo báo biểu với Crystal Report .98

Bài tập .105

pdf115 trang | Chuyên mục: Hệ Quản Trị Cơ Sở Dữ Liệu | Chia sẻ: dkS00TYs | Lượt xem: 2673 | Lượt tải: 1download
Tóm tắt nội dung Bài giảng tóm tắt Hệ quản trị cơ sở dữ liệu - Tạ Thị Thu Phượng, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
THCS01 1 7 
Bài giảng tóm tắt Hệ quản trị cơ sở dữ liệu 107 
GiangKhoa 
maCT maKhoa maMH namHoc hocKy soTietLyThuyet soTietThucHanh soTinChi 
CQ CNTT THT01 2003 1 60 30 5 
CQ CNTT THT02 2003 2 45 30 4 
CQ CNTT THCS01 2004 1 45 30 4 
Lop 
MaLop maKhoaHoc maKhoa maCT soThuTu 
TH2002/01 K2002 CNTT CQ 1 
TH2002/02 K2002 CNTT CQ 2 
VL2003/01 K2003 VL CQ 1 
4. Viết các câu truy vấn sau : 
4.1. Danh sách các sinh viên khoa “Công nghệ Thông tin” khoá 2002-2006 
4.2. Cho biết các sinh viên (MSSV, họ tên ,năm sinh) của các sinh viên học sớm hơn tuổi 
qui định (theo tuổi qui định thi sinh viên đủ 18 tuổi khi bắt đầu khóa học) 
4.3. Cho biết sinh viên khoa CNTT, khoá 2002-2006 chưa học môn cấu trúc dữ liệu 1 
4.4. Cho biết sinh viên thi không đậu (Diem <5) môn cấu trúc dữ liệu 1 nhưng chưa thi lại. 
4.5. Với mỗi lớp thuộc khoa CNTT, cho biết mã lớp, mã khóa học, tên chương trình và số 
sinh viên thuộc lớp đó 
4.6. Cho biết điểm trung bình của sinh viên có mã số 0212003 (điểm trung bình chỉ tính 
trên lần thi sau cùng của sinh viên) 
5. Hãy viết các function sau : 
5.1. Với 1 mã sinh viên và 1 mã khoa, kiểm tra xem sinh viên có thuộc khoa này không 
(trả về đúng hoặc sai) 
5.2. Tính điểm thi sau cùng của một sinh viên trong một môn học cụ thể 
5.3. Tính điểm trung bình của một sinh viên (chú ý : điểm trung bình được tính dựa trên 
lần thi sau cùng), sử dụng function 5.2 đã viết 
5.4. Nhập vào 1 sinh viên và 1 môn học, trả về các điểm thi của sinh viên này trong các lần 
thi của môn học đó. 
5.5. Nhập vào 1 sinh viên, trả về danh sách các môn học mà sinh viên này phải học. 
6. Hãy viết các Stored Procedure sau: 
6.1. In danh sách các sinh viên của 1 lớp học 
6.2. Nhập vào 2 sinh viên, 1 môn học, tìm xem sinh viên nào có điểm thi môn học đó lần 
đầu tiên là cao hơn. 
6.3. Nhập vào 1 môn học và 1 mã sv, kiểm tra xem sinh viên có đậu môn này trong lần thi 
đầu tiên không, nếu đậu thì xuất ra là “Đậu”, không thì xuất ra “Không đậu” 
6.4. Nhập vào 1 khoa, in danh sách các sinh viên (mã sinh viên, họ tên, ngày sinh) thuộc 
khoa này. 
6.5. Nhập vào 1 sinh viên và 1 môn học, in điểm thi của sinh viên này của các lần thi môn 
học đó. 
Ví dụ: Lần 1 : 10 
Lần 2: 8 
6.6. Nhập vào 1 sinh viên, in ra các môn học mà sinh viên này phải học. 
6.7. Nhập vào 1 môn học, in danh sách các sinh viên đậu môn này trong lần thi đầu tiên. 
6.8. In điểm các môn học của sinh viên có mã số là maSinhVien được nhập vào. 
(Chú ý: điểm của môn học là điểm thi của lần thi sau cùng) 
Bài giảng tóm tắt Hệ quản trị cơ sở dữ liệu 108 
6.8.1. Chỉ in các môn đã có điểm 
6.8.2. Các môn chưa có điểm thì ghi điểm là null 
6.8.3. Các môn chưa có điểm thì ghi điểm là 
Thêm 1 quan hệ 
XepLoai 
maSV diemTrungBinh ketQua hocLuc 
6.9. Đưa dữ liệu vào bảng xếp loại. Sử dụng function 5.3 đã viết ở trên 
Qui định : ketQua của sinh viên là ”Đạt‘ nếu diemTrungBinh (chỉ tính các môn đã có 
điểm) của sinh viên đó lớn hơn hoặc bằng 5 và không quá 2 môn dưới 4 điểm, ngược 
lại thì kết quả là không đạt 
Đối với những sinh viên có ketQua là ”Đạt‘ thì hocLuc được xếp loại như sau: 
 diemTrungBinh >= 8 thì hocLuc là ”Giỏi” 
 7 < = diemTrungBinh < 8 thì hocLuc là ”Khá” 
 Còn lại là ”Trung bình” 
6.10. Với các sinh viên có tham gia đầy đủ các môn học của khoa, chương trình mà sinh 
viên đang theo học, hãy in ra điểm trung bình cho các sinh viên này. 
(Chú ý: Điểm trung bình được tính dựa trên điểm thi lần sau cùng). Sử dụng function 
5.3 đã viết ở trên 
7. Hãy cài đặt các ràng buộc toàn vẹn sau (bằng check constraint, unique constraint, rule hoặc 
trigger): 
Miền giá trị 
7.1. ChuongTrinh.ma chỉ có thể là ‘CQ‘ hoặc ‘CD‘ hoặc ‘TC’ 
7.2. Chỉ có 2 học kỳ là ‘HK1‘ và ‘HK2‘ 
7.3. Số tiết lý thuyết (GiangKhoa.soTietLyThuyet) tối đa là 120 
7.4. Số tiết thực hành (GiangKhoa.soTietThucHanh) tối đa là 60 
7.5. Số tín chỉ (GiangKhoa.soTinChi) của một môn học tối đa là 6 
7.6. Điểm thi (KetQua.diem) được chấm theo thang điểm 10 và chính xác đến 0.5 (làm 
bằng 2 cách: kiểm tra và báo lỗi nếu không đúng qui định; tự động làm tròn nếu 
không đúng qui định về độ chính xác) 
Liên thuộc tính trên 1 quan hệ 
7.7. Năm kết thúc khóa học phải lớn hơn hoặc bằng năm bắt đầu 
7.8. Số tiết lý thuyết của mỗi giảng khóa không nhỏ hơn số tiết thực hành 
Liên bộ trên 1 quan hệ 
7.9. Tên chương trình phải phân biệt. 
7.10. Tên khoa phải phân biệt 
7.11. Tên môn học phải duy nhất 
7.12. Sinh viên chỉ được thi tối đa 2 lần cho một môn học 
7.13. Liên thuộc tính trên nhiều quan hệ 
7.14. Năm bắt đầu khóa học của một lớp không thể nhỏ hơn năm thành lập của khoa quản 
lý lớp đó 
7.15. Sinh viên chỉ có thể dự thi các môn học có trong chương trình và thuộc về khoa mà 
sinh viên đó đang theo học 
Tổng hợp 
7.16. Hãy bổ sung vào quan hệ LOP thuộc tính SISO và kiểm tra sĩ số của một lớp phải 
bằng số lượng sinh viên đang theo học lớp đó 
Bài giảng tóm tắt Hệ quản trị cơ sở dữ liệu 109 
BÀI TẬP LẬP TRÌNH CƠ SỞ DỮ LIỆU 
Cho cơ sở dữ liệu sau (có tên tập tin cơ sở dữ liệu QLThuVien): 
o NhaXuatBan( MANXB, TenNXB): Mỗi nhà xuất bản có một mã số (MANXB) để phân biệt và tên 
nhà xuất bản (TenNXB) 
o TheLoai(MaTL, TenTL): Sách được phân loại theo thể loại. Mỗi thể loại có mã thể loại (MaTL), tên 
thể loại (TenTL). 
o Sach(MaSach, TuaDe, MANXB, TacGia, SoLuong, NgayNhap, MaTL): Mỗi cuốn sách có một mã 
số để phân biệt (MaSach), tên sách (TuaDe), do một nhà xuất bản xuất bản (MANXB), tác giả 
(TacGia), số lượng bản hiện có trong thư viện (SoLuong) và ngày nhập sách (NgayNhap) và thuộc về 
một thể loại. 
o BanDoc(MaThe , TenBanDoc, DiaChi, SoDT): Mỗi bạn đọc có một số thẻ để phân biệt (MaThe), họ 
tên bạn đọc (TenBanDoc), địa chỉ (DiaChi) và số điện thoại (SoDT). 
o MuonSach(MaThe, MaSach , NgayMuon, NgayTra): Một bạn đọc có thể mượn nhiều cuốn sách, 
với mỗi cuốn sách người ta ghi nhận ngày mượn (NgayMuon) và ngày trả (NgayTra). 
Ghi chú: các field có gạch dưới là khoá của lược đồ quan hệ tương ứng. 
Dữ liệu mẫu cho các table như sau: 
NhaXuatBan BanDoc 
MANXB TenNXB MaThe TenBanDoc DiaChi SoDT 
N001 Giáo dục 050001 Trần Xuân 17 Yersin 858936 
N002 Khoa học kỹ thuật 050002 Lê Nam 5 Hai Bà Trưng 845623 
N003 Thống kê 060001 Nguyễn Năm 10 Lý Tự Trọng 823456 
 060002 Trần Hùng 20 Trần Phú 841256 
Sach 
MaSach TuaDe MANXB TacGia SoLuong NgayNhap MaTL 
TH0001 Sử dụng Corel Draw N002 Đậu Quang Tuấn 3 08/09/2005 TH 
TH0002 Lập trình mạng N003 Phạm Vĩnh Hưng 2 03/12/2003 TH 
TH0003 Thiết kế mạng chuyên nghiệp N002 Phạm Vĩnh Hưng 5 04/05/2003 TH 
TH0004 Thực hành mạng N003 Trần Quang 3 06/05/2004 TH 
TH0005 3D Studio kỹ xảo hoạt hình T1 N001 Trương Bình 2 05/02/2004 TH 
TH0006 3D Studio kỹ xảo hoạt hình T2 N001 Trương Bình 3 05/06/2004 TH 
TH0007 Giáo trình Access 2000 N001 Thiện Tâm 5 11/12/2005 TH 
MuonSach 
MaThe MaSach NgayMuon NgayTra 
050001 TH0006 12/12/2006 01/03/2007 
050001 TH0007 12/12/2006 
050002 TH0001 08/03/2006 15/04/2007 
050002 TH0004 04/03/2007 
050002 TH0002 04/03/2007 04/04/2007 
050002 TH0003 02/04/2007 15/04/2007 
060002 TH0001 08/04/2007 
060002 TH0007 15/03/2007 15/04/2007 
TheLoai 
MATL TENTL 
TH Tin học 
HH Hoá học 
KT Kinh tế 
TN Toán học 
Bài giảng tóm tắt Hệ quản trị cơ sở dữ liệu 110 
1) Tạo các table và thiết lập mối quan hệ (relationship) giữa các table. Căn cứ vào dữ liệu mẫu 
để chọn kiểu dữ liệu cho phù hợp cho các field trong các bảng. 
2) Cài đặt các ràng buộc sau: 
RB1. Số lượng sách >=0 
RB2. Mã thẻ gồm 6 ký tự, được tạo theo quy tắc: hai chữ cuối của năm tạo thẻ ghép với số 
thứ tự của thẻ trong năm đó. (ví dụ: 050001 trong đó 05 là năm 2005, 1 là số thứ tự của thẻ 
trong năm 2005) (gợi ý: tạo hàm sinh mã thẻ) 
RB3. Mã sách gồm 6 ký tự, được tạo theo quy tắc: mã thể loại ghép với số thứ tự của cuốn 
sách trong thể loại đó (gợi ý: tạo hàm sinh mã sách). 
RB4. Mỗi đọc giả không được giữ quá ba quyển sách. 
RB5. Đọc giả không được phép mượn lại cuốn sách mà họ đang nợ. 
RB6. Số lượng trong bảng sách sẽ được thay đổi tuỳ theo thao tác cho bạn đọc mượn, nhận 
sách trả của bạn đọc hay nhập thêm sách. 
Các ràng buộc trên khi bị vi phạm sẽ hiện ra thông báo bằng tiếng Việt. 
3) Nhập dữ liệu cho các bảng. 
4) Viết Stored Procedure CapNhatSach (X, ThaoTac) thực hiện cập nhật số lượng của cuốn 
sách có mã số X tăng hay giảm 1 đơn vị tuỳ theo thao tác cho nhận trả sách hay cho mượn 
sách, trong đó SoLuong luôn luôn thoả điều kiện >=0. Nếu ThaoTac=1 là cho mượn sách, 
ThaoTac = 2 là nhận sách trả. X và ThaoTac là 2 tham số input. 
5) Phân tích và xây dựng các thủ tục thường trú, các hàm cần thiết. 
6) Thiết kế, phân tích xử lý và lập trình cho các form sau (lưu ý đảm bảo các ràng buộc toàn 
vẹn dữ liệu). 
a) Form cập nhật (thêm, xoá, sửa) và xem thông tin của bạn đọc (frmNguoiMuon): 
Bài giảng tóm tắt Hệ quản trị cơ sở dữ liệu 111 
b) Tương tự thiết kế các form cập nhật thông tin thể loại (frmTheLoai) và form cập nhật 
thông tin nhà xuất bản (frmNhaXuatBan). 
c) Form tra cứu sách (frmTraCuu): 
d) Form nhập thông tin sách (frmSach): 
Bài giảng tóm tắt Hệ quản trị cơ sở dữ liệu 112 
e) Form xử lý mượn/trả sách: 
f) Thiết kế form chính (frmManHinhChinh) với bố trí menu phù hợp để gọi sử dụng các 
form trên. 
7) Tương tự như câu 6, áp dụng thiết kế chương trình theo mô hình 3 lớp. 
TÀI LIỆU THAM KHẢO 
Tiếng việt: 
[1] Phạm Hữu Khang, Quản trị SQL Server 2000, NXB Thống kê, 2005. 
[2] Dương Quang Thiện, SQL Server 2000 Lập trình T-SQL, NXB Văn hoá 
Sài Gòn, 2007. 
[3] Vũ Tuyết Trinh, SQL Server 2008 (Slide bài giảng). 
Tiếng Anh: 
[4] Bill Hamilton, ADO.NET Cookbook, O'Reilly, 2003 (Ebook). 
[5] Ramakrishnan, R. and Gehrke, J., Database Management Systems, Third 
Edition, McGraw Hill, 2003. 
[6] Ramez Elmasri, Shamkant B. Navathe, Fundamentals of database systems, 
Addison Wesley - 4th edition, 2004. 
[7] Sumathi, S. and Esakkirajan, S., Fundamentals of Relational Database 
Management Systems, Springer-Verlag, 2007. 

File đính kèm:

  • pdfBài giảng tóm tắt Hệ quản trị cơ sở dữ liệu - Tạ Thị Thu Phượng.pdf