
- •Т.Е.Ильиных л.И.Шустова проектирование реляционных баз данных в нотациях idef1x
- •Содержание
- •Этапы проектирования базы данных
- •Инфологическое проектирование базы данных
- •Общие сведения
- •Описание бизнес компонентов и бизнес процессов
- •Сущность
- •Атрибут
- •Другие компоненты инфологической модели
- •Уровни представления данных
- •Этапы инфологического проектирования Инициирование проекта (фаза 0)
- •Определение сущностей (фаза 1)
- •Построение модели уровня сущностей (фаза 2)
- •Построение модели уровня ключей (фаза 3)
- •Построение полноатрибутной модели (фаза 4)
- •Нормализация данных
- •Даталогическое проектирование базы данных
- •Создание даталогической модели Общие сведения
- •Получение спецификаций внутренней схемы базы данных
- •Ограничения целостности
- •Результаты этапа даталогического проектирования
- •Имя таблицы
- •Основы нормализации отношений Общие сведения
- •Первая нормальная форма
- •Вторая нормальная форма
- •Третья нормальная форма
- •Нормальная форма Бойса – Кодда
- •Четвертая нормальная форма
- •Пятая нормальная форма
- •Денормализация
- •Примеры проектирования баз данных различных бизнес приложений
- •Общие замечания
- •Проектирование базы данных "Школа" Постановка задачи
- •Инициирование проекта (фаза 0)
- •Определение множеств сущностей (фаза 1) Выделение множеств сущностей
- •Описание множеств сущностей
- •Пул сущностей
- •Построение модели уровня сущностей (фаза 2)
- •Концептуальная схема уровня сущностей
- •Построение модели уровня ключей (фаза 3) Разрешение неопределенных связей
- •Пул сущностей
- •Определение связей
- •Определение ключевых атрибутов и доменов
- •Изучаемый предмет/e5
- •Описание доменов
- •Описание атрибутов
- •Концептуальная схема
- •Построение полноатрибутной модели (фаза 4)
- •Описание доменов
- •Описание атрибутов
- •Явные ограничения целостности
- •Даталогическая модель
- •Проектирование базы данных "Обмен валюты" Постановка задачи
- •Инициирование проекта (фаза 0)
- •Определение множеств сущностей (фаза 1) Выделение множеств сущностей
- •Описание множеств сущностей
- •Пул сущностей
- •Фаза 2. Построение модели уровня сущностей Матрица связей
- •Матрица связей
- •Описание связей
- •Описание связей
- •Концептуальная схема уровня сущностей
- •Построение модели уровня ключей (фаза 3) Разрешение неопределенных связей
- •Пул сущностей
- •Определение связей
- •Определение ключевых атрибутов и доменов
- •Описание доменов
- •Описание атрибутов
- •Концептуальная схема
- •Построение полноатрибутной модели (фаза 4)
- •Описание доменов
- •Описание атрибутов
- •Явные ограничения целостности
- •Даталогическая модель
- •Проектирование базы данных "Торговля" Постановка задачи
- •Инициирование проекта (фаза 0)
- •Определение множеств сущностей (фаза 1) Выделение множеств сущностей
- •Описание множеств сущностей
- •Пул сущностей
- •Построение модели уровня сущностей (фаза 2)
- •Концептуальная схема уровня сущностей
- •Построение модели уровня ключей (фаза 3) Разрешение неопределенных связей
- •Пул сущностей
- •Описание связей
- •Определение ключевых атрибутов и доменов
- •Товар в списке цен/e5
- •Описание доменов
- •Описание атрибутов
- •Концептуальная схема
- •Построение полноатрибутной модели (фаза 4)
- •Описание доменов
- •Описание атрибутов
- •Явные ограничения целостности
- •Даталогическая модель
- •Список литературы
- •115409, Москва, Каширское ш., 31
Даталогическая модель
Для данного примера целесообразно сначала рассмотреть схему базы данных:
Клиент (Личный номер клиента, Паспорт (AK), Фамилия, Имя, Отчество)
Валюта (Код валюты, Название, Страна, Описание)
Курс валюты (Код валюты (FK), Дата, Курс покупки, Курс продажи)
Операция (Номер операции, Код валюты (FK1), Личный номер клиента (FK2), Тип операции, Сумма)
Покупка (Номер операции(FK))
Продажа (Номер операции(FK))
В соответствии с этой схемой определяется внутренняя схема базы данных, в которой каждое приведенное отношение представляется отдельной таблицей. Однако, на данном этапе преобразования возможна некоторая модификация схемы, позволяющая минимизировать структуры хранения.
Поскольку отношения ПОКУПКА и ПРОДАЖА содержат только один атрибут – внешний ключ, мигрировавший из родового отношения ОПЕРАЦИЯ, нет необходимости создавать явно данные отношения. Достаточно в родовом отношении ОПЕРАЦИЯ ввести дополнительный атрибут ТИП ОПЕРАЦИИ.
В соответствии с этим схема базы данных будет иметь следующий вид:
Клиент (Личный номер клиента, Паспорт (AK), Фамилия, Имя, Отчество)
Валюта (Код валюты, Название, Страна, Описание)
Курс валюты (Код валюты (FK), Дата, Курс покупки, Курс продажи)
Операция (Номер операции, Код валюты (FK1), Личный номер клиента (FK2), Тип операции, Сумма)
В соответствии с приведенной структурой, внутренняя схема разрабатываемой базы данных представлена в табл. 4.25 – 4.28.
Таблица 4.25
Клиент/E1
Client
Имя атрибута |
Имя колонки |
Имя домена |
Тип данных |
Признак обязательности |
Ключи |
Правило удаления |
Личный номер клиента |
IdClient |
Номер |
Integer |
Not null |
PK |
|
Паспорт |
Passport |
Символьный номер |
Varchar (40) |
Not null |
AK |
|
Фамилия |
LastName |
Имя |
Varchar (50) |
Not null |
|
|
Имя |
FirstName |
Имя |
Varchar (50) |
Not null |
|
|
Отчество |
SecondName |
Имя |
Varchar (50) |
Not null |
|
|
Описание таблицы на SQL:
Create table Client (
IdClient integer not null,
Passport varchar (40),
LastName varchar (50),
FirstName varchar (50),
SecondName varchar (50).
Primary key (IdClient)
);
Commit;
Таблица 4.26
Валюта/E2
Currency
Имя атрибута |
Имя колонки |
Имя домена |
Тип данных |
Признак обязательности |
Ключи |
Правило удаления |
Код валюты |
IdCurrency |
Номер |
Integer |
Not null |
PK |
|
Название |
Name |
Имя |
Varchar (50) |
Not null |
|
|
Страна |
Country |
Имя |
Varchar (50) |
Not null |
|
|
Описание |
Description |
Описание |
Varchar (256) |
Null |
|
|
Описание таблицы на SQL:
Create table Currency (
IdCurrency integer not null,
Name varchar (50) not null,
Country varchar (50) not null,
Description varchar (256),
Primary key (IdCurrency),
);
Commit;
Таблица 4.27
Курс валюты/E3
RateOfExchange
Имя атрибута |
Имя колонки |
Имя домена |
Тип данных |
Признак обязательности |
Ключи |
Правило удаления |
Код валюты |
IdCurrency |
Номер |
Integer |
Not null |
PK.1; FK |
Currency; restrict |
Дата |
ExchDate |
Дата |
Date |
Not null |
PK.2 |
|
Курс покупки |
BuyRate |
Денежная сумма |
Decimal (5,2) |
Not null |
|
|
Курс продажи |
SaleRate |
Денежная сумма |
Decimal (5,2) |
Not null |
|
|
Описание таблицы на SQL:
Create table RateOfExchange (
IdCurrency integer not null,
ExchDate date not null,
BuyRate decimal (5,2) not null,
SaleRate decimal (5,2) not null,
Primary key (IdCurrency, ExchDate),
Foreign key (IdCurrency) references Currency on delete restrict
);
Commit;
Таблица 4.28
Операция/E4
Operation
Имя атрибута |
Имя колонки |
Имя домена |
Тип данных |
Признак обязательности |
Ключи |
Правило удаления |
Номер операции |
IdOperation |
Номер |
Integer |
Not null |
PK |
|
Код валюты |
IdCurrency |
Номер |
Integer |
Not null |
FK1 |
Currency; restrict |
Продолжение табл. 4.28
Имя атрибута |
Имя колонки |
Имя домена |
Тип данных |
Признак обязательности |
Ключи |
Правило удаления |
Личный номер клиента |
IdClient |
Номер |
Integer |
Not null |
FK2 |
Client; restrict |
Тип операции |
TypeOp |
Категория |
Varchar (8) |
Not null |
|
|
Сумма |
Sum |
Денежная сумма |
Decimal (5,2) |
Not null |
|
|
Описание таблицы на SQL:
Create table Operation (
IdOperation integer not null,
IdCurrency integer not null,
IdClient integer not null,
TypeOp varchar (8) not null,
Sum decimal (5,2) not null,
Primary key (IdOperation),
Foreign key (IdCurrency) references Currency on delete restrict,
Foreign key (IdClient) references Client on delete restrict
);
Commit;