Отношения между сущностями в базе данных - PullRequest
0 голосов
/ 21 января 2011

Когда я описывал отношения между сущностями, я понял, правильно ли это, если в таблице встречается первичный ключ, скажем, что A имеет в таблице B, которая определяет, является ли он взаимно-однозначным, однозначным ии так далее?

Если таблица B имеет атрибут с внешними ключами, а каждая строка в таблице B имеет ссылку на одну и ту же таблицу в строке A, то это отношение один ко многим, верно?

Заранее спасибо

Ответы [ 3 ]

0 голосов
/ 21 января 2011

Вы смешиваете таблицы и строки в своем вопросе, поэтому я пытаюсь объяснить немного больше.

Если в таблице B есть столбец для внешних ключей, и каждая из строк в этом столбце имеет внешний ключ, который ссылается на столбец первичного ключа строки в таблице A, то это однозначный одно отношение .

Однако (и это то, что вы заявляете), если несколько внешних ключей в строках таблицы B ссылаются на одну строку в другой таблице A, то это один к одному много отношений , так как есть несколько B, ссылающихся на один A.


Пример

Сотрудникам назначается тип компьютера.

Таблица сотрудников:

ID    Name  Computer
==============
1     Mike   1
2     Tom    3
3     Joe    1
4     Emily  4

Настольные компьютерные типы:

ID    Name
==============
1     HP
2     Macbook Pro
3     Dell
4     Alienware

Тогда это отношение один ко многим, говорящее нам, что один тип компьютера может быть назначен многим сотрудникам , т.е. Джо и Майк используют компьютеры HP.

0 голосов
/ 21 января 2011

Модель реляционной базы данных и Моделирование сущности-отношения (ER-моделирование) - две совершенно разные парадигмы моделирования данных.ER-моделирование сводит модель данных к нескольким очень простым понятиям (например, сущности и бинарные отношения между ними), тогда как модель реляционной базы данных в принципе может быть намного богаче и мощнее этой.Это потенциальное несоответствие следует учитывать при попытке описать концепции реляционной базы данных с помощью терминов ER-моделирования, что вы и пытаетесь сделать.

В реляционной базе данных все отношения представлены так же, как и вседругая информация: как значения в кортежах внутри отношений (отношение или переменная отношения - это то, что более привычно называется таблицей).Однако часто бывает так, что наиболее важными или очевидными отношениями внутри таблицы являются те, которые также ссылаются на другие таблицы («внешние ключи»).Это те отношения, которыми обычно занимается ER-моделирование.

Для простых бинарных отношений, будь то в одной таблице или между таблицами, рассмотрим канонический пример отношения между атрибутами A и B. Если A толькоключ-кандидат в рассматриваемой таблице (таблицах), тогда эффективная связь между А и В составляет один ко многим (или один к нулю или многим).Если и A , и B являются ключами-кандидатами, то это соотношение один к одному (или один к нулю или одному).

0 голосов
/ 21 января 2011

Отношения между конкретными «таблицами», а не между строками. Таблица никогда не может иметь повторяющиеся первичные ключи, но может иметь дублированные внешние ключи.Отношения между таблицами - это то, что вам нужно. У одного Cardriver может быть несколько транспортных средств, а у транспортного средства может быть несколько Cardriver, но может быть только один владелец.У одного автомобиля может быть только один номерной знак, а один номерной знак может быть связан только с одним конкретным автомобилем ..

Для получения дополнительной информации .. Просто посмотрите на следующую ссылку ... там подробно описано ..

http://en.wikipedia.org/wiki/Entity-relationship_model

...