ТОР 5 статей: Методические подходы к анализу финансового состояния предприятия Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века Характеристика шлифовальных кругов и ее маркировка Служебные части речи. Предлог. Союз. Частицы КАТЕГОРИИ:
|
Проектирование таблицРазработка структуры базы данных Уточнение задания А) база данных предназначена для работников библиотеки, чтобы хранить информацию об учете книг. Б) Свойства базы данных: 1) Б.Д. должна позволять просматривать информацию о читателях работнику библиотеки. 2) Б.Д. должна позволять регистрировать информацию о новых читателях, взявших книги в библиотеке. 3) Б.Д. должна позволять просматривать информацию об учете книг. В) Чтобы выполнялись все функции Б.Д, необходима следующая информация: название книги, год издания, автор, издательство, сведения о читателях и так далее. 1.2 Анализ предметной области, определение сущностей (см. рисунок 1) и взаимосвязей между ними. 1) «Книги» - в эту сущность включена информация о книге (название, цена, инвентарный номер, сведения об авторе, об издательстве, наличие в библиотеке) 2) «Читатели»- в эту сущность включена информация о читателях(ФИО, номер читательского билета, адрес, паспортные данные, место работы, телефон) 3) «Выдача книг»- в эту сущность включена информация о выдачи книг (какие книги, кому выданы, дата выдачи, срок возврата) Эти сущности взаимосвязаны следующем образом: - читатель может взять несколько книг, однако каждая книга будет спрашиваться с данного читателя. Следовательно, связь между сущностями «Читатели» и «Выдача книг» «один ко многим» - каждая книга имеет свой инвентарный номер, и выдаваться может нескольким читателям, но выдается только одна книга с данным инвентарным номером одному читателю. Следовательно, связь между сущностями «Читатели» и «Книги» «один ко многим».
Книги читатели
Выдачи книг
Рисунок 1 Нормализация Первая нормальная форма требует: 1) Простой структуры таблицы 2) Чтобы в таблице не было одинаковых по смыслу полей (одинаковых групп) 3) Чтобы в таблице не было составных полей 4) Чтобы в таблице не было одинаковых записей книги
В таблице «книги» (см. рисунок 2) нет составных полей и одинаковых записей. Рассмотрим это на примере поля «инвентарный номер»: оно не составное, так как содержит только числовые данные и номер не может повторяться, и имеет простую форму, так как структура и данные разделены. Повторяющихся групп нет.
Рисунок 2
Читатели
Таблица «читатели» (см. рисунок 3) имеет простую структуру, так как структура и данные разделены. По смыслу одинаковых полей нет. В данной сущности были составные поля: «Адрес», «ФИО», «Телефон». Мы их разделили, так как требуется работа с их частями. Телефон есть домашний и сотовый, соответственно добавляем данные поля. Работнику библиотеки может понадобиться информация только о городе, в котором проживает читатель, следовательно, добавляем соответствующее поле. Так же может понадобиться только фамилия читателя, и так же добавляем поле «фамилия». Есть здесь потенциально составные поля: «паспортные данные» и «место работы», но нам не нужна работа с их частями.
Рисунок 3 Выдача книг
Таблица «выдача книг» (см. рисунок 4) имеет простую структуру, так как структура и данные разделены. По смыслу одинаковых полей записей нет. Поля «дата выдачи» и «срок возврата» потенциально составные, но мы их не разделяем, так как база данных не требует использования их частей.
Рисунок 4 Вторая нормальная форма требует, чтобы таблицы были приведены к первой нормальной форме и чтобы все поля каждой таблицы зависели от первичного ключа. Так же мы должны убедиться в том, что внутри каждой из сущностей не было внутренних взаимосвязей между характерными группами с целью уменьшения избыточности. 1) Определение первичных ключей: В таблице «книги» в качестве ключевого поля можно выбрать поле «инвентарный номер», так как данное поле уникальное. В таблице «читатели» ключевым полем является поле «номер читательского билета», так как номер индивидуальный для каждого читателя. В таблице «выдача книг» в качестве ключевого поля возьмем совокупность полей «название книги», «дата выдачи», «срок возврата», так как эта комбинация уникальна. 2) Произведем анализ смысловых зависимостей: В сущности «читатели» - номер читательского билета (фамилия, имя отчество, паспортные данные, адрес, город, место работы, сотовый телефон, домашний телефон). В сущности «выдача книг» - кому выдана, название книги, дата выдачи (срок возврата). В сущности «книги» - инвентарный номер (название, наличие в библиотеке), название, сведения об авторе (цена, издательство, год издания), издательство (город). 3) Данные таблицы разделены 4) В таблице «выдача книг» вместо составного первичного ключа вводим семантически незначащий код – «код выдачи», для упрощения таблицы. Вместо полей: «сведения об авторе», «город» вводим семантически незначащий коды «код автора» и «код города», так они являются связями для справочных таблиц. Так же вводим справочную таблицу об издательстве. Добавляем поле код автора в таблицы «выдача книг» и «книги», так как вешние ключи должны соответствовать первичным ключам. Книги название книг издательство
читатели город
Автор
Третья нормальная форма требует, чтобы таблицы были приведены ко второй нормальной форме, и чтобы между ключевыми полями не было транзитивных зависимостей, то есть, чтобы значение любого поля, не входящего в состав первичного ключа не зависело от другого поля, не входящего в первичный ключ. В нашем случае, таблицы удовлетворяют выше перечисленным требованиям, и это означает, что все таблицы соответствуют третьей нормальной форме (см. рисунок 5).
Проектирование таблиц После того как исходную структуру базы данных мы привели к 3нф, у нас получилось в сумме 7 таблиц. Kabanin2kodgoroda
Таблица 1 В таблице 1 «Kabanin2kodgoroda» будет хранится информация о городах. Она имеет следующие поля: kodgoroda6- первичный ключ, уникален gorod – определяет название города, не должно превышать 22 символа Kabanin2kodavtora
Таблица 2 В таблице 2 «Kabanin2kodavtora» будет храниться информация об авторе. Она имеет следующие поля: kodavtora4- первичный ключ, уникален familiya- определяет фамилию автора, не должно превышать 16 символов imyaotchestvo- определяет имя отчество автора, не должно превышать 47 символов godzhizni- определяет годы жизни автора, не должно превышать 10 символов
Kabanin2chitateli
Таблица 3 В таблице 3 «Kabanin2chitateli» будет храниться информация о читателях. Она имеет следующие поля: nomerchitbileta2- первичный ключ, уникален familiya- определяет паспортные данные читателя, не должно превышать 15 символов imyaotchestvo- определяет имя отчество читателя, не должно превышать 33 символа pasportdan- определяет паспортные данные читателя, не превышает 10 символов adres- определяет адрес читателя, не превышает 42 символа kodgoroda6- определяет код нужного города, не должно превышать 7 символов mestorabota- определяет место работы читателя, не должно превышать 28 символов sot_telefon и dom_telefon-определяют сотовый и домашний телефоны читателя, не должно превышать 40 символов
Kabanin2izdatelstvo
Таблица 4 В таблице 4 «Kabanin2izdatelstvo» будет хранится информация о городе того или иного издательства Izdatelstvo- первичный ключ, униклен kodgoroda8- определяет город, в котором находится издательство
Kabanin2nazvanie
Таблица 5 В таблице 5 «Kabanin2nazvanie» будет храниться информация о книгах в библиотеке. Она имеет следующие поля: Cena- определяет цену книги, не должно превышать 5 символов Izdatelstvo- определяет издательство книги, не должно превышать 30 символов Godizdaniya- определяет год издания книги, не должно превышать 4 символа Nazvanie-определяет название книги, не должно превышать 30 символов kodavtora4- определяет код нужного автора, не должно превышать 8 символов Nazvanie и kodavtora4- составной первичный ключ, уникален
Kabanin2knigi
В таблице 6 «Kabanin2knigi» будет храниться информация о наличии книг в библиотеке. Она имеет следующие поля: inventarnomer2-первичный ключ, уникален Nazvanie1-определяет название книги, не должно превышать 30 символов kodavtora5- определяет код нужного автора, не должно превышать 8 символов nalichvbiblioteke- определяет наличие книги в библиотеке, не должно превышать 2 символов Kabanin2vyedachaknig
Таблица 7 В таблице 7 «Kabanin2vyedachaknig» будет храниться об учете книг в библиотеке. Она имеет следующие поля: Kodvyedachi-первичный ключ, уникален nomerchitbileta2-определяет номер читательского билета читателя, не должно превышать 5 символов datavyadachi- определяет дату выдачи srokvozvrata- определяет дату возврата Nazvanie-определяет название книги, не должно превышать 30 символов Kodavtora4- определяет код нужного автора, не должно превышать 8 символов Не нашли, что искали? Воспользуйтесь поиском:
|