Уровни моделей данных



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

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

Цель трехуровневой архитектуры заключается в отделении пользовательского представления БД от ее физического представления. Причины:

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

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

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

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

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

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

  • Распределение дискового пространства для хранения данных и индексов;
  • Описание подробностей сохранения записей ( с указанием реальных размеров сохраняемых элементов данных);
  • Сведения о размещении записей;
  • Сведения о сжатии данных и выбранных методах их шифрования.

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

 

Модель данных – абстрактное описание допустимых типов и  структур данных,   а также определенных на них отношений и операций.

Три основные компоненты модели данных:

  • структура данных;
  • набор допустимых операций над данными;
  • ограничения целостности

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

Иерархическая модель данных«+» простота организации, эффективное использование памяти ЭВМ для иерархической ПО, неплохая производительность даже на медленных ЭВМ.

«–» отсутствует явное разделение логических и физических характеристик модели; дублирование не иерархически организованных данных; непредвиденные запросы могут потребовать реорганизации базы данных.

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

В сетевой модели существует две основные структуры данных:

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

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

«–» слабые возможности адаптации к изменяющимся требованиям; зависимость прикладного ПО от физической организации данных; сложность построения заранее не предвиденных запросов.

3. Реляционная – разработанная Э.Коддом в 1970г. логическая модель данных, описывающая:

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

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

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

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

 

Не требуется операция join. Проблема целостности и непротиворечивости данных решается только средствами СУБД (по аналогии с процедурами в клиент-серверных моделях).

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

«–» проблема контроля целостности и непротиворечивости данных.

5. Многомерная (OLAP. online analytical processing, аналитическая обработка в реальном времени).

Многомерное логическое представление структуры данных при их описании и в операциях над ними.

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

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

«+» удобство и эффективность аналитической обработки больших объемов данных, связанных со временем. «–» громоздкость для простейших задач обычной оперативной обработки информации.

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

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

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

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

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

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

Инкапсуляция – свойство видно только в пределах того объекта, в котором оно определено.

Наследование – свойство видимо всем потомкам объекта.

Полиморфизм – один и тот же код может работать с разнотипными данными. Т.е. у объектов разных типов могут быть методы с одинаковыми именами.

«+» может отражать сложные связи между объектами, идентифицировать отдельные записи.

«–» неудобство обработки данных, низкая скорость выполнения запросов.