Автор работы: Пользователь скрыл имя, 29 Октября 2012 в 14:23, лабораторная работа
Цель работы: познакомить с понятием "концептуальная модель"; научиться правильно использовать принципы нормализации при проектиировании базы данных.
Постановка задачи
Пусть некоторая риелтерская контора "Аренда Minus" специализируется на заключении договоров аренды жилых помещений. Круг клиентов-арендаторов "Аренда Minus" не стабилен. Необходимо автоматизировать процесс регистрации и хранения договоров аренды.
Цель работы: познакомить с понятием "концептуальная модель"; научиться правильно использовать принципы нормализации при проектиировании базы данных.
Постановка задачи
Пусть некоторая риелтерская контора "Аренда Minus" специализируется на заключении договоров аренды жилых помещений. Круг клиентов-арендаторов "Аренда Minus" не стабилен. Необходимо автоматизировать процесс регистрации и хранения договоров аренды.
Проектирование базы данных и процессов предметной области
Концептуальная модель аренды объектов недвижимости
В соответствии с концептуальной моделью заключения договора аренды определим атрибуты отношений:
Отношение |
Атрибут |
Описание |
Владелец |
№Вл |
Порядковый номер владельца |
Вл |
Владелец недвижимости | |
АдрВл |
Адрес места жительства владельца | |
Договор |
№Дог |
Порядковый номер договора |
Ар |
Арендатор недвижимости | |
АдрАр |
Адрес места жительства арендатора | |
№Вл |
Порядковый номер владельца | |
АдрНд |
Местоположение недвижимости | |
Дата |
Дата заключения договора | |
Недвижимость |
АдрНд |
Местоположение недвижимости |
Тип |
Тип недвижимости | |
Пл |
Ежемесячная арендная плата |
Для данных отношений
имеют место следующие
Отношение |
Таблица |
Атрибут |
Поле |
Владелец |
Owner |
№Вл |
Non |
Вл |
Ow | ||
АдрВл |
AdO | ||
Договор |
Lease |
№Дог |
NLease |
Ар |
Tn | ||
АдрАр |
AdT | ||
АдрНд |
AdR | ||
Дата |
LDate | ||
Недвижимость |
Realty |
Тип |
Typ |
Плата |
Rent |
Пл |
Rn |
Рис. 2. Схема базы данных "Аренда Minus"
Цель работы: познакомить с принципами и различными способами создания и изменения серверной части базы данных; приобрести навыки работы с утилитами сервера InterBase.
Серверная база данных — это "набор" объектов (данные, триггеры, домены и т. д.), которые хранят в файле. Этот "пустой" файл будем интерпретировать как "контейнер" базы данных.
Создадим базу данных EXMPL.gdb формата InterBase
Выбор сервера в окне IBConsole
Примечание
Под администратором баз данных понимают любого пользователя, который регистрируется под именем SYSDBA с паролем masterkey при условии, что этот пароль никто из них менять не будет.
Как только база данных будет создана, IBConsole добавит псевдоним к дереву "сервер/базы данных.
Совет
Если вам необходимо удалить базу данных из дерева "сервер/базы данных", то предварительно сделайте ее неактивной (Database/Disconnect), а затем удалите ее командой Database/Unregister. Удаление самой базы производят командой Database/Drop Database.
Процесс создания серверной базы данных на основе настольной называют переносом унаследованных данных. Его производят с помощью утилиты Data Migration Wizard - Datapump. Но сначала следует создать алиас и таблицы настольной базы данных.
Для удаления базы данных предварительно следует ее присоединить. Само удаление реализуют SQL-командой DROP DATABASE. При удалении базы уничтожается все, что с ней связано: таблицы, триггеры и т. д. Таблицу удаляют аналогично: DROP TABLE <имяТаблицы>.
Изменение структуры таблицы после того, как она была создана:
ALTER TABLE <имяТаблицы> <операция> [, < операция > ...]
Например,
ALTER TABLE Owner
ADD Ow VARCHAR(IO) CHARACTER SET WIN1251,
DROP Own,
ADD PRIMARY KEY (NOwn)
Контрольные вопросы
Цель работы: познакомить с принципами разработки и внедрения SQL-сценариев при проектировании структуры базы данных; научиться работе в графическом построителе базы данных
Объекты базы удаленной данных: таблицы, триггеры, домены и т.д. Сначала следует удалить из Exmpl.gdb все таблицы, появившиеся после переноса их из настольной базы.
Определение типов данных таблиц
Назначая типы данных колонкам таблиц, можно использовать "свои" типы — домены.
Типы данных полей таблиц базы данных Exmpl.gdb Описание доменов базы данных
Имя таблицы |
Имя поля |
Тип |
Длина |
Деся- тичная часть |
Имя поля |
Тип |
Длина |
Значение по умолчанию |
Ограничения | |
Owner |
NOn |
SMALLINT |
dnNum |
SMALLINT |
- |
>0 | ||||
Ow |
CHAR |
10 |
dnOwTn |
CHAR |
10 |
нет | ||||
AdO |
CHAR |
20 |
dnAddrs |
CHAR |
20 |
нет | ||||
Lease |
NLease |
SMALLINT |
dnTyp |
CHAR |
20 |
1-к. квартира |
1-к.квартира 2-к. квартира дом | |||
Tn |
SMALLINT |
dnRn |
NUMERIC |
6,2 |
60 |
>0 | ||||
AdT |
CHAR |
20 |
dnDATE |
TIMESTAMP |
- |
<= "TODAY" | ||||
NOn |
SMALLINT |
|||||||||
AdR |
CHAR |
20 |
||||||||
LDate |
DATE |
|
||||||||
Realty |
AdR |
CHAR |
20 |
|||||||
Тур |
CHAR |
20 |
||||||||
Rent |
Тур |
CHAR |
20 |
|||||||
Rn |
NUMERIC |
6 |
2 |
Контрольное задание
Опишите типы полей (data type) InterBase-таблиц, используя ее справочную систему.
Листинг 1, SQL-операторы скрипта domains.sql |
Листинг .2. SQL-операторы скрипта tables.sql |
CREATE DOMAIN dnNum AS SMALLINT CHECK (VALUE > 0) NOT NULL; commit; CREATE DOMAIN dnOwTn AS CHAR(10) NOT NULL; commit; CREATE DOMAIN dnAddrs AS CHAR (20) NOT NULL; commit; CREATE DOMAIN dnTyp AS CHAR(20) DEFAULT ‘1-к. квартира' CHECK (VALUE IN (‘1-к. квартира', 2-к. квартира', 'дом')) NOT NULL; commit; CREATE DOMAIN dnRn AS NUMERIC(6,2) DEFAULT 60 CHECK (VALUE > 0) commit; CREATE DOMAIN dnDATE AS TIMESTAMP CHECK (Value <= "TODAY"); commit; |
CREATE TABLE Owner( NOn dnNum, Ow dnOwTn, AdO dnAddrs, PRIMARY KEY (NOn)) commit; CREATE TABLE Rent( Тур dnTyp, Rn dnRn, PRIMARY KEY (Тур)); commit; CREATE TABLE Realty( AdR dnAddrs, Тур dnTyp, PRIMARY KEY (AdR), FOREIGN KEY (Тур) REFERENCES Rent(Тур)); commit; CREATE TABLE Lease( NLease dnNum, NTn dnNum, NOn dnNum, AdR dnAddrs, Ldate dnDATE, PRIMARY KEY (NLease), FOREIGN KEY (NOn) REFERENCES Owner (NOn), FOREIGN KEY (AdR) REFERENCES Realty(AdR)); commit ; |
Информация о работе Проектирование структуры базы данных. Нормализация таблиц