Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.58/12: Рейтинг темы: голосов - 12, средняя оценка - 4.58
0 / 0 / 0
Регистрация: 04.03.2011
Сообщений: 13
1

Приведение Б\Д к 3NF

04.03.2011, 21:21. Показов 2452. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте! Требуется Ваша помощь в решении такой задачи: есть таблица (список книг) во 2NF, которую нужно привести к 3NF. Она содержит следующие данные: 9 полей (ID, Наименование, Автор, ГодИздания, Издательство, Кол-воСтраниц, Цена, Тираж и Категория (справочник, приключения, фантастика, проза, юмор)). Данные о книгах (в полях Наименование, Автор, Категория) повторяются вследствие того, что они были изданы в разные годы и продавались по разной цене. У меня такой вопрос: Какие поля следует вынести в дочерние таблицы, чтобы были соблюдены правила 3NF?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.03.2011, 21:21
Ответы с готовыми решениями:

Нормализация до 3NF
Доброго времени суток! Возник вопрос по нормализации до 3NF нескольких таблиц, а точнее не могли...

Нормализация в 3NF
Всем доброго времени суток) Нужна помощь(( Нужно привести таблицу к 3NF. С 1NF и 2NF проблем...

Снова 3NF нормальная форма
Подскажите, пожалуйста! Задание: привести к 3NF отношение Библиотека (Название книги, Залоговая...

Приведение типов
Добрый вечер уважаемые форумчане, подскажите, как вместо true и false сделать 1 и 0. boolean...

10
781 / 462 / 85
Регистрация: 20.02.2010
Сообщений: 974
05.03.2011, 00:21 2
вот можете почитать

https://www.cyberforum.ru/ms-a... 81706.html
0
0 / 0 / 0
Регистрация: 04.03.2011
Сообщений: 13
05.03.2011, 15:10  [ТС] 3
Цитата Сообщение от N@tali Посмотреть сообщение
вот можете почитать

https://www.cyberforum.ru/ms-a... 81706.html
Спасибо! Но не могли бы Вы объяснить это более простым языком исходя из моего примера?)
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
Прикрепил файл:
Вложения
Тип файла: rar Books.rar (22.5 Кб, 55 просмотров)
0
1905 / 782 / 31
Регистрация: 11.02.2010
Сообщений: 1,567
05.03.2011, 22:37 6
нормализацию таблиц удобно проводить с помощью мастера "Анализ таблиц" (скриншот прилагается).
можно пойти дальше и вынести в отдельные таблицы Авторов и, возможно, даже Наименования.

Не по теме:

а ведь многие хорошие книги пишут несколько авторов. например "Золотой телнок" и "Двенадцать стульев" Ильфа и Петрова
или "Электрическая часть электростанций и подстанций" Неклепаев и Крючков

Миниатюры
Приведение Б\Д к 3NF  
1
0 / 0 / 0
Регистрация: 04.03.2011
Сообщений: 13
06.03.2011, 10:47  [ТС] 7
Спасибо! То есть разделив таблицу в ручную при помощи мастера на 5 таблиц у нас получится 3NF? (На скриншоте схема данных) Еще такой вопрос: необходимо ли было разделять авторов, если эти хорошие книги, как Вы заметили, написали два автора?)
Миниатюры
Приведение Б\Д к 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" как раз является связующей между "Т_Авторы" и "Т_Наименования"?)

Можно ли было вынести например не одно поле "Наименования" а всю информацию связанную с книгами и также вынести Автора (как на этой схеме)?
Миниатюры
Приведение Б\Д к 3NF  
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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.03.2011, 22:36
Помогаю со студенческими работами здесь

Приведение типа
Как преобразовать тип QStringList к типу int ? Добавлено через 7 минут Проблема решена

Приведение к void
Приветствую. Как правильно в С++ привести данные к типу void? int Data; void *ptrData; ptrData...

Приведение типов
У меня есть задача - записывать MAC адрес формата IPv4 в безбуквенной форме. Я нашел пример...

Приведение типов
Всем привет) Есть массив int a = {2 ,4 ,5 ,6 ,256} Числа располагаются по байтам в памяти так:...

Приведение типа
Доброго! При подключение к серверу для каждого подключения создаю дата модуль void __fastcall...

Приведение типов
Все никак не могу до конца разобраться с приведением типов Допустим есть такое: var db 90h ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru