Tải bản đầy đủ (.docx) (12 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (465.87 KB, 12 trang )

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

MaMH
Mơn học
TenMH
Tập thực thể
Thực thể

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


Chuyển từ mơ hình ER sang mơ hình CSDL Quan hệ
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

MƠ hình CSDL Quan hệ
Quan hệ
Thuộc tính của Quan hệ
Khác : bổ sung thêm
- Kiểu dữ liệu
- Miền giá trị
Thuộc tính khóa chính của quan
hệ

Miền giá trị thuộc tính :
dom(thuoctinh)
Ví dụ dom(ĐTB) thuộc [0,10]
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
tốn sort

Sinhvien (MSSV, hoten, Sđt, diachi )
MSSV
Sinh Viên

hoten
ĐTB

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


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

Khóa là bộ phân biệt từng dịng CSDL

Thuộc tính khóa ngoại của quan

Khóa :
-

MSSV
CMND
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


hệ
Malophoc

Lophoc

Tenlop
ĐTB


Thuộc

MSSV
Sinh Viên

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

hoten
ĐTB

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
A Tốn

SV1 A

B Sinh


SV2 A

C Địa

SV3 D

D Toán

SV4 E
SV5 null

Mối kết hợp
Là tương đương hồn tồn
Là tương đương khơng hồn
tồn


ER
Quan hệ
MSSV
Sinh Viên

hoten

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

ĐTB


-

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

ĐTB có thể dùng những kiễu DL gì ?
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


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



Chuyển mơ hình
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ể )
1

X

A

3

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)

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ụ
MSSV

hoten

Sinh Viên

Sđt
Điachi

Sonha

Quan

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


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)


MSSV

Sinh Viên

TenSV

(1,n)

DiemThi

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 ngồi
SinhVien(MSSV, TenSV)
MonHoc(MaMon, TenMon)

ĐK

MaMon

DangKi( MSSV, MaMon, Diem Thi)

(1,n)
MonHoc


TenMon

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

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

MSSV

Sinh Viên

TenSV

(1,1)

Thuoc

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 ngồi
SinhVien(MSSV, TenSV, ThuocMaLop)

MaLop
(1,n)
LopHoc

6

TenLop

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

LopHoc(MaLop, TenLop)


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

MSSV

Sinh Viên

TenSV

(1,1)

Co


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:

SoThe

SinhVien(MSSV, TenSV, coMaThe)

(1,1)
TheSV

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 :

TheSV(MaThe, ThuocMaSV)


MaHĐ

hoaDon


TongTien

(1,1)

Co

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:

MaSP
(1,1)

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

ChiTietHĐ
SL

Thêm ghi chú
Ghi chú:

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

-

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




Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×