WAY TO ENTERPRISE
Lesson 21
Mô hình thực thể ER
Agenda
I. Mô hình thực thể liên kết ER II. Các thành phần ER
III. Xây dựng ER
IV. Ví dụ thực hành vẽ ER
I. Mô hình thực thể ER
Mô hình quan hệ thực thể (Entity Relationship model - E-R) được CHEN giới thiệu vào năm 1976 là một mô hình được sử dụng rộng rãi trong các bản thiết kế cơ sở dữ liệu ở mức khái niệm.
E-R là mô hình trung gian để chuyển những yêu cầu quản lý dữ liệu trong thế giới thực thành mô hình cơ sở dữ liệu quan hệ
II. Các thành phần của ER
1. Thực thế và tập thực thể
• Thực thể là một đối tượng trong thế giới thực.
• Một nhóm bao gồm các thực thể tương tự nhau tạo thành một tập thực thể
• Việc lựa chọn các tập thực thể là một bước vô cùng quan trọng trong việc xây dựng sơ đồ về mối quan hệ thực thể
II. Các thành phần của ER
1. Thực thế và tập thực thể
Ví dụ: “Quản lý các dự án của công ty”
• Một nhân viên là một thực thể
• Tập hợp các nhân viên là tập thực thể
• Một dự án là một thực thể
• Tập hợp các dự án là tập thực thể
• Một phòng ban là một thực thể
• Tập hợp các phòng ban là tập thực thể
II. Các thành phần của ER
Thực thể yếu
Trong một số chương trình quản lý phần mềm ta phân tích dữ liệu sẽ có những loại thực thể quan trọng và một số loại thực thể không quan trọng và ta gọi nó là loại thực thể yếu. Loại thực thể yếu sẽ có một số tính chất như sau:
• Không có thuộc tính khóa
• Bắt buộc phải tham gia vào loại mối kết hợp với chủ thể của nó Ví dụ:
Thực thể Đơn hàng và thực thể Tình trạng đơn hàng thì Tình trạng đơn hàng là Thực thể yếu ( bao gồm các thuộc tính Ngày, Trạng thái, NV phụ trách)
II. Các thành phần của ER
2. Thuộc tính
Mỗi tập thực thể có một tập các tính chất đặc trưng, mỗi tính chất đặc trưng này gọi là thuộc tính của tập thực thể. Ứng với mỗi thuộc tính có một tập các giá trị cho thuộc tính đó gọi là miền giá trị.
Miền giá trị của thuộc tính gồm các loại giá trị như sau:
• Kiểu chuỗi (string)
• Kiểu số nguyên (integer)
• Kiểu số thực (float, double)
…..
II. Các thành phần của ER
2. Thuộc tính:
Ví dụ: tập thực thể NHANVIEN có các thuộc tính
Họ tên (hoten: string[20]) Ngày sinh (ns: date) Điểm TB (DTB:float)
…
II. Các thành phần của ER
Thuộc tính bao gồm các loại như sau:
Thuộc tính đơn (simple attribute) là thuộc tính mà không thể phân nhỏ thành các thành phần nhỏ hơn nữa.
Thuộc tính phức hợp (composite attribute) là thuộc tính mà có thể phân nhỏ nó thành các thành phần khác nhỏ hơn.
Ví dụ:
Số điện thoại: là một thuộc tính đơn, vì chúng ta không thể tách 1 số điện thoại thành các thành phần nhỏ hơn nữa.
Địa chỉ: có thể xem là một thuộc tính phức hợp, chúng ta có thể tách các đơn vị hành chính như: xã-phường, quận-huyện, tỉnh-thành phố ra thành các thuộc tính nhỏ hơn để dễ quản lý.
II. Các thành phần của ER
Thuộc tính bao gồm các loại như sau:
Thuộc tính thuộc tính khóa: để phân biệt các thực thể với nhau Thuộc tính dẫn xuất (năm sinh <----> tuổi)
Ví dụ: Trong trường học, chúng ta cần quan tâm đến tuổi của sinh viên, tuy nhiên thuộc tính tuổi không cần lưu vào CSDL một cách trực tiếp, chúng ta có thể dựa vào ngày sinh để suy ra tuổi của họ. Vậy thuộc tính tuổi chính là một thuộc tính dẫn xuất.
II. Các thành phần của ER
Giá trị của thuộc tính:
Các loại giá trị của thuộc tính:
Đơn trị: các thuộc tính có giá trị duy nhất cho một thực thể (VD: số CMND, …) Đa trị: các thuộc tính có một tập giá trị cho cùng một thực thể (VD: bằng cấp, …) Ví dụ:
• Ngày sinh là một thuộc tính đơn trị của thực thể SINH VIÊN, mỗi thể hiện của thực thể này là 1 bạn sinh viên cụ thể chỉ có duy nhất 1 giá trị ngày sinh.
• Chuyên môn là một thuộc tính đa trị của thực thể GIẢNG VIÊN, mỗi giảng viên có thể có nhiều chuyên môn như: ‘Lập trình’, ‘Toán cao cấp’ và ‘CSDL’….vv
II. Các thành phần của ER
Thực thể STUDENT:
• Student_ID: thuộc tính khóa để phân biệt từng sinh viên với nhau
• Student_Name: thuộc tính đơn vì không phân nhỏ thành các thuộc tính khác hơn nữa
• Other_Attributes: thuộc tính đơn vì không phân nhỏ thành các thuộc tính khác hơn nữa
• Address: thuộc tính phức hợp vì được chia nhỏ thành các thuộc tính con là Postal_Code, State, City, Street_Address
II. Các thành phần của ER
Thực thể EMPLOYEE:
• Employee_ID: thuộc tính khóa để phân biệt mỗi nhân viên với nhau
• Employee_Name: thuộc tính đơn cóa giá trị đơn trị vì mỗi nhân viên chỉ có 1 tên duy nhất
• Address: thuộc tính đơn cóa giá trị đơn trị vì mỗi nhân viên chỉ có 1 tên duy nhất
• Skill: thuộc tính đơn có giá trị đa trị vì mỗi nhân viên có thể có nhiều skill khác nhau
• Date_Employee: thuộc tính chưa, từ thuộc tính này suy ra thuộc tính Years_Employed là
II. Các thành phần của ER
Biểu diễn thuộc tính trong mô hình ER:
• Để biểu diễn 1 thuộc tính trong sơ đồ ER, chúng ta sử dụng hình elíp (ellipse) và một đường thẳng nối đến thực thể hoặc mối liên kết mà thuộc tính đó thuộc về.
• Tên thực thể: hình chữ nhật
• Thuộc tính dẫn xuất: hình elíp với nét gạch đứt.
• Thuộc tính đa trị: hình elíp với 2 đường viền
• Thuộc tính khóa: tên thuộc tính sẽ được gạch chân.
II. Các thành phần của ER
Quan hệ giữa các thực thể
Quan hệ là sự liên kết giữa hai hay nhiều tập thực thể
II. Các thành phần của ER
Quan hệ giữa các thực thể
Quan hệ 1-n: Một phòng ban bao gồm nhiều nhân viên
II. Các thành phần của ER
Quan hệ 1-1: Một người có 1 cuốn Passpost
Quan hệ n-n: Một nhân viên thuộc nhiều dự án và một dự án có nhiều nhân viên
II. Các thành phần của ER
Mối quan hệ có thuộc tính
III. Xây dựng ER
Quy tắc:
• Chính xác
• Tránh trùng lặp
• Dễ hiểu
• Chọn đúng mối quan hệ
• Chọn đúng kiểu thuộc tính
Các bước xây dựng:
• Liệt kê, chọn lọc thông tin
• Xác định tập thực thể
• Xác định mối quan hệ
• Xác định thuộc tính và gắn thuộc tính cho tập thực thể và mối quan hệ
• Quyết định thuộc tính khóa
• Vẽ biểu đồ mô hình thực thể E-R
• Chuẩn hóa biểu đồ
IV. Thực hành vẽ ER
Ta có các tập thực thể sau:
1. Thực thể Nhân viên có các thuộc tính:
• Mã nhân viên
• Họ tên nhân viên
• Số điện thoại
• Địa chỉ liên lạc ( có thể có 2 địa chỉ liên lạc)
• Skill
• Số năm làm việc
2. Thực thể Phòng ban có các thuộc tính sau:
• Mã phòng ban
• Tên phòng ban
• Số phòng ban
3. Thực thể Dự án có các thuộc tính sau:
• Mã dự án
• Tên dự án
IV. Thực hành vẽ ER
Yêu cầu:
1. Xác định miền giá trị của từng thuộc tính
2. Xác định thuộc tính nào là thuộc tính đơn, thuộc tính nào là phức hợp và xác định giá trị của thuộc tính ( đơn trị và đa trị)
3. Xác định mối quan hệ giữa các thực thể.
4. Xây dựng ER