|  | 
| 
Нормализация базы данных. | |||
|---|---|---|---|
| #18+ Здравствуйте. Очень прошу помочь мне с нормализацией таблицы, нужно для курсового проекта. Я совершенно запутался в формах нормализации и не уверен: правильно ли применил к БД. Дело в том, что мне сказали, что не может пройти первая и третья нормализация, но при этом не быть второй (как в моем случае). В целом, мне кажется, что я описал шаги нормализации неправильно. Прошу помочь, очень нужно правильно написать эту главу. Финальную модель мне подтвердили, мне просто нужно описать переход от модели до нормализации к модели после нормализации.  Модель до нормализации. Мое описание: Первая нормальная форма В первой нормализации нам, во-первых, нужно убрать повторяющиеся столбцы в таблицах. В данном случае, повторяющихся столбцов нет. Во-вторых, в таблицах должны быть атомарные атрибуты. В таблице болезней у нас есть атрибут лекарств. Данный атрибут может содержать в себе массив значений. Для того, чтобы от этого избавиться, нам нужно создать дополнительную таблицу, Которая будет хранить в себе список лекарств. Вторая нормальная форма (?) Во второй нормализации мы решаем проблему композитных ключей. В существующей модели базы данных нет композитных ключей, а значит, вторая нормализация применена. Третья нормальная форма В третьей нормальной форме нам необходимо вынести значения, которые не зависят от ключа. В данной ситуации у нас в таблице "Сотрудник" имеется атрибут "Должность". Должность в данной ситуации определяется номером сотрудника. Для решения данной ситуации мы создаем таблицу, в которой будут отдельно содержаться должности. Нормальная форма Бойса-Кодда В форме Бойса-Кодда мы решаем проблему, которая возникает между таблицами болезнь и лекарства. Их отношение многие ко многим не соответствует данному этапу нормализации. В таком случае, мы создаем таблицу, которая будет соединять. Ключи таблицы болезней и таблицы лекарств. В таком случае, мы сможем находить соответствующие нужной болезни лекарства в этой таблице. Модель после нормализации. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 22.05.2019, 08:51 |  | ||
| 
Нормализация базы данных. | |||
|---|---|---|---|
| #18+ Тебе все правильно сказали. По определению 3НФ требует 2НФ, а та, в свою очередь требует 1НФ. НФБК формально не требует какой-то другой НФ, но, поскольку можно доказать, что любая НФБК это, в то же время, 3НФ, то все точно так же. Оценивать нормализацию без знания предметки невозможно, т.к. сами  по себе ФЗ (функциональные зависимости) это свойство предметной области, а не той или иной модели БД. В общем, найди где-нибудь учебник Дж.Дейта и прочитай соответствующую главу - там, по-моему, очень доступно все изложено. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 22.05.2019, 09:04 |  | ||
| 
Нормализация базы данных. | |||
|---|---|---|---|
| #18+ fkthatТебе все правильно сказали. По определению 3НФ требует 2НФ, а та, в свою очередь требует 1НФ. НФБК формально не требует какой-то другой НФ, но, поскольку можно доказать, что любая НФБК это, в то же время, 3НФ, то все точно так же. Оценивать нормализацию без знания предметки невозможно, т.к. сами  по себе ФЗ (функциональные зависимости) это свойство предметной области, а не той или иной модели БД. В общем, найди где-нибудь учебник Дж.Дейта и прочитай соответствующую главу - там, по-моему, очень доступно все изложено. Спасибо за ответ, предметная область - информационная система больницы. Я понял про вторую нормальную форму, постараюсь ее описать. Но скажите пожалуйста, как вы считаете, правильно ли я описал остальные формы? ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 22.05.2019, 09:07 |  | ||
| 
Нормализация базы данных. | |||
|---|---|---|---|
| #18+ 2НФ это вовсе не композитные ключи, а зависимости между неключевым аттрибутом и другим неключевым аттрибутом. Пример нарушения: (Человек, Город_Проживания, Страна_Проживания), где первичный ключ это "Человек". Тут есть ФЗ Город_Проживания -> Страна_Проживания, поэтому 2НФ нарушена, исправляем декомпозицией: (Человек, Город_Проживания) + (Город, Страна) ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 22.05.2019, 09:12 |  | ||
| 
Нормализация базы данных. | |||
|---|---|---|---|
| #18+ На самом деле я тут херню написал - все что выше это про 3НФ. Давно уже просто эту формалистику не повторял, т.к. на практике оно редко нужно. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 22.05.2019, 09:15 |  | ||
| 
Нормализация базы данных. | |||
|---|---|---|---|
| #18+ Где такую терминологию применяют? 2НФ - отсутствуют частичные ФЗ от составного ключа. Если таких зависимостей нет, отношение уже в 2НФ. 3НФ - отсутствуют транзитивные зависимости. Если таких нет, отношение уже в 3НФ. Чтобы правильно спроектировать, надо выписать все функциональные зависимости. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 23.05.2019, 21:30 |  | ||
| 
Нормализация базы данных. | |||
|---|---|---|---|
| #18+ ИВПГде такую терминологию применяют? 2НФ - отсутствуют частичные ФЗ от составного ключа. Если таких зависимостей нет, отношение уже в 2НФ. 3НФ - отсутствуют транзитивные зависимости. Если таких нет, отношение уже в 3НФ. Чтобы правильно спроектировать, надо выписать все функциональные зависимости. Спасибо за ответы. Видимо, мне нужно узнать что такое функциональные и транзитивные зависимости... Я немного переделал свое описание подобным образом: Первая нормальная форма В первой нормализации нам, во-первых, нужно убрать повторяющиеся столбцы в таблицах. В данном случае, повторяющихся столбцов нет. Во-вторых, в таблицах должны быть атомарные атрибуты. В таблице болезней у нас есть атрибут лекарств. Данный атрибут может содержать в себе массив значений. Для того, чтобы от этого избавиться, нам нужно создать дополнительную таблицу, Которая будет хранить в себе список лекарств. Вторая нормальная форма Во второй нормализации нам необходимо вынести значения, которые не зависят от ключа. В данной ситуации у нас в таблице "Сотрудник" имеется атрибут "Должность". Должность в данной ситуации определяется номером сотрудника. Для решения данной ситуации мы создаем таблицу, в которой будут отдельно содержаться должность Третья нормальная форма Нормализация не нужна. Вопрос: Может быть ситуация, когда первой и второй не соответствует, но после нормализации до второй формы - для достижения третьей формы ничего делать не нужно? ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 26.05.2019, 18:13 |  | ||
| 
Нормализация базы данных. | |||
|---|---|---|---|
| #18+ MonolagВидимо, мне нужно узнать что такое функциональные и транзитивные зависимости Прогулял лекции? ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 26.05.2019, 18:37 |  | ||
| 
Нормализация базы данных. | |||
|---|---|---|---|
| #18+ MonolagМожет быть ситуация, когда первой и второй не соответствует, но после нормализации до второй формы - для достижения третьей формы ничего делать не нужно? Нормальные формы независимы и нарушаться могут независимо. Первая форма запрещает пихать два значения в одно поле. Вторая форма запрещает иметь поле, которое однозначно вычисляется из других полей этой же записи. Posted via ActualForum NNTP Server 1.5 ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 26.05.2019, 18:42 |  | ||
| 
Нормализация базы данных. | |||
|---|---|---|---|
| #18+ Dimitry Sibiryakov, Нет. Само формальное определение любой НФ до 3НФ включительно требует нахождения в "более младшей" НФ. Я выше писал уже об этом. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 26.05.2019, 18:52 |  | ||
| 
Нормализация базы данных. | |||
|---|---|---|---|
| #18+ Dimitry SibiryakovВторая форма запрещает иметь поле, которое однозначно вычисляется из других полей этой же  записи. Снова нет. Вторая нормальная форма Переменная отношения находится во второй нормальной форме тогда и только тогда, когда она находится в первой нормальной форме и каждый неключевой атрибут неприводимо зависит от каждого её потенциального ключа ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 26.05.2019, 18:58 |  | ||
| 
Нормализация базы данных. | |||
|---|---|---|---|
| #18+ fkthatСамо формальное определение любой НФ до 3НФ включительно требует нахождения в "более младшей" НФ. Не совсем. Просто если нарушается "младшая" НФ, становится невозможно строго доказать соответствие "старшей". PS: Хитровыподвёрнутые определения из вики это, конечно, хорошо, но они не приблизят ТСа к пониманию сути вещей. Posted via ActualForum NNTP Server 1.5 ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 26.05.2019, 20:19 |  | ||
| 
Нормализация базы данных. | |||
|---|---|---|---|
| #18+ Dimitry SibiryakovPS: Хитровыподвёрнутые определения из вики это, конечно, хорошо, но они не приблизят ТСа к  пониманию сути вещей. Вообще-то это "хитровыподвёрнутое определение" из учебника Дейта. Поскольку ТСа волнует именно формальная сторона вопроса (как я понял), то стоит именно формальным определениям и следовать. На практике, конечно, так никто не делает - обычно и так понятно, есть косяки с нормализацией или нет. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 26.05.2019, 20:37 |  | ||
| 
Нормализация базы данных. | |||
|---|---|---|---|
| #18+ Тут и Patient и Employee являются персонами. Я-бы на этом сыграл. Вообще правильно было сказано что нужно глубже знать предметную область и задавать именно по ней вопросы. Информации в диаграмме может не хватать. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 26.05.2019, 20:51 |  | ||
| 
Нормализация базы данных. | |||
|---|---|---|---|
| #18+ fkthatобычно и так понятно, есть косяки с нормализацией или нет. Да нет, как раз на практике-то всё не так просто и нормальность сильно определяется предметной областью. Posted via ActualForum NNTP Server 1.5 ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 26.05.2019, 21:02 |  | ||
| 
Нормализация базы данных. | |||
|---|---|---|---|
| #18+ fkthatMonolagВидимо, мне нужно узнать что такое функциональные и транзитивные зависимости Прогулял лекции? Нормализацию, к сожалению, точно прогулял :) Собственно, конспект лекций не прояснил ситуацию. Всем большое спасибо за ответы! В общем-то, я хотел проверить свою работу по нормализации на правильность, страшно сдавать неправильную работу. Прочитал подробнее про связи и формы, не стал исправлять последнюю версию, надеюсь, я не ошибся :) ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 26.05.2019, 21:51 |  | ||
| 
Нормализация базы данных. | |||
|---|---|---|---|
| #18+ Monolag Вопрос:  Может быть ситуация, когда первой и второй не соответствует, но после нормализации до второй формы - для достижения третьей формы ничего делать не нужно? Может быть ситуация когда первой и второй соответствует, а третьей не соответствует. Но если соответствует третьей, то соответствует второй: третья более сильная, чем вторая. НФБК более сильная, чем третья. Соответственно, может быть в третьей, но не быть в НФБК. И так дальше: 4 сильнее НФБК, 5 сильнее 4. А ведь есть и 6 как бы, выше которой нет. Т.е., например НФБК соответствует, но может быть избыточность: не соответствует 4. Правда, все же это уже как бы выглядит как теоретическое изучение всех теоритически возможных избыточностей. Но на самом деле, есть еще понятие полноты схемы. В частности, там можно навязать схеме все ФЗ с помощью выделения ключей. Вот все в 3НФ могут быть полными. А в НФБК уже нет. Поэтому теория в этом случае не имеет критерия оптимальности: проектировщик стоит перед альтернативой. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 28.05.2019, 22:56 |  | ||
| 
Нормализация базы данных. | |||
|---|---|---|---|
| #18+ Monolag, Пациент сменит фамилию или адрес или имеет несколько адресов и телефонов, то это у Вас будут разные пациенты? А тело, которое лечат, одно и то же. По одной и той же болезни, точнее диагнозу, один врач назначит один набор лекарств, а другой врач - другие лекарства. И разным пациентам разные дозы. А лекарства могут отличаться по названиям, но иметь один и тот же базовый ингредиент, или разные упаковки с разных фабрик. Процедуры могут назначать разные врачи, процедуры как-то в отдельной ветке повисли Должность сотрудника без орг.структуры? Сотрудник может переходить на другие должности и меняться окончание WorkTime Предметная прикладная область не изучена, поэтому и модель =3П (пол, палец, потолок) ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 29.05.2019, 00:10 |  | ||
|  | 

| start [/forum/topic.php?fid=32&fpage=5&tid=1539930]: | 0ms | 
| get settings: | 9ms | 
| get forum list: | 11ms | 
| check forum access: | 3ms | 
| check topic access: | 3ms | 
| track hit: | 35ms | 
| get topic data: | 12ms | 
| get forum data: | 3ms | 
| get page messages: | 46ms | 
| get tp. blocked users: | 2ms | 
| others: | 241ms | 
| total: | 365ms | 

| 0 / 0 | 
