|
|
|
Нормализация 2NF,3NF
|
|||
|---|---|---|---|
|
#18+
Привет.Суть проблемы такова: Есть предметная область "Бронирование авиабилетов" и я не могу провести нормализацию из общей (универсальной таблицы) в 2,3 нормальные формы. ER модель следующая [IMG] http://s2.ipicture.ru/uploads/20110607/W7913Gr3.jpg [/IMG] Следовательно мы имеем следующие сущности с атрибутами:[LIST]Клиент(ФИО,паспорт,Билет) Билет(№Билета,Стоимость,Рейс,Класс,Дата) Паспорт(№Паспорта,Серия,ФИО,Адрес) Адрес(Город,Дом,Улица,№кв.,Индекс,Телефон) [/LIST]Сделаем универсальную таблицу (Я знаю ,что первая нормальная форма предполагает отсутствие двух значений в одном атрибуте так что пропустим 1NF и пропустим момент наполнения таблицы , будем работать только с названиями атрибутов ). Универсальная таблица: |№Билета|Стоимость|Рейс|Класс|Дата|№Паспорта|Серия|ФИО|Адрес|Город|Дом|Улица|№кв.|Индекс|Телефон| Теперь что бы привести к 2NF мы должны разбить универсальную таблицу на таблицы ,в которых не ключевые атрибуты будут зависеть от составного первичного ключа. То бишь надо еще и выбрать атрибуты которые будут первичным ключом.А так как их несколько, это означает что они будут являться составным ключом. и тут возникает проблемка ...Стоит ли рассматривать при процессе нормализации универсальную таблицу ,с учетом ER модели ,то есть смотреть на некоторые столбцы как на сущности (клиент,паспорт,адрес,билет) или смотреть на нее как огромную кучу ,которую необходимо разбить на таблицы с зависимыми атрибутами от ключей.И я не могу понять должен ли быть хоть один первичный ключ у всех разбитых таблиц одинаковым?как допустим в примере тут В таком случае я не могу понять какие первичные ключи мне выбрать и какие таблицы у меня получатся?Если у мня 4 сущности (клиент,билет,адрес,паспорт) должны ли получиться 4 таблички при нормализации к 2НФ ,а что там с 3НФ я вообще разобраться не могу (отсутствие транзитивности вроде у меня уже получиться при 2НФ).Вообщем прошу вашей интеллектуальной помощи) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2011, 21:39 |
|
||
|
Нормализация 2NF,3NF
|
|||
|---|---|---|---|
|
#18+
booozeПривет.Суть проблемы такова: ER модель следующая.... ......Сделаем универсальную таблицу. Зачем же имея ER, делать универсальную таблицу? Ить это перечеркивает смысл траты время на ER, а пользы от универсальноq, вроде, никакой. Типа строили, строили ER, а потом взяли и свалили все атрибуту в одну универсальну сущность из которй получили универсальную таблицу. booozeТеперь что бы привести к 2NF мы должны разбить универсальную таблицу на таблицы ,в которых не ключевые атрибуты будут зависеть от составного первичного ключа. После того как на основе ER, либо во преки ей как у Вас, либо без ея построили РМД начали ея оптимизировать. Например, нормализовать до 3НФ, для чего выявили ф-зависимости между атрибутами, нашли транзитивные и т.д.. booozeТо бишь надо еще и выбрать атрибуты которые будут первичным ключом. На основе выявленных ф-зависмостей выявятся ключи. Что до первичных, то выберем из выявленных или тупо создадим суррогатные. Но не в связи с нормальзацией. А с др целями. boooze А так как их несколько, это означает что они будут являться составным ключом. Скорей всего они так и останутся несколькими ключами, хотя и не выделенными, если Вы объявите их всех одним составным ключем, потому как составной из них это типа суперключ (содержит собственное множество атрибутов явлющихся ключем), т.е. не является ключем (ключ не содержит собственное множество атрибутов явлющихся ключем по определению ключа). booozeи тут возникает проблемка ... Возможно она (они) возникла несколько раньше. Это уже последствия. booozeСтоит ли рассматривать при процессе нормализации универсальную таблицу ,с учетом ER модели ,то есть смотреть на некоторые столбцы как на сущности (клиент,паспорт,адрес,билет) или смотреть на нее как огромную кучу ,которую необходимо разбить на таблицы с зависимыми атрибутами от ключей. Возможно, вопрос нуно переформулировать. Например, стоить ли вообще рассматривать универсальные таблицы? И т.д. boooze Процесс нормализации типа Вот именно, ТИПА. booozeИ я не могу понять должен ли быть хоть один первичный ключ у всех разбитых таблиц одинаковым? Превичный ключ у таблы вседа только один, но это не имеет отношения к нормализации - первичный ключ или нет. Что до "одинаковости" не в курсах что имеется в виду, но, скорей всего, нет чтобы за этим не скрывалась. booozeЕсли у мня 4 сущности (клиент,билет,адрес,паспорт) должны ли получиться 4 таблички при нормализации к 2НФ ,а что там с 3НФ я вообще разобраться не могу (отсутствие транзитивности вроде у меня уже получиться при 2НФ) Ниче не попишешь. Если решили таки типа заниматься типа процессом нормализации, скорей всего, придется побеспокоиться, чтобы потратить время на типа теорию нормализации. Иначе риски что в процесс нормальзации вкрадутся типа ошибки могут превышать разумные пределы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2011, 09:33 |
|
||
|
Нормализация 2NF,3NF
|
|||
|---|---|---|---|
|
#18+
Ну насчет порядка могу сказать что у нас три контрольные идут именно в таком порядке :ER ,нормализация ,IDEF1X ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2011, 11:58 |
|
||
|
Нормализация 2NF,3NF
|
|||
|---|---|---|---|
|
#18+
booozeНу насчет порядка могу сказать что у нас три контрольные идут именно в таком порядке :ER ,нормализация ,IDEF1X Ну, думаю, Вам следует придерживаться этого порядка, до появления причин от него отказываться. Но если Вы про контрольные решаете, тады текст из и приводили. А то выглядело, что Вы проектируете БД. И там после ER появление универсальной таблицы воспринимается так что в ER и есть одна сущность - универсальная. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2011, 12:27 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=37302243&tid=1542129]: |
0ms |
get settings: |
9ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
51ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
34ms |
get tp. blocked users: |
1ms |
| others: | 206ms |
| total: | 324ms |

| 0 / 0 |
