Смекни!
smekni.com

База данных по учёту видеокассет (стр. 3 из 5)

5) строки и столбцы таблиц могут просматриваться в любом порядке, без учета их содержания и смысла.

Для математического описания реляционной модели нам понадобятся следующие понятия

Атомарные данные – это наименьшие единицы данных неразложимые с точки зрения модели.

Домен – это множество атомарных значений одного и того же типа.

Атрибут – это некоторое подмножество домена, имеющее уникальное имя.

Отношение на доменах D1, D2, ..Dn состоит из заголовка и тела.

R (A1, A2, ..An) ÍD1´D2´D3

Заголовок состоит из такого фиксированного множества атрибутов

А1, A2, ..An , что существует отношение между атрибутами и их доменами.

Тело состоит из меняющихся во времени множества кортежей.

Кортеж состоит из значений каждого атрибута по одному значению на атрибут./6/

Таблица в реляционной теории соответствует отношению.

Строке соответствует кортеж.

Столбцу – атрибут.

Введем понятие ключа отношения.

Пусть А – множество атрибутов отношения

А = {A1, A2,..An} и пусть k – это подмножество А

kÍA

Возможным ключом отношения R является такое подмножество k, которое удовлетворяет следующему условию:

1) в произвольный момент времени никакие два различных картежа не имеют одного и того же значения для k

2) ни один из атрибутов не может быть исключен из k без нарушения первого условия.

2.3 Проектирование реляционной модели

Существует два основных метода проектирования реляционной модели:

1. метод декомпозиции (используется при количестве ключевых атрибутов не более 20);

2. на основе концептуальной модели.

Так как концептуальная модель уже построена, то воспользуемся вторым методом. Для осуществления перехода к реляционной модели необходимо рассмотреть некоторые алгоритмы перехода.

Алгоритмы перехода от концептуальной модели к реляционной

1. Реализация частичной связи для одной сущности (рис.2.1).

Рис 2.1

В этом случае строится два отношения по одному на каждую сущность. Ключ сущности с необязательной связью добавляется в качестве атрибута в отношении для сущности с обязательной связью.

2. Реализация бинарной связи один-ко-многим (рис.2.2)

Рис.2.2

В этом случае строится 2 отношения, при этом ключ односвязной сущности добавляется в отношение для многосвязной сущности.

По описанным выше алгоритмам получаем реляционную модель. В полученной модели есть ряд фиктивных отношений, предназначенных для реализации некоторых связей, организации целостности данных и выполнимости запросов (см.п.1.3).


3. МАТЕМАТИЧЕСКОЕ ОПИСАНИЕ РЕЛЯЦИОННОЙ МОДЕЛИ

3.1 Описание доменов

Математическое описание реляционной модели необходимо для облегчения пользователю задачи написания программ ее реализации на разных языках программирования.

Домен – это множество атомарных значений одного и того же типа.

Введем следующие понятия:

Length(x) – функция, возвращающая значение длины x;

String(x) – функция определения длины строки х;

Dom(x) – домен атрибута х;

По результатам описания сущностей (см.п.1.4) и созданной реляционной модели (см.п.2.3), можно сделать вывод о типичности отношений, что позволяет нам не описывать все отношения, а остановиться на конкретных примерах.

Текстовые атрибуты

К таким атрибутам можно отнести, например, атрибуты "Наименование заказчика" или "Адрес" и подобные им.

Dom (Отношение. Текстовый атрибут) = {x | String(x)}; где x – цепочка следующих друг за другом символов.

{String(x) = true, если Length(x) < С} or {String(x) = false, если Length(x) ³С},

где С-константа.

Её можно взять из таблицы атрибутов (см.табл.1.2). Приведём два примера.


1. Dom (Заказчики. Наименование заказчика) = {x | String(x)};

где x – цепочка следующих друг за другом символов.

{String(x) = true, если Length(x) < 20} or {String(x) = false, если Length(x) ³ 20}

2. Dom (Поставщики. Адрес) = {x | String(x)}; где x – цепочка следующих друг за другом символов.

{String(x) = true, если Length(x) < 20} or {String(x) = false, если Length(x) ³ 20}

Это правило распространяется на все текстовые атрибуты. Отличие заключается в ограничение на длину строки. Конкретную цифру получаем из таблицы атрибутов в столбце "Метод контроля" (см.табл.1.2).

Числовые атрибуты

К этой категории относят атрибуты отношений, например "Код поставщика", "Цена", "Количество" и т.д. Домены числовых атрибутов записываются так:

Dom (Отношение. Числовой атрибут) = {с1..с2}, где с1 и с2 – соответственно начало и конец диапазона.

Например,

Dom (Заказчики. Код заказчика) = {0…10000}.

Диапазон значений {с1..с2} определяется для каждого атрибута описан в таблице атрибутов в столбце "Метод контроля" (см.табл.1.2).

Атрибуты Дата/Время

К этой категории относят атрибуты "Дата накладной", "Дата оформления счета", "Дата договора" и т.д.

Домены атрибутов Дата/Время записываются так:

Dom (Отношение. Атрибут Дата/Время) = {с1..с2},

где с1 и с2 – соответственно начало и конец диапазона.

Приведём примеры с атрибутами "Дата накладной", "Дата оформления счета"

Dom (Накладная. Дата накладной) = {x | 01.01.1996 £x£ 31.12.2025}

Dom (Счет. Дата оформления счета) = {x | 01.01.1996 £x£ 31.12.2025}

Диапазон значений {с1..с2} определяется для каждого атрибута описан в таблице атрибутов в столбце "Метод контроля" (см.табл.1.2).

Денежный атрибут

К этой категории относят атрибуты "Сумма", "Цена за единицу", "НДС".

Домены Денежных атрибутов записываются так:

Dom(Отношение. Денежный атрибут) = {<C}

где С – константа

Приведем примеры с атрибутами "Сумма" и "Цена за единицу"

Dom (Накладная. Сумма) = {<0}

Dom (Договор. Цена за единицу) = {<0}

Значения для каждого атрибута взяты из Таблицы 1.2. столбца "Метод контроля"


3.2 Описание ключей

Первичный ключ уникально определяет отношение. После выбора первичного ключа из набора потенциальных ключей, оставшиеся ключи называются альтернативными.

Пусть даны отношения R1 и R2. Пусть k1, - это первичный ключ отношения R1.

Если в отношении R2 присутствуют атрибуты k1, то для отношения R2, k1 – это внешний ключ

Рассмотрим математическое представление первичных ключей.

Из анализа таблицы сущностей (см.табл.1.1) следует, что ключами сущностей является Код товара, Код заказчика, Код поставщика, Номер договора, Номер накладной, Номер счета. Так как все первичные ключи имеют числовые атрибуты. Следовательно, математическое представление первичных ключей будет однотипным:

("x,yÎ Отношение).[Код(x) = Код(y)]®x = y

("x,yÎ Отношение).[Номер(x) = Номер(y)]®x = y.

Например,

("x,yÎТовар).[Код товара(x) = Код товара(y)]®x = y

("x,yÎНакладная).[Номер накладной(x) = Номер накладной(y)]®x =y

Остальные первичные ключи будут иметь такое же математическое представление.

3.3 Правила целостности

Различают целостность по сущностям и целостность по ссылкам. В целостности по сущностям не разрешается, чтобы какой-либо атрибут, участвующий в первичном ключе базового отношения принимал неопределенные значения./6/

Базовые отношения – это реально существующие модели отношения, которые соответствуют реальному объекту предметной области.

Целостность по ссылкам основана на понятии внешнего ключа.

Пусть даны отношения R1 и R2. Пусть k1, - это первичный ключ отношения R1.

Если в отношении R2 присутствуют атрибуты k1, то для отношения R2, k1 – это внешний ключ. Если базовое отношение R2 содержит внешний ключ k1, то каждое значение k1 в R2 должно быть либо равным какому-либо значению R1, либо полностью неопределенным.

Рассмотрим математическое представление целостности данных.

1. Целостность по сущностям имеет место, так как первичные ключи всех отношений не принимаю и не могут принимать неопределённые значения (см.табл.1.2).

2. Целостность по ссылкам достигнута при разработке реляционной модели (см.п.2.3). В качестве примера рассмотрим математическое представление целостности по ссылкам отношения Накладная (для отношений Договор и Счет аналогично (см.2.3)), отношение Заказчик(для отношения Поставщик аналогично).

Отношение Накладная

Одна и та же Накладная не может быть оформлена в разные даты.

("x,yÎ Накладная).[Дата оформления(x) = Дата оформления(y)]®(Дата оформления(x) ¹ Дата оформления (y))

Одна и та же Накладная не может иметь разные номера.

("x,yÎ Накладная).[Номер накладной(x) = Номер накладной(y)]®(Номер накладной (x) ¹ Номер накладной (y))


Одна и та же Накладная не может иметь разную сумму.

("x,yÎ Накладная).[Сумма накладной(x) = Сумма накладной(y)]®(Сумма накладной (x) ¹Сумма накладной (y))

Отношение Заказчик

Один и тот же Заказчик не может иметь разные наименования.

("x,yÎ Заказчик).[Наименование заказчик(x) = Наименование заказчик (y)]®

( Наименование заказчик (x) ¹ Наименование заказчик (y))

Отношение Счет

Один и тот же Счет не может иметь разные даты:

("x,yÎ Счет).[Дата оформления(x) = Дата оформления(y)]®(Дата оформления(x) ¹ Дата оформления (y))

Один и тот же Счет не может иметь разную сумму.

("x,yÎ Счет).[Сумма(x) = Сумма(y)]®(Сумма(x) ¹ Сумма(y))

Один и тот же Счет не может иметь разные номера.

("x,yÎ Счет).[Номер счета(x) = Номер счета(y)]®(Номер счета (x) ¹ Номер счета (y))


3.4 Описание запросов

Для описания запросов необходимо рассмотреть специальную реляционную операцию реляционной алгебры селекция. Пусть С-любой допустимый оператор сравнения. Дано отношение R (А1, А2, А3, … , Аn). Селекцией отношения R по атрибутам Аj и Аk называется множество всех кортежей t таких, что аjtkt– истина. Вместо аkt может быть константа.