|
|
|
Нормализация БД
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Совсем я что-то запутался как нормализовать данную таблицу до Нормальной формы Бойса-Кодда включительно. Может ли кто-нибудь помочь с этим? Хочется разобраться... (В таблице приведены данные о дантистах и назначениях на прием, которые они сделали своим пациентам. Пациент должен прийти на прием к дантисту в указанный кабинет в заранее назначенный день и час. В каждый из дней приема дантист имеет право занимать некоторый кабинет.) Заранее спасибо за оказанную помощь! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2016, 17:42 |
|
||
|
Нормализация БД
|
|||
|---|---|---|---|
|
#18+
В 1НФ данная таблица уже находится, так как ни одна из ее строк не содержит в любом своем поле более одного значения и ни одно из ее ключевых полей не пусто. Во 2НФ нам надо ее разбить на разные таблицы. Я сделал так : 1 таблица - Staff_No, Dant_Name; 2 таблица - Pat_Name, Pat_No, Date 3 таблица - Staff_No, Pat_No, Date, Surgery_No Date и Surgery_No - составной первичный ключ; Верно ли это? И будет ли 2НФ уже являться 3НФ? И как привести к Нормальной форме Б-К? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2016, 17:48 |
|
||
|
Нормализация БД
|
|||
|---|---|---|---|
|
#18+
Andrew5422 таблица - Pat_Name, Pat_No, Date Подумайте ещё раз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2016, 19:44 |
|
||
|
Нормализация БД
|
|||
|---|---|---|---|
|
#18+
softwarer, Такого полезного ответа еще нигде не видел. Видать я так МАЛО думал, что решил сюда написать. Сами думайте, когда что-то пишите... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2016, 19:58 |
|
||
|
Нормализация БД
|
|||
|---|---|---|---|
|
#18+
Andrew542, попробуйте обозначить ключи для своих таблиц - думаю, уже на этом этапе увидите ошибки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2016, 21:06 |
|
||
|
Нормализация БД
|
|||
|---|---|---|---|
|
#18+
Кот Матроскин, Допустим я хочу взять за первичный ключ пару атрибутов {Номер дантиста, Дата приема}; Могу ли я тогда создать такие таблицы: 1 таблица : Номер дантиста; Имя дантиста; Кабинет; 2 таблица : Номер пациента; Имя пациента; Дата; 3 таблица : Номер дантиста; Дата; Имя пациента; Будет ли она во 2НФ? По сути имя пациента же уже полностью зависит от начального первичного ключа; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2016, 21:47 |
|
||
|
Нормализация БД
|
|||
|---|---|---|---|
|
#18+
Andrew542Кот Матроскин, Допустим я хочу взять за первичный ключ пару атрибутов {Номер дантиста, Дата приема}; Могу ли я тогда создать такие таблицы: 1 таблица : Номер дантиста; Имя дантиста; Кабинет; 2 таблица : Номер пациента; Имя пациента; Дата; 3 таблица : Номер дантиста; Дата; Имя пациента; Будет ли она во 2НФ? По сути имя пациента же уже полностью зависит от начального первичного ключа; Для каждой получившейся таблицы у Вас должен быть свой первичный ключ. Потом разбейте данные по предлагаемым Вами таблицам - увидите что выходит с уникальностью и подходят ли намеченные ключи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2016, 21:58 |
|
||
|
Нормализация БД
|
|||
|---|---|---|---|
|
#18+
Кот Матроскин, Получается проблема с кабинетами... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2016, 22:01 |
|
||
|
Нормализация БД
|
|||
|---|---|---|---|
|
#18+
Кот Матроскин, не могли бы Вы, пожалуйста, подсказать, как тут лучше будет создать таблицы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2016, 22:08 |
|
||
|
Нормализация БД
|
|||
|---|---|---|---|
|
#18+
Andrew542, 1 таблица : Имя пациента; Номер пациента; 2 таблица : Имя доктора; Номер доктора; 3 таблица : Номер доктора; Номер пациента; Дата; Кабинет; Я же такую тоже не могу создать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2016, 22:11 |
|
||
|
Нормализация БД
|
|||
|---|---|---|---|
|
#18+
Кот Матроскин, 1 таблица : Имя пациента; Номер пациента; 2 таблица : Имя доктора; Номер доктора; 3 таблица : Номер доктора; Номер пациента; Дата; Кабинет; Я же такую тоже не могу создать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2016, 22:11 |
|
||
|
Нормализация БД
|
|||
|---|---|---|---|
|
#18+
Andrew542, Не только ;) По секрету, первый Ваш вариант был лучше - там только одна таблица была кривой (на которую указал softwarer), сейчас кривые все три. Можете попробовать с другой стороны - в изначальной таблице намешана информация о нескольких сущностях автоматизируемой области. Какие это сущности? Перечисляете их. Потом по каждой сущности выделяете таблицу и переносите туда атрибуты, которые относятся именно к этой сущности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2016, 22:19 |
|
||
|
Нормализация БД
|
|||
|---|---|---|---|
|
#18+
Кот Матроскин, 1 таблица была кривая? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2016, 22:20 |
|
||
|
Нормализация БД
|
|||
|---|---|---|---|
|
#18+
Andrew542Кот Матроскин, 1 таблица : Имя пациента; Номер пациента; 2 таблица : Имя доктора; Номер доктора; 3 таблица : Номер доктора; Номер пациента; Дата; Кабинет; Я же такую тоже не могу создать? Почему не можете? Какую Вы видите проблему в таком разбиении? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2016, 22:20 |
|
||
|
Нормализация БД
|
|||
|---|---|---|---|
|
#18+
Кот Матроскин, я немного запутался, что тут тогда брать за первичный ключ; Дату + кабинет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2016, 22:22 |
|
||
|
Нормализация БД
|
|||
|---|---|---|---|
|
#18+
Andrew542Кот Матроскин, я немного запутался, что тут тогда брать за первичный ключ; Дату + кабинет? Для третьей таблицы? Да, это один из потенциальных ключей этой таблицы, и его можно выбрать в качестве первичного. Это не единственный вариант, но допустимый. Другие варианты - (Врач + Дата), (Пациент + Дата) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2016, 22:42 |
|
||
|
Нормализация БД
|
|||
|---|---|---|---|
|
#18+
Кот Матроскин, по сути, тогда она уже будет и в 3НФ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2016, 22:52 |
|
||
|
Нормализация БД
|
|||
|---|---|---|---|
|
#18+
Andrew542, Таблица Dentist: Staff_No (PK) string not null DentistName string not null unique constraint Таблица Patient: Pat_No (PK) string not null PatName string not null unique constraint Таблица Surgery: Surgery_No (PK) string not null Таблица Appointment: App_ID (PK) int not null Staff_No (FK -> Dentist) string not null Pat_No (FK -> Patient) string not null Surgery_No (FK -> Surgery) string not null AppointmentDateTime datetime not null ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2016, 08:44 |
|
||
|
Нормализация БД
|
|||
|---|---|---|---|
|
#18+
17-77, Эта таблица уже в НФБК? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2016, 11:09 |
|
||
|
Нормализация БД
|
|||
|---|---|---|---|
|
#18+
Andrew542, тьфу, для НКБФ надо еще одну таблицу (дантист имеет право занимать только определенную комнату): DentistSurgery: DentistSurgery_ID (PK) int not null Staff_No (FK -> Dentist) string not null Surgery_No (FK -> Surgery) string not null ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2016, 12:29 |
|
||
|
Нормализация БД
|
|||
|---|---|---|---|
|
#18+
17-77, Тогда в нас получается 4 таблицы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2016, 13:06 |
|
||
|
Нормализация БД
|
|||
|---|---|---|---|
|
#18+
чтобы нормализовать, надо знать имена сущностей заранее - это знание предметной области + ТЗ, или выявить их в процессе анализа предметной области. и тогда все нормализуется. формально - это не решается, либо решается, но не имеет смысла ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2017, 18:49 |
|
||
|
Нормализация БД
|
|||
|---|---|---|---|
|
#18+
НФБК - это более общий случай для 3НФ для составных PK - FK. введите суррогатные PK, и задача сведется к нормализации до 3НФ. переход до НФБК, как требуется по условию задачи, будет потом простым ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2017, 18:54 |
|
||
|
Нормализация БД
|
|||
|---|---|---|---|
|
#18+
Andrew542Здравствуйте! Совсем я что-то запутался как нормализовать данную таблицу до Нормальной формы Бойса-Кодда включительно. Может ли кто-нибудь помочь с этим? Хочется разобраться... (В таблице приведены данные о дантистах и назначениях на прием, которые они сделали своим пациентам. Пациент должен прийти на прием к дантисту в указанный кабинет в заранее назначенный день и час. В каждый из дней приема дантист имеет право занимать некоторый кабинет.) Заранее спасибо за оказанную помощь! выделить словарь дантистов, выделить словарь пациентов, и еще будет таблица приемов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2017, 09:08 |
|
||
|
|

start [/forum/topic.php?fid=32&gotonew=1&tid=1540195]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
75ms |
get topic data: |
12ms |
get first new msg: |
8ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
| others: | 12ms |
| total: | 205ms |

| 0 / 0 |

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