Ký hiệu sơ đồ ERD
Sơ đồ ERD dùng ba họ ký hiệu. Chân quạ (crow’s foot, còn gọi là ký pháp IE) là ký hiệu mà các công cụ cơ sở dữ liệu vẽ. Chen là ký hiệu được học trên lớp. UML là sơ đồ lớp áp dụng cho dữ liệu. Ở cả ba, một bảng hay thực thể là một hình chữ nhật, còn một quan hệ là đường nối giữa các hình. Chúng khác nhau ở cách ghi bản số, tức là một dòng ở bên này ứng với bao nhiêu dòng ở bên kia. Chân quạ ghi bản số ở hai đầu đường, nên mỗi đường được đọc hai lần, mỗi lần về phía một bảng. Mỗi ký hiệu dưới đây đi kèm cách đọc. ErdDocs vẽ chúng bằng đúng ký hiệu nó dùng cho lược đồ của bạn trong công cụ bên dưới.
Các đầu đường trong ký hiệu chân quạ có nghĩa gì?
Trong ký hiệu chân quạ, mọi thứ nằm ở đầu đường. Mỗi đầu có tối đa hai dấu. Dấu gần bảng chỉ giá trị lớn nhất, dấu ở ngoài chỉ giá trị nhỏ nhất.
| Ký hiệu | Tên | Cách đọc | Ví dụ |
|---|---|---|---|
| Đúng một | Gạch + gạch: ít nhất một, nhiều nhất một | một đơn hàng thuộc về đúng một khách hàng | |
| Không hoặc một | Vòng tròn + gạch: tùy chọn, nhiều nhất một | một khách hàng có nhiều nhất một thẻ tích điểm | |
| Một hoặc nhiều | Gạch + chân quạ: ít nhất một | một đơn hàng có ít nhất một dòng chi tiết | |
| Không hoặc nhiều | Vòng tròn + chân quạ: bao nhiêu cũng được, kể cả không | một khách hàng có không hoặc nhiều đơn hàng |
Cách đọc trọn một đường
Một đường quan hệ được đọc hai lần, mỗi lần về phía một bảng. Ví dụ cửa hàng kinh điển:
Quy tắc đọc đầy đủ, kể cả ý nghĩa các dấu khi lược đồ mới biết được một nửa, có ở trang ký hiệu chân quạ. Chọn tổ hợp nào là chuyện của bản số.
So sánh Chen, chân quạ và UML
| Khái niệm | Chen | Chân quạ | UML |
|---|---|---|---|
| Thực thể / bảng | Hình chữ nhật | Hình hộp chứa danh sách cột | Hộp lớp |
| Thuộc tính | Hình bầu dục nối với thực thể | Một dòng trong hộp bảng | Một trường trong hộp lớp |
| Quan hệ | Hình thoi giữa các thực thể | Một đường có dấu bản số ở hai đầu | Đường liên kết |
| Bản số | Chữ 1, N, M cạnh hình thoi | Gạch, vòng tròn và chân quạ ở đầu đường | Bội số 1, 0..1, 1..*, * |
| Khóa chính | Tên thuộc tính gạch chân | Dấu khóa trên dòng cột | Stereotype hoặc thuộc tính |
Một mẹo đơn giản. Khi lược đồ còn là ý tưởng, hãy dùng Chen. Khi sơ đồ đi cùng mã ứng dụng, hãy dùng UML. Khi đã có cơ sở dữ liệu, hãy dùng chân quạ. Đó là ký hiệu ErdDocs vẽ thẳng từ lược đồ bạn dán.
Ký hiệu không có trong giáo trình: nét đứt
Các bản dump thực tế thường không có khóa ngoại. Ứng dụng Rails, Django và Laravel giữ quan hệ trong mã, còn cơ sở dữ liệu không khai báo gì. Với trường hợp này, ErdDocs thêm một ký hiệu riêng. Nét liền là quan hệ do cơ sở dữ liệu khai báo. Nét đứt là quan hệ suy ra từ tên cột, ví dụ user_id → users. Nét liền được ràng buộc trong cơ sở dữ liệu bảo đảm, còn nét đứt là phỏng đoán có cơ sở.
Xem ký hiệu trên một lược đồ thật
Dán SQL của bạn vào công cụ bên dưới. Công cụ sẽ tìm khóa ngoại và ràng buộc duy nhất, rồi dựa vào đó đánh dấu phía «nhiều» trên mỗi đường.
Câu hỏi thường gặp
Ký hiệu chân quạ có nghĩa gì?
Mỗi đầu đường có tối đa hai dấu. Dấu gần bảng chỉ giá trị lớn nhất. Gạch nghĩa là «nhiều nhất một», chân quạ ba nhánh nghĩa là «nhiều». Dấu ở ngoài chỉ giá trị nhỏ nhất. Gạch nghĩa là «ít nhất một», vòng tròn nghĩa là «có thể không có». Vì thế vòng tròn đi với chân quạ đọc là «không hoặc nhiều», còn hai gạch đọc là «đúng một».
Nên dùng Chen hay chân quạ?
Chen hợp với việc học và thiết kế khái niệm. Ở đó quan hệ là một phần tử riêng hình thoi, rất tiện khi giảng bài. Chân quạ hợp với cơ sở dữ liệu thật. Mỗi bảng là một hộp chứa các cột, đúng như hình dạng thật của lược đồ.
Quan hệ nhiều-nhiều được thể hiện thế nào?
Bằng chân quạ ở cả hai đầu. Trong lược đồ vật lý, quan hệ nhiều-nhiều được hiện thực bằng một bảng trung gian, ví dụ order_items giữa orders và products. Vì vậy, các công cụ vẽ cơ sở dữ liệu thật sẽ hiện hai đường một-nhiều gặp nhau ở bảng trung gian đó.
Vì sao công cụ cơ sở dữ liệu không vẽ hình thoi và hình bầu dục của Chen?
Vì trong cơ sở dữ liệu vật lý, những thứ Chen vẽ riêng đều quy về bảng và cột. Hình bầu dục thuộc tính là một dòng trong hộp bảng. Hình thoi quan hệ là một cột khóa ngoại hoặc một bảng trung gian. Vẽ chúng thành hình riêng sẽ làm sơ đồ to gấp đôi mà không thêm thông tin nào.
Xem thêm
- Sơ đồ ERD: thực thể, quan hệ, và chỗ mô hình khái niệm trở thành bảng.
- Ký hiệu chân quạ: quy tắc đọc, kèm ví dụ cụ thể.
- Bản số trong sơ đồ ERD: cơ sở dữ liệu thật quyết định dấu nào trên mỗi đường ra sao.
- Ví dụ sơ đồ ERD: mười bốn lược đồ hoàn chỉnh, mỗi lược đồ có sơ đồ và từ điển.