Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 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

Третья нормальная форма требует, чтобы таблицы были приведены ко второй нормальной форме, и чтобы между ключевыми полями не было транзитивных зависимостей, то есть, чтобы значение любого поля, не входящего в состав первичного ключа не зависело от другого поля, не входящего в первичный ключ. В нашем случае, таблицы удовлетворяют выше перечисленным требованиям, и это означает, что все таблицы соответствуют третьей нормальной форме (см. рисунок 5).

 

Проектирование таблиц

После того как исходную структуру базы данных мы привели к 3нф, у нас получилось в сумме 7 таблиц.

Kabanin2kodgoroda

Название поля Тип данных Правило целостности
kodgoroda6 gorod number(7) Varchar2(22) primary key  

Таблица 1

В таблице 1 «Kabanin2kodgoroda» будет хранится информация о городах. Она имеет следующие поля:

kodgoroda6- первичный ключ, уникален

gorod – определяет название города, не должно превышать 22 символа

Kabanin2kodavtora

Название поля Тип данных Правило целостности
kodavtora4 familiya imyaotchestvo godzhizni number(8) varchar2(16) Varchar2(47) varchar2(10) primary key  

Таблица 2

В таблице 2 «Kabanin2kodavtora» будет храниться информация об авторе. Она имеет следующие поля:

kodavtora4- первичный ключ, уникален

familiya- определяет фамилию автора, не должно превышать 16 символов

imyaotchestvo- определяет имя отчество автора, не должно превышать 47 символов

godzhizni- определяет годы жизни автора, не должно превышать 10 символов

 

Kabanin2chitateli

Название поля Тип данных Правило целостности
nomerchitbileta2 familiya imyaotchestvo pasportdan adres kodgoroda6   mestorabota sot_telefon dom_telefon number(5) Varchar2(15) Varchar2(33) number(10) Varchar2(42) number(7)   Varchar2(28) number(11) number(11) primary key     >0   FOREIGN KEY на таблицу Kabanin2kodgoroda)  

Таблица 3

В таблице 3 «Kabanin2chitateli» будет храниться информация о читателях. Она имеет следующие поля:

nomerchitbileta2- первичный ключ, уникален

familiya- определяет паспортные данные читателя, не должно превышать 15 символов

imyaotchestvo- определяет имя отчество читателя, не должно превышать 33 символа

pasportdan- определяет паспортные данные читателя, не превышает 10 символов

adres- определяет адрес читателя, не превышает 42 символа

kodgoroda6- определяет код нужного города, не должно превышать 7 символов

mestorabota- определяет место работы читателя, не должно превышать 28 символов

sot_telefon и dom_telefon-определяют сотовый и домашний телефоны читателя, не должно превышать 40 символов

 

Kabanin2izdatelstvo

Название поля Тип данных Правило целостности
Izdatelstvo kodgoroda8 varchar2(30) number(7) Primary key FOREIGN KEY на таблицу Kabanin2kodgoroda

Таблица 4

В таблице 4 «Kabanin2izdatelstvo» будет хранится информация о городе того или иного издательства

Izdatelstvo- первичный ключ, униклен

kodgoroda8- определяет город, в котором находится издательство

 

Kabanin2nazvanie

Название поля Тип данных Правило целостности
Cena Izdatelstvo   Godizdaniya Nazvanie kodavtora4 number(5) varchar2(30)   number(4) Varchar2(30) number(8) >0 FOREIGN KEY на таблицу Kabanin2izdatelstvo >0 Primary key Primary key FOREIGN KEY на таблицу Kabanin2izdatelstvo Kabanin2kodavtora  

Таблица 5

В таблице 5 «Kabanin2nazvanie» будет храниться информация о книгах в библиотеке. Она имеет следующие поля:

Cena- определяет цену книги, не должно превышать 5 символов

Izdatelstvo- определяет издательство книги, не должно превышать 30 символов

Godizdaniya- определяет год издания книги, не должно превышать 4 символа

Nazvanie-определяет название книги, не должно превышать 30 символов

kodavtora4- определяет код нужного автора, не должно превышать 8 символов

Nazvanie и kodavtora4- составной первичный ключ, уникален

 

 

Kabanin2knigi

Название поля Тип данных Правило целостности
inventarnomer2 Nazvanie1   kodavtora5 nalichvbiblioteke Number(6) Varchar2(30)   number(8) Varchar2(2) Primary key FOREIGN KEY на таблицу Kabanin2nazvanie FOREIGN KEY на таблицу Kabanin2nazvanie    

В таблице 6 «Kabanin2knigi» будет храниться информация о наличии книг в библиотеке. Она имеет следующие поля:

inventarnomer2-первичный ключ, уникален

Nazvanie1-определяет название книги, не должно превышать 30 символов

kodavtora5- определяет код нужного автора, не должно превышать 8 символов

nalichvbiblioteke- определяет наличие книги в библиотеке, не должно превышать 2 символов

Kabanin2vyedachaknig

Название поля Тип данных Правило целостности
Kodvyedachi nomerchitbileta2 datavyadachi srokvozvrata Nazvanie kodavtora4 Number(11) number(5) date date Varchar2(30) number(8) primary key FOREIGN KEY на таблицу Kabanin2chitateli   FOREIGN KEY на таблицу Kabanin2nazvanie FOREIGN KEY  

Таблица 7

В таблице 7 «Kabanin2vyedachaknig» будет храниться об учете книг в библиотеке. Она имеет следующие поля:

Kodvyedachi-первичный ключ, уникален

nomerchitbileta2-определяет номер читательского билета читателя, не должно превышать 5 символов

datavyadachi- определяет дату выдачи

srokvozvrata- определяет дату возврата

Nazvanie-определяет название книги, не должно превышать 30 символов

Kodavtora4- определяет код нужного автора, не должно превышать 8 символов






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных