Явные ограничения целостности. Дополнительные ограничения целостности, выделенные из анализа поставленной задачи

Дополнительные ограничения целостности, выделенные из анализа поставленной задачи:

· курс валюты должен быть больше 0;

· сумма, указанная в операции, должна быть больше 0 и меньше 1000;

· тип операции должен иметь одно из двух значений: продажа или покупка.

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

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

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: