2013-04-09 68 views
14

Tôi cố gắng để hiển thị như sau trong sơ đồ ER:One-to nhiều mối quan hệ trong sơ đồ ER

There are instructors and courses, a course is taught by only one instructor 
whereas an instructor can give many courses. 

enter image description here

enter image description here

Câu hỏi của tôi là, liệu có bất kỳ sự khác biệt giữa hai sơ đồ, nói cách khác, có vấn đề gì mà dòng chúng ta biến thành một mũi tên, hoặc những gì chỉ có vấn đề chỉ là hướng của mũi tên?

Ngoài ra, nếu chúng ta suy nghĩ về các yếu tố bản đồ; là 1 đến nhiều hay nhiều đến 1? Nếu chúng ta nghĩ về các khóa học, thì nó là rất nhiều, nhưng nếu chúng ta nghĩ về những người chỉ dẫn, thì nó là một với nhiều người. Làm cách nào để chúng tôi quyết định điều này? Cảm ơn bạn.

Trả lời

30

Trong biểu đồ ER khi mối quan hệ được biểu thị các mũi tên không được sử dụng. Một số giáo viên hướng dẫn sử dụng mũi tên này khi họ muốn quyết định hồng y, nhưng đó chỉ là để có được bản số (1: 1, 1: M và N: M)

Tôi đã đính kèm sơ đồ ER cho điều này trong ký hiệu Chen và sử dụng ký hiệu Crow, bạn có thể sử dụng một trong hai ký hiệu đó.

ER Digram

Quyết định số cho một mối quan hệ là một kịch bản thực tế không có khó khăn và vượt qua quy tắc để có được nó. Những gì bạn cần làm là bắt đầu từ một bên của mối quan hệ và lấy một tuple (ví dụ) và xem có bao nhiêu bộ dữ liệu từ thực thể khác tham gia vào mối quan hệ. Sau đó, làm ngược lại. Sau đó, bạn biết số lượng tham gia của các bộ dữ liệu) từ mỗi thực thể đến mối quan hệ. Hãy suy nghĩ về lý thuyết và chức năng thiết lập trong toán học khi bạn quyết định cardinality (tức là Set of instructors, Set of Courses và thiết lập Teaches relationship type) thì điều này rất dễ dàng nhưng nếu bạn không phải từ một nền toán học chỉ nghĩ về kịch bản thực tế.

Ví dụ

a) Đối với 1 người hướng dẫn anh ta hoặc cô có thể dạy nhiều() các khóa học M

b) Đối với 1 khóa học chỉ có 1 giảng viên

như vậy trong phía giảng viên có luôn luôn là 1 trong a) và b) nhưng trong các khóa học có M và 1 trong a) và b) ở đó cho Hướng dẫn: Khóa học cardinality là 1: M

+0

Nhưng có đúng không nếu tôi có thuộc tính cho viên kim cương giữa hai thực thể? – hyperfkcb

+0

@DeniseTan Có, nó thực sự là có thể. Mối quan hệ nhiều-nhiều có thể được bình thường hóa thành hai mối quan hệ một-nhiều, với một bảng nối. Điều đó sẽ được đại diện bởi một mô hình trừu tượng, cũng có thể chứa các thuộc tính (tức là dấu thời gian). Ví dụ, các câu hỏi và thẻ trong SO là mối quan hệ nhiều-nhiều. Các thẻ của các câu hỏi có thể được biểu diễn bằng mối quan hệ 'question_tags'. Mối quan hệ này có thể có trường 'inserted_at', biểu thị dấu thời gian của việc gán thẻ. – Leviathlon

0

Tôi không nghĩ câu trả lời khác hoàn toàn chính xác.

tôi sẽ nói rằng một nên mũi tên sử dụng, và ta nên sử dụng một ký hiệu cung cấp cho một tên có ý nghĩa để mỗi hướng của mối quan hệ. Trong trường hợp này, nó sẽ được "dạy" theo một hướng, và "được dạy bởi" theo cách khác. Sử dụng mũi tên bên cạnh tên hoặc đặt tên gần đối tượng mà nó đề cập đến. Bạn có thể sử dụng một dòng (với hai đầu mũi tên) hoặc hai dòng (với mỗi mũi tên một).

Tôi cũng đề nghị rằng thẻ chỉ là một loại ràng buộc, và ký hiệu phải phản ánh điều đó. Ví dụ, hai tên cho mối quan hệ có thể là "dạy (nhiều)" và "được dạy bởi (chính xác một)". Vấn đề là bạn có thể có "dạy (một hoặc hai)" hoặc "được dạy bởi (chính xác hai)" và vân vân.

Tốt hơn là phải rõ ràng và rõ ràng về chính xác những hạn chế của bạn thực sự là gì.

0

Cả hai đều có chính xác đối diện cardinality

Dòng sạch đơn giản có nghĩa là nhiều.

Mũi tên có nghĩa là một.

Nếu chúng ta xem xét cả hai cùng một thẻ.

sau đó, nhiều người nhiều nên được đại diện bằng cách làm theo quy ước thứ hai là (xin giả kim cương cho mối quan hệ thiết lập và hình chữ nhật cho bộ thực thể)

INSTRUCTOR <---- TEACHES -----> COURSE 

mà thực sự là không có ý nghĩa.

Nếu chúng ta xem xét cả hai với cardinality đối diện.

sau đó, nhiều người nhiều nên được đại diện bằng cách làm theo quy ước thứ hai là (xin giả kim cương cho mối quan hệ thiết lập và hình chữ nhật cho bộ thực thể)

INSTRUCTOR ----- TEACHES ------ COURSE 

Không mũi tên rõ ràng là luôn coi nhiều nhiều. Vì vậy, nó là chính xác (chỉ khi chúng ta xem xét cả hai đối diện)

+0

bất kỳ nguồn nào để hỗ trợ câu trả lời của bạn? – momo

0

Hãy xem xét một tổ chức 'nhân viên' và tổ chức 'bộ phận' thiết lập, có mối quan hệ thiết lập là 'quản lý'. Nhân viên ------------- Quản lý -------------------- Sở (bộ thực thể) (Bộ quan hệ) (bộ thực thể) Một đến nhiều mối quan hệ có nghĩa là một thực thể của tập hợp nhân viên có thể được liên kết với nhiều thực thể của bộ thực thể Bộ, nhưng một thực thể của bộ Bộ có thể được liên kết với nhiều nhất một thực thể của bộ thực thể nhân viên. Điều đó có nghĩa là nếu có một mối quan hệ giữa nhân viên và bộ phận tổ chức bộ phận thì mỗi nhân viên có thể quản lý nhiều bộ phận và đồng thời mỗi bộ phận được quản lý bởi tối đa một chủ nhân.