1. Реляционная модель данных
Вид материала | Документы |
Содержание1.2.Операции над отношениями. Реляционная алгебра 1.3.Реляционное исчисление |
- Реляционная модель данных в системах управления базами данных, 200.05kb.
- Возможности реляционной модели данных по отображению сложных структур данных, 155.27kb.
- Учебное пособие Допущено Министерством образования Российской Федерации в качестве, 2582.59kb.
- Разработка реляционной структуры данных, 255.43kb.
- Лекция на тему «Что такое база данных. Реляционная база данных ms access», 67.11kb.
- Правила Джексона для перехода от модели Чена к реляционной модели. Реляционная модель, 367.29kb.
- Курс лекций "Базы данных и субд" Ульянов В. С. Лекция. Манипулирование реляционными, 276.31kb.
- Вестник Брянского государственного технического университета. 2011. №4(32), 125.71kb.
- Лекция 5 Методы построения математических моделей асу, 53.76kb.
- Задача глобальной идентификации данных в системе, 33.01kb.
1.Реляционная модель данных
1.1.Определение реляционной модели
В реляционной модели данные представлены в виде набора отношений (relation). Отношение r = {(d1,...,dn), d1 D1,...,dn Dn} есть множество кортежей (d1,...,dn) , значения которых принадлежат доменам D1,...,Dn . Таким образом, отношение есть подмножество декартова произведения доменов
r D1 ... Dn .
Число n называют степенью отношения. Количество кортежей в отношении r называют мощностью отношения r.
При описании доступа к БД используют понятие таблицы (аналог отношения), состоящей из строк - записей (аналог кортежа) одного типа. Колонки таблицы делят запись на поля (компоненты набора). Для указания поля используют уникальные в рамках одной таблицы имена полей. Термин «поле» используется в разных смыслах. Во первых, тип определяет множество возможных значений соответствующей компоненты записи, аналогичным понятием в теории реляционных баз данных является домен. Во-вторых, «поле» используется в программах для описания доступа к соответствующей компоненте записи, аналогичным понятием в теории реляционных баз данных является атрибут. Атрибут Ai - это функция, вычисляющая значение i-ой компоненты кортежа отношения r. Множеством значений атрибута Ai является домен Di. В алгоритмических языках атрибут обозначается чаще именем и реже номером атрибута в кортеже.
Схемой r( R ) отношения r называют набор атрибутов R = {A1,...,An}. Реляционная модель данных или схема БД - это множество схем отношений и атрибутов, дополненная различными ограничениями и правилами (бизнес - правилами).
Введем обозначения
- t[Ai] - значение атрибута Ai в кортеже t r отношения r;
- t[X] = (t[A], t[B], ... ) - X - значение кортежа t, на множестве атрибутов X = {A, B, ...} ;
Важное значение в теории реляционных БД имеет ключ, позволяющий выделять ровно один кортеж из отношения. Ключом K отношения r(R ) называют множество атрибутов K={B1,...,Bm} R такое, что в отношении r не существует двух кортежей с одинаковым K - значением ключа и ни одно собственное подмножество ключа K не обладает этим свойством.
1.2.Операции над отношениями. Реляционная алгебра
Над отношениями с одинаковыми схемами можно выполнять теоретико-множественные операции
1. Объединение
r s = { t : (tr) (ts)}.
2. Пересечение
r s = { t : (tr) (ts)}.
3. Разность
r \ s = { t : (tr) (ts)}.
Для определения операции дополнения необходимо дополнительно определить универсальное множество. Один из вариантов - использовать для этого декартово произведение всех доменов.
- Дополнение
r = { t : (tD1D2...Dn) (tr)} = D1D2...Dn\r.
За исключение тривиальных случаев мощность дополнения выражается огромным числом и выполнение этой операции невозможно. Для уменьшения количества получаемых кортежей вводят другую операцию.
5. Активное дополнение. Вместо декартова произведения доменов в этой операции используют декартово произведение множеств используемых значений Di = {t[Ai]: tr}.
Кроме перечисленных вводят специфические операции для манипулирования отношениями.
- Выбор
(r) = { t : ( t ) }
- Проекция
X ( r ) = r [X] вычеркиваются столбцы и повторяющиеся строки
- Естественное соединение
q ( R S ) = r ( R ) s ( S )
= { t : ( tr r : ( ts s: ( tr = t [R] ) ( ts = t [S] )
r
A | B |
a1 | b1 |
a1 | b2 |
a2 | b3 |
a3 | b4 |
s
A | C |
a1 | c1 |
a1 | c2 |
a3 | c3 |
a3 | c4 |
q
A | B | C |
a1 | b1 | c1 |
a1 | b2 | c1 |
a1 | b1 | c2 |
a1 | b2 | c2 |
a3 | b4 | c2 |
a3 | b4 | c3 |
Отношение q ( R S) разложимо без потерь на отношения r ( R ) и s ( S ) если
q = R ( q ) S ( q )
9. - соединение Пусть R S=
q ( R S ) = r ( R ) AB s ( S ) , AR, BS
= { t : ( tr r : ( ts s: ( tr = t [R] )
( ts = t [S] ) ( tr [R] ts[S] )))
Реляционная алгебра - множество операций над отношениями, результатом которых является отношение.
Полная система операций - множество операций над отношениями с помощью которых можно получить любое отношение, получаемое в реляционной алгебре. Пример полной системы: оператор выбора с одним сравнением, соединение, проекция, разность, переименования.
1.3.Реляционное исчисление
Реляционное исчисление есть множество формул вида
{ t ( R ) : (t) },
где t - переменная-кортеж со схемой R, (t) формула над атрибутами и кортежами отношений и константами, построенная при помощи скобок, операций сравнения, логических операций, кванторов общности и существования.
Для того, чтобы алгоритм вычисления отношения по формуле был конечным, множество формул ограничивают безопасными выражениями.
Например, формула { t : t r } является опасной.
Для ссылки на сущности или связи используются так называемые ключи. Ключ - это набор полей, однозначно выделяющий сущность или связь в классе. Для поставщиков таким ключом может быть наименование, адрес, пара: банк, расчетный счет. (Приведите пример ключа для поставки.) По соображениям экономии для указания сущности или связи выделяют наиболее короткий из ключей. Ключ, выделенный для указания сущности или связи называется первичным ключом. Если нет подходящего кандидата на первичный ключ (как в случае с поставщиками - все ключи очень длинные), то вводят некоторое поле, которое называют кодом. В самом простом случае кодом может быть просто порядковый номер, присваиваемый сущности в базе данных.
Для реляционных БД разработаны специальные языки запросов. Среди них наиболее распространенными являются: Query By Example (QBE) - запросы по образцу, Structured Query Language (SQL) - структурированный язык запросов. Большинство современных СУБД являются реляционными. Недостатком реляционных БД можно считать дублирование ключевых значений, когда они используются для ссылок. При неправильном выборе ключей это приводит к неоправданно большим затратам памяти. Однако, применяя в качестве ссылок коды, всегда можно свести эти затраты к минимуму.