Сущность «Книга» (books) имеет атрибуты «Первичный ключ» (id), «Название» (name), «Год издания» (year), «Место издания» (place), «Количество страниц» (pagecount), «Рубрика» (heading, внешний ключ, ссылается на атрибут id таблицы headings), «Тип книги» (type – внешний ключ, ссылается на атрибут id таблицы booktypes), «Читальный зал» (hall), «Количество экземпляров» (count), редкость издания (rare).
Сущность «Читатель» (readers) имеет атрибуты «Первичный ключ» (id), «Фамилия» (surname), «Имя» (name), «Отчество» (patronymic), «Адрес электронной почты» (email), «Задолженность» (debt), «Свидетельство о рождении» (cert, внешний ключ, ссылается на атрибут id таблицы certificates), «Паспорт» (passport, внешний ключ, ссылается на атрибут id таблицы passports) .
Между читателем и свидетельством о рождении, а также между читателем и паспортом устанавливается связь «один к одному». Каждому документу соответствует один и только один читатель. Читатель может иметь только одно свидетельство о рождении (или не иметь ни одного), один паспорт (или ни одного).
Рубрика и книги, тип и книги имеют связь «один ко многим». Связи «один к одному» и «один ко многим» организованы с помощью внешних ключей. Между книгами и читателями существует связь «многие ко многим». Эта связь создаётся с помощью сущности «Книга на руках у читателя» (distribution). Она имеет атрибуты «Читатель» (reader, внешний ключ, ссылается на атрибут id таблицы readers), «Книга» (book, внешний ключ, ссылается на атрибут id таблицы books), «Дата выдачи» (get), «Дата возврата» (return). Первые три атрибута образуют первичный ключ.
Между книгами и авторами также существует связь «многие ко многим». Для организации этой связи создадим таблицу writings с полями book (внешний ключ, ссылается на поле id таблицы books), author (внешний ключ, ссылается на поле id таблицы authors). Первичным ключом являются оба поля.
Следующий шаг на пути проектирования структуры реляционной базы данных – нормализация таблиц. Нормализация — это процесс организации данных в базе данных, включающий создание таблиц и установление отношений между ними в соответствии с правилами, которые обеспечивают защиту данных и делают базу данных более гибкой, устраняя избыточность и несогласованные зависимости.
Нормализация представляет собой последовательное изменение структуры таблиц до тех пор, пока она не будет удовлетворять требованиям последней нормальной формы [17]. Всего существует шесть форм нормализации: первая нормальная форма, вторая нормальная форма, третья нормальная форма, нормальная форма Бойса-Кодда, четвертая нормальная форма и пятая нормальная форма или нормальная форма проекции-соединения. Однако концептуально важными являются только первые три нормальные формы, которые предложил Эдгар Кодд.
Первая нормальная форма запрещает повторяющиеся столбцы (содержащие одинаковую по смыслу информацию); запрещает множественные столбцы (содержащие значения типа списка и т.п.); требует определить первичный ключ для таблицы, то есть тот столбец или комбинацию столбцов, которые однозначно определяют каждую строку, а также не допускает пустых значений в полях [18]. В разработанной модели базы данных таблицы не имеют повторяющихся по смыслу и множественных полей и обладают непустыми первичными ключами, потому она находится в первой нормальной форме.
Отношение находится во второй нормальной форме, если оно находится в первой нормальной форме и каждый неключевой атрибут зависит от всего первичного ключа (не зависит от части ключа) [19]. В случаях, когда таблица находится в первой нормальной форме и первичный ключ у нее состоит из одного столбца, то она автоматически находится во второй нормальной форме. Разработанные нами таблицы находятся во второй нормальной форме.
Отношение находится в третей нормальной форме, если оно находится во второй нормальной форме и, при этом, все неключевые атрибуты отношения взаимно независимы и полностью зависят от первичного ключа [20]. При соблюдении данного условия, база данных соответствует требованиям третьей нормальной формы.
В ходе анализа, было выявлено, что вся база данных была приведена к третьей нормальной форме. При этом также выполняется условие Бойса-Кодда, поскольку отсутствуют составные ключи.
Логическая схема базы данных после нормализации представлена на рисунке 1.2.
Информационная система «Библиотека»
- Леонид Федотов
- Информатика
Диплом777
Email: info@diplom777.ru
Phone: +7 (800) 707-84-52
Url: https://diplom777.ru/
Никольская 10
Москва, RU 109012
Содержание
Леонид Федотов
Окончил НИУ ВШЭ факультет компьютерных наук. Сам являюсь кандидатом наук. По специальности работаю 13 лет, за это время создал 8 научных статей и 2 диссертации. В компании подрабатываю в свободное от работы время уже более 5 лет. Нравится помогать школьникам и студентам в решении контрольных работ и написании курсовых проектов. Люблю свою профессию за то, что это направление с каждым годом становится все более востребованным и актуальным.