Knowhub

      48

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ạn đang xem: Knowhub

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: https://erdplus.com/#/standalone, 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ệ).

Ví dụ:

Ở 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 Dr
ID, Dr
Year
Grad và Dr
Name. Bảng về Outpatient
Loc 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à Work
At, 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:

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ênSố 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.

– Nhưng nếu chữ trong hình Ovan được gạch dưới đứt quãng 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.

Xem thêm: Rất Hay: Sinh Ngày 18 Tháng 11 Là Ngày Gì? 18 Tháng 11 Là Cung Gì?

Để 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

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.

Nếu hình Ovan (Attribute) 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.

contactidfirstnamelastnamehobbies
1639GeorgeBarnesreading
5629SusanNoblehiking, movies
3388ErwinStarhockey, skiing
5772AliceBuck
1911FrankBordersphotography, travel, art
4848HannaDiedrichgourmet 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).

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

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: Ở 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.

Mô hình erd là một loại mô hình không còn xa lạ với nhiều người. Vậy mô hình erd là gì? Cách vẽ mô hình erd thế nào? Và cách chuyển nó sang mô hình quan hệ ra sao? Hãy cùng tìm hiểu dưới đây nhé.

Mô hình erd là gì?

Mô hình erd được viết tắt bởi từ Entity Relationship Diagram được hiểu là mô hình thực thể kết hợp hay còn gọi là thực thể liên kết. Mô hình này còn được biết tới với các gọi khác là er (viết tắt của từ Entity Relationship model). Vậy mô hình er là gì? Mô hình erd hay er bao gồm các thực thể, những mối kết hợp và đặc biệt là danh sách thuộc tính.

Trong đó:

Thực thể được hiểu là các danh sách cần được quản lý và có những đặc trưng riêng biệt như tên và các thuộc tính.

Ví dụ khi thiết kế cơ sở dữ liệu để quản lý học viên của một trung tâm tiếng anh, ta có các thực thể sau: HOCVIEN, LOP, KHOA HOC….

Mối kết hợp là mối quan hệ và liên quan giữa hai hay nhiều thực thể. Mối kết hợp lại được chia thành 3 loại một – một (1-1), một – nhiều (1-N) và nhiều nhiều (N-N).

Cụ thể: Hai thực thể A – B có mối quan hệ 1 – 1 nếu thực thể A chỉ tương ứng với một thực thể kiểu B và ngược lại. Hai thực thể này có mối quan hệ 1 – N nếu một thực thể A có thể tương ứng với nhiều thực thể kiểu B, nhưng với 1 thực thể B thì chỉ có thể tương ứng với duy nhất một thực thể kiểu A. Và cuối cùng, hai thực thể A – B có mối quan hệ N – N nếu một thực thể kiểu A có thể tương ứng với nhiều thực thể B và ngược lại.

*
*

Cách vẽ sơ đồ erd

Sau khi nắm được mô hình erd là gì, chúng ta sẽ tìm hiểu cách vẽ sơ đồ erd. Để vẽ được sơ đồ erd, ta cần lưu ý một số ký hiệu sau:

Hình chữ nhật: biểu diễn thực thể
Hình elip: biểu diễn thuộc tính, trong hình elip có ghi tên thuộc tính
Hình thoi: biểu diễn quan hệ

Các bước vẽ sơ đồ erd:

Thông qua việc liệt kê và lựa chọn thông tin dựa trên giấy tờ, hồ sơ
Xác định mối quan hệ giữa thực thể và thuộc tính của nó
Xác định mối quan hệ có thể có giữa các thực thể và mối kết hợp
Vẽ mô hình erd bằng các ký hiệu sau đó chuẩn hóa và thu gọn sơ đồ

*
*

Chuyển mô hình er sang mô hình quan hệ

Mô hình quan hệ là gì?

Mô hình quan hệ hay được gọi là mô hình thực thể quan hệ là các cơ sở dữ liệu được xây dựng dưới dạng mô hình. Mô hình này được đặc trưng bởi 3 đặc trưng sau:

Các mối quan hệ phải có tên riêng biệt để phân biệt với nhau
Các bộ được phân biệt với nhau và không quan trọng thứ tự
Mỗi thuộc tính cũng cần có tên phân biệt và không quan trọng thứ tự

Cách chuyển mô hình er sang mô hình quan hệ

Bước 1: chuyển mỗi loại thực thể thành một loại quan hệ tương ứng

Chuyển các mối kết hợp 1-1 gom 2 thực thể thành một thực thể
Các mối kết hợp 1-N lấy khóa bên thực thể nhiều chuyển thành khóa ngoại
Các mối quan hệ N-N hình thành một loại quan hệ mới

Bước 2: kiểm tra lại dạng chuẩn của các mối quan hệ.