Модели баз данных

Содержание

Управление сетевыми данными

Операции с сетевыми данными можно разделить на две группы: навигационные операции с данными и операции модификации данных.

Навигационные операции с данными

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

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

Операции модификации данных

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

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

Примеры иерархий

В природе

  • Уровни организации жизни
  • Система органического мира
  • Линнеевская иерархия

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

В обществе

  • Иерархия общественных насекомых
  • Иерархическая организация
  • Социальная иерархия
  • Социальные классы
  • Касты
  • Вассалитет
  • Табель о рангах
  • Церковная иерархия
  • Этническая иерархия — в пассионарной теории Льва Гумилёва
  • Тюремные касты

Иерархия государственного управления в Империи инков:


Система государственного управления Империи инков

Структура персонала магазина

Пример структуры персонала магазина:

Управляющий
Администратор 1 Администратор 2
Менеджер женского зала Менеджер мужского зала Менеджер женского зала Менеджер мужского зала
Продавец Продавец Продавец Продавец

В информатике

  • Иерархия классов в объектно-ориентированном программировании
  • Иерархия компьютерной памяти
  • Иерархия Хомского
  • Иерархия объектов Active Directory
  • Духовная иерархия
  • Ангельская иерархия
  • Иерархия сфирот в каббале
  • Лестница наук
  • Иерархия жанров в искусстве
  • Иерархия демонов Вейера — книга XVI в.

Структурная часть иерархической модели

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

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

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

Структура реляционной модели данных

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

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

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

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

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

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

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

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

Иерархия и реляционность

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

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

Объектно-реляционные субд

Разница между объектно-реляционными и объектными СУБД: первые являют собой надстройку над реляционной схемой, вторые же изначально объектно-ориентированы. Главная особенность и отличие объектно-реляционных, как и объектных, СУБД от реляционных заключается в том, что О(Р)СУБД интегрированы с Объектно-Ориентированным (OO) языком программирования, внутренним или внешним как C++, Java. Характерные свойства OРСУБД:

  • комплексные данные,
  • наследование типа,
  • объектное поведение.

Комплексные данные могут быть реализованы через постоянно-хранимые объекты (persistent objects). Создание комплексных данных в большинстве существующих ОРСУБД основано на предварительном определении схемы через определяемый пользователем тип (UDT — user-defined type). Используются также встроенные конструкторы составных типов, например массив (ARRAY).

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

Объектное поведение закладывается через описание программных объектов. Такие объекты должны быть сохраняемыми и переносимыми для обработки в базе данных, поэтому они называются обычно как постоянные (или долговременные) объекты. Внутри базы данных все отношения с постоянным программным объектом есть отношения с его объектным идентификатором (OID).

Объектно-реляционными СУБД являются, к примеру, широко известные Oracle Database, Microsoft SQL Server 2005, PostgreSQL, а также Sav Zigzag, IBM Cloudscape,

Разница между реляционной и иерархической базой данных

Определение

Реляционная база данных — это база данных, основанная на реляционной модели данных, как было предложено Э. Ф. Коддом в 1970 году. Иерархическая база данных — это тип базы данных, которая организует данные в древовидную структуру. Следовательно, это объясняет принципиальное различие между реляционной и иерархической базой данных.

Основанная модель

То есть; Реляционная база данных основана на реляционной модели. В отличие от этого, иерархическая база данных основана на иерархической модели.

Способ хранения данных

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

Извлечение данных


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

Таким образом, это важное различие между реляционной и иерархической базой данных

Заключение

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

Объектно-ориентированные субд

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

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

Структура

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

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

наследование — подразумевает возможность создавать из классов объектов новые классы объекты, которые наследуют структуру и методы своих предков, добавляя к ним черты, отражающие их собственную индивидуальность. Наследование может быть простым (один предок) и множественным (несколько предков);

полиморфизм — различные объекты могут по разному реагировать на одинаковые внешние события в зависимости от того, как реализованы их методы.

Целостность данных

Для поддержания целостности объектно-ориентированный подход предлагает использовать следующие средства:

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

Средства манипулирования данными

К сожалению, в объектно-ориентированном программировании отсутствуют общие средства манипулирования данными, такие как реляционная алгебра или реляционное счисление. Работа с данными ведется с помощью одного из объектно-ориентированных языков программирования общего назначения, обычно это SmallTalk, C++ или Java.

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

В то же время, ОО-модели присущ и ряд недостатков:


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

вместо чисто декларативных ограничений целостности (типа явного объявления первичных и внешних ключей реляционных таблиц с помощью ключевых слов PRIMARY KEY и REFERENCES) или полудекларативных триггеров для обеспечения внутренней целостности приходится писать процедурный код.

Очевидно, что оба эти недостатка связаны с отсутствием развитых средств манипулирования данными. Эта задача решается двумя способами — расширение ОО-языков в сторону управления данными (стандарт ODMG), либо добавление объектных свойств в реляционные СУБД (SQL-3, а также так называемые объектно-реляционных СУБД).

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

Достоинства

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

Недостатки

  • Относительно медленный доступ к данным.
  • Трудность в создании БД основанной на реляционной модели.
  • Трудность в переводе в таблицу сложных отношений.
  • Требуется относительно большой объем памяти.

Особенности сетевой модели данных

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

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

  • найти указанное дерево БД;
  • перейти от одного дерева к другому;
  • найти экземпляр сегмента, удовлетворяющий условию поиска;
  • перейти от одного сегмента к другому внутри дерева;
  • перейти от одного сегмента к другому в порядке обхода иерархии.

Примеры типичных операторов поиска данных с возможностью модификации:

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

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

  • вставить новый экземпляр сегмента в указанную позицию;
  • обновить текущий экземпляр сегмента;
  • удалить текущий экземпляр сегмента.

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

Обобщенное описание структуры

Термин «древовидная» для описания структуры упоминается в этой статье уже далеко не единожды. Пора рассказать, откуда он произошел. Все потому что иерархическая база данных — это такая БД, которая использует тип данных «дерево». Рассмотрим подробнее, что он из себя представляет.

Это составной тип: в каждый из элементов (узлов) вкладывается несколько последующих (один или более). А начинается все с одного корневого элемента. Суть в том, что каждый из кусочков типа «дерево», является подтипом, тоже «деревом». Много-много разветвленных, и все также упорядоченных структур.

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

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

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

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

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

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

Что такое реляционная база данных


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

Рисунок 1: Таблица в реляционной базе данных

Например, предположим, что база данных в организации. Таблица сотрудников имеет атрибуты emp-id, имя, возраст и город. Здесь первичным ключом таблицы employee является emp-id. Другая таблица называется таблицей проекта и имеет атрибуты идентификатор проекта, имя проекта, продолжительность и идентификатор emp. Здесь первичным ключом таблицы проекта является идентификатор проекта. Emp-id в таблице employee является внешним ключом в таблице проекта. Эти две таблицы связаны между собой с помощью внешнего ключа. Поэтому таблицы в реляционной базе данных связаны друг с другом.

Язык структурированных запросов (SQL) используется для хранения и управления данными в реляционной базе данных. SQL далее делится на три основные категории: язык определения данных (DDL), язык манипулирования данными (DML) и язык управления данными (DCL). Кроме того, DDL меняет структуру таблиц. DML помогает манипулировать данными, в то время как DCL помогает предоставлять и отбирать полномочия у пользователя базы данных.

Управляющая часть иерархической модели

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

Определены следующие способы доступа:

  • иерархически последовательный;
  • иерархически индексно-последовательный;
  • иерархически прямой;
  • иерархически индексно-прямой;
  • индексный.

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

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


С этим читают