Như chúng ta đã biết, mô hình ER là mô hình dữ liệu mức khái niệm. Sau quá trình khảo sát thiết kế, ta thu được mô hình này. Từ mô hình này ta có thể sử dụng các quy tắc chuyển sang mô quan hệ để thực hiện quản lý cơ sở dữ liệu trên máy tính.
Mỗi kiểu thực thể bình thường (không phải kiểu thực thể yếu) trong mô hình ER trở thành một quan hệ. Quan hệ đó bao gồm tất cả các thuộc tính đơn giản và thuộc tính tổ hợp của thực thể. Thuộc tính định danh của thực thể là khóa chính của quan hệ.
Kiểu thực thể: EMPLOYEE, DEPARTMENT, PROJECT
==> quan hệ: EMPLOYEE, DEPARTMENT, PROJECT
→ Quan hệ: EMPLOYEE (Ssn, fname, minit, lname, bdate, sex, address, salary)
→ Quan hệ: DEPARTMENT ( Dnumber, Dname)
→ Quan hệ: PROJECT (Pnumber, Pname, Plocation)
Cho mỗi thực thể yếu (Weak Entity) trong mô hình ER, tạo thành một quan hệ R, tất cả thuộc tính đơn giản của thực thể yếu trở thành thuộc tính của R. Thêm vào đó, thuộc tính định danh của thực thể chủ trở thành khóa ngoại của R.
Khoá chính của R là sự kết hợp giữa thuộc tính định danh của thực thể chủ và thuộc tính định danh của thực thể yếu.
→ DEPENDENT ( Essn, Dependent_name , sex, bdate, relationship)
Cho mỗi mối liên kết 1-1 trong mô hình ER:
→ DEPARTMENT(…, MGRSSN, MGRSTARTDATE)
Cho mỗi mối liên kết 1_N trong mô hình ER. Chuyển khóa chính của quan hệ phía 1 sang làm khóa ngoại của quan hệ phía N.
→ EMPLOYEE(…, DNO)
→ EMPLOYEE(…, SuperSSN)
Cho mỗi mối liên kết MN, sinh ra một quan hệ mới R, chuyển khóa chính của hai quan hệ phía M và N thành khóa ngoại của quan hệ R. Khóa chính của R là sự kết hợp của hai khóa ngoại.
→ WORKS_ON( PNO, ESSN, Hours)
Nếu gặp thuộc tính đa trị
→ DEPT_LOCATIONS ( DNumber, DLocation)
Cho mỗi mối liên kết có bậc (>2), tạo ra quan hệ mới (R), khóa chính của các quan hệ tham gia liên kết được đưa làm khóa ngoại của quan hệ R và các khóa ngoại này đồng thời đóng vai trò là khóa chính của R.
→ SUPPLY (SName, ProjName, PartNo, Quantity)
Xử lý q uan hệ giữa lớp cha/ lớp con và chuyên biệt hoá hoặc tổng quát hoá.
Các lựa chọn khác nhau cho việc chuyển đổi một số lượng các lớp con từ cùng một chuyên biệt (hoặc tổng quát hoá thành lớp cha). Ngoài 7 bước đã trình bày ở trên trong bước 8 dưới đây đưa ra một lựa chọn phổ biến nhất và các điều kiện mà mỗi lựa chọn có thể sử dụng. Sử dụng ký hiệu Attr(R) để biểu thị các thuộc tính của R và PK(R) là khoá chính của R.
Cách thực hiện
Chuyển đổi mỗi chuyên biệt hoá có
→ Chuyển chuyên biệt hoá trên thành các quan hệ sau:
EMPLOYEE(SSN, FName, Minit, LName, BirthDate, Address, Salary)
SECRETARY(SSN, TypingSpeed)
TECHNICIAN(SSN, TGrade)
ENGINEER(SSN, EngType)
Tạo một quan hệ Li cho mỗi lớp con Si, với các thuộc tính Attr(Li) = {k, a1, a2,…, am} U {thuộc tính của Si} và PK(Li) = k.
→ Chuyển chuyên biệt hoá trên thành các quan hệ sau
CAR(Vehicleld, LicensePlateNo, Price, MaxSpeed, NoOfPassengers)
TRUCK(Vehicleld, LicensePlateNo, Price, NoOfAxles, Tonnage)
Tạo một quan hệ L với các thuộc tính Attr(L) = {k, a1 , a2 , …, an } U {thuộc tính của S1} U… U {thuộc tính của Sm} U {t} và PK(L) = k. Trong đó, t là thuộc tính phân biệt chỉ ra bản ghi thuộc về lớp con nào, vì thế miền giá trị của t ={1,2,…,m}.
Đối với chuyên biệt hoá của EMPLOYEE, ta chỉ tạo ra một quan hệ L như sau:
EMPLOYEE(SSN, FName, Minit, LName, BirthDate, Address, Salary, TypingSpeed, Tgrad, EngType, JobType)
Tạo một quan hệ L với các thuộc tính Attr(L) = {k, a1 , a2 , …, an } U {thuộc tính của S1} U… U {thuộc tính của Sm} U {t1 , t2 , …, tmj} và PK(L) = k. Lựa chọn này cho chuyên biệt hoá của các lớp con được nạp chồng (nhưng cũng áp dụng cho một chuyên biệt tách rời), và với mỗi ti, 1≤ i ≤ m, là thuộc tính BOOLEAN chỉ ra bộ theo lớp con Si.
→ PART (ParNo, Description, Mflag, DrawingNo, ManufactureDate, BatchNo, PFlag, SupplierName, ListPrice)
Thuộc tính phân biệt