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