|
|
|
Декомпозиция
|
|||
|---|---|---|---|
|
#18+
Есть отношение Student с атрибутами: ID, Name, DateOfBirth, Group, GroupLeaderID. Необходимо разделить его на два без потерь. ID - номер студ. билета, первичный ключ Name - ФИО студента. Могут совпадать. DateofBirth - дата рождения Group - номер студ. группы, студент может учиться только в одной группе GroupLeaderID - номер студ. билета старосты группы, ВНЕШНИЙ КЛЮЧ, СССЫЛАЮЩИЙСЯ НА АТРИБУТ ID. В каждой группе обязательно есть староста и только один. Гуглил, по примерам понимаю суть декомпозиции. Но "ВНЕШНИЙ КЛЮЧ, СССЫЛАЮЩИЙСЯ НА АТРИБУТ ID" сбивает с толку. Помогите пожалуйста. Есть несколько вариантов ответа: { ID(key), Name, Group, GroupLeaderID}, {Name(key), DateOfBirth} { ID(key), Group, GroupLeaderID}, {Name(key), DateOfBirth} { ID(key), Name, DateOfBirth}, {Group(key), GroupLeaderID} { ID(key), Name, DateOfBirth, Group}, {Group(key), GroupLeaderID} Больше склоняюсь к 4-ому, но не уверен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2016, 22:21 |
|
||
|
Декомпозиция
|
|||
|---|---|---|---|
|
#18+
bogucНо "ВНЕШНИЙ КЛЮЧ, СССЫЛАЮЩИЙСЯ НА АТРИБУТ ID" сбивает с толку. https://en.wikipedia.org/wiki/Foreign_key Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2016, 22:54 |
|
||
|
Декомпозиция
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, так и не понял, к сожалению, как в одном и том же отношении может быть первичный и внешний ключ вместе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2016, 23:39 |
|
||
|
Декомпозиция
|
|||
|---|---|---|---|
|
#18+
boguc, У Вас в паспорте есть ФИО - это первичный ключ. А ещё есть ФИО жены - это внешний ключ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2016, 13:15 |
|
||
|
Декомпозиция
|
|||
|---|---|---|---|
|
#18+
bogucGroupLeaderID - номер студ. билета старосты группы этот столбец сюда вообще не налазит, никак. Должна быть таблица групп, на которую как раз ссылается столбец Group. И вот уже там, в таблице групп, будет GroupLeaderID. А в таблице Student этому столбцу делать нечего. Иначе он будет избыточным - одинаковым у всех студентов одной группы, которые не GroupLeader. Если у вас там фигурными скобками выделены две таблицы, то тогда верный ответ только 4 { ID(key), Name, DateOfBirth, Group}, {Group(key), GroupLeaderID} Причем, таблицы ссылаются друг на друга. Student.Group ссылается на первичный ключ Group(key), а GroupLeaderID ссылается обратно на Student.ID. В этом случае GroupLeaderID должно допускать null, иначе нельзя будет добавлять записи ни в одну эту таблицу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2016, 00:23 |
|
||
|
Декомпозиция
|
|||
|---|---|---|---|
|
#18+
bogucID - номер студ. билета, первичный ключ Кстати, никудышнее решение. Первый же оболтус, потерявший студенческий билет, обрушит информационную систему. Потому что получит новый билет с новым номером. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2016, 10:59 |
|
||
|
Декомпозиция
|
|||
|---|---|---|---|
|
#18+
bogucЕсть отношение Student с атрибутами: ID, Name, DateOfBirth, Group, GroupLeaderID. Необходимо разделить его на два без потерь. ID - номер студ. билета, первичный ключ Name - ФИО студента. Могут совпадать. DateofBirth - дата рождения Group - номер студ. группы, студент может учиться только в одной группе GroupLeaderID - номер студ. билета старосты группы, ВНЕШНИЙ КЛЮЧ, СССЫЛАЮЩИЙСЯ НА АТРИБУТ ID. В каждой группе обязательно есть староста и только один. Гуглил, по примерам понимаю суть декомпозиции. Но "ВНЕШНИЙ КЛЮЧ, СССЫЛАЮЩИЙСЯ НА АТРИБУТ ID" сбивает с толку. Помогите пожалуйста. Есть несколько вариантов ответа: { ID(key), Name, Group, GroupLeaderID}, {Name(key), DateOfBirth} { ID(key), Group, GroupLeaderID}, {Name(key), DateOfBirth} { ID(key), Name, DateOfBirth}, {Group(key), GroupLeaderID} { ID(key), Name, DateOfBirth, Group}, {Group(key), GroupLeaderID} Больше склоняюсь к 4-ому, но не уверен. Студент: ID, Name, DateOfBirth, GroupID Группа: ID, Name, GroupLeaderID ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2017, 19:27 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=39374236&tid=1540229]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
70ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
| others: | 15ms |
| total: | 184ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...