Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Учебное пособие 800353

.pdf
Скачиваний:
1
Добавлен:
01.05.2022
Размер:
1.88 Mб
Скачать

Простой пример сетевой схемы БД:

Работают в отделе

 

 

 

 

 

 

 

 

 

Отдел

 

Сотрудники

 

Начальник

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Состоит из сотрудников

Имеет начальника

Манипулирование данными в сетевой модели

Примерный набор операций может быть следующим:

Найти конкретную запись в наборе однотипных записей (инженера Сидорова);

Перейти от предка к первому потомку по некоторой связи (к первому сотруднику отдела 352);

Перейти к следующему потомку в некоторой связи (от Сидорова к Иванову);

Перейти от потомка к предку по некоторой связи (найти отдел Сидорова);

Создать новую запись;

Уничтожить запись;

Модифицировать запись;

Включить в связь;

Исключить из связи; Переставить в другую связь и т.д.

Ограничения целостности в сетевой модели

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

40

Реляционная модель

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

Подробно реляционная модель рассматривается далее.

41

3. МАТЕМАТИЧЕСКИЕ ОСНОВЫ ПОСТРОЕНИЯ РЕЛЯЦИОННЫХ СУБД. РЕЛЯЦИОННАЯ АЛГЕБРА И БЕЗОПАСНЫЕ ВЫРАЖЕНИЯ. РЕЛЯЦИОННЫЕ ИСЧИСЛЕНИЯ, ПОСТРОЕННЫЕ НА ДОМЕНАХ И КОРТЕЖАХ

3.1 Реляционная модель

Остановимся более подробно на реляционной модели

данных.

Реляционная модель впервые была предложена Э.Ф.Коддом в 1970 году. Коммерческие системы на основе реляционной модели данных начали появляться в конце 70-х – начале 80-х годов. В настоящее время существует несколько сотен типов различных реляционных СУБД. Примерами реляционных СУБД являются СУБД Access и FoxPro фирмы

Microsoft, Paradox и Visul dBase фирмы Borland, а также R:Base фирмы Microrim.

Реляционная модель основана на математическом понятии отношения, физическим представлением которого является таблица.

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

ОТНОШЕНИЕ – это плоская таблица, состоящая из столбцов и строк.

АТРИБУТ – это поименованный столбец отношения

ДОМЕН – это набор допустимых значений для одного или нескольких атрибутов.

КОРТЕЖ – это строка отношения.

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

заголовком (содержанием). Кортежи называются

42

расширением, состоянием или телом отношения, которое постоянно меняется.

СТЕПЕНЬ ОТНОШЕНИЯ определяется количеством атрибутов, которое оно содержит.

Отношение только с одним атрибутом имеет степень 1 и называется унарным отношением, с двумя атрибутами – бинарным.

КАРДИНАЛЬНОСТЬ - это количество кортежей, которое содержит отношение

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

РЕЛЯЦИОННАЯ БАЗА ДАННЫХ – это набор нормализованных отношений.

Математические отношения.

Для понимания истинного смысла термина отношение рассмотрим несколько математических понятий. Допустим, у нас есть два множества, Д1 и Д2, где Д1 = {2,4} и

Д2 = {1,3,5}. Декартовым произведением этих двух множеств (Д1хД2) называется набор из всех возможных пар, в которых первым идет элемент множества Д1, а вторым – элемент множества Д2. Альтернативный способ выражения этого произведения заключается в поиске всех комбинаций элементов, в которых первым идет элемент множества Д1, а вторым – множества Д2. В данном примере получим следующий результат:

Д1хД2 = {(2,1), (2,3), (2,5), (4,1), (4,3), (4,5)}

Любое подмножество этого декартового произведения является отношением. Например, в нем можно выделить отношение R , показанное ниже.

R = {(2,1), (4,1)}

Для определения тех возможных пар, которые будут входить в отношение, можно задать некоторые условия их

43

выборки. Например, отношение R – это отношение, в котором второй элемент равен 1.

R = {(x,y) | x Д1, у Д2 и у=1}

Понятие отношения можно легко распространить и на три множества. Пусть имеется три множества: - Д1, Д2, Д3. Декартово произведение Д1хД2хД3 этих трех множеств является набором, состоящим из всех возможных троек элементов, в которых первым идет элемент множества Д1, вторым – элемент множества Д2, а третьим – Д3. Любое подмножество этого декартового произведения является отношением.

Увеличивая количество множеств, можно дать обобщенное определение отношения на n доменах.

Пусть имеется n множеств Д1, Д2, …, Дn. Декартово произведение для этих n множеств можно определить следующим образом:

Д1хД2х…хДn = {(d1 D1, d2 D2,... , dn Dn)}

Обычно это выражение записывают в таком символическом виде :

n

X Di i=1

Любое множество n-арных кортежей этого декартового произведения является отношением n множеств. Для определения этих отношений необходимо указать множества, или домены, из которых выбираются значения.

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

РЕЛЯЦИОННАЯ СХЕМА - это имя отношения, за которым следует множество пар имен атрибутов и доменов.

Каждый элемент n-арного кортежа состоит из атрибута и значения этого атрибута. Обычно при записи отношения в виде таблицы имена атрибутов перечисляются в заголовках столбцов, а кортежи образуют строки формата (d1,

44

d2,... , dn), где каждое значение берется из соответствующего домена. Таким образом, в реляционной модели отношение можно представить как произвольное подмножество декартового произведения доменов атрибутов, тогда как таблица – это всего лишь физическое представление такого отношения.

Отношение обладает следующими характеристиками.

Отношение имеет имя, которое отличается от имен всех других отношений.

Каждая ячейка отношения содержит только атомарное (неделимое) значение.

Каждый атрибут имеет уникальное имя.

Значения атрибута берутся из одного и того же

домена.

Порядок следования атрибутов не имеет никакого значения.

Каждый кортеж является уникальным, т.е. дубликатов кортежей быть не может.

Теоретически порядок следования кортежей в отношении не имеет никакого значения. (Однако, практически этот порядок может существенно повлиять на эффективность доступа к ним).

Большая часть свойств отношений происходит от свойств математических отношений:

Поскольку отношение является множеством, то порядок элементов не имеет значения. Следовательно, порядок кортежей в отношении несущественен.

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

При вычислении декартового произведения множеств с простыми однозначными элементами (например, целочисленными значениями), каждый элемент в каждом кортеже имеет единственное значение. Аналогично, каждая

45

ячейка отношения содержит только одно значение. Однако, математическое отношение не нуждается в нормализации.

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

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

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

СУПЕРКЛЮЧ – это атрибут или множество атрибутов, которое единственным образом идентифицирует кортеж данного отношения.

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

ПОТЕНЦИАЛЬНЫЙ КЛЮЧ – это суперключ, который не содержит подмножества, также являющегося суперключом данного отношения.

46

Потенциальный ключ К для данного отношения R обладает двумя свойствами:

Уникальность в каждом кортеже отношения R значение ключа К единственным образом идентифицируют этот кортеж.

Неприводимость – Никакое допустимое подмножество ключа К не обладает свойством уникальности.

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

ПЕРВИЧНЫЙ КЛЮЧ – это потенциальный ключ, который выбран для уникальной идентификации кортежей внутри отношения

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

ключами.

ВНЕШНИЙ КЛЮЧ – это атрибут или множество атрибутов внутри отношения, которое соответствует потенциальному ключу некоторого (может быть, того же самого) отношения.

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

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

47

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

целостностью сущностей и ссылочной целостностью.

ОПРЕДЕЛИТЕЛЬ NULL – указывает, что значение атрибута в настоящий момент неизвестно или неприемлемо для этого кортежа.

Определитель NULL следует воспринимать как логическую величину «неизвестно». Другими словами, либо это значение не входит в область определения некоторого кортежа, либо никакое значение еще не задано. Однако, определитель NULL не следует понимать как нулевое значение или заполненную пробелами текстовую строку.

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

ЦЕЛОСТНОСТЬ СУЩНОСТЕЙ – в базовом отношении ни один атрибут первичного ключа не может содержать отсутствие значений, обозначаемых определителем NULL.

Здесь базовое отношение определяется как отношение, которое соответствует некоторой сущности в концептуальной схеме.

По определению, первичный ключ – это минимальный идентификатор, который используется для уникальной идентификации кортежей. Это значит, что никакое подмножество первичного ключа не может быть достаточным для уникальной идентификации кортежей, а следовательно первичный ключ не может содержать NULL.

Второе ограничение целостности качается внешних

ключей.

48

ССЫЛОЧНАЯ ЦЕЛОСТНОСТЬ – если в отношении существует внешний ключ, то значение внешнего ключа должно либо соответствовать значению потенциального ключа некоторого кортежа в его базовом отношении, либо задаваться определителем NULL.

КОРПОРАТИВНЫЕ ОГРАНИЧЕНИЯ ЦЕЛОСТНОСТИ –

это дополнительные правила поддержки целостности данных. определяемые пользователем или администраторами базы данных.

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

Реляционная алгебра и реляционное исчисление

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

49