WAY TO ENTERPRISE
Lesson 23
Mô hình dữ liệu quan hệ
Agenda
I. Mô hình dữ liệu quan hệ
II. Chuyển đổi từ mô hình thực thể ER sang Mô hình dữ liệu quan hệ
III. Ví dụ thực hành
I. Mô hình dữ liệu quan hệ
Mô hình dữ liệu quan hệ ( gọi tắt là Mô hình quan hệ) đc E.F.Codd đề xuất năm 1970. Trong khoảng 30 năm trở lại đây, các hệ CSDL xây dựng theo mô hình quan hệ được dùng rất phổ biến.
I. Mô hình dữ liệu quan hệ
I. Mô hình dữ liệu quan hệ
Về mặt cấu trúc:
• Dữ liệu được lưu trong các bảng
• Mỗi bảng bao gồm các hàng và các cột thể hiện thông tin về một chủ thế
• Các cột biểu thị cho một cá thể, gồm một bộ các giá trị tương ứng với các cột
Về mặt thao tác trên dữ liệu:
• Có thể cập nhật dữ liệu như thêm, sửa, xóa hay sửa bản ghi trong một bảng
• Các kết quả tìm kiếm thông tin qua truy vấn dữ liệu có được nhờ thực hiện các thao tác trên dữ liệu
I. Mô hình dữ liệu quan hệ
Ràng buộc phạm vi:
Các ràng buộc về phạm vi có thể bị vi phạm nếu một giá trị của thuộc tính không tồn tại trong phạm vi tương ứng hoặc nó không thuộc kiểu dữ liệu phù hợp.
Các ràng buộc về phạm vi quy định mỗi bộ dữ liệu đơn lẻ và giá trị của mỗi thuộc tính phải là duy nhất. Điều này được xác định là các kiểu dữ liệu bao gồm kiểu dữ liệu chuẩn như là số nguyên, số thực, ký tự, Boolean, chuỗi,...
Ví dụ: Tạo một ràng buộc về phạm vi sao cho CustomerName không phải là giá trị NULL.
Create DOMAIN CustomerName CHECK (value not NULL)
I. Mô hình dữ liệu quan hệ
Ràng buộc khóa (khóa chính)
Một thuộc tính có thể xác định duy nhất một dữ liệu đơn lẻ trong một quan hệ được gọi là khóa của bảng. Giá trị của thuộc tính cho các dữ liệu đơn lẻ khác nhau trong mối quan hệ phải là duy nhất.
Ví dụ:
Ở bảng đã cho, ID Nhân viên là một thuộc tính là khóa chính của bảng nhân viên. Mỗi khóa duy nhất sẽ được sử dụng để xác định cho mỗi nhân viên.
I. Mô hình dữ liệu quan hệ
Ràng buộc về tính toàn vẹn có tham chiếu ( khóa ngoại)
Các ràng buộc về tính toàn vẹn có tham chiếu trong hệ quản trị cơ sở dữ liệu dựa trên phạm vi khái niệm của khóa ngoại. Khóa ngoại là một thuộc tính quan trọng của một quan hệ mà nó sẽ được tham chiếu đến ở trong các quan hệ khác.
Trong ví dụ trên, chúng ta có 2 mối quan hệ là bảng Nhân viên và bảng Lương. Hàng ID Nhân viên = 1 được tham chiếu 1 lần trong bảng Lương. Vì vậy, chúng ta có thể biết được lương của từng Nhân viên
II. Chuyển đổi từ ER-> MH dữ liệu quan hệ
Chuyển đổi từ thực thể Tên thực thể => Tên Quan hệ Thuộc tính đơn => Thuộc tính
Khóa loại thực thể => Khóa quan hệ
Thực thể Phòng Ban chuyển sang mô hình quan hệ:
PHONGBAN (MaPB, TenPB, SoPB)
II. Chuyển đổi từ ER-> MH dữ liệu quan hệ
Chuyển đổi từ thực thể yếu Tên thực thể => Tên Quan hệ Thuộc tính đơn => Thuộc tính
Khóa riêng phần của thực thể yếu + Khóa thực thể xác định => Khóa quan hệ
Tình trạng Dự án là thực thể yếu => Tên Quan hệ “TTDuAn”
TTDUAN (STT, MaDA, TinhTrang, Ngay)
II. Chuyển đổi từ ER-> MH dữ liệu quan hệ
Chuyển đổi thuộc tính Phức hợp Có 2 cách:
Từ thuộc tính kết hợp -> Thuộc tính đơn Từ thuộc tính kết hợp -> Tập thuộc tính đơn
Có thể chuyển đổi thành 1 trong 3 Quan hệ sau tùy theo yêu cầu:
NHANVIEN (MaNV, HoTenNV, SoDT, SoNamLamViec, DiaChi)
NHANVIEN (MaNV, HoTenNV, SoDT, SoNamLamViec, ThanhPho, QuanHuyen, PhuongXa, SoNha)
II. Chuyển đổi từ ER-> MH dữ liệu quan hệ
Chuyển đổi thuộc tính Đa trị
Thuộc tính đa trị => Tạo một Quan hệ mới Trong Quan hệ mới có Khóa của thực thể + thuộc tính đa trị
Thuộc tính đa trị Bằng cấp, Skill sẽ tạo thành 2 Quan hệ mới là:
BANGCAP (MaNV, BangCap) SKILL (MaNV, Skill)
II. Chuyển đổi từ ER-> MH dữ liệu quan hệ
Chuyển đổi mối kết hợp 1-1
Trường hợp nếu mối kết hợp 1-1 ngang bằng thì đặt khóa chính của Quan hệ nào sang Quan hệ nào cũng được
Có thể tách thành 2 Quan hệ như sau:
PERSON (MaPerson, MaPasspost, Tên, NgaySinh, QueQuan) PASSPOST (MaPasspost, NgayTao, NoiCap, ThoiHanCoHieuLuc) Hoặc
PERSON (MaPerson, Tên, NgaySinh, QueQuan)
II. Chuyển đổi từ ER-> MH dữ liệu quan hệ
Chuyển đổi mối kết hợp 1-1
Trường hợp mối kết hợp 1-1 bán phần thì chuyển khóa chính của Quan hệ bán phần vào Quan hệ toàn phần
Chỉ tách đc thành 2 Quan hệ là:
HOADON (SoHoaDon, SoDonHang, NgayTao, TongTien)
DONHANG (SoDonHang, MatHang, SoLuong, LoaiHinhTT, HinhThucVC)
II. Chuyển đổi từ ER-> MH dữ liệu quan hệ
Chuyển đổi mối kết hợp 1-n
Trường hợp kết hợp 1-n không có thuộc tính
Thêm khóa chính ở bên “1” sang bên “n”
NHANVIEN (MaNV, MaPhongBan, HoTenNV, SoDT, DiaChi,
SoNamLamViec, NgayVaoCT, BangCap)
II. Chuyển đổi từ ER-> MH dữ liệu quan hệ
Chuyển đổi mối kết hợp 1-n
Trường hợp kết hợp 1-n có thuộc tính
Thêm khóa chính ở bên “1” sang bên “n” và thêm cả thuộc tính kết hợp vào bên “n”
NHANVIEN (MaNV, MaPhongBan, HoTenNV, SoDT, DiaChi,
SoNamLamViec, NgayVaoCT, BangCap, NgayVaoPB)
II. Chuyển đổi từ ER-> MH dữ liệu quan hệ
Chuyển đổi mối kết hợp n-n
Tạo một Quan hệ mới
Thuộc tính của mối kết hợp => Thuộc tính của Quan hệ mới Khóa của 2 thực thể tham gia => Khóa của Quan hệ mới
III. Thực hành chuyển từ ER -> MH dữ liệu quan hệ
Chuyển mô hình ER sau sang Mô hình dữ liệu quan hệ