Quan hệ 1 1 trong CASE studio 2

Quan hệ 1 1 trong CASE studio 2

Chào các bạn,

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: 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ệ).

Quan hệ 1 1 trong CASE studio 2

Ví dụ:

Quan hệ 1 1 trong CASE studio 2

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

Quan hệ 1 1 trong CASE studio 2

  • 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.

Quan hệ 1 1 trong CASE studio 2

– 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.

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

Quan hệ 1 1 trong CASE studio 2

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.

Quan hệ 1 1 trong CASE studio 2

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.

Quan hệ 1 1 trong CASE studio 2

contactidfirstnamelastnamehobbies
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).

Quan hệ 1 1 trong CASE studio 2

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.

Quan hệ 1 1 trong CASE studio 2

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.

Chúc các bạn một ngày làm việc năng suất,

Thân

Nhung