Mô hình dữ liệu quan hệ là gì?
NỘI DUNG BÀI VIẾT
Trong bài viết này chúng ta sẽ cùng nhau tìm hiểu xem mô hình dữ liệu quan hệ là gì? Và tại sao lại cần nó nhé.
Mô hình dữ liệu quan hệ là gì ?
Mô hình dữ liệu quan hệ(Relational Data Model) bao gồm một hoặc nhiều quan hệ (Relation).
Thực thể và thuộc tính trong mô hình ERD trở thành quan hệ và thuộc tính của quan hệ. Mối kết hợp sẽ trở thành khoá ngoại.
Quy tắc chuyển đổi
1. Các Entity(Thực thể)
Mỗi entity sẽ được chuyển đổi thành 1 bảng. Trong đó:
- Các thuộc tính của ERD sẽ trở thành các trường của bảng.
- Thuộc tính khoá chính của ERD sẽ trở thành khoá chính của bảng
2. Kiểm tra mỗi quan hệ giữa các thực thể
a. Mối quan hệ 1 – n:
Đối với mối quan hệ 1 – nhiều chúng ta sẽ bổ sung khóa chính của bảng 1 làm khóa ngoại của bảng nhiều.
Ví dụ thực thể PhongBan và thực thể NhanVien có mối quan hệ 1 – nhiều (1 phòng ban có nhiều nhân viên) thì khi đó bảng NhanVien sẽ có thêm một khóa ngoại là MaPHG (đây là khóa chính Bảng phòng ban)
Từ hình trên ta sẽ thu được 2 bảng:
- NHANVIEN(MaNV, HoNV, TenNV, GT, NS, Luong, DiaChi, MaPHG)
- PHONGBAN(MaPHG, TenPHG)
b. Mối quan hệ 1 – 1:
Đối với mối quan hệ 1 – 1 chúng ta sẽ bổ sung khóa chính của bên này làm khóa ngoại của bảng bên kia
Ví dụ thực thể NhanVien có mối quan hệ 1 – 1 với thực thể MayTinh (Mỗi nhân viên chỉ có 1 máy tính) thì chúng ta sẽ bổ sung thêm MaNV làm khóa ngoại của bảng MayTinh
Từ hình trên ta sẽ thu được kết quả là 2 bảng:
- NHANVIEN(MaNV, HoNV, TenNV, GT, NS, Luong, DiaChi)
- MAYTINH(SoMay, TenMay, MaNV)
c. Mối quan hệ n – m(nhiều – nhiều):
Đối với mối quan n – m để chuyển đổi từ ERD sang mô hình dữ liệu quan hệ sẽ phải làm các bước như sau:
Bước 1: Tạo ra bảng trung gian được sinh ra từ mối quan hệ n – m với chứa khóa chính của 2 bảng chuyển hóa thành khóa ngoại của bảng trung gian cùng với các thuộc tính của mối quan hệ
Bước 2: Xác định khóa trung gian như sau:
- Nếu cặp khóa ngoại đủ điều kiện để đảm bảo thành khóa chính thì sẽ chọn cặp khóa ngoại thành khóa chính
- Nếu cặp khóa ngoại không đủ điều kiện để đảm bảo tính duy nhất và not null thì phải tạo thêm một trường mới là mã của bảng trung gian làm khóa chính
Ví dụ thực thể NhanVien có mối quan hệ n – m với thực thể DuAn (Một nhân viên có thể làm nhiều dự án và một dự án có thể do nhiều nhân viên thực hiện) thì chúng ta sẽ làm như sau:
Từ hình trên ta thu được các bảng như sau:
- NHANVIEN(MaNV, HoNV, TenNV, GT, NS, Luong, DiaChi)
- DEAN(MaDA, TenDA, DDiem_DA)
- PHANCONG(MaNV, MaDA, ThoiGian)
d. Thuộc tính đa trị
Đối với các thuộc tính đa trị của một thực thể chúng ta sẽ chuyển đổi thành một quan hệ mới (bảng mới) có khóa chính bao gồm 2 thuộc tính là thuộc tính đa trị và thuộc tính khóa của thực thể đồng thời loại bỏ thuộc tính đó khỏi thực thể cũ.
Ví dụ: Thực thể NhanVien có thuộc tính đa trị là bằng cấp khi đó chúng ta chuyển đổi sang mô hình dữ liệu quan hệ sẽ sinh thêm một bảng có tên là NV_BangCap với khóa chính là MaNV và BangCap và đồng thời xóa bỏ trường BangCap khỏi bảng NhanVien
Từ hình trên chúng ta thu được 2 bảng:
- NHANVIEN(MaNV, HoNV, TenNV, GT, NS, Luong, DiaChi)
- NV_BANGCAP(MaNV, BangCap)
Nguồn: https://giasutinhoc.vn/database/co-so-du-lieu/mo-hinh-du-lieu-quan-he-bai-3-2/
Leave a Reply