Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
399
Добавлен:
10.05.2014
Размер:
3.08 Mб
Скачать

Даталогическая модель

Для данного примера целесообразно сначала рассмотреть схему базы данных:

Клиент (Личный номер клиента, Паспорт (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;

Соседние файлы в папке docs