Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

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

Поиск

К числу наибольших достоинств реляционного подхода можно отнести:

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

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

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

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

· слабая система типов данных; этим системам присуща некоторая ограниченность (прямое следствие простоты) при использовании в так называемых нетрадиционных областях применения (наиболее распространенными примерами являются системы автоматизации проектирования), в которых требуются предельно сложные структуры данных,

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

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

Современные исследования в области постреляционных систем главным образом посвящены именно устранению этих недостатков (см. раздел 8.).

КОНТРОЛЬНЫЕ ВОПРОСЫ ПО РАЗДЕЛУ 5.1.

1. Дайте определение базовым понятиям реляционной модели: домен, кортеж, отношение, схема отношения, схема базы данных.

2. Каковы пользовательские представления понятиям схемы отношения и экземпляра отношения.

3. Перечислите свойства отношений.

4. Сформулируйте понятие функциональной зависимости. Определите 1НФ, 2НФ и 3НФ представления реляционной модели.

5. Дайте понятия целостности для сущностей и ссылок. Что такое внешний ключ.

6. В чем отличие в использовании аппарата реляционной алгебры и аппарата реляционного исчисления.

7. Опишите набор традиционных операций над множествами как операций реляционной алгебры.

8. Опишите набор специальных операций реляционной алгебры.

9. Дайте понятие правильно построенной формулы.

10. С чем связывается переменная в процессе замыкания. Зачем нужен этот процесс.

11. Перечислите достоинства и недостатки реляционных систем.

Навигационные модели данных

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

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

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

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

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

В общем случае иерархия должна удовлетворять следующим условиям:

1. Одно дерево может иметь только один корень (исходный узел).

2. Узел должен иметь один или несколько атрибутов, описывающих семантику объекта.

3. У родительского узла может быть несколько потомков.

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

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

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

Пример. На рис.14. представлена иерархическая база данных:

(а) - дерево определения с пятью узлами (типами записей) A, B, C, D и E, обозначенными прямоугольниками. Символы внутри прямоугольников задают атрибуты объектов,

(б) – загруженная база данных (экземпляры дерева определений R1, R2).

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

A – " ДИСЦИПЛИНА ",

B –" УЧЕБНЫЙ ПЛАН ",

C – " СЕМЕСТР ",

D – " ПРЕПОДАВАТЕЛЬ ",

E – " СТУДЕНЧЕСКАЯ ГРУППА ".

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

Экземпляр R1. Дисциплина A1 включена в учебный план; больше о ней ничего не известно.

Экземпляр R2. Дисциплина A2 включена в учебный план. Для нее запланировано проведение занятий в семестрах C1 и C2 преподавателем D1 в группах E1 и E2 и в семестре C3 в группе E3, однако преподаватель еще не определен.

 

 
 

 

 


Рис.14. Иерархическая база данных

 

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

Пример. Физическая запись, хранящая экземпляры R1 и R2 при линеаризации, будет выглядеть следующим образом:

 

A1 B1 A2 B2 C1 D1 E1 E2 C2 D1 E1 E2 C3 E3
Запись 1 Запись 2

 

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

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

Пример. Дерево определений, представляющее структуру университета (до определенного уровня), может быть представлено следующим графом (рис.15.):

 

 
 

 

 


Рис.15. Упрощенный вид дерева определений ПО "Университет"

 

В данном дереве можно выделить такие фрагменты, как например, Деканат, Ректорат, Кадры, Финансы и т.п. Каждый из фрагментов предметной области представляется отдельной физической базой данных (ФБД).

 

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

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

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

 

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

Примеры типичных операторов манипулирования иерархическими данными:

· найти указанное дерево БД (например, предмет “Информатика”);

· перейти от одного дерева к другому;

· перейти от одной записи к другой внутри дерева (например, от одной группы к другой);

· перейти от одной записи к другой в порядке обхода иерархии;

· вставить новую запись в указанную позицию;

· удалить текущую запись.

 

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

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

Сетевые структуры

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

 

 

Стандарт сетевой модели впервые был определен в 1975г. организацией CODASYL (Conference of Data System Languages), которая определила базовые понятия модели и формальный язык ее описания.

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

· элемент данных,

· агрегат данных,

· запись,

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

Элемент данных – минимальная информационная единица, доступная с помощью СУБД.

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

Например, агрегат с именем Адрес может быть представлен в виде

 

Адрес
Город Улица Дом Квартира

 

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

Набор – двухуровневый граф, связывающий отношением 1:M два типа записей.

 
 

 


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

Для любых двух типов записей может быть задано любое количество наборов, которые их связывают. Наличие подобных возможностей позволяет промоделировать отношение M:N между двумя объектами реального мира, что выгодно отличает сетевую модель от иерархической.

Пример. На рис.16. представлены два набора, связывающие сущности "Преподаватель" и "Группа".

 

 

Рис.16. Наборы данных, связывающие сущности "Преподаватель" и "Группа"

 

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

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

Таблица 1.

Преподаватель Группа
Иванов  
Иванов  
Карпова  
Карпова  
Карпова  
Смирнов  
Смирнов  

 

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

1. Набор – это поименованная совокупность связанных записей.

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

3. Тип набора представляет логическую взаимосвязь 1:M между владельцем и членом

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

 

5. В сетевых моделях допускаются записи-члены, не участвующие в наборах. Это соответствует порожденным узлам дерева, не имеющим исходных.

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

7. Экземпляр набора существует после заполнения записи-владельца.

На формирование типов связи не накладываются особые ограничения; возможны, например, ситуации:

· Тип записи потомка в одном типе связи может быть типом записи предка в другом типе связи (как в иерархии).

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

· Данный тип записи может быть типом записи потомка в любом числе типов связи.

· Предок и потомок могут быть одного типа записи.

 

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

 

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

 

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

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

· найти конкретную запись в наборе однотипных записей;

· перейти от предка к первому потомку по некоторой связи;

· перейти к следующему потомку в некоторой связи;

· перейти от потомка к предку по некоторой связи;

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

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

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

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

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

· переставить в другую связь и т.д.

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

 
 

 

 


Рис.17. Пример диаграммы связей экземпляров типов записей в сетевой модели

 

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

Наиболее интересна операция поиска (FIND), так как именно она отражает суть навигационных методов, применяемых в сетевой модели. Всего существует 7 типов операций поиска:

· по ключу,

· последовательный просмотр записей данного типа,

· поиск владельца текущего экземпляра набора,

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

· просмотр записей-членов экземпляра набора, специфицированных рядом полей,

· сделать текущей записью процесса текущий экземпляр набора,

· установить текущую запись процесса.

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

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



Поделиться:


Последнее изменение этой страницы: 2016-07-16; просмотров: 591; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.216.156.226 (0.01 с.)