Cơ sở dữ liệu mẫu sử dụng trong giáo trình
Trong toàn bộ nội dung giáo trình, hầu hết các ví dụ được dựa trên cơ sở dữ liệu mẫu được mô tả dưới đây. Cơ sở dữ liệu này được cài đặt trong hệ quản trị cơ sở
dữ liệu SQL Server 2000 và được sử dụng để quản lý sinh viên và điểm thi của sinh viên trong một trường đại học. Để tiện cho việc tra cứu và kiểm chứng đối với các ví
dụ, trong phần đầu của phụ lục chúng tôi giới thiệu sơ qua về cơ sở dữ liệu này.
Cơ sở dữ liệu bao gồm các bảng sau đây:
• Bảng KHOA lưu trữ dữ liệu về các khoa hiện có ở trong trường
• Bảng LOP bao gồm dữ liệu về các lớp trong trường
• Bảng SINHVIEN được sử dụng để lưu trữ dữ liệu về các sinh viên trong trường.
• Bảng MONHOC bao gồm các môn học (học phần) được giảng dạy trong trường
• Bảng DIEMTHI với dữ liệu cho biết điểm thi kết thúc môn học của các sinh viên
Mối quan hệ giữa các bảng được thể hiện qua sơ đồ dưới đây

Các bảng trong cơ sở dữ liệu, mối quan hệ giữa chúng và một số ràng buộc được cài đặt như sau:
CREATE TABLE khoa
(
makhoa NVARCHAR(5) NOT NULL
CONSTRAINT pk_khoa PRIMARY KEY,
tenkhoa NVARCHAR(50) NOT NULL ,
dienthoai NVARCHAR(15) NULL
)
CREATE TABLE lop
(
malop NVARCHAR(10) NOT NULL
CONSTRAINT pk_lop PRIMARY KEY,
tenlop NVARCHAR(30) NULL ,
khoa SMALLINT NULL ,
hedaotao NVARCHAR(25) NULL ,
namnhaphocINT NULL ,
siso INT NULL ,
makhoa NVARCHAR(5) NULL
)
CREATE TABLE sinhvien
(
masv NVARCHAR(10) NOT NULL
CONSTRAINT pk_sinhvien PRIMARY KEY,
hodem NVARCHAR(25) NOT NULL ,
ten NVARCHAR(10) NOT NULL ,
ngaysinh SMALLDATETIME NULL ,
gioitinh BIT NULL ,
noisinh NVARCHAR(100) NULL ,
malop NVARCHAR(10) NULL
)
CREATE TABLE monhoc
(
mamonhoc NVARCHAR(10) NOT NULL
CONSTRAINT pk_monhoc PRIMARY KEY,
tenmonhoc NVARCHAR(50) NOT NULL ,
sodvht SMALLINT NOT NULL
)
CREATE TABLE diemthi
(
mamonhoc NVARCHAR(10) NOT NULL ,
masv
NVARCHAR(10) NOT NULL ,
diemlan1 NUMERIC(5, 2) NULL ,
diemlan2 NUMERIC(5, 2) NULL,
CONSTRAINT pk_diemthi PRIMARY KEY(mamonhoc,masv)
)
ALTER TABLE lop
ADD
CONSTRAINT fk_lop_khoa
FOREIGN KEY(makhoa)
REFERENCES khoa(makhoa)
ON DELETE CASCADE
ON UPDATE CASCADE
ALTER TABLE sinhvien
ADD
CONSTRAINT fk_sinhvien_lop
FOREIGN KEY (malop)
REFERENCES lop(malop)
ON DELETE CASCADE
ON UPDATE CASCADE
ALTER TABLE diemthi
ADD
CONSTRAINT fk_diemthi_monhoc
FOREIGN KEY (mamonhoc)
REFERENCES monhoc(mamonhoc)
ON DELETE CASCADE
ON UPDATE CASCADE,
CONSTRAINT fk_diemthi_sinhvien
FOREIGN KEY (masv)
REFERENCES sinhvien(masv)
ON DELETE CASCADE
ON UPDATE CASCADE
ALTER TABLE monhoc
ADD
CONSTRAINT chk_monhoc_sodht
CHECK(sodvht>0 and sodvht<=5)
ALTER TABLE diemthi
ADD
CONSTRAINT chk_diemthi_diemlan1
CHECK (diemlan1>=0 and diemlan1<=10),
CONSTRAINT chk_diemthi_diemlan2
CHECK (diemlan2>=0 and diemlan2<=10)