
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
01.02.2008, 09:56
|
|||
|---|---|---|---|
|
|||
Помогите привести к 3н.ф. |
|||
|
#18+
Есть две таблицы. Первая - Общежитие: Код общежития(РК), Наименование общежития, Адрес, Количество мест, Комендант, телефон вахты. Вторая - Постояльцы: Код постояльца(РК), Паспортные данные, Адрес прописки, дата рождения, срок пребывания. Нужно привести к 3 н.ф. Преподаватель почему-то настаивает на том, что бы из первой таблицы в отдельную таблицу вынести "Коменданта", ссылаясь на транзитивную зависимость.. Не пойму почему.. Заранее благодарен за помощь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.02.2008, 09:59
|
|||
|---|---|---|---|
|
|||
Помогите привести к 3н.ф. |
|||
|
#18+
Maverick0Преподаватель почему-то настаивает на том, что бы из первой таблицы в отдельную таблицу вынести "Коменданта" Ну выйдет коменда замуж и сменит фамилию, везде менять придется. А по сути аргументы преподавателя надо у него спрашивать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.02.2008, 10:13
|
|||
|---|---|---|---|
|
|||
Помогите привести к 3н.ф. |
|||
|
#18+
Сергей Васкецов Maverick0Преподаватель почему-то настаивает на том, что бы из первой таблицы в отдельную таблицу вынести "Коменданта" Ну выйдет коменда замуж и сменит фамилию, везде менять придется. А по сути аргументы преподавателя надо у него спрашивать. Проблема в том, что это задание будет на экзамене. Я спросил, она ответила, мол, на экзамене и спросит у меня почему так.. По поводу привеедения к 3н.ф. Из первой таблицы в отдельную выносим коменданта, его имя разбиваем на три поля - фамилия, имя, отчество. В первой таблице останется: Код общежития(РК), адрес, кол-во мест, телефон вахты. Адрес не нужно разбивать на поля "Улица", "Дом"? Вторая таблица. Оставляем все как есть, только разбиваем "имя постояльца" на "фамилия", "имя" и "отчество"; так же "паспортные данные" на "Номер паспорта", "серия". "Адрес прописки" стоит разбивать на "Улица", "дом"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.02.2008, 10:36
|
|||
|---|---|---|---|
|
|||
Помогите привести к 3н.ф. |
|||
|
#18+
авторПреподаватель... настаивает на том, что бы... в отдельную таблицу вынести "Коменданта" потому что КОМЕНДАНТ это уже типа начальник (смайл) иногда лучше не спорить с преподом -- согласись и забудь -- побереги здоровье (имхо) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.02.2008, 10:38
|
|||
|---|---|---|---|
|
|||
Помогите привести к 3н.ф. |
|||
|
#18+
Maverick0разбиваем Разбивать или нет значение поля на некоторые элементарные значения зависит от многих факторов. Прежде всего это - надо ли использовать отдельные части поля (например, отдельно имя или номер дома). То есть, это сугубо индивидуально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.02.2008, 10:39
|
|||
|---|---|---|---|
|
|||
Помогите привести к 3н.ф. |
|||
|
#18+
По поводу приведение к 3 н.ф. подскажите, пожалуйста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.02.2008, 13:37
|
|||
|---|---|---|---|
Помогите привести к 3н.ф. |
|||
|
#18+
Maverick0По поводу приведение к 3 н.ф. подскажите, пожалуйста. Если бы был зависимый атрибут от коменданта, например, его год рождения, паспорт, то могла бы быть транзитивная зависимость (если один чел может быть комендантом у нескольких общежитий)нарушение 3 нф. Для транзитвной зависимости нужны как минимум две Ф зависимости. Первая комендант зависит от общежитя (причем надо чтобы общежите не зависило от ФИО коменданта), вторая год рождения от коменданта. Вы для каждой зпаписи повторяли дату рождения, хотя было бы достаточно одного раза (в другой табле). Если например телефон вахты - на самом деле телефон коменданта, то нарушена. А если тока имя коменданта, то он нарушет 3 нф не больше чем телефон вахты, т.е никак: нет второй ФЗ. Мож Вы не все здесь написали? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.02.2008, 19:55
|
|||
|---|---|---|---|
Помогите привести к 3н.ф. |
|||
|
#18+
Maverick0 wrote: > Первая - Общежитие: > Код общежития(РК), Наименование общежития, Адрес, Количество мест, > Комендант, телефон вахты. > > Вторая - Постояльцы: > Код постояльца(РК), Паспортные данные, Адрес прописки, дата рождения, > срок пребывания. > > Нужно привести к 3 н.ф. Функциональная зависимость между атрибутами в каждом приложении разная, так что в 3НФ оно у вас или нет - только вам и знать, как разработчику. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.02.2008, 19:59
|
|||
|---|---|---|---|
Помогите привести к 3н.ф. |
|||
|
#18+
Maverick0 wrote: > По поводу привеедения к 3н.ф. Из первой таблицы в отдельную выносим > коменданта, его имя разбиваем на три поля - фамилия, имя, отчество. В > первой таблице останется: > > Код общежития(РК), адрес, кол-во мест, телефон вахты. > > Адрес не нужно разбивать на поля "Улица", "Дом"? Зависит от приложения. Если будете обрабатывать отдельно улицу и дом - да, если не будете (только ввод и печать, напр.) - не надо. > Вторая таблица. > Оставляем все как есть, только разбиваем "имя постояльца" на "фамилия", > "имя" и "отчество"; так же "паспортные данные" на "Номер паспорта", > "серия". "Адрес прописки" стоит разбивать на "Улица", "дом"? То же самое и с ФИО. Но это - не 3НФ, это - 1НФ. А где ж вы там "транзитивную зависимость" комменданта нашли ? Он разве от какого-то неключевого поля зависит ? Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.02.2008, 20:54
|
|||
|---|---|---|---|
|
|||
Помогите привести к 3н.ф. |
|||
|
#18+
Maverick0Преподаватель почему-то настаивает на том, что бы. таблица Персоны tblContacts ContactID ContactName ContactGender BirthDate <blah-blah-blah> таблица Общежития tblHostels HostelID ContactID (комендант из таблицы Персоны) HostelName HostellAddress HostelPhone QtyRooms таблица Постояльцы tblRoomMates RoomMateID ContactID HostelID CheckInDate PeriodOfStay в принципе препод прав и должна быть таблица комендантов tblSupervisors SupervisorID ContactID HostelID HireDate тогда в таблице Общежитий будет tblHostels HostelID SupervisorID (комендант из таблицы Комендантов) HostelName HostelAddress <blah-blah-blah> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.02.2008, 23:19
|
|||
|---|---|---|---|
Помогите привести к 3н.ф. |
|||
|
#18+
Комендант вовсе не обязан быть постояльцем. Вам как раз и говорят, что это определяется условием задачи. Или Вы недослушали преподавателя, или преподаватель что-то упустил (не рассказал) в постановке задачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
02.02.2008, 05:36
|
|||
|---|---|---|---|
Помогите привести к 3н.ф. |
|||
|
#18+
Maverick0 Преподаватель почему-то настаивает на том, что бы из первой таблицы в отдельную таблицу вынести "Коменданта", ссылаясь на транзитивную зависимость.. Не пойму почему.. Видимо, КОМЕНДАНТ имеет некую структуру часть атрибутов которой может быть PK, а остальные функционально зависят от этих атрибутов. Заметь, что все поля, кроме поля комендант имеют названия из которых становится ясен их тип. А вот тип поля комендант не очевиден. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
02.02.2008, 20:01
|
|||
|---|---|---|---|
|
|||
Помогите привести к 3н.ф. |
|||
|
#18+
По-моему, все просто... может быть 1 комендант на несколько общаг. А в таком случае его обязательно выделить надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
03.02.2008, 00:31
|
|||
|---|---|---|---|
Помогите привести к 3н.ф. |
|||
|
#18+
playnetПо-моему, все просто... может быть 1 комендант на несколько общаг. А в таком случае его обязательно выделить надо. Если только в БД есть зависимые от имени коменданта атрибуты типа даты рождения (в реальной БД такие атрибуты сто пудово есть, но это учебная БД). Иначе нет транзитивной зависимости (для нее нужны как минимум три атрибута), и нарушения 3нф по коменданту нет. Хотя из соображений оптимизации приложения и можно его выделить (в приложении луче один раз писать ФИО, а потом выбирать, если комендант уже есть в БД, а для этого луче их деражать в отдельной табле), но это не имеет отношения к нормализации по 3нф. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
03.02.2008, 15:21
|
|||
|---|---|---|---|
Помогите привести к 3н.ф. |
|||
|
#18+
playnet пишет: > По-моему, все просто... может быть 1 комендант на несколько общаг. А в > таком случае его обязательно выделить надо. 1) вряд ли может такое быть в реальности 2) даже если и так, вовсе не обязательно его выносить в отдельную таблицу, это зависит от бизнес-логики приложения. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
03.02.2008, 15:23
|
|||
|---|---|---|---|
Помогите привести к 3н.ф. |
|||
|
#18+
vadiminfo пишет: > Если только в БД есть зависимые от имени коменданта атрибуты типа даты > рождения (в реальной БД такие атрибуты сто пудово есть, но это учебная > БД). Блин, да с чего ж обязательно есть ? В ОДНИХ БД - есть, в ДРУГИХ БД - нет. От задачи зависит. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
04.02.2008, 00:28
|
|||
|---|---|---|---|
Помогите привести к 3н.ф. |
|||
|
#18+
MasterZiv vadiminfo пишет: > Если только в БД есть зависимые от имени коменданта атрибуты типа даты > рождения (в реальной БД такие атрибуты сто пудово есть, но это учебная > БД). Блин, да с чего ж обязательно есть ? В ОДНИХ БД - есть, в ДРУГИХ БД - нет. От задачи зависит. Posted via ActualForum NNTP Server 1.4 Имелось в виду, что эти ДРУГИЕ БД все же без дополнительных усилий воображения могут производить иногда впечатление каких-то ознакомительных студенческих поделок. Впрочем, в данном топике речь идет именно о студенческой задаче. Потому именно в той структуре, что нарисована в первом посте, транзитивных зависимостей пока не обнаружил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
04.02.2008, 05:42
|
|||
|---|---|---|---|
Помогите привести к 3н.ф. |
|||
|
#18+
Если в контексте задачи ФИО коменданта допустимо считать описательным атрибутом общежития, то бритвой Оккама отсекаем сущность "Коменданты". В противном случае в отдельную таблицу вынести "Коменданта" надо. ________ Не дадим распространиться заразе политкорректности! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=32&mobile=1&tid=1544059]: |
0ms |
get settings: |
7ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
160ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
30ms |
get tp. blocked users: |
1ms |
| others: | 288ms |
| total: | 508ms |

| 0 / 0 |
