Giao trinh CSDL

Màu nền
Font chữ
Font size
Chiều cao dòng
nhau trong bảng kết

quả của lệnh truy vấn (chỉ giữ lại một bộ đại diện cho các bộ giống nhau)

Ví dụ 3.3:

Hãy cho biết các giảng viên của trường thuộc những chuyên ngành nào?

SELECT

FROM

DISTINCT CHUYENNGANH

Giangvien;

kết quả của câu lệnh này là tất cả những chuyên ngành mà các giảng

trong trường có thể đảm nhận(tất nhiên mỗi chuyên ngành chỉ xuất hiện một lần

trong kết quả truy vấn được).

3.3.CHỌN CÁC DÒNG CỦA BẢNG - MỆNH ĐỀ WHERE

SELECT

FROM

WHERE

DISTINCT /*/danh sách thuộc tính/ <biểu thức>,...

<danh sách các quan hệ>

<biểu thức điều kiện>

Trong đó <biểu thức điều kiện> có giá trị là hoặc đúng (true) hoặc sai

(false). Đây là sự cài đặt của phép chọn trong ngôn ngữ đại số quan hệ.

Biên soạn : Phan Tấn Quốc- Trường Cao Đẳng Kỹ Thuật Cao Thắng

Giáo Trình Cơ Sở Dữ Liệu

Trang 35

Nếu điều kiện này chỉ liên quan đến một quan hệ thì gọi là điều kiện

chọn, nếu điều kiện liên quan đến từ hai quan hệ trở lên thì gọi là điều kiện kết.

Các điều kiện chọn và điều kiện kết có thể phối hợp với nhau bởi các toán tử

logic (and,or,not) để tạo nên những biểu thức logic phức tạp hơn. Cần chú ý

rằng thứ tự của các điều kiện ở đây là quan trọng: Nếu có thể thì nên thực hiện

điều kiện chọn trước khi thực hiện điều kiện kết (đây là vấn đề tối ưu hoá câu

truy vấn, chúng tôi không đi sâu về vấn đề này[3]).

Sau đây là một số ví dụ cho phép chọn.

Ví dụ 3.4:

Lập danh sách những môn học có số đơn vị học trình >=4. Danh sách

cần MAMH, TENMH,DONVIHT.

SELECT MAMH, TENMH,DONVIHT

FROM

monhoc

WHERE DONVIHT >=4;

Ví dụ 3.5:

Lập danh sách các sinh viên có mã lớp là CDTH2A, CDTH2B, CDTH2C.

SELECT *

FROM

sinhvien

WHERE malop="CDTH2A" or malop =""CDTH2B" or malop = ""CDTH2C";

Cũng có thể viết cách khác như sau:

SELECT *

FROM sinhvien

WHERE

Ví dụ 3.6:

Lập danh sách những sinh viên của lớp CDTH2A có điểm thi lần 1 môn

CSDL là 6,8

Selete masv,diemthi

From ketqua

Where diemthi>=6 and diemthi<=8 and mamh="csdl";

Hoặc có thể viết cách khác

malop in ("CDTH2A","CDTH2B","CDTH2C");

Biên soạn : Phan Tấn Quốc- Trường Cao Đẳng Kỹ Thuật Cao Thắng

Giáo Trình Cơ Sở Dữ Liệu

Trang 36

SELECT masv,diemthi

FROM ketqua

WHERE diemthi between 6 and 8 and mamh="csdl"

Toán tử so sánh tương đối :

like

Mẫu so sánh trong phép toán like là một giá trị kiểu text, đó là một dãy ký

tự bất kỳ, trong đó có hai ký tự có ý nghĩa đặc biệt sau đây:

?

%

đại diện cho một ký tự bất kỳ tại vị trí có dấu chấm hỏi

đại diện cho một nhóm ký tự bất kỳ tại vị trí đó

Ví dụ 3.7:

Lập danh sách các sinh viên có họ là Nguyễn đang theo học tại lớp có

mã lớp là CDTH2A

SELECT *

FROM sinhvien

WHERE malop="CDTH2A" and HOTENSV like "Nguyễn%";

3.4.SẮP XẾP CÁC DÒNG CỦA BẢNG - MỆNH ĐỀ ORDER BY

Quan hệ đích có thể được sắp xếp tăng/giảm theo một (hoặc nhiều)

thuộc tính nào đó bằng cách sử dụng mệnh đề ORDER BY <danh sách thuộc

tính> (độ ưu tiên giảm dần tư trái sang phải), từ khóa DESC (DESCending)

được dùng nếu muốn sắp xếp giảm dần, nếu không có DESC, mặc định CSDL

sẽ được sắp xếp tăng dần ASC (ASCending) theo các thuộc tính đã chỉ ra.

Nghĩa là danh sách các lớp được sắp xếp theo cột mã khoa, nếu

cột mã khoa trùng nhau thì sắp xếp theo cột số học viên

Sau đây là vấn đề truy vấn thông tin từ nhiều bảng dữ liệu

Ví dụ 3.8:

Lập danh sách các lớp có mã khoa là "CNTT" danh sách cần các thông

tin MALOP,TENLOP, TENKHOA

SELECT MALOP,TENLOP,TENKHOA

FROM lop,khoa

WHERE

makhoa="CNTT" and

lop.makhoa=khoa.makhoa;

Biên soạn : Phan Tấn Quốc- Trường Cao Đẳng Kỹ Thuật Cao Thắng

Giáo Trình Cơ Sở Dữ Liệu

Trang 37

Ví dụ 3.9:

Lập danh sách các sinh viên lớp CDTH2A có điểm thi môn học có mã

môn học là "869" lớn hơn hay bằng 8.0

SELECT Sinhvien.MASV,HOTENSV,NU,NGAYSINH,DIEMTHI

FROM Sinhvien,ketqua

WHERE

malop="CDTH2A" and

MAMH="869" and

Sinhvien.MASV=Ketqua.MASV and

DIEMTHI>=8.0;

Cần chú ý rằng do thuộc tính MASV xuất hiện ở cả hai quan hệ

Sinhvien và ketqua, nên khi liệt kê nó ở mệnh đề SELECT cần chỉ rõ ra nó

thuộc quan hệ nào ? Tuy nhiên sinh viên cũng cần chú ý rằng: nếu ta không ghi

Sinhvien.MASV mà ghi là ketqua.MASV thì kết quả vẫn đúng.

3.5. CÂU LỆNH TRUY VẤN LỒNG NHAU

Là những câu lệnh mà trong thành phần WHERE có chứa thêm

một câu lệnh Select khác nữa. Câu lệnh này thường gặp khi dữ liệu cần

thiết phải duyệt qua nhiều lần. Đây là một trong những vấn đề khó khăn

nhất khi truy vấn dữ liệu

Ví dụ 3.10:

Lập danh sách những sinh viên lớp CDTH2A có điểm thi lần 1 môn học

CSDL cao nhất.

Với câu lệnh nàynếu dùng các ngôn ngữ lập trình không có ngôn ngữ

hỏi cấu trúc thì thật là dài dòng (đầu tiên phải tìm cho ra số điểm lớn nhất thoã

mãn điều kiện trên, sau đó phải duyệt dữ liệu thêm một lần nữa để chọn ra

những bộ thoã đề bài)

SELECT

FROM

WHERE

sinhvien.MASV,HOTENSV,NU,NGAYSINH,DIEMTHI

sinhvien,ketqua

MAMH='CSDL' AND

Lanthi=1

sinhvien.MASV=Ketqua.MASV AND

Biên soạn : Phan Tấn Quốc- Trường Cao Đẳng Kỹ Thuật Cao Thắng

Giáo Trình Cơ Sở Dữ Liệu

Trang 38

DIEMTHI>=ALL(SELECT DIEMTHI

FROM ketqua,sinhvien

WHERE MAMH='CSDL' AND Lanthi=1 and

sinhvien.MASV=Ketqua.MASV);

Tiếp theo sau đây chúng tôi sẽ giới thiệu với bạn đọc thêm một ví dụ về

câu lệnh truy vấn lồng nhau:

Ví dụ 3.11:

Lập danh sách những giảng viên cùng khoa với giảng viên NGUYEN

VAN THANH ?

Giải:

select *

from giangvien

where makhoa in

(select makhoa

from giangvien

where Hotengv="NGUYEN VAN THANH");

kết quả của câu hỏi con được sử dụng trong phép so sánh với một giá

trị khác trong biểu thức điều kiện của câu hỏi bao nó. Các phép so sánh có

dạng

<phep so sánh>[<lượng từ>](select - câu hỏi con)

trong đó phép so sánh có thể là phép so sánh số học hoặc phép so sánh

trên tập hợp (chúng tôi đã đề cập ở phần 3.1)

<lượng từ > có thể là ALL,ANY (hoặc SOME). Phép so sánh bằng

ANYcó thể được thay tương đương bằng phép toán IN, phép so sánh <>ALL

có thể thay tương đương bằng phép toán NOT IN.

3.6.GOM NHÓM DỮ LIỆU- MỆNH ĐỀ GROUP BY

Khi cần tính toán trên các bộ theo một nhóm nào đó - theo một thuộc

tính nào đó, thì ta dùng mệnh đề GROUP BY, chẳng hạn cần tính điểm trung

bình chung tất cả các môn học cho tất cả các sinh viên, hay là cần tính số

Biên soạn : Phan Tấn Quốc- Trường Cao Đẳng Kỹ Thuật Cao Thắng

Giáo Trình Cơ Sở Dữ Liệu

Trang 39

lượng sinh viên cho mỗi lớp, mỗi khoa, đếm số lượng sinh viên nữ của mỗi

khoa, đếm số lượng sinh viên của mỗi tỉnh,...

Mệnh đề GROUP BY <thuộc tính> dùng để phân nhóm dữ liệu. những

bộ của bảng có cùng giá trị trên các thuộc tính này sẽ tạo thành một nhóm.

Ví dụ 3.12:

Lập bảng điểm trung bình lần 1 các môn học của các sinh viên của lớp

có mã lớp là CDTH2A. Danh sách cần: MASV, HOTENSV,DIEMTB( (trong đó

DIEMTB là thuộc tính tự đặt).

SELECT KETQUA.MASV, HOTENSV,AVG(DIEMTHI) AS DIEMTB

FROM SINHVIEN,KETQUA

WHERE MALOP="CDTH2A" AND LANTHI=1 AND

SINHVIEN.MASV=KETQUA.MASV

GROUP BY KETQUA.MASV, HOTENSV

Mệnh đề HAVING <điều kiện trên nhóm>

Nếu cần kiểm tra điều kiện của một nhóm thì dùng mệnh đề Having ,

chẳng hạn như cho biết những sinh viên nào có điểm trung bình các môn ≥ 8,

những khoa nào có nhiều hơn 100 sinh viên nữ,...

Lưu ý những thuộc tính có tham gia vào mệnh đề GROUP BY để phân

nhóm phải được liệt kê trong danh sách thuộc tính theo sau từ khóa SELECT.

Mệnh đề HAVING <điều kiện trên nhóm> được sử dụng như là phép

chọn phối hợp với việc phân nhóm dữ liệu.

Ví dụ 3.13:

Giống như ở ví dụ 3.11 nhưng có thêm điều kiện là điểm trung bình các

môn đã thi lớn hơn hoặc bằng 8.0.

SELECT KETQUA.MASV, HOTENSV,AVG(DIEMTHI) AS DIEMTB

FROM SINHVIEN,KETQUA,LOP

WHERE MALOP="CDTH2A" AND LANTHI=1 AND

SINHVIEN.MASV=KETQUA.MASV

GROUP BY KETQUA.MASV, HOTENSV

HAVING AVG(DIEMTHI)>=8.0;

Biên soạn : Phan Tấn Quốc- Trường Cao Đẳng Kỹ Thuật Cao Thắng

Giáo Trình Cơ Sở Dữ Liệu

Trang 40

Trong một lệnh truy vấn tổng hợp, ngoại trừ thành phần SELECT bắt

buộc phải đặt lên đầu, thứ tự của các thành phần khác là tùy ý. Thứ tự dịch một

lệnh truy vấn tổng hợp là như sau:

FROM

WHERE

GROUP BY

HAVING

SELECT

ORDER BY

Suy cho cùng, các chương trình quản lý cũng là việc kết xuất các báo

cáo từ các quan hệ, mà SQL cho phép tạo ra những quan hệ này một cách tiện

lợi. Vì thế hiểu và vận dụng tốt lệnh truy vấn dữ liệu là một việc làm cực kỳ hiệu

quả!

Biên soạn : Phan Tấn Quốc- Trường Cao Đẳng Kỹ Thuật Cao Thắng

Giáo Trình Cơ Sở Dữ Liệu

Trang 41

BÀI TẬP

3.1

Dựa vào lược đồ CSDL

Congtrinh(MACT,TENCT,ĐIAĐIEM,NGAYCAPGP ,NGAYKC,NGAYHT)

Nhanvien(MANV,HOTEN,NGAYSINH,PHAI,ĐIACHI,MAPB)

Phongban(MAPB,TENPB)

Phancong(MACT,MANV,SLNGAYCONG)

Hãy thực hiện các câu hỏi sau bằng SQL

a.Danh sách những nhân viên có tham gia vào công trình có mã công trình(MACT) là

X.Yêu cầu các thông tin: MANV,HOTEN, SLNGAYCONG, trong đó MANV được sắp tăng dần

b.Đếm số lượng ngày công của mỗi công trình. Yêu cầu các thông tin: MACT, TENCT,

TONGNGAYCONG (TONGNGAYCONG là thuộc tính tự đặt)

c.Danh sách những nhân viên có sinh nhật trong tháng 08. yêu cầu các thông tin:

MANV, TENNV, NGAYSINH, ĐIACHI,TENPB, sắp xếp quan hệ kết quả theo thứ tự tuổi giảm

dần.

d.Đếm số lượng nhân viên của mỗi phòng ban. Yêu cầu các thông tin: MAPB, TENPB,

SOLUONG. (SOLUONG là thuộc tính tự đặt.)

3.2.

Dựa vào lược đồ cơ sở dữ liệu

Giaovien(MAGV,HOTEN, MAKHOA)

Monhoc(MAMH,TENMH)

Phonghoc(PHONG,CHUCNANG)

Khoa(MAKHOA,TENKHOA)

Lop(MALOP,TENLOP, MAKHOA)

Lichday(MAGV,MAMH,PHONG,MALOP,NGAYDAY,TUTIET,ĐENTIET, BAIDAY,

LYTHUYET, GHICHU)

Hãy thực hiện các câu hỏi sau bằng SQL

a.Xem lịch báo giảng tuần từ ngày 08/09/2003 đến ngày 14/09/2003 của giáo viên có

MAGV (mã giáo viên) là TH3A040. Yêu cầu: MAGV,HOTEN, TENLOP,TENMH,PHONG,

NGAYDAY, TUTIET, ĐENTIET, BAIDAY, GHICHU)

Biên soạn : Phan Tấn Quốc- Trường Cao Đẳng Kỹ Thuật Cao Thắng

Giáo Trình Cơ Sở Dữ Liệu

Trang 42

b.Xem lịch báo giảng ngày 08/09/2003 của các giáo viên có mã khoa là CNTT. Yêu

cầu:MAGV,HOTEN,TENLOP,TENMH,PHONG, NGAYDAY, TUTIET, ĐENTIET,BAIDAY,

GHICHU)

c.Cho biết số lượng giáo viên (SOLUONGGV) của mỗi khoa, kết quả cần sắp xếp tăng

dần theo cột tên khoa. yêu cầu: TENKHOA ,SOLUONGGV (SOLUONGGV là thuộc tính tự đặt)

3.3.Hàng năm, Trường X tổ chức kỳ thi giỏi nghề cho các học sinh- sinh viên của trường, mỗi

thí sinh sẽ thi hai môn (chẳng hạn các thi sinh thi giỏi nghề công nghệ thông tin thi hai môn là

Visual Basic và Cơ Sở Dữ Liệu).

Giả sử lược đồ cơ sở dữ liệu của bài toán quản lý các kỳ thi trên được cho như sau:

THISINH(MASV,HOTEN, NGAYSINH, MALOP)

LOP(MALOP,TENLOP,MAKHOA)

KHOA(MAKHOA,TENKHOA,ĐIENTHOAI)

MONTHI(MAMT,TENMONTHI)

KETQUA(MASV,MAMT,ĐIEMTHI)

(Phần giải thích các thuộc tính: HOTEN (họ tên thí sinh), NGAYSINH (ngày sinh), MALOP (mã

lớp),MASV(mã

sinh

viên),

TENLOP(tên

lớp),MAKHOA(mã

khoa),

TENKHOA

(tên

khoa),ĐIENTHOAI(số điện thoại khoa), MAMT (mã môn thi), TENMONTHI (tên môn thi),

ĐIEMTHI (điểm thi)).

Dựa vào lược đồ cơ sở dữ liệu trên, hãy thực hiện các yêu cầu sau bằng ngôn ngữ

SQL:

a.Hãy cho biết số lượng thí sinh của mỗi khoa đăng ký thi giỏi nghề, cần sắp xếp kết quả theo

chiều tăng dần của cột TENKHOA.

b.Lập danh sách những thí sinh đạt danh hiệu giỏi nghề

(Thí sinh đạt danh hiệu giỏi nghề nếu thí sinh không có môn thi nào điểm dưới 8).

c.Lập danh sách những thí sinh nhỏ tuổi nhất có mã khoa là "CNTT" dự thi giỏi nghề.

3.4. Cho Lược đồ cơ sở dữ liệu quản lý nhân viên của một công ty như sau:

Nhanvien(MANV,HOTEN, NU,NGAYSINH,LUONG,MAPB, MACV)

Mỗi nhân viên có một mã nhân viên (MANV) duy nhất, mỗi mã nhân viên xác định họ và

tên nhân viên (HOTEN), giới tính (NU), lương (LUONG), mã phòng ban (MAPB), mã

chức vụ (MACV).

Biên soạn : Phan Tấn Quốc- Trường Cao Đẳng Kỹ Thuật Cao Thắng

Giáo Trình Cơ Sở Dữ Liệu

Trang 43

Phongban(MAPB,TENPB,TRUSO,MANVPHUTRACH,KINHPHI,DOANHTHU)

Mỗi phòng ban có tên gọi phòng ban(TENPB), địa điểm đặt trụ sở (TRUSO), mã nhân

viên phụ trách(MANVPHUTRACH), kinh phí hoạt động (KINHPHI), và doanh

thu(DOANHTHU)

Chucvu(MACV,TENCV,LUONGTHAPNHAT,LUONGCAONHAT)

Mỗi chức vụ co tên gọi chức vụ (TENCV), mức lương tối thiểu(LUONGTHAPNHAT),

mức lương tối đa (LUONGCAONHAT).

Hãy biểu diễn các câu hỏi sau bằng SQL

a.Lập danh sách gồm các thông tin về các phòng ban trong công ty như: mã số phòng ban, tên

phòng ban, địa điểm trụ sở, mã số người phụ trách, kinh phí hoạt động, doanh thu.

b.Lập danh sách những nhân viên sinh nhật trong tháng 10

c.Lập danh sách gồm các thông tin mã số nhân viên, họ và tên và lương cả năm của các nhân

viên (giả sử rằng luơng cả năm =12*lương)

d.Lập những phòng ban có kinh phí hoạt động cao nhất.

e.Lập danh sách nhân viên của phòng ban có mã số phòng ban là 40.

f Lập danh sách nhân viên của phòng có mã số phòng ban 10,30,50.

g.Lập danh sách các nhân viên có lương tháng từ 2.500.000 đến 4.000.000

h.Tìm những nhân viên có tuổi cao nhất thuộc phòng ban có MAPB là 10

i.Lập danh sách các nhân viên của phòng 10,30,50. kết quả in ra theo thứ tự tăng dần của mã

phòng nếu trùng mã phòng thì sắp xếp giảm dần theo mức lương.

k.Lập danh sách các nhân viên phòng 10,30,50, chỉ in ra những người là lãnh đạo của mỗi

phòng ban này.

l.lập danh sách gồm mã phòng mà người có mức lương cao nhất của phòng lớn hơn hoặc

bằng 4.000.000

m.Lập mã phòng ban, tên phòng ban, họ và tên của lãnh đạo phòng tương ứng.

n.Lập danh sách những người làm việc cùng phòng với ông Nguyen Van Thanh

o.Lập biết mã số nhân viên, họ và tên, mức lương của người lãnh đạo ông Nguyen Van Thanh.

p.Lập danh sách nhân viên có mức lương lớn hơn hay bằng mức lương cao nhất của phòng

ông Nguyen Van Thanh.

Biên soạn : Phan Tấn Quốc- Trường Cao Đẳng Kỹ Thuật Cao Thắng

Giáo Trình Cơ Sở Dữ Liệu

Trang 44

q.Cho biết mã số nhân viên, họ và tên , tổng số nhân viên, mức lương cao nhất, mức lưong

thấp nhất, mức lương trung bình của từng phòng ban.

r.Cho biết các nhân viên có mức lương cao nhất của các phòng ban.

s.Cho biết số lượng nhân viên của mỗi phòng ban.

Biên soạn : Phan Tấn Quốc- Trường Cao Đẳng Kỹ Thuật Cao Thắng

Giáo Trình Cơ Sở Dữ Liệu

Trang 45

chương 4

RÀNG BUỘC TOÀN VẸN

(Integrity Constraint)

4.1 RÀNG BUỘC TOÀN VẸN

4.1.1 Khái Niệm Ràng Buộc Toàn Vẹn

Trong mỗi CSDL luôn tồn tại nhiều mối liên hệ giữa các thuộc tính, giữa

các bộ; sự liên hệ này có thể xảy ra trong cùng một quan hệ hoặc trong các

quan hệ của một lược đồ CSDL. Các mối liên hệ này là những điều kiện bất

biến mà tất cả các bộ của những quan hệ có liên quan trong CSDL đều phải

thoả mãn ở mọi thời điểm. Những điều kiện bất biến đó được gọi là ràng buộc

toàn vẹn.. Trong thực tế ràng buộc toàn vẹn là các quy tắc quản lý được áp đặt

trên các đối tượng của thế giới thực. Chẳng hạn mỗi sinh viên phải có một mã

sinh viên duy nhất, hai thí sinh dự thi vào một trường phải có số báo danh khác

nhau, một sinh viên dự thi một môn học không quá 3 lần,...

Nhiệm vụ của người phân tích thiết kế là phải phát hiện càng đầy đủ các

ràng buộc toàn vẹn càng tốt và mô tả chúng một cách chính xác trong hồ sơ

phân tích thiết kế - đó là một việc làm rất quan trọng. Ràng buộc toàn vẹn được

xem như là một công cụ để diễn đạt ngữ nghĩa của CSDL. Một CSDL được

thiết kế cồng kềnh nhưng nó thể hiện được đầy đủ ngữ nghĩa của thực tế vẫn

có giá trị cao hơn rất nhiều so với một cách thiết kế gọn nhẹ nhưng nghèo nàn

về ngữ nghĩa vì thiếu các ràng buộc toàn vẹn của CSDL.

Công việc kiểm tra ràng buộc toàn vẹn thường được tiến hành vào thời

điểm cập nhật dữ liệu ( thêm, sửa, xoá). Những ràng buộc toàn vẹn phát sinh

phải cần được ghi nhận và xử lý một cách tường minh (thường là bởi một hàm

chuẩn hoặc một đoạn chương trình).

Ràng buộc toàn vẹn và kiểm tra sự vi phạm ràng buộc toàn vẹn là hai

trong số những vấn đề quan trọng trong quá trình phân tích thiết kế cơ sở dữ

liệu, nếu không quan tâm đúng mức đến những vấn đề trên, thì có thể dẫn đến

Biên soạn : Phan Tấn Quốc- Trường Cao Đẳng Kỹ Thuật Cao Thắng

Giáo Trình Cơ Sở Dữ Liệu

Trang 46

những hậu quả nghiêm trọng về tính an toàn và toàn vẹn dữ liệu , đặc biệt là

đối với những cơ sở dữ liệu lớn.

4.1.2 Các Yếu Tố Của Ràng Buộc Toàn Vẹn

Mỗi ràng buộc toàn vẹn có bốn yếu tố: điều kiện, bối cảnh, bảng tầm ảnh

hưởng và hành động phải cần thực hiện khi phát hiện có ràng buộc toàn vẹn bị

vi phạm:

4.1.2.1.Điều kiện

Điều kiện của ràng buộc toàn vẹn là sự mô tả, và biểu diễn hình thức nội

dung của nó

Điều kiện của một ràng buộc toàn vẹn R có thể được biểu diễn bằng

ngôn ngữ tự nhiên, ngôn ngữ đại số quan hệ, ngôn ngữ mã giả, ngôn ngữ truy

vấn SQL,... ngoài ra điều kiện của ràng buộc toàn vẹn cũng có thể được biểu

diễn bằng phụ thuộc hàm (khái niệm phụ thuộc hàm sẽ được đề cập trong

chương 5)

Sau đây là một số ràng buộc toàn vẹn trên lược đồ CSDL quản lý sinh

viên .

Mỗi lớp học phải có một mã số duy nhất để phân biệt với các lớp học

khác trong trường.

Mỗi lớp học phải thuộc về một khoa của trường.

Mỗi sinh viên có một mã số sinh viên duy nhất, không trùng với bất cứ

sinh viên nào trong trường.

Mỗi học viên phải đăng ký vào một lớp học trong trường.

Mỗi học viên chỉ được thi tối đa 3 lần cho mỗi môn học.

Tổng số học viên của một lớp phải lớn hơn hoặc bằng số lượng đếm

được của một lớp tại một thời điểm nào đó.

4.1.2.2.Bối cảnh

Bối cảnh của ràng buộc toàn vẹn là những quan hệ mà ràng buộc đó có

hiệu lực hay nói một cách khác, đó là những quan hệ cần phải được kiểm tra

khi tiến hành cập nhật dữ liệu. Bối cảnh của một ràng buộc toàn vẹn có thể là

một hoặc nhiều quan hệ.

Biên soạn : Phan Tấn Quốc- Trường Cao Đẳng Kỹ Thuật Cao Thắng

Giáo Trình Cơ Sở Dữ Liệu

Trang 47

Chẳng hạn với ràng buộc toàn vẹn R trên thì bối cảnh của nó là quan hệ

Sinhvien

4.1.2.3.Bảng tầm ảnh hưởng

Trong quá trình

Bạn đang đọc truyện trên: Truyen2U.Net

#science