0 / 0 / 0
Регистрация: 04.03.2011
Сообщений: 13
|
|
1 | |
Приведение Б\Д к 3NF04.03.2011, 21:21. Показов 2452. Ответов 10
Метки нет (Все метки)
Здравствуйте! Требуется Ваша помощь в решении такой задачи: есть таблица (список книг) во 2NF, которую нужно привести к 3NF. Она содержит следующие данные: 9 полей (ID, Наименование, Автор, ГодИздания, Издательство, Кол-воСтраниц, Цена, Тираж и Категория (справочник, приключения, фантастика, проза, юмор)). Данные о книгах (в полях Наименование, Автор, Категория) повторяются вследствие того, что они были изданы в разные годы и продавались по разной цене. У меня такой вопрос: Какие поля следует вынести в дочерние таблицы, чтобы были соблюдены правила 3NF?
0
|
04.03.2011, 21:21 | |
Ответы с готовыми решениями:
10
Нормализация до 3NF Нормализация в 3NF Снова 3NF нормальная форма Приведение типов |
781 / 462 / 85
Регистрация: 20.02.2010
Сообщений: 974
|
|
05.03.2011, 00:21 | 2 |
0
|
0 / 0 / 0
Регистрация: 04.03.2011
Сообщений: 13
|
|
05.03.2011, 15:10 [ТС] | 3 |
Спасибо! Но не могли бы Вы объяснить это более простым языком исходя из моего примера?)
0
|
1905 / 782 / 31
Регистрация: 11.02.2010
Сообщений: 1,567
|
|
05.03.2011, 21:06 | 4 |
какой вопрос - такой и ответ. файл выложи, будем посмотреть
0
|
0 / 0 / 0
Регистрация: 04.03.2011
Сообщений: 13
|
|
05.03.2011, 21:47 [ТС] | 5 |
Прикрепил файл:
0
|
1905 / 782 / 31
Регистрация: 11.02.2010
Сообщений: 1,567
|
|
05.03.2011, 22:37 | 6 |
нормализацию таблиц удобно проводить с помощью мастера "Анализ таблиц" (скриншот прилагается).
можно пойти дальше и вынести в отдельные таблицы Авторов и, возможно, даже Наименования. Не по теме: а ведь многие хорошие книги пишут несколько авторов. например "Золотой телнок" и "Двенадцать стульев" Ильфа и Петрова
1
|
0 / 0 / 0
Регистрация: 04.03.2011
Сообщений: 13
|
|
06.03.2011, 10:47 [ТС] | 7 |
Спасибо! То есть разделив таблицу в ручную при помощи мастера на 5 таблиц у нас получится 3NF? (На скриншоте схема данных) Еще такой вопрос: необходимо ли было разделять авторов, если эти хорошие книги, как Вы заметили, написали два автора?)
0
|
1905 / 782 / 31
Регистрация: 11.02.2010
Сообщений: 1,567
|
|
06.03.2011, 23:12 | 8 |
чтобы учесть, что у книги может быть несклько авторов, следует между таблицей Книги и таблицей Авторы поместить таблицу КнигиАвторы (с двумя полями - КодКниги и КодАвтора). таким образом между книгами и авторами будет установлена связь МногиеКоМногим. вот официальная информация, за пример взята ваша задача http://office.microsoft.com/ru... 84020.aspx
возможно, все таки не стоит выносить названия книг в отдельную таблицу. скорее всего, накладные расходы на разделение данных превысят экономию. такой подход, возможно, имеет смысл, если в БД содержится узкоспециализированная библиотека, например, математика. большинство книг в которой называется Математический Анализ, или Прикладная математика
1
|
0 / 0 / 0
Регистрация: 04.03.2011
Сообщений: 13
|
|
07.03.2011, 11:00 [ТС] | 9 |
Получается, что на моей первой схеме таблица "Т_Книги2" как раз является связующей между "Т_Авторы" и "Т_Наименования"?)
Можно ли было вынести например не одно поле "Наименования" а всю информацию связанную с книгами и также вынести Автора (как на этой схеме)?
0
|
1905 / 782 / 31
Регистрация: 11.02.2010
Сообщений: 1,567
|
|
07.03.2011, 19:56 | 10 |
вот вот, теперь из таблицы Т_Букс вынести Категории и Издательства и будет хорошая схема.
кстати, в тблице КнигиАвторы дополнительное поле кода записи не нужно. в этой таблице лучше применить составной ключ
1
|
0 / 0 / 0
Регистрация: 04.03.2011
Сообщений: 13
|
|
07.03.2011, 22:36 [ТС] | 11 |
Спасибо большое за помощь! Всё получилось как надо
0
|
07.03.2011, 22:36 | |
07.03.2011, 22:36 | |
Помогаю со студенческими работами здесь
11
Приведение типа Приведение к void Приведение типов Приведение типов Приведение типа Приведение типов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |