- •Создание базы данных «Домашняя библиотека»
- •Ягту 220301.65-016 лр
- •Оглавление Содержание:
- •1 Разработка структуры бд
- •1.1 Уточнение задач
- •1.2 Сущности
- •1.3 Нормализация Приведение к 1нф: Первая нормальная форма требует:
- •Приведение ко 2 нф:
- •Приведение к 3нф:
- •1.4 Проектирование таблиц
- •2. Реализация серверной части.
- •2.1 Создание таблиц.
- •2.2 Команды
- •3. Реализация клиентской части.
- •3.1 Проектирование интерфейса пользователя.
- •3.2 Проектирование отдельных графических форм.
- •3.3 Разработка алгоритмов.
- •3.4 Разработка структуры sql-запросов.
Приведение к 3нф:
Так как транзитивных зависимостей нет, то 2 НФ является и 3 НФ. Полученный результат представлен на рис 3.
1.4 Проектирование таблиц
Книги/ knigi_bav
Код книги |
Название Издательство Год издания Жанр Место выдачи Раздел |
Поле |
Тип |
Правило |
Kod_knigi |
Number(5,0) |
PRIMARY KEY |
Nazvanie |
Varchar2(40) |
Обязательное поле |
Izdatelsvo |
Varchar2(40) |
Обязательное поле |
God_izdaniya |
Number(4,0) |
>=1900 |
Janr |
Varchar2(40) |
Обязательное поле |
Mesto_vidachi |
Varchar2(40) |
FOREIGN KEY Mesto_vidachi_bav |
Razdel |
Varchar2(40) |
FOREIGN KEY Razdel_bav |
В таблице knigi_bav содержится информация о книге находящейся в таблице knigi_bav т.е. её характеристики. Таблица содержит следующие поля:
Kod_knigi: поле являющееся первичным ключом. Содержит информацию о коде книги. Является числом содержащим 5 цифр. В домашней библиотеке будет примерно 4000 книг. 1000 Номеров для книг будет в запасе, т.к. могут добавляться новые книги, теряться номера и т.д.
Nazvanie: поле содержащее информацию о названии книги. Является строкой. Значение поля не может превышать 40 символов. Т.к. названия книг могут быть длинными, то мы берем число символов с запасом. Обязательно для заполнения.
Izdatelsvo: поле содержащее информацию об издательстве. Является строкой. Значение поля не может превышать 40 символов. Обычно названия печатных издательств состоят из одного слова. Иногда из 2 слов. Исходя из этих особенностей задаем число символов с запасом. Обязательно для заполнения.
God_izdaniya: поле содержащее информацию о годе издания книги. Является числом содержащим 4 цифры. Год издания всегда состоит из 4 цифр, поэтому максимальное число символов в строке 4. Значение должно быть не меньше 1900. Более старых книг в библиотеке нет.
Janr: поле содержащее информацию о жанре книги. Является строкой Значение поля не может превышать 40 символов. Обычно жанр состоит из одного-двух слов, но иногда одно произведение сочетает в себе несколько жанров, поэтому закладываем число символов с запасом. Обязательно для заполнения.
Mesto_vidachi: поле является внешним ключем. Содержит информацию о месте выдачи книги. Значение поля не должно превышать 40 символов. Названия магазинов и библиотек могут быть длинными, поэтому берем именно такое число символов.
Razdel: поле является внешним ключем. Содержит информацию о разделе в котором находится книга. Значение поля не должно превышать 40 символов. Раздел может состоять из нескольких слов, поэтому, берем число символов с запасом.
Пользователь/polzovatel_bav
Код книги Дата выдачи |
ФИО Срок возврата |
Поле |
Тип |
Правило |
Kod_knigi |
Number(5,0) |
PRIMARY KEY |
Data_vidachi |
Varchar2(10) |
PRIMARY KEY >=01.01.2000 |
FIO |
Varchar2(40) |
FOREIGN KEY FIO_bav |
Srok_vozvrata |
Varchar2(10) |
>=01.01.2000 |
В таблице polzovatel_bav содержится информация о пользователе занесенном в таблицу polzovatel_bav.
Таблица содержит следующие поля:
Kod_knigi: поле являющееся первичным ключом. Содержит информацию о коде книге. Является числом содержащим 5 цифр.
Data_vidachi: поле являющееся первичным ключом. Содержит информацию о дате выдачи книги. Является строкой. Значение поля не должно превышать 10 символов и быть не меньше 01.01.2000. Тип переменной, которую мы используем в данном случае, строка. Состоит она из 10 символов т.к. запись даты по заданному образцу должна содержать 10 символов. ПРИМЕР 01.01.2000
FIO: поле является внешним ключом. Содержит информацию о Фамилии, Имени и Отчестве пользователя. Является строкой. Значение поля не должно превышать 40 символов.
Srok_vozvrata: поле содержит информацию о сроке возврата книги. Является строкой. Значение поля не должно превышать 10 символов и быть не меньше 01.01.2000
Автор/Avtor_bav
Код книги Автор |
Поле |
Тип |
Правило |
Kod_knigi |
Number(5,0) |
FOREIGN KEY Knigi_bav |
Avtor |
Varchar2(40) |
FOREIGN KEY FIO_bav |
В таблице Avtor_bav содержится информация об авторе(-ах) книги.
Таблица содержит следующие поля:
Kod_knigi: поле являющееся внешним ключом. Содержит информацию о коде книге. Является числом содержащим 10 цифр.
Avtor : поле являющееся внешним ключом. Содержит информацию об авторе(-ах) книги. Является строкой. Значение поля не должно превышать 40 символов. Обязательно для заполнения
Место выдачи/ mesto_vidachi_bav
Код места выдачи |
Название Адрес Тип |
Поле |
Тип |
Правило |
Kod_mesta_vidachi |
Number(5,0) |
PRIMARY KEY |
Nazvanie |
Varchar2(40) |
Обязательное поле |
Adress |
Varchar2(40) |
Обязательное поле |
Tip |
Varchar2(10) |
Обязательное поле |
В таблице mesto_vidachi_bav содержится информация о месте выдачи книги.
Таблица содержит следующие поля:
Kod_mesta_vidachi: поле являющееся первичным ключом. Содержит информацию о месте выдачи книги. Является числом содержащим 5 цифр.
Nazvanie : поле содержащее информацию о названии места выдачи книги. . Является строкой. Значение поля не должно превышать 40 символов. Обязательно для заполнения.
Adress: поле содержащее информацию об адресе места выдачи книги. Является строкой. Значение поля не должно превышать 40 символов. Обязательно для заполнения
Tip: поле содержащее информацию о типе места выдачи книги(магазин, библиотека). Является строкой. Значение поля не должно превышать 10 символов. Обязательно для заполнения
Пользователь книги/ Polzovatel_knigi_bav
Код книги Пользователь |
|
Поле |
Тип |
Правило |
Kod_knigi |
Number(5,0) |
FOREIGN KEY Knigi_bav |
Polzovatel |
Varchar2(40) |
Обязательное поле |
В таблице Polzovatel_knigi_bav содержится информация пользователе(-ях) книги.
Таблица содержит следующие поля:
Kod_knigi: поле являющееся внешним ключом. Содержит информацию о коде книге. Является числом содержащим 5 цифр.
Polzovatel: поле содержащее информацию об пользователе(-ях) книги. Является строкой. Значение поля не должно превышать 40 символов.
Раздел/ Razdel_bav
Поле |
Тип |
Правило |
Razdel |
Varchar2(40) |
PRIMARY KEY |
Podrazdel |
Varchar2(40) |
Обязательное поле |
Раздел |
Подраздел |
В таблице Razdel_bav содержится информация принадлежности книги к разделу и подразделу.
Таблица содержит следующие поля:
Razdel: поле являющееся первичным ключом. Содержит информацию о разделе в котором находится книга. Является строкой. Значение поля не должно превышать 40 символов.
Podrazdtel: поле содержащее информацию о подразделе в котором находится книга. Является строкой. Значение поля не должно превышать 40 символов.
ФИО/FIO_bav
ФИО |
Адрес |
Поле |
Тип |
Правило |
FIO |
Varchar2(40) |
PRIMARY KEY |
Adress |
Varchar2(40) |
Обязательное поле |
В таблице FIO_bav содержится информация об пользователе.
Таблица содержит следующие поля:
FIO: поле являющееся первичным ключом. Содержит информацию о пользователе. Является строкой. Значение поля не должно превышать 40 символов.
Adress: поле содержащее информацию об адресе сета проживания пользователя. Является строкой. Значение поля не должно превышать 40 символов. Обязательно для заполнения