MÔ HÌnh quan hệ nguyên nhân ra đỜi của mô HÌnh quan hệ



tải về 1.86 Mb.
trang6/17
Chuyển đổi dữ liệu17.08.2016
Kích1.86 Mb.
#21219
1   2   3   4   5   6   7   8   9   ...   17

Select [Distinct|Top n[%]] field1 [As alias1][,field2 [As alias2][,...]]

From table1 [Inner Join table2 On table1.field1  table2.field2] ...

[Where dieuKienLocMauTinNguon]



[Group By fieldGroupBy[,fieldGroupBy[,...]]

[Having dieuKienLocMauTinTongHop]

[Order By field1[Asc|Desc][,field2[Asc|Desc]][,...]]];



điềuKiệnLọcMẫuTinNguồn: điều kiện mà các mẫu tin nguồn phải thỏa mãn (phép chọn)

fieldGroupBy: tên field mà các mẫu tin có dữ liệu giống nhau trên ấy được xếp vào cùng nhóm.

điềuKiệnLọcMẫuTinTổngHợp: điều kiện mà các mẫu tin tổng hợp phải thỏa mãn (phép chọn)
Ví du: Lập danh sách sinh viên có đăng ký ít nhất là ba môn học

SELECT Kq.MASV,HOTEN,NU,NGAYSINH,COUNT(MAMH) As SLMH

FROM Sv Inner Join Kq On Sv.MASV = Kq.MASV

GROUP BY Kq.MASV,HOTEN,NU,NGAYSINH

HAVING COUNT(MAMH)>=3;
Ví du: Đếm số lượng sinh viên nữ của mỗi khoa

SELECT Kh.MAKHOA,TENKHOA,COUNT(Kh.MAKHOA) AS SOLUONG

FROM (Sv Inner Join Lop On Sv.MALOP = LOP.MALOP)

INNER JOIN Kh On Lop.MAKHOA=Kh.MAKHOA

WHERE NU

GROUP BY Kh.MAKHOA,TENKHOA;


        1. Truy vấn lồng nhau (nested query, sub query)

Là những câu lệnh truy vấn mà trong thành phần WHERE hay HAVING có chứa thêm một câu lệnh Select khác. Câu lệnh select khác này gọi là subquery. Ta lồng câu Select vào phần Where hay Having theo cú pháp sau:

  • bieuthuc toanTuSoSanh [ANY | ALL | SOME] (cauLenhSQL)

ANY, SOME là bất kỳ, ALL là tất cả

Các mẫu tin của query chính thỏa mãn toán tử so sánh với bất kỳ/ tất cả mẫu tin nào của subquery



  • bieuThuc [NOT] IN (cauLenhSQL)

Các mẫu tin của query chính có giá trị bằng với một giá trị trong subquery

  • [NOT] EXISTS (cauLenhSQL).

Các mẫu tin của query chính thỏa mãn khi subquery có mẫu tin

Ví du: Lập danh sách sinh viên có học bổng cao nhất

SELECT *FROM Sv

WHERE HOCBONG>=ALL(SELECT HOCBONG FROM SV);

Ví du: Lập danh sách sinh viên có điểm thi môn CSDL cao nhất

SELECT SV.MASV,HOTEN,NU,NGAYSINH,DIEMTHI

FROM sv Inner Join kq On Sv.MASV = Kq.MASV

WHERE MAMH='CSDL' AND DIEMTHI >= ALL

(SELECT DIEMTHI FROM KQ WHERE MAMH='CSDL');

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ỳ cần thiết để tạo ra các kết quả cho báo cáo, thống kê số liệu.



        1. Truy vấn cập nhật dữ liệu (action query, data modification query)

Cú pháp: Update table Set field1 = biểuThức1, field2 = biểuThức2 Where điềuKiện

Cú pháp: Delete From table Where điềuKiện

        1. Truy vấn hợp (union query)

Khi có nhu cầu thực hiện truy vấn có kết quả như toán tử hợp, ta sử dụng câu lệnh SQL sau:

Select .....Union Select ....



Ví du: Lệnh sau đây gấp đôi danh sách sinh viên

SELECT MASV,HOTEN,NGAYSINH UNION SELECT MASV,HOTEN,NGAYSINH

    1. BÀI TẬP

  1. Cho lược đồ CSDL quản lý sinh viên. Hãy thực hiện các câu truy vấn sau

  1. Lập danh sách những sinh viên nam của tỉnh “LONG AN” học khoa “CNTT”, danh sách cần tất cả các thuộc tính của quan hệ Sv.

  2. Lập danh sách những sinh viên có điểm thi < 5 (thi lại), danh sách cần MASV,HOTEN,TENMH, DIEMTHI và được sắp tăng dần theo cột MASV.

  3. Lập danh sách các sinh viên có điểm thi trung bình các môn < 5, danh sách cần MASV,HOTEN, DIEMTRUNGBINH và được sắp tăng dần theo cột MASV.

  4. Tổng số tiền học bổng của mỗi khoa

  5. Những sinh viên nào đăng ký học nhiều hơn 3 môn học, danh sách cần MASV,HOTEN,SOLAN_DANGKY

  6. Lập danh sách sinh viên có điểm trung bình cao nhất, danh sách cần MASV, HOTEN, NGAYSINH, DIEMTRUNGBINH



  1. Cho lược đồ CSDL dùng để quản lý lao động bao gồm các lược đồ quan hệ sau:

Nhanvien(MANV,HOTEN,NGAYSINH,PHAI,DIACHI,MAPB)

Tân từ: Mỗi nhân viên có một mã số nhân viên (MANV) duy nhất. Một mã số nhân viên xác định các thông tin như họ tên (HOTEN), ngày sinh (NGAYSINH), phái (PHAI), địa chỉ (DIACHI) và phòng ban (MAPB) nơi quản lý nhân viên.



Phongban(MAPB,TENPB)

Tân từ: Mỗi phòng ban có một mã phòng ban (MAPB) duy nhất, mã phòng ban xác định tên phòng ban (TENPB)



Cong(MACT,MANV,SLNGAYCONG)

Tân từ: Lược đồ quan hệ Cong ghi nhận số lượng ngày công (SLNGAYCONG) của một nhân viên (MANV) tham gia vào công trình (MACT).



Congtrinh(MACT,TENCT,DIADIEM,NGAYCAPGP,NGAYKC,NGAYHT)

Tân từ: Mỗi công trình có một mã số công trình (MACT) duy nhất. Mã số công trình xác định các thông tin như tên gọi công trình (TENCT), địa điểm (DIADIEM), ngày công trình được cấp giấy phép xây dựng (NGAYCAPGP), ngày khởi công (NGAYKC), ngày hoàn thành (NGAYHT).

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


  1. 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.

  2. Đế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)

  3. Danh sách những nhân viên có sinh nhật trong tháng 8. 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.

  4. Đế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.)




  1. Cho các quan hệ sau:

Monhoc(MSMH ,TENMH,SOTINCHI ,TINHCHAT)

MSMH mã số môn học,

TENMH tên môn học

SOTINCHI số lượng tín chỉ,

TÍNH CHẤT bằng 1 nếu đó là môn học bắt buộc, bằng 0 nếu đó là môn học không bắt buộc

Sinhvien(MSSV,HOTEN,NGAYSINH,LOP)

MSSV mã số sinh viên,

HOTEN họ tên sinh viên

NGAYSINH ngày sinh,

LOP(C,4,0) lớp

Diem(MSSV,MSMH,DIEMTHI)

DIEMTHI điểm thi


Hay dùng lệnh SQL để thực hiện các câu lệnh sau:

  1. Hãy cho biết những môn học bắt buộc có SOTINCHI cao nhất.

  2. Hãy liệt kê danh sách gồm MSSV,HOTEN,LOP, DIEMTHI của những sinh viên thi môn học CSDL, theo thứ tự LOP,DIEMTHI

  3. Hãy cho biết các sinh viên có điểm thi cao nhất về môn học có mã là CSDL

  4. Hãy cho biết phiếu điểm của sinh viên có mã số là 9900277

  5. Hãy liệt kê danh sách gồm MSSV, HOTEN., LOP, ĐIỂM TRUNG BÌNH của những sinh viên có điểm trung bình các môn dưới 5, theo thứ tự LOP,HOTEN.

  6. Hãy liệt kê danh sách điểm trung bình của sinh viên theo thứ tự , lớp, tên.

  7. Hãy cho biết điểm của sinh viên theo từng môn.




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

Docgia(MADG,HOTEN,NGAYSINH,DIACHI,NGHENGHIEP)

Phieumuon(SOPM,NGAYMUON,MADG)

Chitietmuon(SOPM,MADAUSACH,NGAYTRA)

Dausach(MADAUSACH,BAN,TAP,MASH)

Sach(MASH,TENSACH,TACGIA,NHAXB,NAMXB)
Hãy thực hiện các câu hỏi sau đây bằng SQL


  1. Danh sách các đọc giả đã đăng ký mượn sách trong ngày d. Yêu cầu các thông tin: MAĐG, HOTEN, ĐIACHI.

  2. Các quyển sách của phiếu mượn có SOPM là x. Yêu cầu các thông tin MASH, TENSACH, TACGIA, NGAYMUON, NGAYTRA.

  3. Tổng số lượt mà mỗi đọc giả đến mượn sách trong năm 2001. Yêu cầu thông tin MAĐG,HOTEN,SOLANMUON (SOLANMUON là thuộc tính tự đặt)

  4. Danh sách các đọc giả cao tuổi nhất đã mượn sách trong ngày d. Yêu cầu các thông tin MAĐG, HOTEN, NGAYSINH, ĐIACHI, NGHENGHIEP.




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

Khach(MAKH,HOTEN,DIACHI,DIENTHOAI)

Hoadon(SOHD,NGAYLAPHD,NGAYBAN,MAKH)

DongHoaDon(SOHD,MAHANG,SLBAN)

Hang(MAHANG,TENHANG,DONGIA,DVT,MANHOM)

Nhom(MANHOM,TENNHOM)

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



  1. Danh sách các khách hàng đã mua hàng trong ngày d. Yêu cầu các thông tin MAKH, HOTEN, ĐIACHI, ĐIENTHOAI.

  2. Danh sách các mặt hàng trong số hóa đơn (SOHĐ) là x. Yêu cầu các thông tin MAHANG, TENHANG, SLBAN, ĐONGIA, THANHTIEN (THANHTIEN= SLBAN*ĐONGIA; THANHTIEN là thuộc tính tự đặt).Yêu cầu sắp xếp tăng dần theo cột TENHANG

  3. Danh sách các mặt hàng thuộc mã nhóm hàng là A có đơn giá cao nhất. Yêu cầu các thông tin : MAHANG, TENHANG,ĐONGIA

  4. Đếm số lượng mặt hàng của mỗi nhóm hàng. Yêu cầu các thông tin : MANHOM, TENNHOM, SOLUONG. (trong đó SOLUONG là thuộc tính tự đặt) (0,75đ)

  5. Danh sách các khách hàng đã mua các mặt hàng có mã nhóm hàng là A trong ngày d. Yêu cầu các thông tin MAKH, HOTEN, ĐIACHI, ĐIENTHOAI,TENHANG.

  6. Thống kê việc mua hàng trong năm 2002 của khách hàng có mã khách hàng là Kh01 (theo từng hóa đơn). Yêu cầu các thông tin MAKH,HOTEN,SOHĐ,TRIGIAHĐ trong đó TRIGIAHĐ là tổng số tiền trong một hóa đơn (TRIGIAHĐ là thuộc tính tự đặt)




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

Giaovien(MAGV,HOTEN,DTGV,MAKHOA)

Khoa(MAKHOA,TENKHOA,DTKHOA)

Lop(MALOP,TENLOP,SISO,MAKHOA)

Monhoc(MAMH,TENMH)

Phonghoc(SOPHONG,CHUCNANG)

Lichbaogiang(MALICH,NGAYDAY,MAGV)

Dongbaogiang(MALICH,TUTIET,DENTIET,BAIDAY,GHICHU,LYTHUYET,MAMH,MALOP,SOPHONG)

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



  1. Xem lịch báo giảng tuần từ ngày 16/09/2002 đến ngày 23/09/2002 của giáo viên có MAGV (mã giáo viên) là TH3A040. Yêu cầu: MAGV,HOTEN,TENLOP,TENMH,SOPHONG, NGAYDAY, TUTIET, DENTIET, BAIDAY, GHICHU

  2. Xem lịch báo giảng ngày 23/09/2002 của các giáo viên có mã khoa là CNTT. Yêu cầu: MAGV,HOTEN,TENLOP,TENMH,PHONG,NGAYDAY,TUTIET,DENTIET,BAIDAY, GHICHU)

  3. 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)

----oOo----



  1. .

RÀNG BUÔC TOÀN VẸN QUAN HỆ

(entegrity constraint)


    1. RÀNG BUỘC TOÀN VẸN - CÁC YẾU TỐ CỦA RÀNG BUỘC TOÀN VẸN

      1. 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 một lược đồ quan hệ hoặc trong các lược đồ quan hệ của một cơ sở dữ liệu. 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 thỏa 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.

Nhiệm vụ của người phân tích thiết kế là phải phát hiện càng đầy đủ và chính xác 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 và rất cần thiết.

Trong một cơ sở dữ liệu, 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 cơ sở dữ liệu.

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, xóa). Những ràng buộc toàn vẹn phát sinh cần phải đượ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).



      1. 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ó 3 yếu tố: điều kiện, bối cảnh và tầm ảnh hưởng.

        1. Điều kiệ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, thuật giải, ngôn ngữ đại số tập hợp, đại số quan hệ,… 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. Chẳng hạn, với lược đồ quan hệ SV thì có một ràng buộc toàn vẹn như sau:

Với r là một quan hệ của Sv ta có ràng buộc toàn vẹn sau

t1,t2  r

t1.MASV  t2.MASV

cuối 


        1. Bối cảnh

Bối cảnh của một 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 ràng buộc toàn vẹn. 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ệ. Chẳng hạn với ràng buộc toàn vẹn trên thì bối cảnh là một quan hệ Sv


        1. Tầm ảnh hưởng

Trong quá trình phân tích thiết kế một CSDL, người phân tích cần lập bảng tầm ảnh hưởng cho một ràng buộc toàn vẹn nhằm xác định thời điểm cần phải tiến hành kiểm tra các ràng buộc toàn vẹn đó. Các thời điểm cần phải kiểm tra RBTV chính là những thời điểm cập nhật dữ liệu (thêm /sửa/ xóa)

Một bảng tâm ảnh hưởng của một RBTV có dạng sau:



(Tên RBTV)

Thêm(T)

Sửa(S)

Xóa(X)

r1

+

-

-

r2










...

...

..

..

...

...

...

...

rn









Bảng này chứa toàn các ký hiệu + hoặc –

Chẳng hạn + tại ô tương ứng với dòng r1, cột thêm thì có nghĩa là khi thêm một bộ vào quan hệ r1 thì cần phải kiểm tra RBTV

Dấu - Tại ô tương ứng với dòng r1, cột sửa thì có nghĩa là khi sửa một bộ trên quan hệ r1 thì không cần phải kiểm tra RBTV này,…



    1. PHÂN LOẠI RÀNG BUỘC TOÀN VẸN

Trong quá trình phân tích thiết kế cơ sở dữ liệu, người phân tích phải phát hiện tất cả các ràng buộc toàn vẹn tiềm ẩn trong CSDL đó. Việc phân loại các ràng buộc toàn vẹn là rất có ích, nó nhằm gíúp cho người phân tích có được một định hướng, tránh bỏ sót những ràng buộc toàn vẹn. Các ràng buộc toàn vẹn có thể được chia làm hai loại chính như sau:

  • Ràng buộc toàn vẹn trên phạm vi là một quan hệ bao gồm :Ràng buộc toàn vẹn miền giá trị, ràng buộc toàn vẹn liên thuộc tính, ràng buộc toàn vẹn liên bộ.

  • Ràng buộc toàn vẹn trên phạm vi nhiều quan hệ bao gồm :Ràng buộc toàn vẹn phụ thuộc tồn tại, ràng buộc toàn vẹn liên bộ - liên quan hệ, ràng buộc toàn vẹn liên thuộc tính - liên quan hệ.

Để minh họa cho phần lý thuyết của chương này, ta nêu ví dụ sau đây

Ví dụ

Cho một CSDL C dùng để quản lý việc đặt hàng và giao hàng của một công ty. Lược đồ CSDL C gồm các lược đồ quan hệ như sau:



Q1: Khach (MAKH,TENKH,DCKH,DT)

Tân từ: Mỗi khách hàng có một mã khách hàng (MAKH) duy nhất, mỗi MAKH xác định một tên khách hàng (TENKH), một địa chỉ (DCKH), một số điện thoại (DT).

Q2: Hang(MAHANG,TENHANG,QUYCACH,DVTINH)

Tân từ: Mỗi mặt hàng có một mã hàng (MAHANG) duy nhất, mỗi MAHANG xác định một tên hàng (TENHANG), quy cách hàng (QUYCACH), đơn vị tính (DVTINH).

Q3: Dathang(SODH,MAHANG,SLDAT,NGAYDH,MAKH)

Tân từ: Mỗi lần đặt hàng có số đặt hàng (SODH) xác định một ngày đặt hàng (NGAYDH) và mã khách hàng tương ứng (MAKH). Biết mã số đặt hàng và mã mặt hàng thì biết được số lượng đặt hàng(SLDAT). Mõi khách hàng trong một ngày có thể có nhiều lần đặt hàng

Q4: Hoadon(SOHD, NGAYLAP, SODH, TRIGIAHD, NGAYXUAT)

Tân từ: Mỗi hóa đơn có một mã số duy nhất là SOHD, mỗi hóa đơn bán hàng có thể gồm nhiều mặt hàng. Mỗi hóa đơn xác định ngày lập hóa đơn (NGAYLAP), ứng với số đặt hàng nào (SODH). Giả sử rằng hóa đơn bán hàng theo yêu cầu của chỉ một đơn đặt hàng có mã số là SODH và ngược lại, mỗi đơn đặt hàng chỉ được giải quyết chỉ trong một hóa đơn. Do điều kiện khách quan có thể công ty không giao đầy đủ các mặt hàng cũng như số lượng từng mặt hàng như yêu cầu trong đơn đặt hàng nhưng không bao giờ giao vượt ngoài yêu cầu. Mỗi hóa đơn xác định một trị giá của các mặt hàng trong hóa đơn (TRIGIAHD) và một ngày xuất kho giao hàng cho khách (NGAYXUAT)

Q5: Chitiethd (SOHD, MAHANG, GIABAN, SLBAN)

Tân từ: Mỗi SOHD, MAHANG xác định giá bán (GIABAN) và số lượng bán (SLBAN) của một mặt hàng trong một hóa đơn.

Q6: Phieuthu(SOPT, NGAYTHU, MAKH, SOTIEN)

Tân tư: Mỗi phiếu thu có một số phiếu thu (SOPT) duy nhất, mỗi SOPT xác định một ngày thu (NGAYTHU) của một khách hàng có mã khách hàng là MAKH và số tiền thu là SOTIEN. Mỗi khách hàng trong một ngày có thể có nhiều số phiếu thu.

      1. Ràng buộc toàn vẹn liên bộ

Ràng buộc toàn vẹn liên bộ là sự ràng buộc toàn vẹn giữa các bộ trong cùng một quan hệ .

Ràng buộc toàn vẹn liên bộ hay còn gọi là ràng buộc toàn vẹn về khóa. Đây là loại ràng buộc toàn vẹn rất phổ biến, nó có mặt trong mọi lược đồ quan hệ của CSDL và thường được các hệ quản trị CSDL tự động kiểm tra.


Ví dụ: Với r là một quan hệ của Khach ta có ràng buộc toàn vẹn sau

R1:  t1, t2  r

t1. MAKH  t2. MAKH

Cuối 


R1

Thêm

Sửa

Xóa

r

+

+

-

      1. Ràng buộc toàn vẹn về phụ thuộc tồn tại:

Ràng buộc toàn vẹn về phụ thuộc tồn tại còn được gọi là ràng buộc toàn vẹn về khóa ngoại. Cũng giống như ràng buộc toàn vẹn về khóa chính, ràng buộc toàn vẹn về phụ thuộc tồn tại rất phổ biến trong CSDL

Ví du: Với r, s lần lượt là một quan hệ của Dathang, Khach ta có ràng buộc toàn vẹn sau

R2: r[MAKH]  s[MAKH]



R2

Thêm

Sửa

Xóa

r

+

+

-

s

-

+

+

      1. Ràng buộc toàn vẹn về miền giá trị

Ràng buộc toàn vẹn có liên quan đến miền giá trị của các thuộc tính trong một quan hệ. Ràng buộc này thường gặp. Một số hệ quản trị CSDL đã tự động kiểm tra một số ràng buộc loại này.

Ví dụ: Với r là một quan hệ của Hoadon ta có ràng buộc toàn vẹn sau

R3:  t  r

t.TRIGIAHD > 0

Cuối 


R3

Thêm

Sửa

Xóa

r

+

+

-

      1. Ràng buộc toàn vẹn liên thuộc tính

Ràng buộc toàn vẹn liên thuộc tính là mối liên hệ giữa các thuộc tính trong một lược đồ quan hệ.

Ví dụ: Với r là một quan hệ của Hoadon ta có ràng buộc toàn vẹn sau

R4:  t  r

t.NGAYLAP <= t.NGAYXUAT

Cuối 


R4

Thêm

Sửa

Xóa

r

+

+

-

      1. Ràng buộc toàn vẹn liên thuộc tính liên quan hệ

Ràng buộc loại này là mối liên hệ giữa các thuộc tính trong nhiều lược đồ quan hệ.

Ví du: Với r, s lần lượt là quan hệ của Dathang, Hoadon ta có ràng buộc toàn vẹn sau

R5:  t1  r, t2  s

Nếu t1.SODH = t2.SODH thì

t1.NGAYDH <= t2.NGAYXUAT

Cuối 


R5

Thêm

Sửa

Xóa

r

+

+

+

s

+

+

+




      1. Ràng buộc toàn vẹn về thuộc tính tổng hợp

Ràng buộc toàn vẹn về thuộc tính tổng hợp được xác định trong trường hợp mỗi thuộc tính A của một lược đồ quan hệ Q được tính toán giá trị từ các thuộc tính của các lược đồ quan hệ khác.

    1. BÀI TẬP

  1. Hãy tìm các ràng buộc toàn vẹn có trong CSDL cho các bài tập được liệt kê trong chương 3.

  2. QUẢN LÝ THI TỐT NGHIỆP PTCS

Một phòng giáo dục huyện muốn lập một hệ thống thông tin để quản lý việc làm thi tốt nghiệp phổ thông cơ sở. Công việc làm thi được tổ chức như sau:
Lãnh đạo phòng giáo dục thành lập nhiều hội đồng thi (mỗi hội đồng thi gồm một trường hoặc một số trường gần nhau). Mỗi hội đồng thi có một mã số duy nhất (MAHĐT), một mã số hội đồng thi xác định tên hội đồng thi(TENHĐT), họ tên chủ tịch hội đồng(TENCT), địa chỉ (ĐCHĐT),điện thoại(ĐTHĐT).
Mỗi hội đồng thi được bố trí cho một số phòng thi, mỗi phòng thi có một số hiệu phòng(SOPT) duy nhất, một phòng thi xác định địa chỉ phòng thi (ĐCPT). Số hiệu phòng thi được đánh số khác nhau ở tất cả các hội đồng thi.
Giáo viên của các trường trực thuộc phòng được điều động đến các hội đồng để coi thi, mỗi trường có thể có hoặc không có thí sinh dự thi, mỗi trường có một mã trường duy nhất (MATR), mỗi mã trường xác định một tên trường(TENTR),địa chỉ (ĐCTR), loại hình đào tạo (LHĐT) (Công lập, chuyên, bán công, dân lập, nội trú,…). Giáo viên của một trường có thể làm việc tại nhiều hội đồng thi. Một giáo viên có một mã giáo viên(MAGV), một mã giáo viên xác định tên giáo viên (TENGV), chuyên môn giảng dạy (CHUYENMON), chức danh trong hội đồng thi(CHUCDANH)
Các thí sinh dự thi có một số báo danh duy nhất(SOBD), mỗi số báo danh xác định tên thí sinh(TENTS), ngày sinh (NGSINH), giới tính (PHAI), mỗi thí sinh được xếp thi tại một phòng thi nhất định cho tất cả các môn, mỗi thí sinh có thể có chứng chỉ nghề (CCNGHE) hoặc không (thuộc tính CCNGHE kiểu chuỗi, CCNGHE=”x” nếu thí sinh có chứng chỉ nghề và CCNGHE bằng rỗng nếu thí sinh không có chứng chỉ nghề).Thí sinh của cùng một trường chỉ dự thi tại một hội đồng thi.

Mỗi môn thi có một mã môn thi duy nhất(MAMT), mỗi mã môn thi xác định tên môn thi(TENMT). Giả sử toàn bộ các thí sinh đều thi chung một số môn do sở giáo dục quy định. Mỗi môn thi được tổ chức trong một buổi của một ngày nào đó.

Ứng với mỗi môn thi một thí sinh có một điểm thi duy nhất(ĐIEMTHI)

Dựa vào phân tích ở trên, giả sử ta có lược đồ CSDL sau:

Q1: HĐ(MAHĐT,TENHĐT, TENCT, ĐCHĐT,ĐTHĐT)

Q2: PT(SOPT,ĐCPT,MAHĐT)

Q3: TS(SOBD, TENTS,NGSINH,PHAI,CCNGHE, MATR,SOPT)

Q4: MT(MAMT,TENMT,BUOI,NGAY)

Q5: GV(MAGV,TENGV,CHUYENMON,CHUCDANH,MAHĐT,MATR)

Q6: TR(MATR,TENTR,ĐCTR,LHĐT)

Q7: KQ(SOBD,MAMT,ĐIEMTHI)

Yêu cầu:


  1. Hãy xác định khóa cho từng lược đồ quan hệ.

  2. Tìm tất cả các ràng buộc toàn vẹn có trong CSDL trên.

  3. Dựa vào lược đồ CSDL đã thành lập, hãy thực hiện các câu hỏi sau đây bằng ngôn ngữ đại số quan hệ.

    1. Danh sách các thí sinh thi tại phòng thi có số hiệu phòng thi (SOPT) là “100”. Yêu cầu các thông tin:SOBD,TENTS,NGSINH,TENTR

    2. Kết quả của môn thi có mã môn thi (MAMT) là “T” của tất cả các thí sinh có mã trường(MATR) là “NTMK”, kết quả được sắp theo chiều giảm dần của điểm thi(ĐIEMTHI). Yêu cầu các thông tin:SOBD,TENTS, ĐIEMTHI

    3. Kết quả thi của một học sinh có SOBD là MK01. Yêu cầu : TENMT,ĐIEMTHI

    4. Tổng số thí sinh có chứng chỉ nghề(CCNGHE) của mỗi trường, thông tin cần được sắp theo chiều tăng dần của TENTR. Yêu cầu các thông tin: MATR, TENTR, SOLUONGCC



tải về 1.86 Mb.

Chia sẻ với bạn bè của bạn:
1   2   3   4   5   6   7   8   9   ...   17




Cơ sở dữ liệu được bảo vệ bởi bản quyền ©hocday.com 2024
được sử dụng cho việc quản lý

    Quê hương