<<
>>

2.1. РЕЛЯЦИОННАЯ МОДЕЛЬ ДАННЫХ

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

Модель данных, с одной стороны, представляет собой фор­мальный аппарат для описания информационных потребнос­тей пользователей, а с другой - большинство СУБД ориенти­руются на конкретную модель данных, и, таким образом, если информационные потребности удается точно выразить сред­ствами одной из моделей данных, то соответствующая СУБД позволяет относительно быстро создать работоспособный фрагмент ЭИС.

Информационные конструкции, операции и ограничения моделей данных выбираются из достаточно небольшого мно­жества вариантов, характеризующего “крупные” информаци­онные объекты и операции. В частности, не допускается рас­смотрение отдельных символов данных, операций сложения атрибутов, ограничения на соответствие типов данных и т. п., что характерно для языков программирования.

Классификация информационных конструкций (информа­ционных объектов) тесно связана с областью их использова­ния в ЭИС.

1. Объекты для технологии баз данных - отношения и ве­ерные отношения.

2. Объекты для технологии искусственного интеллекта - предикаты, фреймы и семантические сети.

3. Объекты для технологии мультимедиа - тексты, графи­ческие изображения, фонограммы и видеофрагменты.

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

Довольно-таки часто все названные объекты встраивают­ся в структуру отношений, которые можно считать простей­шими универсальными объектами.

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

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

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

• допустимыми операциями - проекцией, выборкой, соеди­нением и некоторыми другими,

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

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

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

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

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

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

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

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

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

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

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

Отношение реляционной БД может быть описано в терми­нах теории множеств. Рассмотрим множество доменов Э= {01,02, 03, ...,Ок} и создадим декартово произведение доменов и = 01-02 03 •...•Ок.

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

и. Атрибуты отношения Я используют домены из О в каче­стве своих областей определения.

Реляционная база данных представляет собой множество отношений.

Схема реляционной БД содержит следующие компоненты S(rel) = ,

где А - множество имен атрибутов,

R - множество имен отношений,

Dom - вхождение атрибутов в домены,

Rel - вхождение атрибутов в отношения,

V(s) - множество ограничений (в том числе функциональных зависи­мостей).

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

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

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

Приводимые далее операции над отношениями ориентиро­ваны на процедурное описание процессов обработки данных.

Множество отношений и операций над ними образует ре­ляционную алгебру.

При рассмотрении операций над отношениями будет ис­пользоваться как алгебраическая форма записи операций, так и запись на языке реляционных СУБД семейства dBASE (для определенности - dBASE 3). Далее будут рассмотрены анало­гичные конструкции языка SQL.

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

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

T = R[X],

где R - исходное отношение, '

Т - результирующее отношение,

X - список атрибутов в структуре отношения Т (условие проекции).

Пример

Рассмотрим два отношения: W1, содержащее сведения о про­даже продукции в 1998 г., и W2, в котором указаны цены на про­дукцию и комплектующие изделия для соответствующих видов продукции.

W1
Магазин Продукция План Факт
Динамо Эдв-12 120 140
Динамо ЗВИ 200 200
АТЭ Эдв-12 80 170
АТЭ Эдв-30 150 100

W2
Продукция Цена Компл
Эдв-12

Эдв-12

Эдв-30

Эдв-30

ЗВИ

40

40

20

20

120

Вк-15

Р-20

Вк-15

Р-20

Р-20

Если требуется отношение XI, содержащее сведения только о фактическом выпуске продукции, то оно получается в результате выполнения проекции

XI = \У1 [Магазин, Продукция, Факт] и имеет вид:

Х1
Магазин Продукция Факт
Динамо Эдв-12 140
Динамо ЗВИ 200
АТЭ Эдв-12 170
АТЭ Эдв-30 100

Столбцы результирующего отношения могут указываться в любом порядке:

Х2 = W1 [Продукция, Магазин, Факт].

В СУБД DBASE проекция реализуется двумя командами и этот же пример выглядит как

use W1 && открыть отношение W1

copy to XI field Магазин, Продукция, Факт && проекция Знак && означает комментарий.

Следующий пример проекции - это получение справочника ХЗ цен на продукцию: use W2

copy to ХЗ field Продукция, Цена Значения отношения ХЗ показаны ниже:

ХЗ
Продукция Цена
Эдв-12 40
Эдв-12 40
Эдв-30 20
Эдв-30 20
ЗВИ 120

Значительным неудобством в ХЗ является наличие одинако­вых строк. В реляционной алгебре требуется, чтобы результат про­екции не содержал одинаковых строк, однако практически такие СУБД, как ёВАБЕ, не обеспечивают этого. Правильным результа­том проекции Х4 = \У2[Продукция, Цена] является отношение

Х4
Продукция Цена
Эдв-12

Эдв-30

ЗВИ

40

20

120

Отношение с заданной структурой зачастую можно полу­чить из различных исходных отношений БД. В этом случае, естественно, не гарантируются одинаковые результаты.

Пусть нам необходим список отделов учреждения. В базе данных имеются отношения Служащий (Фамилия, Отдел,...) и Технолог (Фамилия,Отдел,...). Проекция Служащий[Отдел] формирует полный список отделов, а Технолог[Отдел] может содержать меньше значений, если в некоторых отделах не ра­ботают технологи.

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

Условие вы­борки проверяется в каждой строке отношения по отдельности и не может охватывать информацию из нескольких строк. Су­ществуют две простейшие разновидности условия выборки:

1. Условие вида Имя_атрибута Значе­ние, где допускаются знаки сравнения =, #, >, =>, с, 100.

2. Условие вида Имя_атрибута_1 Имя_ _атрибута_2. Например, Факт > План.

Имена атрибутов должны содержаться в структуре исход­ного отношения. Алгебраическая запись выборки имеет вид

Т = Щр],

где й - исходное отношение;

Т - результирующее отношение; р - условие выборки.

В качестве примера получим значения

Х5 = УМ[Продукция = “Эдв-12”]

Х5
Магазин Продукция План Факт
Динамо Эдв-12 120 140
АТЭ Эдв-12 80 170

В СУБД ёВАБЕ выборка реализуется командой сору с опцией Гог, например, иве АУ1

сору Ю Х6 Гог Факт -> План

bgcolor=white>80
Х6
Магазин Продукция План Фаі?г
Динамо Эдв-12 120 140
Динамо ЗВИ 200 200
АТЭ Эдв-12 170

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

Операции объединения, пересечения и вычитания произво­дятся над двумя исходными отношениями с одинаковой струк­турой. Точных аналогов этих операций в бВАБЕ нет.

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

Объединение Т = ЩШ, Я2) содержит строки, присутству­ющие либо в отношении Ш, либо в Я2.

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

Вычитание Т = М(Я 1, Я2) содержит те строки из Ш, кото­рые отсутствуют в Я2.

Если справочник цен на продукцию Х4 необходимо допол­нить новыми сведениями из отношения W3, то надо выпол­нить объединение

Х7
Продукция Цена
Эдв-12

Эдв-30

ЭВИ

Эдв-42

Тэн-10

40

20

120

40

15

W3
Продукция Цена
Эдв-42

Тэн-10

40

15

В dBASE предусмотрена операция добавления append, ко­торая для нашего примера реализуется командами useX4

append from W3,

что приводит к добавлению в отношение Х4 всех строк из от­ношения W3. Отличия добавления от объединения - создание

Х7 = и (Х4, W3).

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

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

Имя_атрибута_1 Имя_атрибута_2,

где Имя_атрибута_1 находится в одном исходном отноше­нии, а Имя_атрибута_2 - в другом. Будем использовать следу­ющее обозначение операции соединения:

Т = Я1[р]Я2,

где Л1 и Л2 - исходные отношения,

Т - результирующее отношение, р - условие соединения.

Практически наиболее важный частный случай соедине­ния называется натуральным соединением и имеет следующие особенности:

• знаком сравнения в условии соединения является “=”,

• Имя_атрибута_1 и Имя_атрибута_2 должны совпадать, а точнее, содержать пересечение списков атрибутов ис­ходных отношений,

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

Обозначение натурального соединения не содержит усло­вия соединения и имеет вид Т = Ю * 112.

Если требуется сведения о продаже продукции из отношения №1 дополнить данными о ценах на продукцию из отношения Х7, то задача решается с помощью соединения

Х8
Магазин Продукция План Факт Продукция Цена
Динамо Эдв-12 120 140 Эдв-12 40
Динамо ЗВИ 200 200 ЗВИ 120
АТЭ Эдв-12 80 170 Эдв-12 40
АТЭ Эдв-30 150 100 Эдв-30 20

Первая строка из W1 и первая строка из Х7 удовлетворяют ус­ловию Продукция = Продукция, поэтому сцепляются. Остальные строки из Х7 не будут сцепляться с первой строкой из W1 (условие не соблюдается). Вторая строка из W1 при сравнении со всеми стро­ками из Х7 сцепится только с третьей строкой и т. д. Если приме­нять операцию натурального соединения, то в отношении Х8 бу­дет отсутствовать второй столбец с именем Продукция.

В СУБД DBASE для проведения соединения необходимо ис­пользовать две области для исходных отношений:

SELECT 1

USE W1 && открытие отношения W1

SELECT 2

USE Х7 && открытие отношения Х7 .

SELECT 1 1

JOIN WITH Х7 ТО Х9 FOR Продукция=Х7->Продукция FIELDS Магазин, Продукция, Х7->Цена, План, Факт

Опция with называет второе исходное отношение, опция for со­держит условие соединения, опция fields перечисляет имена атри­бутов результирующего отношения. В приведенном примере вы­полнено натуральное соединение и передвинут столбец Цена.

В ряде случаев соединение дает некорректные результаты, например:

Х10 = Wl * W2

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

хю
Магазин Продукция План Факт Цена Компл
Динамо Эдв-12 120 140 40 Вк-15
Динамо Эдв-12 120 140 40 Р-20
Динамо ЗВИ 200 200 120 Р-20
АТЭ Эдв-12 80 170 40 Вк-15
АТЭ Эдв-12 80 170 40 Р-20
АТЭ Эдв-30 150 100 20 Вк-15
АТЭ Эдв-30 150 100 20 Р-20

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

Натуральное соединение определено и в тех случаях, ког­да соединяемые отношения совпадают по структуре или не содержат общих атрибутов. Если структура отношений Л и Б одинакова, то Л * Б выполняет фактически пересечение 1(Л,Б).

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

Операция натурального соединения имеет ряд свойств, например коммутативность и ассоциативность.

Свойство коммутативности означает, что операции Х1=Л * Б и Х2=Б * Я порождают, в сущности, одно и то же отношение.

Свойство ассоциативности-означаег, что операция У1=(Л*Б)*Т и операция У2=Л*(Б*Т) дают одинаковый результат. Различия, безусловно, состоят в неодинаковом порядке строк XI и Х2 (У1 и У2 соответствен­но). Кроме того, промежуточные отношения при вычислении У1 и У2 могут иметь резко различающиеся размеры (число строк), хотя У1 и У2 содержат равное число строк.

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

Y
ФИО ЯП
Иванов Си
Иванов Фортран
Иванов Паскаль
Петров Си
Петров Паскаль
Семин Си
Семин Фортран
Яшин Фортран
Яшин Паскаль

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

XI1 = Y[ ЯП = “Си” AND ЯП = “Фортран”]

(через AND обозначена логическая операция “и”) будет безуспеш­ной, так как в одной строке отношения нет информации о двух языках программирования сразу и отношение XI1 будет пустое.

Определим операцию, называемую “образ”. В отношении Т(А,В) образом значения а атрибута А является множество значе­ний атрибута В, и каждый элемент Ь этого множества образует вместе с а некоторую строку (или часть строки) отношения Т.

im В(а) = {Ь1,Ь2,..., bk},

где im - знак операции “образ”,

а - значение, образ которого вычисляется,

В - имя атрибута для образа значения а,

Ы, b2,...,bk - значения атрибута В.

Стоящая перед нами задача решается путем вычисления обра­зов значений “Си” и “Фортран” и последующего пересечения най­денных образов.

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

1ш ФИО(“Фортран”) = {“Иванов”,“Семин”,“Яшин”} нпФИО(“Си”)п нп ФИО(“Фортран”) = {“Иванов”,“Семин”} Такая связка операций взятия образа и пересечения получен­ных множеств (количество значений, для которых вычисляется образ, может быть произвольным, а не 2, как в нашем примере) требуется достаточно часто, поэтому вводится специальная опе­рация - деление.

Условимся, что существует отношение-делимое \У(А,В) (в на­шем примере это У) и отношение-делитель У(А). Для необходимо­го нам запроса отношение-делитель имеет вид:

г

ЯП

Си

Фортран

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

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

• корректировка отношений не должна приводить к дву­смысленности или потере информации,

• перестройка набора отношений при -добавлении в базу данных новых атрибутов должна быть минимальной.

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

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

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

Отношение в первой нормальной форме (сокращенно 1НФ) - это обычное отношение с двухуровневой структурой. Недопустимость в структуре отношения третьего и последу­ющих уровней является ограничением, определяющим 1НФ отношения.

Преобразование ненормализованного отношения в пред­ставление, соответствующее 1НФ, - это операция нормализа­ции, рассмотренная выше. Следует отметить определенное терминологическое несоответствие - нормализация СЕИ при­водит к 1НФ, а нормализация отношений реляционной БД обычно производится до ЗНФ или 4НФ.

Реляционная база данных в целом характеризуется 1НФ, если все ее отношения соответствуют 1НФ.

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

<< | >>
Источник: Мишенин А. И.. Теория экономических информационных систем; Учебник. — 4-е изд., доп. и перераб. — М.: Финансы и статистика, - 240 с.: ил. 2002

Еще по теме 2.1. РЕЛЯЦИОННАЯ МОДЕЛЬ ДАННЫХ:

  1. 11.2. Миграция в моделях экономического роста.
  2. 3.8. ЭТАПЫ СОЗДАНИЯ БАЗЫ И БАНКА ДАННЫХ
  3. 4.7. СИСТЕМЫ УПРАВЛЕНИЯ БАЗАМИ ДАННЫХ
  4. Модели данных
  5. Реляционная модель и СУБД
  6. Другие модели
  7. Взаимосвязь моделей данных
  8. Сервер XML-данных
  9. 3.5. Равновесие в модели 15-1.М при неполной занятости
  10. Формы и модели общественного хозяйства
  11. Глава 2. МОДЕЛИ ДАННЫХ
  12. 2.1. РЕЛЯЦИОННАЯ МОДЕЛЬ ДАННЫХ