Добавил:
Рад, если кому-то помог Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
0
Добавлен:
05.02.2026
Размер:
6.41 Mб
Скачать

На этапе физического проектирования логическая модель преобразуется в набор таблиц, ориентированных на реализацию в выбранной СУБД MySQL (phpMyAdmin). Для каждой сущности определяются имена полей, типы данных, ключи и ограничения. Ниже приведена структура всех таблиц (таблицы 5-15) физической модели с указанием обозначений полей, их русских названий, типов данных, обязательности и ключевых характеристик.

Таблица 5

Владельцы (Owners)

Обозначение

 

Название

 

 

Тип

 

Обязательность

Примеч

поля

 

поля

 

 

 

 

данных

 

 

 

ание

idOwner

 

idВладельца

 

 

INT

 

Обязательно

 

Первичн

 

 

 

 

 

 

 

 

 

 

 

ый ключ

Full name

 

ФИО

 

 

/

 

VARCHAR(

 

Обязательно

 

 

 

 

название

 

 

 

 

100)

 

 

 

 

 

 

организации

 

 

 

 

 

 

Owner type

 

Тип владельца

 

VARCHAR(

 

Обязательно

 

 

 

 

 

 

 

 

 

50)

 

 

 

 

Registration

 

Адрес

 

 

 

 

VARCHAR(

 

Необязательно

 

 

address

 

регистрации

 

 

150)

 

 

 

 

Phone

 

Контактный

 

 

VARCHAR(

 

Обязательно

 

 

 

 

телефон

 

 

 

 

20)

 

 

 

 

Email

 

Электронная

 

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

Email

 

Электронная

 

VARCHAR(100)

Необязательно

 

 

 

почта

 

 

 

 

 

 

 

 

 

 

 

Филиалы агентства (Agency branches)

Таблица 7

 

 

 

 

Обозначен

Название

Тип данных

 

Обязательно

Примечан

ие поля

поля

 

 

 

 

 

сть

ие

idBranch

idФилиала

INT

 

 

Обязательно

Первичный

 

 

 

 

 

 

 

 

 

 

ключ

Agency

Название

VARCHAR(100)

 

Обязательно

 

 

name

агентства

 

 

 

 

 

 

 

 

 

Registration

Адрес

VARCHAR(150)

 

Обязательно

 

 

address

регистрации

 

 

 

 

 

 

 

 

 

Phone

Контактный

VARCHAR(20)

 

Обязательно

 

 

 

телефон

 

 

 

 

 

 

 

 

 

Email

Электронная

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