Проектирование БД « Районная библиотека»
В этой базе заказчик хотел бы хранить информацию:
· о книгах, которые есть в этой библиотеке, и о том, к какому разделу относится каждая книга
· об авторах, чьи книги есть в этой библиотеке
· о языках, на которых написаны книги
· о читателях, которые берут книги в этой библиотеке
Некоторые условия, существенные для проектирования базы данных:
· каждая книга принадлежит какому-то разделу; может быть много книг, относящихся к одному разделу; возможен раздел, в котором нет книг
· в библиотеке может быть много книг одного автора; могут быть книги, у которых несколько авторов.
· каждый читатель может взять в библиотеке несколько книг; читатель может не брать книги какое-то время; читатель может брать книги на срок не более 1 месяца – потом он должен их продлить или по возвращении книг заплатить штраф из расчета 5 руб. за 1 просроченный день.
· каждая книга была написана на каком-либо языке; может быть много книг, у которых язык оригинала один и тот же; нет сведений о языках оригинала, на которых не написано ни одной книги.
Этапы проектирования базы данных:
1. Определение объектов (сущностей) предметной области – источников данных, которые должны быть включены в базу данных.
2. Определение атрибутов каждой сущности, первичных ключей.
3. Выявление связей между сущностями.
4. Определение степени каждой выделенной связи (один-к-одному, один-ко-многим, многие-ко-многим) и класса принадлежности каждой сущности, который характеризует обязательность включения каждого экземпляра сущности в связь.
5. Построение ER-диаграмм, отображающих выявленные связи.
6. формирование таблиц базы данных по ER-диаграммам:
– определение нужного количества таблиц
– определение вторичных ключей таблиц, их связи с соответствующими первичными ключами.
1 и 2 этапы: объекты, их атрибуты и первичные ключи
Список объектов (сущностей):
· автор
· раздел
· книга
· язык оригинала
· читатель
· формуляр
· авторы и их книги (издание)
Сущности изображаются в виде прямоугольника, атрибуты вписываются внутрь прямоугольника, изображающего сущность.
Атрибут или набор атрибутов, используемый для идентификации экземпляра сущности, называется ключом сущности. Ключевые атрибуты каким-либо образом выделяются на диаграмме (например, подчеркиванием, более жирным шрифтом или курсивом).
Если значения ни одного из атрибутов не обладают уникальностью, то вместо набора уникальных атрибутов можно ввести дополнительный атрибут – код экземпляра (его номер).
|
|
| ||||||
| ||||||||
|
3, 4 и 5 этапы: выявление степени связей и классов принадлежности, их фиксация с помощью диаграмм
В этой диаграмме отражены свойства связи двух объектов нашей предметной области (книги и разделы):
· каждая книга принадлежит какому-то разделу;
· может быть много книг, относящихся к одному разделу;
· возможен раздел, в котором нет книг.
В этой диаграмме отражены свойства связи двух объектов нашей предметной области (язык и книга):
· каждая книга была написана на каком-либо языке;
· может быть много книг, у которых язык оригинала один и тот же;
· нет сведений о языках оригинала, на которых не написано ни одной книги.
В этой диаграмме отражены свойства связи двух объектов нашей предметной области (авторы и книги):
· в библиотеке может быть много книг одного автора;
· могут быть книги, у которых много авторов.
· в базе не будет храниться информация о книгах и авторах, которых нет в фонде библиотеки.
многозначные связи не могут непосредственно реализоваться в реляционной базе данных, поэтому необходимо внедрить дополнительный объект-связку АВТОРЫ И ИХ КНИГИ (ИЗДАНИЕ) как совокупность данных об авторах и написанных ими книгах – возвращение ко 2-му этапу. Атрибуты данной сущности:
АВТОРЫ И ИХ КНИГИ (издание) |
КодКнАвт Автор Книга |
Тогда получаем новые диаграммы:
а)
б)
В этой диаграмме отражены свойства связи двух объектов нашей предметной области (читатель и издание):
· каждый читатель может взять в библиотеке несколько изданий;
· читатель может не брать издания какое-то время;
· могут быть издания, которые не взял ни один читатель;
· читатель может брать издания на срок не более 1 месяца – потом он должен их продлить или по возвращении издания заплатить штраф из расчета 5 руб. за 1 просроченный день.
Много-многозначные связи не могут непосредственно реализоваться в реляционной базе данных, поэтому необходимо внедрить дополнительный объект-связку ФОРМУЛЯР как совокупность данных об изданиях и читателях – возвращение ко 2-му этапу. Атрибуты данной сущности:
ФОРМУЛЯР |
Код КодЧитателя КодИздания ДатаВыдачи ФактДатаВозврата |
Тогда получаем новые диаграммы:
а)
б)
6 этап: формирование таблиц базы данных по ER-диаграммам
В связи сущностей КНИГА Û РАЗДЕЛ и КНИГА Û ЯЗЫК степень связи «один-ко-многим», n-связная сущность имеет обязательный класс принадлежности; следовательно, в соответствии с ER-методом
Достаточно использовать две таблицы (по одной для каждой сущности); ключ каждой сущности служит в качестве первичного ключа соответствующей таблицы. Кроме того, ключ 1-связной сущности должен быть добавлен как атрибут в таблицу, представляющую n-связную сущность.
Но у нас в таблице КНИГА уже есть такие атрибуты – КодРаздела(вторичный ключ, соответствующий одноименному первичному ключу таблицы РАЗДЕЛ) и ЯзыкОригинала (соответствует ключу КодЯзыка таблицы ЯЗЫК).
Язык | |
КодЯзыка | Язык |
рус. | |
нем. | |
англ. |
Раздел | |
КодРаздела | Название |
Литературно-художественное издание | |
Научно-популярное издание | |
Учебник | |
Учебное пособие | |
Издание по изобразительному искусству | |
Справочное издание |
Книга | ||||||||||||
КодКниги | Заголовок | Заголовок_ин | КодРаздела | язык оригинала | N_Изд | Место_Изд | Издательство | Год_изд | Кол_Стр | Илл | Серия | Кол_Экз_В_Библ |
Новый сладостный стиль.Роман. | Литературно-художественное издание | рус. | М. | ИзографЪ, ЭКСМО | Нет | |||||||
Десятилетие клеветы (радиодневник писателя) | Литературно-художественное издание | рус. | М. | ИзографЪ, ЭКСМО | Нет | |||||||
Самоучитель работы на компьютере | Учебник | рус. | СПб. | Питер | Да | |||||||
Самоучитель работы на компьютере | Учебник | рус. | М. | Нолидж | Да | |||||||
… | … | … | … | … | … | … | … | … | … | … | ||
Патриот: Фантастический роман. | Jingo | Литературно-художественное издание | англ. | М. | ЭКСМО | Нет | Плоский мир |
В связи сущностей КНИГА Û АВТОР степень связи «многие-ко-многим». В этом случае классы принадлежности сущностей не влияют на количество и структуру соответствующих таблиц; следовательно,
Необходимо формирование трех таблиц – по одной для каждой сущности (ключ каждой сущности служит в качестве первичного ключа соответствующей таблицы), а также таблицы для связи. Таблица, создаваемая для связи, должна иметь по одному вторичному ключу от каждой сущности.
Такой таблицей станет АВТОРЫ И ИХ КНИГИ (ИЗДАНИЕ)
Авторы и их книги | ||
КодКнАвт | Автор | Книга |
Пратчетт Т. | Роковая музыка | |
Пратчетт Т. | Патриот: Фантастический роман. | |
Аксенов В.П. | Десятилетие клеветы (радиодневник писателя) | |
Аксенов В.П. | Новый сладостный стиль.Роман. | |
Левин А.Ш. | Самоучитель работы на компьютере | |
Левин А.Ш. | Самоучитель работы на компьютере | |
Рубина Д. | Несколько торопливых слов любви… Повесть и рассказы | |
Рубина Д. | Несколько торопливых слов любви… Повесть и рассказы | |
Энде М. | Джим Пуговка и Чертова Дюжина: Повесть-сказка. | |
Бекаревич Ю.Б. | СУБД Access для Windows 95 в примерах. | |
Пушкина Н.В. | СУБД Access для Windows 95 в примерах. | |
Баш Е.Г. | Справочник по русскому языку для студентов-иностранцев |
Автор | ||
КодАвтора | ФИО_Автора_рус | ФИО_Автора_ин |
Левин А.Ш. | ||
Аксенов В.П. | ||
Рубина Д. | ||
Пратчетт Т. | Pratchett Terry | |
Энде М. | Ende Michael | |
Бекаревич Ю.Б. | ||
Пушкина Н.В. | ||
Баш Е.Г. |
Книга | ||||||||||||
КодКниги | Заголовок | Заголовок_ин | КодРаздела | язык оригинала | N_Изд | Место_Изд | Издательство | Год_изд | Кол_Стр | Илл | Серия | Кол_Экз_В_Библ |
Новый сладостный стиль.Роман. | Литературно-художественное издание | рус. | М. | ИзографЪ, ЭКСМО | Нет | |||||||
Десятилетие клеветы (радиодневник писателя) | Литературно-художественное издание | рус. | М. | ИзографЪ, ЭКСМО | Нет | |||||||
… | … | .. | … | … | … | … | … | … | … | … | … | … |
В этой таблице поле Автор является вторичным ключом, соответствующим первичному ключу КодАвтора таблицы АВТОР; поле Книга является вторичным ключом, соответствующим первичному ключу КодКниги таблицы КНИГА. С помощью этих вторичных ключей фиксируется связь сущностей КНИГА и АВТОР.
В связи сущностей АВТОРЫ И ИХ КНИГИ (ИЗДАНИЕ) Û ЧИТАТЕЛЬ степень связи «многие-ко-многим». В этом случае классы принадлежности сущностей не влияют на количество и структуру соответствующих таблиц; следовательно,
Необходимо формирование трех таблиц – по одной для каждой сущности (ключ каждой сущности служит в качестве первичного ключа соответствующей таблицы), а также таблицы для связи. Таблица, создаваемая для связи, должна иметь по одному вторичному ключу от каждой сущности.
Такой таблицей станет ФОРМУЛЯР:
Формуляр | ||||
Код | КодЧитателя | КодИздания | ДатаВыдачи | ФактДатаВозврата |
03.02.2005 | 01.03.2005 | |||
04.06.2005 | 02.07.2005 | |||
22.05.2005 | … | |||
… | … | … | … | … |
Авторы и их книги | ||
КодКнАвт | Автор | Книга |
Пратчетт Т. | Роковая музыка | |
Пратчетт Т. | Патриот: Фантастический роман. | |
… | … | … |
Читатель | ||||||||||
N_чит_бил | ДатаЗаписи | Фамилия | Имя | Отчество | ГодРожд | СоцСтатус | ГородПроживания | Адрес | Тел_дом | Тел_моб |
12.05.1986 | Иванова | Светлана | Петровна | 10.05.1939 | пенсионер | Москва | ул. Тверская, д.15, кв.87 | 380-90-12 | ||
22.01.2004 | Ремизов | Алексей | Михайлович | 11.04.1990 | учащийся | Москва | ул. Садово-Кудринская, д.12, кв.124 | 921-19-59 | 8(916)123-34-34 | |
01.04.1998 | Александров | Петр | Петрович | 09.09.1962 | служащий | Зеленоград | ул. Маяковского, д.2, кв.5 | 11-12-13 |
В этой таблице поле КодЧитателя является вторичным ключом, соответствующим первичному ключу N_чит_бил таблицы ЧИТАТЕЛЬ; поле КодИздания является вторичным ключом, соответствующим первичному ключу КодКнАвт таблицы АВТОРЫ И ИХ КНИГИ (ИЗДАНИЕ). С помощью этих вторичных ключей фиксируется связь сущностей КНИГА и АВТОР. Также вносятся сведения о дате выдачи издания и его фактической дате возврата.
Приложение 1
Литература
1. ГОСТ 7.1–84. Библиографическое описание документа. Общие требования и правила составления.
2. ГОСТ 7.9-95. Реферат и аннотация. Общие Требования.
3. Диго С.М. Базы данных: учебное пособие. М.:МЭСИ, 2006. – 157с.
4. Киреева О.А. Базы данных: учебное пособие. Тольятти: Изд-во ТГУС, 2007. – 136с.
5. Кузьмина С.П. Базы данных: учебное пособие. СПб.: СПбГИЭУ, 2006. – 189с.
6. Кумскова И.А. Базы данных. – М.: Логус, 2012. – 462с.
7. Шишкин В.В. Методические указания к курсовому проекту. – Смоленск, 2002.