Курсовая ПрБД, 2 курс 3 семестр (для ИВТ и т.п.) / Курсовая ПБД готовая
.pdfНа этапе физического проектирования логическая модель преобразуется в набор таблиц, ориентированных на реализацию в выбранной СУБД MySQL (phpMyAdmin). Для каждой сущности определяются имена полей, типы данных, ключи и ограничения. Ниже приведена структура всех таблиц (таблицы 5-15) физической модели с указанием обозначений полей, их русских названий, типов данных, обязательности и ключевых характеристик.
Таблица 5
Владельцы (Owners)
Обозначение |
|
Название |
|
|
Тип |
|
Обязательность |
Примеч |
|||
поля |
|
поля |
|
|
|
|
данных |
|
|
|
ание |
idOwner |
|
idВладельца |
|
|
INT |
|
Обязательно |
|
Первичн |
||
|
|
|
|
|
|
|
|
|
|
|
ый ключ |
Full name |
|
ФИО |
|
|
/ |
|
VARCHAR( |
|
Обязательно |
|
|
|
|
название |
|
|
|
|
100) |
|
|
|
|
|
|
организации |
|
|
|
|
|
|
|||
Owner type |
|
Тип владельца |
|
VARCHAR( |
|
Обязательно |
|
|
|||
|
|
|
|
|
|
|
50) |
|
|
|
|
Registration |
|
Адрес |
|
|
|
|
VARCHAR( |
|
Необязательно |
|
|
address |
|
регистрации |
|
|
150) |
|
|
|
|
||
Phone |
|
Контактный |
|
|
VARCHAR( |
|
Обязательно |
|
|
||
|
|
телефон |
|
|
|
|
20) |
|
|
|
|
|
Электронная |
|
VARCHAR( |
|
Необязательно |
|
|
||||
|
|
почта |
|
|
|
|
100) |
|
|
|
|
|
|
|
Арендаторы (Tenants) |
|
Таблица 6 |
||||||
|
|
|
|
|
|||||||
Обозначени |
Название |
|
|
Тип данных |
Обязательност |
Примечани |
|||||
е поля |
поля |
|
|
|
|
|
ь |
е |
|||
idTenant |
idАрендатор |
|
INT |
|
Обязательно |
Первичный |
|||||
|
а |
|
|
|
|
|
|
|
ключ |
||
Full name |
ФИО |
/ |
|
VARCHAR(10 |
Обязательно |
|
|
||||
|
название |
|
|
0) |
|
|
|
|
|
|
|
|
организации |
|
|
|
|
|
|
|
|
||
Tenant type |
Тип |
|
|
VARCHAR(50) |
Обязательно |
|
|
||||
|
арендатора |
|
|
|
|
|
|
|
|
|
|
Registration |
Адрес |
|
|
VARCHAR(15 |
Необязательно |
|
|
||||
address |
регистрации |
|
0) |
|
|
|
|
|
|
||
Phone |
Контактный |
|
VARCHAR(20) |
Обязательно |
|
|
|||||
|
телефон |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
21 |
|
Продолжение табл. 6
|
Электронная |
|
VARCHAR(100) |
Необязательно |
|
||||||
|
|
почта |
|
|
|
|
|
|
|
|
|
|
|
Филиалы агентства (Agency branches) |
Таблица 7 |
||||||||
|
|
|
|
||||||||
Обозначен |
Название |
Тип данных |
|
Обязательно |
Примечан |
||||||
ие поля |
поля |
|
|
|
|
|
сть |
ие |
|||
idBranch |
idФилиала |
INT |
|
|
Обязательно |
Первичный |
|||||
|
|
|
|
|
|
|
|
|
|
ключ |
|
Agency |
Название |
VARCHAR(100) |
|
Обязательно |
|
|
|||||
name |
агентства |
|
|
|
|
|
|
|
|
|
|
Registration |
Адрес |
VARCHAR(150) |
|
Обязательно |
|
|
|||||
address |
регистрации |
|
|
|
|
|
|
|
|
|
|
Phone |
Контактный |
VARCHAR(20) |
|
Обязательно |
|
|
|||||
|
телефон |
|
|
|
|
|
|
|
|
|
|
Электронная |
VARCHAR(100) |
|
Обязательно |
|
|
||||||
|
почта |
|
|
|
|
|
|
|
|
|
|
|
|
Квартиры (Apartments) |
Таблица 8 |
||||||||
|
|
|
|
||||||||
Обозначен |
Название |
|
Тип данных |
Обязательнос |
Примечан |
||||||
ие поля |
поля |
|
|
|
|
ть |
ие |
||||
idApartment |
idКвартиры |
|
INT |
|
Обязательно |
Первичный |
|||||
|
|
|
|
|
|
|
|
|
|
ключ |
|
idOwner |
idВладельца |
|
INT |
|
Обязательно |
Внешний |
|||||
|
|
|
|
|
|
|
|
|
|
ключ |
|
Address |
Адрес |
|
VARCHAR(20 |
Обязательно |
|
|
|||||
|
|
|
|
0) |
|
|
|
|
|
|
|
Total area |
Общая |
|
DECIMAL(6,2 |
Обязательно |
|
|
|||||
|
площадь |
|
) |
|
|
|
|
|
|
|
|
Rooms |
Количество |
|
INT |
|
Обязательно |
|
|
||||
|
комнат |
|
|
|
|
|
|
|
|
|
|
Floor |
Этаж |
|
INT |
|
Обязательно |
|
|
||||
Specificatio |
Характеристи |
|
TEXT |
Необязательно |
|
|
|||||
ns |
ки |
|
|
|
|
|
|
|
|
|
|
Status |
Статус |
|
VARCHAR(50 |
Обязательно |
|
|
|||||
|
|
|
|
) |
|
|
|
|
|
|
|
22
|
|
Менеджеры (Managers) |
|
Таблица 9 |
|
|
|
|
|
||
Обозначе |
Название поля |
Тип данных |
Обязатель |
Примечан |
|
ние поля |
|
|
|
ность |
ие |
idManager |
idМенеджера |
INT |
Обязательн |
Первичный |
|
|
|
|
|
о |
ключ |
idBranch |
idФилиала |
INT |
Обязательн |
Внешний |
|
|
|
|
|
о |
ключ |
Full name |
ФИО |
VARCHAR(100) |
Обязательн |
|
|
|
|
|
|
о |
|
Position |
Должность |
VARCHAR(50) |
Обязательн |
|
|
|
|
|
|
о |
|
Phone |
Контактный |
VARCHAR(20) |
Обязательн |
|
|
|
телефон |
|
о |
|
|
|
|
Договоры аренды (Lease agreements) |
Таблица 10 |
||
|
|
|
|||
Обозначен |
|
Название поля |
Тип данных |
Обязатель |
Примечан |
ие поля |
|
|
|
ность |
ие |
idContract |
|
idДоговора |
INT |
Обязательн |
Первичный |
|
|
|
|
о |
ключ |
idTenant |
|
idАрендатора |
INT |
Обязательн |
Внешний |
|
|
|
|
о |
ключ |
idApartment |
|
idКвартиры |
INT |
Обязательн |
Внешний |
|
|
|
|
о |
ключ |
idManager |
|
idМенеджера |
INT |
Обязательн |
Внешний |
|
|
|
|
о |
ключ |
Conclusion |
|
Дата |
DATE |
Обязательн |
|
date |
|
заключения |
|
о |
|
Start date |
|
Дата начала |
DATE |
Обязательн |
|
|
|
|
|
о |
|
End date |
|
Дата окончания |
DATE |
Обязательн |
|
|
|
|
|
о |
|
Rental price |
|
Стоимость |
DECIMAL(10,2) |
Обязательн |
|
|
|
аренды |
|
о |
|
Deposit |
|
Сумма залога |
DECIMAL(10,2) |
Обязательн |
|
amount |
|
|
|
о |
|
Agreement |
|
Статус |
VARCHAR(50) |
Обязательн |
|
status |
|
договора |
|
о |
|
Rental |
|
Условия |
TEXT |
Необязател |
|
conditions |
|
аренды |
|
ьно |
|
|
|
|
|
|
23 |
|
|
Договоры управления (Management contracts) |
|
Таблица 11 |
|||||||
|
|
|
|
||||||||
Обозначение |
|
Название поля |
Тип |
|
Обязательн |
|
Примеча |
||||
поля |
|
|
|
|
данных |
|
ость |
|
ние |
||
idManagementCon |
idДоговораУпр |
INT |
|
Обязательно |
|
Первичны |
|||||
tract |
|
авления |
|
|
|
|
|
|
й ключ |
||
idApartment |
|
idКвартиры |
|
INT |
|
Обязательно |
|
Внешний |
|||
|
|
|
|
|
|
|
|
|
|
|
ключ |
idOwner |
|
idВладельца |
INT |
|
Обязательно |
|
Внешний |
||||
|
|
|
|
|
|
|
|
|
|
|
ключ |
idManager |
|
idМенеджера |
INT |
|
Обязательно |
|
Внешний |
||||
|
|
|
|
|
|
|
|
|
|
|
ключ |
Conclusion date |
Дата |
|
DATE |
|
Обязательно |
|
|
||||
|
|
|
заключения |
|
|
|
|
|
|
|
|
Start date |
|
Дата начала |
|
DATE |
|
Обязательно |
|
|
|||
End date |
|
Дата окончания |
DATE |
|
Обязательно |
|
|
||||
Management |
|
Условия |
|
TEXT |
|
Необязатель |
|
|
|||
conditions |
|
управления |
|
|
|
но |
|
|
|||
Status |
|
Статус |
|
VARCHA |
Обязательно |
|
|
||||
|
|
|
|
|
|
R(50) |
|
|
|
|
|
|
|
|
Платежи (Payments) |
|
Таблица 12 |
||||||
|
|
|
|
|
|||||||
Обозначен |
|
Название поля |
|
Тип данных |
Обязательнос |
|
Примечан |
||||
ие поля |
|
|
|
|
|
|
ть |
|
ие |
||
idPayment |
|
idПлатежа |
|
INT |
|
Обязательно |
|
Первичный |
|||
|
|
|
|
|
|
|
|
|
|
ключ |
|
idContract |
|
idДоговора |
|
INT |
|
Обязательно |
|
Внешний |
|||
|
|
|
|
|
|
|
|
|
|
ключ |
|
Payment |
|
Дата платежа |
|
DATE |
Обязательно |
|
|
|
|||
date |
|
|
|
|
|
|
|
|
|
|
|
Payment |
|
Тип платежа |
|
VARCHAR( |
Обязательно |
|
|
|
|||
type |
|
|
|
|
50) |
|
|
|
|
|
|
Amount |
|
Сумма |
|
DECIMAL(1 |
Обязательно |
|
|
|
|||
|
|
|
|
|
0,2) |
|
|
|
|
|
|
Payment |
|
Способ оплаты |
|
VARCHAR( |
Необязательно |
|
|
|
|||
method |
|
|
|
|
50) |
|
|
|
|
|
|
Status |
|
Статус |
|
VARCHAR( |
Обязательно |
|
|
|
|||
|
|
|
|
|
50) |
|
|
|
|
|
|
24
|
|
|
Штрафы (Fines) |
|
|
Таблица 13 |
||||
|
|
|
|
|
|
|||||
Обозначени |
|
Название поля |
|
Тип |
Обязательност |
Примечан |
||||
е поля |
|
|
|
|
данных |
ь |
ие |
|||
idFine |
|
idШтрафа |
|
INT |
Обязательно |
Первичны |
||||
|
|
|
|
|
|
|
|
|
|
й ключ |
idContract |
|
idДоговора |
|
INT |
Обязательно |
Внешний |
||||
|
|
|
|
|
|
|
|
|
|
ключ |
Violation type |
|
Тип нарушения |
|
VARCHAR( |
Обязательно |
|
||||
|
|
|
|
|
|
100) |
|
|
|
|
Description |
|
Описание |
|
TEXT |
Необязательно |
|
||||
Amount |
|
Сумма штрафа |
|
DECIMAL( |
Обязательно |
|
||||
|
|
|
|
|
|
10,2) |
|
|
|
|
Accrual date |
|
Дата |
|
DATE |
Обязательно |
|
||||
|
|
|
начисления |
|
|
|
|
|
|
|
Status |
|
Статус |
|
VARCHAR( |
Обязательно |
|
||||
|
|
|
|
|
|
50) |
|
|
|
|
|
|
|
Осмотры квартиры (Inspections) |
Таблица 14 |
||||||
|
|
|
|
|||||||
Обозначен |
|
Название поля |
|
Тип данных |
|
Обязательнос |
|
Примечан |
||
ие поля |
|
|
|
|
|
|
|
ть |
|
ие |
idInspection |
|
idОсмотра |
|
INT |
|
Обязательно |
|
Первичный |
||
|
|
|
|
|
|
|
|
|
|
ключ |
idApartment |
|
idКвартиры |
|
INT |
|
Обязательно |
|
Внешний |
||
|
|
|
|
|
|
|
|
|
|
ключ |
idContract |
|
idДоговора |
|
INT |
|
Необязательно |
|
Внешний |
||
|
|
|
|
|
|
|
|
|
|
ключ |
idManager |
|
idМенеджера |
|
INT |
|
Необязательно |
|
Внешний |
||
|
|
|
|
|
|
|
|
|
|
ключ |
idOwner |
|
idВладельца |
|
INT |
|
Необязательно |
|
Внешний |
||
|
|
|
|
|
|
|
|
|
|
ключ |
Inspection |
|
Дата осмотра |
|
DATE |
|
Обязательно |
|
|
||
date |
|
|
|
|
|
|
|
|
|
|
Condition |
|
Состояние |
|
TEXT |
|
Обязательно |
|
|
||
|
|
|
Технические заявки (Technical requests) |
Таблица 15 |
||||||
|
|
|
|
|||||||
Обозначен |
|
Название поля |
|
Тип данных |
|
Обязательнос |
|
Примечан |
||
ие поля |
|
|
|
|
|
|
|
ть |
|
ие |
idRequest |
|
idЗаявки |
|
INT |
|
Обязательно |
|
Первичный |
||
|
|
|
|
|
|
|
|
|
|
ключ |
|
|
|
|
|
|
|
|
|
|
25 |
Продолжение табл. 15
idContract |
idДоговора |
INT |
Обязательно |
Внешний |
|
|
|
|
ключ |
idManager |
idМенеджера |
INT |
Обязательно |
Внешний |
|
|
|
|
ключ |
Application |
Дата заявки |
DATE |
Обязательно |
|
date |
|
|
|
|
Problem |
Описание |
TEXT |
Обязательно |
|
description |
проблемы |
|
|
|
Status |
Статус |
VARCHAR( |
Обязательно |
|
|
|
50) |
|
|
В ходе физического проектирования была выполнена детализация логической модели с учётом требований выбранной СУБД MySQL. Каждая сущность преобразована в таблицу, для всех атрибутов заданы типы данных, ключевые ограничения, правила обязательности и ключи. Разработанная структура обеспечивает целостность и непротиворечивость данных, а также поддерживает эффективное выполнение запросов, необходимых для функционирования информационной системы агентства аренды квартир. Полученная физическая модель полностью готова к реализации и дальнейшему наполнению данными.
26
4 Реализация проекта БД средствами СУБД
Реализация проекта базы данных осуществляется с использованием phpMyAdmin, входящего в его состав. На данном этапе логическая модель преобразуется в физическую структуру: создаётся база данных, таблицы, первичные и внешние ключи, а также связи между таблицами. В качестве итоговой ER-модели для реляционной БД будет использоваться Логическая ER-модель (рис. 5). На этой основе создадим базу данных.
ВphpMyAdminсоздаётсяноваябазаданных Rental Agency,чтопоказано на рисунке 7. После выбора кодировки utf8_general_ci база данных подготавливается к созданию таблиц. Это простой способ создания.
Имеется вариант создания базы данных с помощью SQL-запроса. Необходимо воспользоваться оператором CREATE DATABASE и дополнительными CHARACTER SET и COLLATE для кодировки. Запрос базы данных выглядит следующим образом:
CREATE DATABASE `Rental Agency` CHARACTER SET utf8
COLLATE utf8_general_ci;
Рис. 7 – Создание БД
Для создания таблиц через SQL-запросы нам понадобится оператор CREATE TABLE. После объявления оператора указывается имя таблицы и в скобках атрибуты, их типы данных. Для полей, которые должны заполнятся автоматически указывается AUTO_INCREMENT, а для первичного ключа используем PRIMARY KEY.
Таблица «Филиалы агентства» показана на рисунке 8. Сам SQL-запрос выглядит следующим образом:
27
CREATE TABLE `Филиалы агентства` ( `idФилиала` int(11) NOT NULL AUTO_INCREMENT,
`Название агентства` varchar(100) NOT NULL, `Адрес регистрации` varchar(150) NOT NULL, `Контактный телефон` varchar(20) NOT NULL, `Электронная почта` varchar(100) NOT NULL,
PRIMARY KEY (`idФилиала`)
);
Рис. 8 – Структура таблицы «Филиалы агентства»
Таблица «Менеджеры» показана на рисунке 9. Сам SQL-запрос выглядит следующим образом:
CREATE TABLE `Менеджеры` (
`idМенеджера` int(11) NOT NULL AUTO_INCREMENT, `idФилиала` int(11) NOT NULL,
`ФИО` varchar(100) NOT NULL, `Должность` varchar(50) NOT NULL,
`Контактный телефон` varchar(20) NOT NULL, PRIMARY KEY (`idМенеджера`)
);
28
Рис. 9 – Структура таблицы «Менеджеры»
Таблица «Владельцы» показана на рисунке 10. Сам SQL-запрос выглядит следующим образом:
CREATE TABLE `Владельцы` (
`idВладельца` int(11) NOT NULL AUTO_INCREMENT,
`ФИО / название организации` varchar(100) NOT
NULL,
`Тип владельца` varchar(50) NOT NULL,
`Адрес регистрации` varchar(150) DEFAULT NULL, `Контактный телефон` varchar(20) NOT NULL, `Электронная почта` varchar(100) DEFAULT NULL, PRIMARY KEY (`idВладельца`)
);
Рис. 10 – Структура таблицы «Владельцы»
Таблица «Арендаторы» показана на рисунке 11. Сам SQL-запрос
29
выглядит следующим образом:
CREATE TABLE `Арендаторы` (
`idАрендатора` int(11) NOT NULL AUTO_INCREMENT,
`ФИО / название организации` varchar(100) NOT
NULL,
`Тип арендатора` varchar(50) NOT NULL,
`Адрес регистрации` varchar(150) DEFAULT NULL,
`Контактный телефон` varchar(20) NOT NULL,
`Электронная почта` varchar(100) DEFAULT NULL, PRIMARY KEY (`idАрендатора`)
);
Рис. 11 – Структура таблицы «Арендаторы»
Таблица «Договоры аренды» показана на рисунке 12. Сам SQL-запрос выглядит следующим образом:
CREATE TABLE `Договоры аренды` (
`idДоговора` int(11) NOT NULL AUTO_INCREMENT, `idАрендатора` int(11) NOT NULL, `idКвартиры` int(11) NOT NULL,
`idМенеджера` int(11) NOT NULL, `Дата заключения` date NOT NULL,
`Дата начала` date NOT NULL, `Дата окончания` date NOT NULL,
30
