Bài tập mẫu về thiết kế mô hình erd doc

Trước khi tạo một Database cho công ty của mình, chúng ta cần phải có một cái sơ đồ dữ liệu. Cũng giống như trước khi bắt tay vào sản xuất một cái ô tô thì ta cần có bản vẽ thiết kế chi tiết của nó vậy. Trong trường hợp bạn là Data Analyst thì bạn cần phải biết đọc bản thiết kế của cái database bạn sẽ dùng. Nói chung là bạn cần đọc bài này nếu có làm việc dính dáng tới Database. Mình có tìm thử thì thấy cũng có một số bài viết về loại sơ đồ này bằng tiếng Việt. Nhưng chúng không được đầy đủ lắm.

Bài này mình sẽ nói tới các ký hiệu dùng trong một sơ đồ dữ liệu, tiếng Anh gọi là Entity Relationship Diagram (ERD), tiếng Việt là Mô hình Quan hệ Thực thể một cách đầy đủ nhất. Bài này nằm trong chuỗi bài sử dụng SQL để quản lý Big Data. Mình viết ra quan trọng nhất là để ghi chép tổng hợp kiến thức, sau dễ bề tham khảo.

Trước hết, bạn nên mở công cụ ERDPlus ở đây: , cùng lúc với học bài. Vừa đọc vừa vẽ lại hình, nó sẽ giúp bạn dễ hiểu bài hơn nhiều. Học phải đi đôi với hành mà.

Đầu tiên chúng ta nhìn vào những hình chữ nhật. Mỗi hình chữ nhật tượng trưng cho một Entity. Mình chả biết dịch thế nào mà mình cũng hạn chế dịch mấy thuật ngữ tiếng Anh, sau lại mất công học lại. Bạn chỉ cần nhớ là với mỗi Entity thì ta có thể tạo ra một bảng dữ liệu con. Entity như kiểu một theme dữ liệu ấy.

Với mỗi hình chữ nhật ta sẽ có nhiều hình ô van kết nối với nó. Hình ô van tượng trưng cho Attribute (Đặc tính) của cái Entity đó. Nôm na thì nó là mỗi cột dữ liệu của bảng dữ liệu.

Các Entity (hình chữ nhật) được kết nối với nhau bằng hình thoi (Mối liên hệ).

Bài tập mẫu về thiết kế mô hình erd doc

Ví dụ:

Bài tập mẫu về thiết kế mô hình erd doc

Ở cái Database này ta có 2 bảng dữ liệu kết với nhau. Bảng về Doctor có 3 cột dữ liệu là cột DrID, DrYearGrad và DrName. Bảng về OutpatientLoc thì có 2 cột dữ liệu là OLID và OLName. Mối liên hệ ở trên giữa 2 bảng là WorkAt, nghĩa là Bác sĩ này làm việc tại Địa điểm nào.

Điểm chú ý nhỏ là Tên Mối quan hệ thường là Động từ.

Tiếp theo ta nhìn thấy mấy cái gạch như ở dưới:

Bài tập mẫu về thiết kế mô hình erd doc

  • 1 gạch: chỉ có 1 kết nối
  • Gạch hình chân chim: có nhiều kết nối
  • Gạch ở xa hình chữ nhật: chỉ giá trị nhỏ nhất
  • Gạch ở gần hình chữ nhật: chỉ giá trị lớn nhất
  • Hình tròn: optional, không bắt buộc

Ngoài ra ta có thể ghi số ở đây thay vì gạch. Số có nghĩa là số lượng mối quan hệ cụ thể. Ví dụ thay vì gạch ở trên ta thấy (1,5) thì nghĩa là có ít nhất 1 bác sĩ, hoặc nhiều nhất 5 bác sĩ, làm việc tại một địa điểm nào đó.

Quay trở lại với Hình Ovan (Attribute).

– Nếu chữ trong hình Ovan được gạch dưới, nghĩa là với attribute này, mỗi dòng dữ liệu chỉ có một giá trị duy nhất.

Thường nó sẽ là ID của bảng dữ liệu đó. Nó còn gọi là Unique key, unique attribute, Primary Key, hay Indentifier. Chú ý là mỗi Entity có thể có nhiều Unique key. Khi đó ta chỉ cần chọn một trong số đó làm Primary Key. Ví dụ trong trường dữ liệu Sinh Viên, ta có thể có Mã số sinh viên và Số CMND đều chỉ có gía trị duy nhất cho từng sinh viên nhưng ta chỉ chọn một làm Primary Key.

Bài tập mẫu về thiết kế mô hình erd doc

– Nhưng nếu chữ trong hình Ovan được gạch dưới đứt quãng và hình chữ nhật có 2 viền, điều này nghĩa là Attribute đó là Partial Key. Tức là một mình nó không thể dùng để xác định được Entity vì nó phụ thuộc vào Key (unique attribute) của một Entity khác. Ta phải dùng Unique Key của một Entity khác cùng với Parital Key của Entity này mới truy cập được đúng dữ liệu mình muốn.

Ví dụ như hình ở dưới. Anh Tèo ở nhà số 4, phố Huế. Trong thành phố có 36 phố phường, phố Trần Hưng Đạo bên cạnh cũng có nhà số 4. Nếu chỉ gọi dữ liệu là nhà số 4 thì không ra được nhà anh Tèo, mà phải gọi thêm dữ liệu ID phố nữa.

Để biết là cái Partial Key phụ thuộc vào Unique Key của Entity nào thì ta tìm cái hình thoi (mối liên kết) cũng có 2 viền. Đầu kia của cái hình thoi là cái Entity có Unique Key ta cần tìm. Nói chung bộ 4 cái: Hình chữ nhật 2 viền + attribute gạch dưới đứt quãng + hình thoi 2 viền + Unique key luôn đi với nhau

Bài tập mẫu về thiết kế mô hình erd doc

Nếu hình Ovan (Attribute) có viền gạch đứt quãng, nó nghĩa là Derived. Nghĩa là ta không cần thu thập data cho nó mà có thể suy ra từ một Attribute khác trong Database. Ví dụ dựa vào ngày sinh, ta có thể suy ra người đó bao nhiêu tuổi.

Bài tập mẫu về thiết kế mô hình erd doc

Nếu hình Ovan (Attribute) có 2 viền đây là một Multivalued attribute: nó có nhiều giá trị khác nhau cho cùng một dòng. Ví dụ attribute có tên Sở thích. Mỗi Người có thể có vài sở thích khác nhau chứ không chỉ giới hạn ở một sở thích.

Bài tập mẫu về thiết kế mô hình erd doc

contactid firstname lastname hobbies 1639 George Barnes reading 5629 Susan Noble hiking, movies 3388 Erwin Star hockey, skiing 5772 Alice Buck 1911 Frank Borders photography, travel, art 4848 Hanna Diedrich gourmet cooking

Nếu chữ trong hình Ovan (Attribute) được đóng mở ngoặc. Tức là một Attribute Composite. Như cái tên, ta hiểu nôm na là cái Attribute này sẽ được tạo bởi những attribute khác. Ví dụ Tên Họ được tạo bởi Tên, Tên Đêm và Họ. Thường không ai điền một dòng data dài dặc Nguyễn Văn Tèo cả. Mà ta chia nhỏ dữ liệu ra cho dễ truy cập thành: Nguyễn (Họ), Văn (Tên Đệm) và Tèo (Tên).

Bài tập mẫu về thiết kế mô hình erd doc

Mình nghĩ là tạm đủ rồi, nếu thiếu các bạn cứ comment mình bổ sung thêm nhé. ung

Update 10/11/20:

Associative entity: Associative entities relate the instances of several entity types. They also contain attributes specific to the relationship between those entity instances.

Bài tập mẫu về thiết kế mô hình erd doc

Bài tập: Ở trên là tất cả khái niệm cần có trong một ERD. Bây giờ bạn thử quay lại và đọc cái ERD trên đầu bài xem sao? (bấm vào đây để xem rõ hình). Lời giải ở đây

– Gợi ý: Đọc từ hình chữ nhật trước. Sau đó đọc các hình Ovan. Rồi kết nối hình chữ nhật với nhau bằng hình Thoi.