metBD (1084482), страница 5
Текст из файла (страница 5)
Сетевой подход к организации данных является расширением иерархического. В иерархических структурах запись-потомок должна иметь в точности одного предка; в сетевой структуре данных потомок может иметь любое число предков.
Сетевая БД состоит из набора записей и набора связей между этими записями, а если говорить более точно, из набора экземпляров каждого типа из заданного в схеме БД набора типов записи и набора экземпляров каждого типа из заданного набора типов связи.
Тип связи определяется для двух типов записи: предка и потомка. Экземпляр типа связи состоит из одного экземпляра типа записи предка и упорядоченного набора экземпляров типа записи потомка. Для данного типа связи L с типом записи предка P и типом записи потомка C должны выполняться следующие два условия:
-
Каждый экземпляр типа P является предком только в одном экземпляре L;
-
Каждый экземпляр C является потомком не более, чем в одном экземпляре L.
На формирование типов связи не накладываются особые ограничения; возможны, например, следующие ситуации:
а) Тип записи потомка в одном типе связи L1 может быть типом записи предка в другом типе связи L2 (как в иерархии).
б) Данный тип записи P может быть типом записи предка в любом числе типов связи.
в) Данный тип записи P может быть типом записи потомка в любом числе типов связи.
д) Может существовать любое число типов связи с одним и тем же типом записи предка и одним и тем же типом записи потомка; и если L1 и L2 - два типа связи с одним и тем же типом записи предка P и одним и тем же типом записи потомка C, то правила, по которым образуется родство, в разных связях могут различаться.
ж) Типы записи X и Y могут быть предком и потомком в одной связи и потомком и предком - в другой.
з) Предок и потомок могут быть одного типа записи.
Простой пример сетевой схемы БД:
Р
аботают в отделе
Состоит из сотрудников
Имеет начальника
Манипулирование данными в сетевой модели
Примерный набор операций может быть следующим:
-
Найти конкретную запись в наборе однотипных записей (инженера Сидорова);
-
Перейти от предка к первому потомку по некоторой связи (к первому сотруднику отдела 352);
-
Перейти к следующему потомку в некоторой связи (от Сидорова к Иванову);
-
Перейти от потомка к предку по некоторой связи (найти отдел Сидорова);
-
Создать новую запись;
-
Уничтожить запись;
-
Модифицировать запись;
-
Включить в связь;
-
Исключить из связи;
-
Переставить в другую связь и т.д.
Ограничения целостности в сетевой модели
В принципе их поддержание не требуется, но иногда требуют целостности по ссылкам (как в иерархической модели).
Реляционная модель
Реляционная модель данных основана на понятии математических отношений. В реляционной модели данные и связи представлены в виде таблиц, каждая из которых имеет несколько столбцов с уникальными именами. В реляционной модели данных единственное требование состоит в том, что база данных с точки зрения пользователя выглядела как набор таблиц. Однако, такое восприятие относится только к логической структуре базы данных, т.е. ко внешнему и концептуальному уровням архитектуры. Оно не имеет отношения к физической структуре базы данных, которая может быть реализована с помощью разнообразных структур хранения.
Подробно реляционная модель рассматривается далее.
3. МАТЕМАТИЧЕСКИЕ ОСНОВЫ ПОСТРОЕНИЯ РЕЛЯЦИОННЫХ СУБД. РЕЛЯЦИОННАЯ АЛГЕБРА И БЕЗОПАСНЫЕ ВЫРАЖЕНИЯ. РЕЛЯЦИОННЫЕ ИСЧИСЛЕНИЯ, ПОСТРОЕННЫЕ НА ДОМЕНАХ И КОРТЕЖАХ
3.1 Реляционная модель
Остановимся более подробно на реляционной модели данных.
Реляционная модель впервые была предложена Э.Ф.Коддом в 1970 году. Коммерческие системы на основе реляционной модели данных начали появляться в конце 70-х – начале 80-х годов. В настоящее время существует несколько сотен типов различных реляционных СУБД. Примерами реляционных СУБД являются СУБД Access и FoxPro фирмы Microsoft, Paradox и Visul dBase фирмы Borland, а также R:Base фирмы Microrim.
Реляционная модель основана на математическом понятии отношения, физическим представлением которого является таблица.
Поясним используемую в реляционной модели терминологию, а также основные структурные понятия.
ОТНОШЕНИЕ – это плоская таблица, состоящая из столбцов и строк.
АТРИБУТ – это поименованный столбец отношения
ДОМЕН – это набор допустимых значений для одного или нескольких атрибутов.
КОРТЕЖ – это строка отношения.
Описание структуры отношения вместе со спецификацией доменов и любыми другими ограничениями возможных значений атрибутов иногда называют его заголовком (содержанием). Кортежи называются расширением, состоянием или телом отношения, которое постоянно меняется.
СТЕПЕНЬ ОТНОШЕНИЯ определяется количеством атрибутов, которое оно содержит.
Отношение только с одним атрибутом имеет степень 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)}
Для определения тех возможных пар, которые будут входить в отношение, можно задать некоторые условия их выборки. Например, отношение 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, d2,... , dn), где каждое значение берется из соответствующего домена. Таким образом, в реляционной модели отношение можно представить как произвольное подмножество декартового произведения доменов атрибутов, тогда как таблица – это всего лишь физическое представление такого отношения.
Отношение обладает следующими характеристиками.
-
Отношение имеет имя, которое отличается от имен всех других отношений.
-
Каждая ячейка отношения содержит только атомарное (неделимое) значение.
-
Каждый атрибут имеет уникальное имя.
-
Значения атрибута берутся из одного и того же домена.
-
Порядок следования атрибутов не имеет никакого значения.
-
Каждый кортеж является уникальным, т.е. дубликатов кортежей быть не может.
-
Теоретически порядок следования кортежей в отношении не имеет никакого значения. (Однако, практически этот порядок может существенно повлиять на эффективность доступа к ним).
Большая часть свойств отношений происходит от свойств математических отношений:
-
Поскольку отношение является множеством, то порядок элементов не имеет значения. Следовательно, порядок кортежей в отношении несущественен.
-
В множестве нет повторяющихся элементов. Аналогично, отношение не может содержать кортежей-дубликатов.
-
При вычислении декартового произведения множеств с простыми однозначными элементами (например, целочисленными значениями), каждый элемент в каждом кортеже имеет единственное значение. Аналогично, каждая ячейка отношения содержит только одно значение. Однако, математическое отношение не нуждается в нормализации.
-
Набор возможных значений для данной позиции отношения определяется множеством, или доменом, на котором определяется эта позиция. В таблице все значения в каждом столбце должны происходить от одного и того же домена, определенного для данного атрибута.
Однако, в математическом отношении порядок следования элементов в кортеже имеет значение. Это утверждение неверно для отношения в реляционной модели, где специально оговаривается, что порядок атрибутов несущественен. Дело в том, что заголовки столбцов однозначно определяют, к какому именно атрибуту относится данное значение. Следствием этого факта является положение о том, что порядок следования заголовков столбцов в заголовке отношения несущественен.
Для реализации возможности уникальной идентификации каждого отдельного кортежа отношения по значениям его атрибутов используется понятие реляционных ключей.
СУПЕРКЛЮЧ – это атрибут или множество атрибутов, которое единственным образом идентифицирует кортеж данного отношения.
Поскольку суперключ может содержать дополнительные атрибуты, которые необязательны для уникальной идентификации кортежа, интерес представляют суперключи, состоящие только из тех атрибутов, которые действительно необходимы для уникальной идентификации кортежей.
ПОТЕНЦИАЛЬНЫЙ КЛЮЧ – это суперключ, который не содержит подмножества, также являющегося суперключом данного отношения.
Потенциальный ключ К для данного отношения R обладает двумя свойствами:
-
Уникальность – в каждом кортеже отношения R значение ключа К единственным образом идентифицируют этот кортеж.
-
Неприводимость – Никакое допустимое подмножество ключа К не обладает свойством уникальности.
Отношение может иметь несколько потенциальных ключей. Если ключ состоит из нескольких атрибутов, то он называется составным ключом.
ПЕРВИЧНЫЙ КЛЮЧ – это потенциальный ключ, который выбран для уникальной идентификации кортежей внутри отношения
Поскольку отношение не содержит кортежей-дубликатов, всегда можно уникальным образом идентифицировать каждую его строку. Это значит, что отношение всегда имеет первичный ключ. В худшем случае все множество атрибутов может использоваться как первичный ключ, но обычно, чтобы различить кортежи, достаточно использовать несколько меньшее подмножество атрибутов. Потенциальные ключи, которые не выбраны к качестве первичного ключа, называются альтернативными ключами.