Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТЭИС пособие конспект лекций.doc
Скачиваний:
8
Добавлен:
10.11.2019
Размер:
1.05 Mб
Скачать

Глава 2. Модели данных

2.1. Модели данных. Реляционная модель данных

Модели данных предусматривают указание множества допустимых информационных конструкций, мно­жества допустимых операций над данными и множества огра­ничений для хранимых значений данных.

Количество существенно различных моделей данных оп­ределяется наличием различных множеств информационных конструкций. Принципиальными разли­чиями обладают три модели данных - реляционная, сетевая и иерархическая.

Реляционная модель данных характеризуется следующими компонентами:

- информационной конструкцией - отношением с двух­уровневой структурой,

- допустимыми операциями - проекцией, выборкой, соеди­нением и некоторыми другими( пересечение, вычитание, объединение, деление),

- ограничениями - функциональными зависимостями меж­ду атрибутами отношения.

Каждому классу объектов Р материального мира ставится в соответствие некоторое множество атрибутов, например А1, А2,...,Аn. Отдельный объект класса Р описывается строкой величин (а1, а2,.... an), где ai - значение атрибута Ai.

Строка (а1, а2,..., an) называется кортежем. Всему классу объектов соответствует множество кортежей, называемое от­ношением.

Выражение Р(А1, А2,...,Ап) называется схемой отношения Р.

Каждое отношение представляет состояние класса объек­тов в некоторый момент времени.

Множество значений отношения можно представить в виде таблицы, в которой соблюдаются следующие соответствия:

- название таблицы и перечень названий граф соответст­вуют схеме отношения,

- строке таблицы соответствует кортеж отношения,

- все строки таблицы (и соответственно все кортежи) раз­личны,

- порядок строк и столбцов произвольный.

Отношение реляционной БД может быть описано в терми­нах теории множеств. Рассмотрим множество доменов

D= {Dl,D2,D3,...,Dk} и создадим декартово произведение доменов

U=Dl*D2*D3*.....*Dk.

Каждый элемент U имеет вид (dl, d2, d3,...,dk), где dl - эле­мент домена Dl, d2 - элемент D2 и т.д. В множестве U пред­ставлены всевозможные сочетания доменов(домен- множество значений атрибутов). В реальной БД обычно имеются ограничения и реальное отношение R, включающее истинные сообщения, является подмножеством U. Атрибуты отношения R используют домены из D в каче­стве своих областей определения.

Описание процессов обработки отношений может быть выполнено двумя способами:

- указанием перечня операций, выполнение которых при­водит к требуемому результату (процедурный подход),

- описанием свойств, которым должно удовлетворять ре­зультирующее отношение (декларативный подход).

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

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

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

Операции объединения, пересечения и вычитания произво­дятся над двумя исходными отношениями с одинаковой струк­турой.

Обозначим исходные отношения через R1 и R2, а резуль­тирующее - Т.

Объединение Т = U(R1, R2) содержит строки, присутству­ющие либо в отношении R1, либо в R2.

Пересечение Т = I(R1, R2) содержит строки, присутствую­щие в отношениях R1 и R2 одновременно.

Вычитание Т = M(R 1, R2) содержит те строки из R 1, кото­рые отсутствуют в R2.

Операция соединения отношений выполняется над двумя исходными отношениями и создает одно результирующее. Каждая строка первого исходного отношения сопоставляется по очереди со всеми строками второго отношения. Если для этой пары строк соблюдается условие соединения, то они сцеп­ляются и образуют очередную строку в результирующем от­ношении.

Описание операции деления отношений начнем с примера. Пусть существует отношение У(ФИО, ЯП), где для каждого программиста с фамилией ФИО указываются языки программи­рования ЯП, которые он знает.

Y

ФИО

ЯП

Иванов

Си

Иванов

Фортран

Иванов

Паскаль

Петров

Си

Петров

Паскаль

Семин

Си

Семин

Фортран

Яшин

Фортран

Яшин

Паскаль

Рисунок 2.1Отношение У(ФИО, ЯП)

Необходимо выделить фамилии программистов, знающих язы­ки Си и Фортран одновременно. Стоящая перед нами задача решается путем вычисления обра­зов значений "Си" и "Фортран" и последующего пересечения най­денных образов.

im ФИО("Си") = {"Иванов","Петров","Семин"}

im ФИО("Фортран") = {"Иванов","Семин","Яшин"}

im ФИО("Си")∩ imФИО("Фортран")= {"Иванов","Семин"}

Такая связка операций взятия образа и пересечения получен­ных множеств требуется достаточно часто, поэтому вводится специальная опе­рация - деление.

Для необходимого нам запроса отношение-делитель имеет вид:

Рисунок 2.2 Отношение-делитель

Результат деления XI 2 = D (Y,Z) содержит следующие значе­ния:

Рисунок 2.3 Результат операции деления

Результатом операции деления является отношение, содержащее пересечение образов всех строк отношения-дели­теля, вычисленных на основе отношения-делимого.

Декларативный подход к обработке реляционных баз дан­ных основан на интерпретации понятий и методов математи­ческой логики. Реляционное исчисление базиру­ется на исчислении предикатов (простейших формул). Перечислим понятия математической логики.

1) Символы переменных и констант. В языковых конст­рукциях реляционного исчисления им соответствуют имена атрибутов и переменных, а также константы.

2) Логические связки "и", "или", "не" и знаки сравнения =, # (не равно), >, <, >=, <=.

3) Термы, т. е. любые константы и переменные, а также функции, аргументами которых служат термы.

4) Элементарные формулы - предикаты, аргументами ко­торых являются термы. Предикаты, связанные операциями "и", "или", "не", также являются элементарными формулами.

5) Формулы, т. е. результат применения кванторов общно­сти (например, все) или существования (например, некоторые) к элементарным формулам. Формула соответствует запросу к реляционной базе данных, выражен­ному средствами реляционного исчисления.