Иерархические, сетевые и реляционные модели данных. Сетевые бд Примеры сетевых баз данных

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

Всетевой модели данных любой объект может быть одновременно и главным, и подчиненным, и может участвовать в образовании любого числа взаимосвязей с другими объектами. Сетевая БД состоит из набора записей и набора связей между этими записями, а если говорить более точно - из набора экземпляров каждого типа из заданного в схеме БД набора типов записи и набора экземпляров каждого типа из заданного набора типов связи (рис. 2.5).

Запись в сетевой модели (в отличии от иерархической) может иметь множество как подчиненных ей записей, так и записей, которым она подчинена. Так, на рисунке экземпляры записи ПРЕПОДАВАТЕЛЬ связываются с экземплярами записиГРУППА с помощью записей пересечения (РАСПИСАНИЕ ), указывающих день, время и номер аудитории, в которой проводятся занятия. Данные пересечения соединены адресными ссылками в цепочки, соответствующие экземплярам записейПРЕПОДАВАТЕЛЬ иГРУППА . Аналогично связываются экземпляры записейПРЕПОДАВАТЕЛЬ иСТУДЕНТ посредством экземпляров записиЗАДАНИЕ , атрибутами которой являются: наименование задания (курсовая или дипломная работа, задание по лабораторным занятиям и т.п.); количество часов, выделяемых преподавателю.

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

Сетевую структуру можно преобразовать в одно или несколько деревьев, вводя дополнительные вершины (записи).

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

Типичным представителем является СУБД Integrated Database Management System (IDMS ) компании Cullinet Software, Inc. , предназначенная для использования на машинах основного класса фирмы IBM под управлением большинства ОС. Архитектура системы основана на предложениях Data Base Task Group (DBTG ) Комитета по языкам программирования Conference on Data Systems Languages (CODASYL ) - организации, ответственной за определение языка программирования Кобол. Отчет DBTG был опубликован в 1971 г., а позже появилось несколько систем, среди которых IDMS .

Реляционные системы

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

Таблица базы данных – регулярная структура, которая состоит из однотипных строк (записей), разбитых на столбцы (поля).

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

Реляционная модель данных основывается на математических принципах, вытекающих непосредственно из теории множеств и логики предикатов. Эти принципы впервые были применены в области моделирования данных в конце 60-х гг. американским специалистом доктором Е.Ф.Коддом (в то время работавшим в компании IBM), а впервые опубликованы в 1970 г. в статье «Реляционная модель данных для больших разделяемых банков данных ».

Доктор Кодд определил правила реляционной модели (которые называют 12 правилами Кодда ).

Реляционная СУБД должна быть способна полностью управлять базой данных через ее реляционные возможности:

    Информационное правило – вся информация в реляционной БД (включая имена таблиц и столбцов) должна определяться строго как значения в таблицах.

    Гарантированный доступ – любое значение в реляционной БД должно быть гарантированно доступно для использования через комбинацию имени таблицы, значения первичного ключа и имени столбца

    Поддержка пустых значений – СУБД должна уметь работать с пустыми значениями (неизвестными или неиспользованными значениями), в отличие от значений по умолчанию и независимо для любыхдоменов.

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

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

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

    Вставка, обновление и удаление - СУБД поддерживает не только запрос на отбор данных, но и вставку, обновление и удаление.

    Физическая независимость данных – на программы-приложения и специальные программы логически не влияют изменения физических методов доступа к данным и структур хранилищ данных.

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

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

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

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

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

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

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

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

    все значения являются скалярами. Это означает, что для любой строки и столбца любого отношения существует одно и только одно значение;

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

Формулируя принципы реляционной модели, Кодд выбрал термин «отношение » (relation ), потому что, по его мнению, этот термин однозначен (в то время как, например, термин «таблица » имеет множество различных видов - таблица в тексте, электронная таблица и пр.).

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

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

Сущность – некоторый обособленный объект или событие, информацию о котором необходимо сохранять в БД имеющий определенный набор свойств - атрибутов . Сущности могут быть как физические - реально существующие объекты, например, СТУДЕНТ , атрибуты - № зачетной книжки, фамилия, факультет, специальность, № группы и т.д., так и абстрактные , например, ЭКЗАМЕН , атрибуты - дисциплина, дата, преподаватель, аудитория и пр.).

Для сущностей различают ее тип и экземпляр . Тип характеризуется именем и списком свойств, а экземпляр - конкретными значениями свойств.

Атрибуты сущности бывают:

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

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

    Однозначные и многозначные - могут иметь соответственно одно или много значений для каждого экземпляра сущности.

    Основные и производные . Значениеосновного атрибутане зависит от другихатрибутов. Значениепроизводного атрибута вычисляется на основе значений другихатрибутов(например, возраст человека вычисляется на основе даты его рождения и текущей даты).

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

Домен – это набор всех допустимых значений, которые может содержать атрибут. Понятие «домен» часто путают с понятием «тип данных ». Необходимо различать эти два понятия. Тип данных - это физическая концепция, а домен - логическая. Например, «целое число » - это тип данных, а «возраст » - это домен.

Связи - на концептуальном уровне представляют собой простые ассоциации между сущностями. Например, утверждение «Покупатели приобретают продукты » указывает, что между сущностями «Покупатели » и «Продукты » существует связь, и такие сущности называются участниками этой связи.

Существует несколько типов связей между двумя сущностями. Формально связь между сущностямиА иВ можно обозначить следующим образом:

,

где F (x ) - вид связи сущностиА с сущностьюВ ;G (x ) - вид связи сущностиВ с сущностьюА . ФункцииF (x ) иG (x ) могут принимать значенияU иN - единичная и множественная связи соответственно.

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

1. Отношение «один к одному» (1:1):

А В и, наоборот, любому экземпляру сущностиВ может соответствовать только один экземпляр сущностиА , например,ФАКУЛЬТЕТ  ДЕКАН,ГРУППА  СТАРОСТА.

2. Отношение «один ко многим» (1:N):

Означает, что могут существовать экземпляры сущности А , которым соответствует более одного экземпляра сущностиВ , но каждому экземпляру сущностиВ может соответствовать только один экземпляр сущностиА , например,ФАКУЛЬТЕТ  КАФЕДРА, ГРУППА  СТУДЕНТ.

3. Отношение «многие к одному» (М:1):

Означает, что каждому экземпляру сущности А может соответствовать только один экземпляр сущностиВ и среди экземпляров сущностиВ могут быть такие, которым соответствует несколько экземпляров сущностиА , например,СТУДЕНТ  ФАКУЛЬТЕТ.

4. Отношение «многие ко многим» (групповое) (М:N):

Означает, что может существовать экземпляр сущности А , которому соответствует несколько экземпляров сущностиВ , и, наоборот, одному экземпляру сущностиВ может соответствовать несколько экземпляров сущностиА , например,ПРЕПОДАВАТЕЛЬ  ПРЕДМЕТ.

Каждая связь в реляционной модели характеризуется именем , обязательностью , типом и степенью . Различают факультативные и обязательные связи. Если сущность одного типа оказывается по необходимости связанной с сущностью другого типа, то между этими типами объектов существует обязательная связь (обозначается двойной линией). Иначе связь является факультативной.

Диаграмма «сущности-связи » (Entity-Relationship diagrams , или E/R diagram ) служит для описания схемы БД на концептуальном уровне проектирования. Метод был предложен в 1976 г. Питером Пин Шань Ченом . На диаграммах «сущности-связи» сущности изображаются в виде прямоугольников, атрибуты - в виде эллипсов, а связи - в виде ромбов (рис. 2.7).

В дальнейшем многими авторами были разработаны свои варианты подобных моделей (нотация Мартина , нотация IDEF1X , нотация Баркера и др.). Кроме того, различные программные средства, реализующие одну и ту же нотацию, могут отличаться своими возможностями. По сути, все варианты диаграмм «сущность-связь » исходят из одной идеи - рисунок всегда нагляднее текстового описания. Все такие диаграммы используют графическое изображение сущностей предметной области, их свойств (атрибутов), и взаимосвязей между сущностями.

Реляционная модель ориентирована на организацию данных в виде двумерных таблиц . Каждая реляционная таблица представляет собой двумерный массив и обладает следующими свойствами:

    каждый элемент таблицы – это один элемент данных;

    все столбцы в таблице однородные, т.е. все элементы в столбце имеют одинаковый тип (числовой, символьный и т.д.) и длину (размер);

    каждый столбец имеет уникальное имя;

    одинаковые строки в таблице отсутствуют;

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

Рассмотрим реляционную модель на примере таблиц с именами ПРЕПОДАВАТЕЛЬ,ГРУППА,РАСПИСАНИЕ(табл. 2.1-2.3). Каждая таблица подобна последовательному набору данных. Строки таблиц соответствуютзаписям наборов , а столбцы -полям записей . Такие таблицы являются частным случаем конструкции, называемой в математикеотношением (реляцией ). Представление наборов данных в виде отношений и применение к ним математической теории отношений есть основа реляционных моделей БД.

Таблица 2.1. ПРЕПОДАВАТЕЛЬ

Таблица 2.2. ГРУППА

Табельный номер

Фамилия И.О.

Должность

Номер группы

Кол-во студентов

Староста

Кравец И.П.

Профессор

Судец Т.Н.

Морозов В.П.

Чмиль А.Г.

Кузьмин И.С.

Вовк М.П.

Грач О.Н.

Ассистент

Рекун В.В.

Таблица 2.3. РАСПИСАНИЕ

Наименование дисциплин

Фамилия преподавателя

Номер группы

День недели

Аудитория

Морозов В.П.

Морозов В.П.

Кузьмин И.С.

Кузьмин И.С.

Кравец И.П.

Грач О.Н.

Кравец И.П.

Грач О.Н.

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

Достоинствами реляционных моделей данных являются:

    Упрощение схемы представления данных для пользователя – в виде таблиц.

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

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

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

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

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

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

Понятие реляционной БД тесно связано с такими понятиями структурных элементов, как поле, запись, файл (таблица) (рис. 2.8).

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

    имя , например, Фамилия, Имя, Отчество, Дата рождения;

    тип , например, символьный, числовой, календарный, денежный;

    длина , например, 15 байт, причем будет определяться максимально возможным количеством символов;

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

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

Файл (таблица ) - совокупность экземпляров записей одной структуры.

В структуре записи файла указываются поля, значения которых являются ключами .

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

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

Внешний ключ - ключевой элемент подчиненной (внешней, дочерней) таблицы, значение которого совпадает со значением первичного ключа главной (родительской) таблицы.

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

В качестве примера рассмотрим реляционную модель, построенную на основе отношений: СТУДЕНТ ,СЕССИЯ ,СТИПЕНДИЯ :

СТУДЕНТ (Номер , Фамилия, Имя, Отчество, Пол, Дата рождения, Группа);

СЕССИЯ (Номер . Оценка1, Оценка2, Оценка3, Оценка4,Результат );

СТИПЕНДИЯ (Результат , Процент).

Таблицы СТУДЕНТ иСЕССИЯ имеют совпадающие ключи (Номер ), что дает возможность легко организовать связь между ними. ТаблицаСЕССИЯ имеет первичный ключНомер и содержит внешний ключРезультат , который обеспечивает ее связь с таблицейСТИПЕНДИЯ .

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

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

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

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

Первая нормальная форма (1НФ) связана с понятиями простого и сложного атрибутов. Простой атрибут - это атрибут, значения которого атомарны (т.е. неделимы). Сложный атрибут может иметь значение, представляющее собой объединение нескольких значений одного или разных доменов. В первой нормальной форме устраняются повторяющиеся атрибуты или группы атрибутов, т.е. производится выявление неявных сущностей, «замаскированных» под атрибуты.

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

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

Например, отношение СТУДЕНТ = (Номер , Фамилия, Имя, Отчество, Дата рождения, Группа) находится в первой нормальной форме.

Вторая нормальная форма (2НФ) применяется к отношениям с составными ключами (состоящими из двух и более атрибутов) и связана с понятиями функциональной зависимости.

Если в любой момент времени каждому значению атрибута A соответствует единственное значение атрибута B , то B функционально зависит от A (A B ). Атрибут (группа атрибутов) A называется детерминантом .

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

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

Третья нормальная форма (3НФ) связана с понятием транзитивной зависимости . Пусть A , B , C - атрибуты некоторого отношения. При этом A B и B C , но обратное соответствие отсутствует, т.е. C не зависит от B или B не зависит от A . Тогда говорят, что C транзитивно зависит от A (A C ).

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

Отношение находится в 3НФ, если оно находится во 2НФ и не имеет атрибутов, не входящих в первичный ключ и находящихся в транзитивной зависимости от первичного ключа.

Существуют также нормальная форма Бойса-Кодда (НФБК) , 4НФ и 5НФ . Однако наибольшее значение имеет 1НФ , т.к. последующие НФ связаны с понятиями о составных ключах и сложных зависимостях от ключей, а на практике встречаются обычно более простые случаи.

Моделирование структуры базы данных при помощи алгоритма нормализации имеет серьезные недостатки :

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

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

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

В реальном проектировании структуры базы данных применяются другой метод - семантическое моделирование , которое представляет собой моделирование структуры данных, опирающееся на смысл этих данных. В качестве инструмента семантического моделирования используются различные варианты диаграмм «сущность-связь » c построением концептуальной модели базы данных.

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

Ссылочная целостность данных – набор правил, обеспечивающих соответствие ключевых значений в связанных таблицах.

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

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

Таблица 2.4. Операции, приводящие к нарушению ссылочной целостности

Операция

Родительская таблица

Дочерняя таблица

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

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

Обновление

Изменение значения первичного ключа в записи может привести к нарушению ссылочной целостности.

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

Удаление

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

При удалении записи в дочерней таблице ссылочная целостность не нарушается .

Ссылочная целостность в принципе может быть нарушена при выполнении одной из четырех операций:

    Обновление записей в родительской таблице.

    Удаление записей в родительской таблице.

    Вставка записей в дочерней таблице.

    Обновление записей в дочерней таблице.

Существуют две основные стратегии поддержания ссылочной целостности:

    RESTRICT (Ограничить ) – не разрешать выполнение операции, приводящей к нарушению ссылочной целостности.

    CASCADE (Каскадное изменение ) – разрешить выполнение требуемой операции, но внести при этом необходимые изменения в связанных таблицах так, чтобы не допустить нарушения ссылочной целостности и сохранить все имеющиеся связи. Изменение начинается в родительской таблице и каскадно выполняется в дочерних таблицах. В реализации этой стратегии имеется одна тонкость, заключающаяся в том, что дочерние таблицы сами могут быть родительскими для некоторых третьих таблиц. При этом может дополнительно потребоваться выполнение какой-либо стратегии и для этой связи и т.д. Если при этом какая-либо из каскадных операций (любого уровня) не может быть выполнена, то необходимо отказаться от первоначальной операции и вернуть базу данных в исходное состояние. Это сложная стратегия, но она не нарушает связей между родительскими и дочерними таблицами.

Эти стратегии являются стандартными и присутствуют во всех СУБД, в которых имеется поддержка ссылочной целостности.

Дополнительные стратегии поддержания ссылочной целостности:

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

    SET NULL (Задать значение NULL ) – разрешить выполнение требуемой операции, но все возникающие некорректные значения внешних ключей изменять на null-значения. Эта стратегия имеет два недостатка: 1) для нее требуется разрешение на использование null-значений; 2) записи дочерней таблицы теряют связь с записями родительской таблицы. Установить, с какой записью родительской таблицы были связаны измененные записи дочерней таблицы, после выполнения операции уже нельзя.

    SET DEFAULT (Задать значение по умолчанию ) – разрешить выполнение требуемой операции, но все возникающие некорректные значения внешних ключей изменять на некоторое значение, принятое по умолчанию. Достоинство стратегии по сравнению с предыдущей в том, что она позволяет не пользоваться null-значениями. Установить, с какими записями родительской таблицы были связаны измененные записи дочерней таблицы, после выполнения такой операции тоже нельзя.

(Оригинал смотри здесь http://coronet.iicm.tugraz.at/wbtmaster/allcoursescontent/netlib/library.htm)

Первоначально сетевая модель замышлялась как инструмент для программистов. В качестве базового языка программирования был выбран Cobol.

К известным сетевым системам управления базами данных относятся: DBMS, IDMS, TOTAL, VISTA, СЕТЬ, СЕТОР, КОМПАС и др.

Основное достоинство сетевой модели – это высокая эффективность затрат памяти и оперативность.

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

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

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

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

Сетевая модель – это структура, у которой любой элемент может быть связан с любым другим элементом (рис. 18). Реальный пример иерархической модели представлен на рис. 19.

Рис. 18. Представление связей в сетевой модели данных

Рис. 19. Пример сетевой модели данных

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

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

    Добавить – внести запись в базу данных.

    Извлечь – извлечь запись из базы данных.

    Обновить – изменить значение элементов предварительно извлеченной записи.

    Удалить – убрать запись из базы данных.

    Включить в групповое отношение – связать существующую подчиненную запись с записью-владельцем.

    Исключить из группового отношения – разорвать связь между записью-владельцем и записью-членом.

    Переключить – связать существующую подчиненную запись с другой записью-владельцем в том же групповом отношении.

________________________________________________________________________________

Базовыми объектами сетевой модели являются:

    элемент данных;

    агрегат данных;

  • набор данных.

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

Агрегат данных соответствует следующему уровню обобщения в модели. В модели определены агрегаты двух типов:

    агрегат типа вектор и

    агрегат типа повторяющаяся группа .

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

Записью называется совокупность агрегатов или элементов данных, моделирующая некоторый класс объектов реального мира. Понятие записи соответствует понятию "сегмент" в иерархической модели. Для записи, так же как и для сегмента, вводятся понятия типа записи и экземпляра записи.

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

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

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

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

В качестве примера рассмотрим таблицу, на основе которой организуем два набора и определим связь между ними:

Преподаватель

Группа

День недели

пары

Аудитория

Дисциплина

Понедельник

Понедельник

Экземпляров набора Ведет занятия будет 3 (по числу преподавателей), экземпляров набора Занимается у будет 4 (по числу групп). На рис.20представлены взаимосвязи экземпляров данных наборов.

Рис. 20. Пример взаимосвязи экземпляров двух наборов

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

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

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

Логическая модель данных в виде произвольного графа. См. также: Структуры баз данных Финансовый словарь Финам … Финансовый словарь

сетевая модель данных - Модель данных, предназначенная для представления данных сетевой структуры и манипулирования ими. [ГОСТ 20886 85] Тематики организация данных в сист. обраб. данных … Справочник технического переводчика

Сетевая модель данных - 60. Сетевая модель данных Модель данных, предназначенная для представления данных сетевой структуры и манипулирования ими Источник: ГОСТ 20886 85: Организация данных в системах обработки данных. Термины и определения … Словарь-справочник терминов нормативно-технической документации

Модель данных - В классической теории баз данных, модель данных есть формальная теория представления и обработки данных в системе управления базами данных (СУБД), которая включает, по меньшей мере, три аспекта: 1) аспект структуры: методы описания типов и… … Википедия

Сетевая модель OSI - В этой статье не хватает ссылок на источники информации. Информация должна быть проверяема, иначе она может быть поставлена под сомнение и удалена. Вы можете … Википедия

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

Иерархическая модель данных - Иерархическая модель данных представление базы данных в виде древовидной (иерархической) структуры, состоящей из объектов (данных) различных уровней. Между объектами существуют связи, каждый объект может включать в себя несколько объектов… … Википедия

Реляционная модель данных - (РМД) логическая модель данных, прикладная теория построения баз данных, которая является приложением к задачам обработки данных таких разделов математики как теории множеств и логика первого порядка. На реляционной модели данных строятся… … Википедия

Ассоциативная модель данных - (англ. Associative model of data) это предложенная Саймоном Уильямсом:2 модель представления данных, в которой база данных состоит из двух типов структур данных элементов и ссылок, хранимых в единой однородной общей… … Википедия

Сетевая СУБД - Необходимо перенести содержимое этой статьи в статью «Сетевая модель данных». Вы можете помочь проекту, объединив статьи. В случае необходимости обсуждения целесообразности объединения, замените этот шаблон на шаблон {{к объединению}} … Википедия

Книги

  • Alibaba и умный бизнес будущего. Как оцифровка бизнес-процессов изменила взгляд на стратегию , Цзэн М.. В современном мире руководители уже не успевают постоянно адаптировать стратегию и бизнес-процессы под все новые и новые изменения. Роль настройщика бизнес-процессов должен взять на себя…

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

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

Сетевая модель базы данных

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

Записи, связанные с одним владельцем

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

Исследование эффективности

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

Удаление этих структур данных, оказало огромное влияние на требования к хранению, поскольку типичный индекс B-дерева требует примерно в 1,3 раза больше пространства, чем индексы. Они также обнаружили, что сетевая модель базы данных увеличила до 23 раз лучше производительность вставки и выросла в 123 раза быстрее производительность запросов, как показано в таблице 1.

Сетевая база данных против реляционной базы данных

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

Вывод

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

Вопрос 1. Модели представления данных. Иерархическая, сетевая, реляционная модели данных. Привести примеры.

Иерархическая модель

Иерархическая структура представляет совокупность элементов, связанных между собой по определенным правилам. Графическим способом представлен ия ие рархической структуры является дерево (см. рис. 2.1).

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

Примером простого иерархического представления может служить административная структура высшего учебного заведения: институт – отделение – факультет – студенческая группа (см. рис. 2.2).

Рис. 2.2. Пример иерархической структуры

К достоинствам иерархической модели данных относятся эффективное использование памяти ЭВМ и неплохие показатели времени выполнения операций над данными.

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

На иерархической модели данных основано сравнительно ограниченное количество СУБД, в числе которых можно назвать зарубежные системы IMS , PC / Focus , Team - Up и Data Edge , а также отечественные системы Ока, ИНЭС и МИРИС.

Сетевая модель данных

Отличие сетевой структуры от иерархической заключается в том, что каждый элемент в сетевой структуре может быть связан с любым другим элементом (см. рис. 2.3). Пример простой сетевой структуры показан на рис. 2.4.

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

Недостатком сетевой модели данных являются высокая сложность и жесткость схемы БД, построенной на ее основе.

Наиболее известными сетевыми СУБД являются IDMS , db _ VistaIII , СЕТЬ, СЕТОР и КОМПАС.

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

Реляционная модель данных была предложена Е.Ф. Коддом, известным исследователем в области баз данных, в 1969 году, когда он был сотрудником фирмы IBM. Впервые основные концепции этой модели были опубликованы в 1970.

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

Строки таблицы содержат сведения о представленных в ней фактах (или документах, или людях, одним словом, - об однотипных объектах). На пересечении столбца и строки находятся конкретные значения содержащихся в таблице данных.

Данные в таблицах удовлетворяют следующим принципам:

1. Каждое значение, содержащееся на пересечении строки и столбца, должно быть атомарным.

2. Значения данных в одном и том же столбце должны принадлежать к одному и тому же типу, доступному для использования в данной СУБД.

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

4. Каждое поле имеет уникальное имя.

5. Последовательность полей в таблице несущественна.

6. Последовательность записей в таблице несущественна.

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

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

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

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

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

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

Рис. 2.5. Схема реляционной модели данных

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

Примерами зарубежных реляционных СУБД для ПЭВМ являются: DB 2, Paradox , FoxPro , Access , Clarion , Ingres , Oracle .

К отечественным СУБД реляционного типа относятся системы ПАЛЬМА и HyTech .

Читайте также: