1. Trang chủ
  2. » Tất cả

Bài 3 - Mô hình quan hệ

10 0 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 10
Dung lượng 207,74 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Môn học MaMH TenMH Tập thực thể Cấu trúc DL – M002 XSTK – M006 MMT – null Từ mô hình ER chuyển qua mô hình CSDL Quan Hệ Tập thực thể không phải là tệp thực thể Mô hình ER: hiểu chính xác

Trang 1

Môn học

MaMH

TenMH Tập thực thể

Cấu trúc DL – M002 XSTK – M006 MMT – null

Từ mô hình ER chuyển qua mô hình CSDL Quan Hệ

Tập thực thể không phải là tệp thực thể

Mô hình ER: hiểu chính xác và duy nhất

Thuộc tính của mối kết hợp thường xuất hiện trong quan hệ nhiều nhiều (n – n)

MỖi tập thực thể bắt buộc phải có thuộc tính khóa

Không có tập thực thể nào không có thuộc tính nhưng có thể có thực thể có thuộc tính null ( tuy nhiên không có 2 null )  Vì dữ liệu được lưu trữ vào các thuộc tính

Mô hình ER

Tập thực thể

Thuộc tính

Thuộc tính của tập thực thẻ

Thuộc tính khóa

Thuộc tính của mối kết hợp

Mối kết hợp

Chuyển từ mô hình ER sang mô hình CSDL Quan hệ

Thuộc tính

Thuộc tính của tập thực thể Thuộc tính của Quan hệ

Khác : bổ sung thêm

- Kiểu dữ liệu

- Miền giá trị

Miền giá trị thuộc tính : dom(thuoctinh)

Ví dụ dom(ĐTB) thuộc [0,10]

Thuộc tính khóa Thuộc tính khóa chính của quan hệ Hạn chế dùng kiểu string  Chuyển qua

dùng kiểu dữ liệu số vì sẽ có một số bài toán sort

Trang 2

Sinh Viên

MSSV

hoten ĐTB

Lophoc

Malophoc

Tenlop ĐTB

Sinh Viên

MSSV

hoten ĐTB

Khóa chính : MSSV Khóa : 1 2 3 4

Sinhvien (MSSV, hoten, Sđt, diachi ) Khóa là bộ phân biệt từng dòng CSDL

Khóa :

- MSSV

- Hoặc MSSV +hoten

- Hoặc MSSV +Sđt Khóa ứng viên = chọn khóa nhắn nhất: lọc

ra

- MSSV

- CMND Khóa chính: chọn một trong những khóa ngắn nhất:

- Chọn MSSV Thuộc tính của mối kết hợp Thuộc tính khóa ngoại của quan hệ

Sinhvien (MSSV, hoten, Sđt, diachi, thuoclop: int)

Lophoc ( Malop:int, tenlop:string,)

Khóa ngoại thuoclop tham chiêu đến Malop

Kinh nghiệm :

- khóa chính của lophoc kiểu

dữ liệu gì thì thuoclop có kiểu dữ liệu tương ứng

- Miền giá trị của thuoclop phụ thuộc vào miền giá trị của lophop

- Khóa ngoại được chọn giá trị null

Thuộc

SV1 A SV2 A SV3 D SV4 E SV5 null

A Toán

B Sinh

C Địa

D Toán

Trang 3

Sinh Viên

MSSV

hoten ĐTB

Mối kết hợp

Là tương đương hoàn toàn

Là tương đương không hoàn toàn

ER

Quan hệ

Sinhvien ( MSSV: int (auto) ,hoten: String , ĐTB:Float)

Ví dụ điểm là 5.6

- Float: 5.6

- Int: 5

- Char/String: “5.6”

Khi so sánh ĐTB

Ví dụ:

- An : 6.5

- Bình : 10 Nếu float: 6.5 < 10 Nếu string : “6.5>11.5”  không hợp lí

Khi lưu trự ĐTB

- Float: 5.6 8Byte 7 digits

- Int: 5 4 Byte

- Char(n) nByte ( 0 – 255)

 Nhu cầu chứa đấu thập phân  bắt buộc chọn float hay double

Trang 4

Quan hệ và lược đồ quan hệ

Trong lược đồ CSDL không có dữ liệu mẫu Quan hệ gồm lược đồ quan hệ và dữ liệu mẫu

Trang 5

A X

Sinh Viên

MSSV

hoten Sđt Điachi

Chuyển mô hình

1 Tất cả tập thực thể + thuộc tính + khóa chính

Tạo ra quan hệ cùng tên

 Quanhe(thuoctinh + khoachinh)

Lưu ý

- Thuoctinh: thuoctinh thường + thuoctinh suy dien

- bỏ qua các tạp thực thể yếu + thuộc tính ( đa trị, kết hợp)

2 Chuyển thuộc tính đa trị của A ( tập thực thể )

Tạo ra quan hệ mới

Khóa chính mới gồm kháo chính A và đa trị Trỏ khóa chính A về khóa chính A

QuanheMoi ( khóa chính A, thuộc tính đa trị x)

3 Chuyển thuộc tính kết hợp của A

Bổ sung vào quan hệ A:

- Bỏ thuộc tính trung gian

- Bỏ thuộc tính cấp con

Nhớ ghi chú bên dưới: Sinhvien: diachi == sonha + quan

Ví dụ

B1: Sinhvien ( MSSV, hoten B2: Đa trị SinhVienDienThoai(MSSV, SĐT)

B3 : Kết hợp Trường hợp 1: lấy cha bỏ con Sinhvien ( MSSV, hoten, diachi

Trường hợp 2 : lấy con bỏ cha Sinhvien ( MSSV, hoten, sonha, quan

Ghi chú: Sinh viên có thuộc tính địa chỉ = số nhà + phường + quận

Trang 6

Sinh Viên

MSSV

TenSV

MonHoc

MaMon

TenMon

(1,n)

(1,n)

4 Chuyển mối kết hợp (n – n )( A B )

- Tạo thành 1 quan hệ mới

- Quan hệ mới lấy tên mối kết hợp

- Khóa là kết hợp của khóa A và B QuanheMoi(Khóa A, Khóa B, Thuộc tính trên mối kết hợp)

1 Sinh viên có thể ĐK 1 hoặc nhiều môn học

1 Môn 1 có thể được đăng kí bới 1 hoặc nhiều sinh viên

B1:

SinhVien(MSSV, TenSV) MonHoc(MaMon, TenMon) B2: Không làm vì ko có thuộc tính đa trị B3: Không làm vì ko có thuộc tính kết họp B4:

Tạo quan hệ đăng kí Nhớ trỏ khỏa chính đến khóa ngoài SinhVien(MSSV, TenSV)

MonHoc(MaMon, TenMon)

DangKi( MSSV, MaMon, Diem Thi)

Trang 7

Sinh Viên

MSSV

TenSV

LopHoc

MaLop

TenLop

Thuoc

(1,1)

(1,n)

5 Chuyển mối kết hợp (1,n) A  B

 Bổ sung vào quan hệ 1, khóa chính của quan hệ nhiều

B1:

SinhVien(MSSV, TenSV) LopHoc(MaLop, TenLop) B2: Không làm vì ko có thuộc tính đa trị B3: Không làm vì ko có thuộc tính kết họp B4: Bỏ qua

B5:

Tạo quan hệ đăng kí Nhớ trỏ khỏa chính đến khóa ngoài SinhVien(MSSV, TenSV, ThuocMaLop) LopHoc(MaLop, TenLop)

6 Đối với mối kết hợp duy nhất ( 1, 1 ) của A và B

Trang 8

Sinh Viên

MSSV

TenSV

TheSV

SoThe Co

(1,1)

(1,1)

 Bổ dung khóa ngoài cho cả A và B với thuộc tính liên quan

B1:

SinhVien(MSSV, TenSV) TheSV(MaThe)

B2: Không làm vì ko có thuộc tính đa trị B3: Không làm vì ko có thuộc tính kết họp B4: Bỏ qua

B5: Bỏ qua B6:

SinhVien(MSSV, TenSV, coMaThe)

TheSV(MaThe, ThuocMaSV)

7 Chuyển tập thực thể yếu B của A

Chuyển như tập thực thế , tuy nhiên :

Trang 9

MaHĐ

TongTien

ChiTietHĐ

MaSP

SL

Co

Co

(1,1)

(1,1)

- Khóa chính = ( Khóa B + Khóa Chính A)

Trường hợp đặc biêt

- Sinh Vien A Đại học có thẻ Sinh Viên X

- Sinh Viên A đó học lên cao học có thẻ Cao học Y

- -> Cách giải quyết : sinh ra 1 anh A’ ( cùng 1 người A)

Anh A sinh viên dùng thẻ X

Anh A’ cao học viên dùng thẻ Y

B1:

HoaDon(MaHD, TongTien) CTHD(MaSP, SL)

B2: Không làm vì ko có thuộc tính đa trị

B3: Không làm vì ko có thuộc tính kết họp

B4: Bỏ qua B5: Bỏ qua

B6: Bỏ qua B7:

HoaDon(MaHD, TongTien) CTHD(MaHĐ , MaSP, SL)

Thêm ghi chú Ghi chú:

-Quan hê CTHD | Mã Hđ: int , MSP:long, SL: int

Ngày đăng: 23/01/2022, 15:11

w