intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng Cơ sở dữ liệu: Xác định khóa của các quan hệ - Trần Ngọc Bảo

Chia sẻ: Năm Tháng Tĩnh Lặng | Ngày: | Loại File: PDF | Số trang:54

541
lượt xem
20
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Bài giảng "Cơ sở dữ liệu: Xác định khóa của các quan hệ" trình bày một số nội dung chủ yếu sau: Xác định khóa chính của các quan hệ, xác định khóa ngoại của các quan hệ, vẽ lược đồ cơ sở dữ liệu (Diagram). Mời các bạn cùng tham khảo để nắm bắt các thông tin chi tiết.

Chủ đề:
Lưu

Nội dung Text: Bài giảng Cơ sở dữ liệu: Xác định khóa của các quan hệ - Trần Ngọc Bảo

  1. Đại Học Sư Phạm Tp. Hồ Chí Minh Khoa Toán – Tin Học CƠ SỞ DỮ LIỆU Xác định khóa của các quan hệ Trần Ngọc Bảo Email: tnbao.dhsp@gmail.com
  2. Đại Học Sư Phạm Tp. Hồ Chí Minh Khoa Toán – Tin Học CƠ SỞ DỮ LIỆU XÁC ĐỊNH KHÓA CỦA CÁC QUAN HỆ • Xác định khóa chính của các quan hệ • Xác định khóa ngoại của các quan hệ • Vẽ lược đồ CSDL (Diagram)
  3. Đại Học Sư Phạm Tp. Hồ Chí Minh Khoa Toán – Tin Học CƠ SỞ DỮ LIỆU XÁC ĐỊNH KHÓA CỦA CÁC QUAN HỆ • Xác định khóa chính của các quan hệ • Xác định khóa ngoại của các quan hệ • Vẽ lược đồ CSDL (Diagram)
  4. BÀI 1: QUẢN LÝ CHUYÊN ĐỀ Phòng giáo vụ tại một trường Đại học muốn tin học hóa việc BÀI GIẢNG HỌC PHẦN CƠ SỞ DỮ LIỆU quản lý đăng ký học chuyên đề của sinh viên. Kết quả phân tích BÀI TẬP XÁC ĐỊNH KHÓA thiết kế được mô hình CSDL quan hệ như sau: 1. SINHVIEN (MASV, HOTEN, PHAI, NGAYSINH, DCHI, MANGANH) Tân từ: Mỗi sinh viên có một mã số duy nhất (MASV), một họ tên (HOTEN), thuộc một phái (PHAI), có một ngày sinh (NGAYSINH), có một địa chỉ (DCHI), và học một ngành duy nhất (MANGANH) Xác định khóa chính của quan hệ SINHVIEN ? TRẦN NG TRẦN ỌC B NGỌC ẢO ” BẢO ” KHOA KHOA TO ÁN --TIN TOÁN 4 TIN H ỌC ” HỌC ”Đ ẠI H ĐẠI ỌC SƯ HỌC SƯ PHẠM TP.HCM PHẠM ” (4) TP.HCM ” (4)
  5. BÀI GIẢNG HỌC PHẦN CƠ SỞ DỮ LIỆU BÀI 1: QUẢN LÝ CHUYÊN ĐỀ Khoá chính gọi tắt là Khóa của một quan hệ Q là tập thuộc tính K ⊆Q, sao cho ∀q1,q2 ⊆ TQ, q1 ≠ q2 ⇔ q1[K] ≠ q2[K] BÀI TẬP XÁC ĐỊNH KHÓA Ví dụ: cho quan hệ SinhVien(MaSV,TenSV,Nam,Khoa) với thuộc tính MaSV là khóa Æhai sinh viên không được phép có mã số giống nhau ⇔ mọi dòng (bộ) trong quan hệ sinh viên phải có thuộc tính mã sinh viên khác nhau ⇔ mỗi sinh viên có một mã số duy nhất TRẦN NG TRẦN ỌC B NGỌC ẢO ” BẢO ” KHOA KHOA TO ÁN --TIN TOÁN 5 TIN H ỌC ” HỌC ”Đ ẠI H ĐẠI ỌC SƯ HỌC SƯ PHẠM TP.HCM PHẠM ” (5) TP.HCM ” (5)
  6. BÀI GIẢNG HỌC PHẦN CƠ SỞ DỮ LIỆU BÀI 1: QUẢN LÝ CHUYÊN ĐỀ MaSV TenSV Nam Khoa BÀI TẬP XÁC ĐỊNH KHÓA K28.103.001 Trần Quốc Thanh 1 CNTT K28.101.001 Nguyễn Công Phú 1 TOAN K28.101.002 Phan Anh Khanh 1 TOAN K27.101.001 Phạm Khánh Như 2 TOAN K26.102.001 Trần Ngọc Dung 3 VLY K25.201.001 Phạm Khánh Như 4 HOA K28.103.001 Hàn Quốc Việt 2 HOA Không hợp lệ, vì MaSV là thuộc tính Khóa Hợp lệ, vì TenSV không phải là thuộc tính Khóa TRẦN NG TRẦN ỌC B NGỌC ẢO ” BẢO ” KHOA KHOA TO ÁN --TIN TOÁN 6 TIN H ỌC ” HỌC ”Đ ẠI H ĐẠI ỌC SƯ HỌC SƯ PHẠM TP.HCM PHẠM ” (6) TP.HCM ” (6)
  7. BÀI TẬP QUẢN LÝ SINH VIÊN Tóm lại thuộc tính Khóa là thuộc tính có BÀI GIẢNG HỌC PHẦN CƠ SỞ DỮ LIỆU BÀI TẬP XÁC ĐỊNH KHÓA giá trị duy nhất cho mỗi bộ Ví dụ: cho quan hệ SinhVien(MaSV,TenSV,Nam,Khoa) với thuộc tính MaSV là khóa Æhai sinh viên không được phép có mã số giống nhau ⇔ mọi dòng (bộ) trong quan hệ sinh viên phải có thuộc tính mã sinh viên khác nhau ⇔ mỗi sinh viên có một mã số duy nhất Để xác định khóa chính cho mỗi quan hệ ? ‰ Tìm thuộc tính “là duy nhất” trong mô tả Tân từ ‰ Cho một vài thể hiện của quan hệ, dựa trên những thể hiện này để xác định khóa của quan hệ TRẦN NG TRẦN ỌC B NGỌC ẢO ” BẢO ” KHOA KHOA TO ÁN --TIN TOÁN 7 TIN H ỌC ” HỌC ”Đ ẠI H ĐẠI ỌC SƯ HỌC SƯ PHẠM TP.HCM PHẠM ” (7) TP.HCM ” (7)
  8. BÀI 1: QUẢN LÝ CHUYÊN ĐỀ Phòng giáo vụ tại một trường Đại học muốn tin học hóa việc BÀI GIẢNG HỌC PHẦN CƠ SỞ DỮ LIỆU quản lý đăng ký học chuyên đề của sinh viên. Kết quả phân tích BÀI TẬP XÁC ĐỊNH KHÓA thiết kế được mô hình CSDL quan hệ như sau: 1. SINHVIEN (MASV, HOTEN, PHAI, NGAYSINH, DCHI, MANGANH) Tân từ: Mỗi sinh viên có một mã số duy nhất (MASV), một họ tên (HOTEN), thuộc một phái (PHAI), có một ngày sinh (NGAYSINH), có một địa chỉ (DCHI), và học một ngành (MANGANH) Xác định khóa chính của quan hệ SINHVIEN ? Mỗi sinh viên có một mã số duy nhất (MASV) Æ MaSV là khóa chính của quan hệ SINHVIEN 1. SINHVIEN (MASV, HOTEN, PHAI, NGAYSINH, DCHI, MANGANH) TRẦN NG TRẦN ỌC B NGỌC ẢO ” BẢO ” KHOA KHOA TO ÁN --TIN TOÁN 8 TIN H ỌC ” HỌC ”Đ ẠI H ĐẠI ỌC SƯ HỌC SƯ PHẠM TP.HCM PHẠM ” (8) TP.HCM ” (8)
  9. BÀI 1: QUẢN LÝ CHUYÊN ĐỀ 2. NGANH(MANGANH, TENNGANH, SOCD, TSSV) BÀI GIẢNG HỌC PHẦN CƠ SỞ DỮ LIỆU Tân từ: Mỗi ngành có một mã duy nhất (MANGANH), có một tên BÀI TẬP XÁC ĐỊNH KHÓA duy nhất (TENNGANH). SOCD là số lượng chuyên đề mà một sinh viên theo học ngành có mã ngành có MANGANH phải học. TSSV cho biết tổng số sinh viên đã từng theo học ngành này. Xác định khóa chính của quan hệ NGANH ? Mỗi ngành có một mã số duy nhất (MANGANH) Mỗi ngành có một tên duy nhất (TENNGANH) ÆChọn thuộc tính nào làm khóa ? MANGANH hay TENNGANH ? Æ Cho một thể hiện của quan hệ NGANH để xác định Khóa TRẦN NG TRẦN ỌC B NGỌC ẢO ” BẢO ” KHOA KHOA TO ÁN --TIN TOÁN 9 TIN H ỌC ” HỌC ”Đ ẠI H ĐẠI ỌC SƯ HỌC SƯ PHẠM TP.HCM PHẠM ” (9) TP.HCM ” (9)
  10. BÀI 1: QUẢN LÝ CHUYÊN ĐỀ 2. NGANH(MANGANH, TENNGANH, SOCD, TSSV) BÀI GIẢNG HỌC PHẦN CƠ SỞ DỮ LIỆU MANGANH TENNGANH SOCD TSSV BÀI TẬP XÁC ĐỊNH KHÓA SP103 Sư Phạm Tin học 8 800 SP101 Sư Phạm Toán 5 1000 SP201 Sư Phạm Hóa 3 1500 SP102 Sư Phạm Lý 4 1200 CNTT Khoa học máy tính 8 160 SP104 Sư Phạm Lý 6 1000 SP103 Sư phạm Anh 2 1100 Không hợp lệ, vì MANGANH là duy nhất Không hợp lệ, vì TENNGANH là duy nhất TRẦN NG TRẦN ỌC B NGỌC ẢO ” BẢO ” KHOA KHOA TO TOÁN TIN10 ÁN --TIN H ỌC ” HỌC ”Đ ẠI H ĐẠI ỌC SƯ HỌC SƯ PHẠM TP.HCM PHẠM ” (10) TP.HCM ” (10)
  11. BÀI 1: QUẢN LÝ CHUYÊN ĐỀ 2. NGANH(MANGANH, TENNGANH, SOCD, TSSV) BÀI GIẢNG HỌC PHẦN CƠ SỞ DỮ LIỆU Tân từ: Mỗi ngành có một mã duy nhất (MANGANH), có một tên BÀI TẬP XÁC ĐỊNH KHÓA duy nhất (TENNGANH). SOCD là số lượng chuyên đề mà một sinh viên theo học ngành có mã ngành có MANGANH phải học. TSSV cho biết tổng số sinh viên đã từng theo học ngành này. Xác định khóa chính của quan hệ NGANH ? Mỗi ngành có một mã số duy nhất (MANGANH) Mỗi ngành có một tên duy nhất (TENNGANH) ÆChọn thuộc tính nào làm khóa ? MANGANH hay TENNGANH ? Æ Chọn MANGANH làm khóa, TENNGANH duy nhất là một ràng buộc toàn vẹn liên bộ 2. NGANH(MANGANH, TENNGANH, SOCD, TSSV) TRẦN NG TRẦN ỌC B NGỌC ẢO ” BẢO ” KHOA KHOA TO TOÁN TIN11 ÁN --TIN H ỌC ” HỌC ”Đ ẠI H ĐẠI ỌC SƯ HỌC SƯ PHẠM TP.HCM PHẠM ” (11) TP.HCM ” (11)
  12. BÀI 1: QUẢN LÝ CHUYÊN ĐỀ 3. CHUYENDE(MACD, TENCD, SOSVTD) BÀI GIẢNG HỌC PHẦN CƠ SỞ DỮ LIỆU Tân từ: Mỗi chuyên đề có một mã duy nhất (MACD), có một tên BÀI TẬP XÁC ĐỊNH KHÓA duy nhất (TENCD). SOSVTD cho biết số sinh viên tối đa có thể chấp nhận được mỗi khi có một lớp được mở cho chuyên đề có mã là MACD. Xác định khóa chính của quan hệ CHUYENDE ? Mỗi chuyên đề có một mã số duy nhất (MACD) Mỗi chuyên đề có một tên duy nhất (TENCD) ÆChọn thuộc tính nào làm khóa ? MACD hay TENCD ? TRẦN NG TRẦN ỌC B NGỌC ẢO ” BẢO ” KHOA KHOA TO TOÁN TIN12 ÁN --TIN H ỌC ” HỌC ”Đ ẠI H ĐẠI ỌC SƯ HỌC SƯ PHẠM TP.HCM PHẠM ” (12) TP.HCM ” (12)
  13. BÀI 1: QUẢN LÝ CHUYÊN ĐỀ 3. CHUYENDE(MACD, TENCD, SOSVTD) BÀI GIẢNG HỌC PHẦN CƠ SỞ DỮ LIỆU MACD TENCD SOSVTD BÀI TẬP XÁC ĐỊNH KHÓA THCD001 Chuyên đề Oracle 40 THCD002 Chuyên đề SQL Server 30 THCD003 Chuyên đề Java 50 TOCD001 Chuyên đề Đại số ứng dụng 60 HHCD001 Chuyên đề Điện hóa 20 TOCD002 Chuyên đề Đại số ứng dụng 45 THCD001 Chuyên đề Đồ họa ứng dụng 45 Không hợp lệ, vì MACD là duy nhất Không hợp lệ, vì TENCD là duy nhất TRẦN NG TRẦN ỌC B NGỌC ẢO ” BẢO ” KHOA KHOA TO TOÁN TIN13 ÁN --TIN H ỌC ” HỌC ”Đ ẠI H ĐẠI ỌC SƯ HỌC SƯ PHẠM TP.HCM PHẠM ” (13) TP.HCM ” (13)
  14. BÀI 1: QUẢN LÝ CHUYÊN ĐỀ 3. CHUYENDE(MACD, TENCD, SOSVTD) BÀI GIẢNG HỌC PHẦN CƠ SỞ DỮ LIỆU Tân từ: Mỗi chuyên đề có một mã duy nhất (MACD), có một tên BÀI TẬP XÁC ĐỊNH KHÓA duy nhất (TENCD). SOSVTD cho biết số sinh viên tối đa có thể chấp nhận được mỗi khi có một lớp được mở cho chuyên đề có mã là MACD. Xác định khóa chính của quan hệ CHUYENDE ? Mỗi chuyên đề có một mã số duy nhất (MACD) Mỗi chuyên đề có một tên duy nhất (TENCD) ÆChọn thuộc tính nào làm khóa ? MACD hay TENCD ? Æ Chọn MACD làm khóa, TENCD duy nhất là một ràng buộc toàn vẹn liên bộ 3. CHUYENDE(MACD, TENCD, SOSVTD) TRẦN NG TRẦN ỌC B NGỌC ẢO ” BẢO ” KHOA KHOA TO TOÁN TIN14 ÁN --TIN H ỌC ” HỌC ”Đ ẠI H ĐẠI ỌC SƯ HỌC SƯ PHẠM TP.HCM PHẠM ” (14) TP.HCM ” (14)
  15. BÀI 1: QUẢN LÝ CHUYÊN ĐỀ 4. CD_NGANH(MACD, MANGANH) BÀI GIẢNG HỌC PHẦN CƠ SỞ DỮ LIỆU Tân từ: Mỗi chuyên đề có thể được học bởi nhiều ngành BÀI TẬP XÁC ĐỊNH KHÓA (MANGANH), mỗi ngành có thể học nhiều chuyên đề (MACD). Mỗi ngành học tối đa là 8 chuyên đề Xác định khóa chính của quan hệ CD_NGANH ? Mã chuyên đề (MACD) không phải là duy nhất Mã ngành (MANGANH) cũng không phải là duy nhất ÆChọn thuộc tính nào làm khóa ? MACD hay MANGANH, hay cả 2 (MACD, MANGANH) ? ÆCho một vài thể hiện của quan hệ CD_NGANH để xác định khoá TRẦN NG TRẦN ỌC B NGỌC ẢO ” BẢO ” KHOA KHOA TO TOÁN TIN15 ÁN --TIN H ỌC ” HỌC ”Đ ẠI H ĐẠI ỌC SƯ HỌC SƯ PHẠM TP.HCM PHẠM ” (15) TP.HCM ” (15)
  16. BÀI 1: QUẢN LÝ CHUYÊN ĐỀ 4. CD_NGANH(MACD, MANGANH) BÀI GIẢNG HỌC PHẦN CƠ SỞ DỮ LIỆU ‰ Trường hợp 1: Nếu chọn MACD là khóa chính BÀI TẬP XÁC ĐỊNH KHÓA MACD MANGANH THCD001 SPS103 Sinh viên ngành Sư phạm Tin THCD002 SPS103 (SPS103) học chuyên đề Oracle (THCD001) THCD003 CNTT Sinh viên ngành Khoa học máy THCD001 CNTT tính (CNTT) học chuyên đề Oracle (THCD001) Không Hợp lệ Hợp lệ vì chúng ta chọn MACD là khóa chính nên không thể vì trong Tân từ mô tả một chuyên tồn tại 2 dòng có thuộc đề có thể được học bởi nhiều tính MACD =‘THCD001’ ngành MACD không phải là khóa chính của quan hệ CD_NGANH TRẦN NG TRẦN ỌC B NGỌC ẢO ” BẢO ” KHOA KHOA TO TOÁN TIN16 ÁN --TIN H ỌC ” HỌC ”Đ ẠI H ĐẠI ỌC SƯ HỌC SƯ PHẠM TP.HCM PHẠM ” (16) TP.HCM ” (16)
  17. BÀI 1: QUẢN LÝ CHUYÊN ĐỀ 4. CD_NGANH(MACD, MANGANH) BÀI GIẢNG HỌC PHẦN CƠ SỞ DỮ LIỆU ‰ Trường hợp 2: Nếu chọn MANGANH là khóa chính BÀI TẬP XÁC ĐỊNH KHÓA MACD MANGANH THCD001 SPS103 Sinh viên ngành Sư phạm Tin TOCD001 SPS101 (SPS103) học chuyên đề Oracle (THCD001) THCD003 CNTT Sinh viên ngành Sư phạm Tin THCD003 SPS103 (SPS103) học chuyên đề Java Không Hợp lệ (THCD003) Hợp lệ vì chúng ta chọn MANGANH là khóa chính nên không thể vì trong Tân từ mô tả một tồn tại 2 dòng có thuộc tính ngành có thể được nhiều MANGANH =‘SPS103’ chuyên đề MANGANH cũng không phải là khóa chính của quan hệ CD_NGANH TRẦN NG TRẦN ỌC B NGỌC ẢO ” BẢO ” KHOA KHOA TO TOÁN TIN17 ÁN --TIN H ỌC ” HỌC ”Đ ẠI H ĐẠI ỌC SƯ HỌC SƯ PHẠM TP.HCM PHẠM ” (17) TP.HCM ” (17)
  18. BÀI 1: QUẢN LÝ CHUYÊN ĐỀ 4. CD_NGANH(MACD, MANGANH) BÀI GIẢNG HỌC PHẦN CƠ SỞ DỮ LIỆU (MACD, MANGANH) là khóa chính của quan hệ CD_NGANH BÀI TẬP XÁC ĐỊNH KHÓA MACD MANGANH THCD001 SPS103 Sinh viên ngành Sư phạm Tin TOCD001 SPS101 (SPS103) học chuyên đề Oracle (THCD001) THCD003 CNTT Sinh viên ngành Sư phạm Tin THCD003 SPS103 (SPS103) học chuyên đề Java THCD001 CNTT (THCD003) Sinh viên ngành Khoa học máy tính (CNTT) học chuyên đề Oracle (THCD001) 4. CD_NGANH(MACD, MANGANH) TRẦN NG TRẦN ỌC B NGỌC ẢO ” BẢO ” KHOA KHOA TO TOÁN TIN18 ÁN --TIN H ỌC ” HỌC ”Đ ẠI H ĐẠI ỌC SƯ HỌC SƯ PHẠM TP.HCM PHẠM ” (18) TP.HCM ” (18)
  19. BÀI 1: QUẢN LÝ CHUYÊN ĐỀ 5. CD_MO(MACD, NAM, HOCKY) BÀI GIẢNG HỌC PHẦN CƠ SỞ DỮ LIỆU Tân từ: Mỗi bộ của quan hệ CD_MO thể hiện một chuyên đề BÀI TẬP XÁC ĐỊNH KHÓA (MACD) được mở ra trong một học kỳ (HOCKY) của một năm học (NAM). Thông thường, số sinh viên của ngành là không nhiều nên đối với ngành “Mạng máy tính” không được mở cùng một chuyên đề trong 2 học kỳ liên tiếp của cùng một năm học. Xác định khóa chính của quan hệ CD_MO ? Mã chuyên đề (MACD) không phải là duy nhất ÆChọn thuộc tính nào làm khóa ? MACD hay (MACD,NAM), (MACD,HOCKY), (NAM,HOCKY) hay cả 3 (MACD, NAM,HOCKY) ? ÆCho một vài thể hiện của quan hệ CD_NGANH để xác định khoá TRẦN NG TRẦN ỌC B NGỌC ẢO ” BẢO ” KHOA KHOA TO TOÁN TIN19 ÁN --TIN H ỌC ” HỌC ”Đ ẠI H ĐẠI ỌC SƯ HỌC SƯ PHẠM TP.HCM PHẠM ” (19) TP.HCM ” (19)
  20. BÀI 1: QUẢN LÝ CHUYÊN ĐỀ 5. CD_MO(MACD, NAM, HOCKY) BÀI GIẢNG HỌC PHẦN CƠ SỞ DỮ LIỆU ‰ Trường hợp 1: Nếu chọn MACD là khóa chính BÀI TẬP XÁC ĐỊNH KHÓA MACD NAM HOCKY THCD001 2006 1 Chuyên đề Oracle (THCD001) THCD002 2006 1 được mở vào học kỳ 1 năm 2006 THCD003 2006 1 THCD001 2006 2 Chuyên đề Oracle (THCD001) được mở vào học kỳ 2 năm 2006 Không Hợp lệ vì ta chọn MACD là khóa Hợp lệ chính nên không thể tồn tại vì trong Tân từ mô tả một chuyên 2 dòng có thuộc tính đề có thể được mở ở nhiều học MACD =‘THCD001’ kỳ, của nhiều năm học MACD không phải là khóa chính của quan hệ CD_MO TRẦN NG TRẦN ỌC B NGỌC ẢO ” BẢO ” KHOA KHOA TO TOÁN TIN20 ÁN --TIN H ỌC ” HỌC ”Đ ẠI H ĐẠI ỌC SƯ HỌC SƯ PHẠM TP.HCM PHẠM ” (20) TP.HCM ” (20)
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2