Понятие модели данных
Развитие теории и практики проектирования и эксплуатации баз данных сопровождается интенсивным развитием моделей данных (МД). Ранее рассматривались модели предметной области.
Каждая ЭВМ обладает относительно простой, но хорошо определенной моделью данных -это допустимые в ЭВМ форматы данных и состав операций, выполняемых над ними. С помощью исходной МД можно построить более сложные модели данных, т. е. выполнить переход к некоторой абстрактной машине, обладающей более удобной МД для представления исходных данных и решения прикладных задач.
Примерами абстрактных машин являются интерпретаторы (или трансляторы) с алгоритмических языков программирования высокого уровня. Каждый язык программирования высокого уровня имеет свою модель данных, которая не зависима от машинной реализации и спроектирована для улучшения моделирования определенных видов реальных ситуаций или для удобства выполнения определенных видов вычислений и представления соответствующих типов исходных, промежуточных и выходных данных в программах (для вычислительных языков). Все операторы любого алгоритмического языка можно разбить на две основные группы: декларативного типа (используемые писания данных) и процедурного типа (используемые для описания последовательности операций, которые должны быть выполнены над описанными данными). Множество допустимых состояний исходных, промежуточных и выходных данных в программе, написанной на некотором алгоритмическом языке, определяется описанием данных, задаваемым операторами декларативного типа. Изменение состояния данных в программе достигается средствами процедурных операторов языка программирования. Таким образом, совокупность операторов декларативного и процедурного типа некоторого алгоритмического языка определяет МД языка, понимаемую как совокупность методов и средств, как некоторый формализм для определения логических структур данных и процессов, динамического изменения их состояния с целью моделирования некоторых реальных процессов или явлений. Эти структуры называют логическими, чтобы отличить их основных структур модели данных ЭВМ, называемых физическими структурами данных, на которых эти логические структуры данных основываются. Пользователь, работающий с некоторым алгоритмическим языком, должен хорошо понимать и разбираться в логических структурах данных используемого языка. Физические структуры данных пользователь может и не знать, поскольку непосредственно с ними не работает.
Модель данных алгоритмического языка, определяемая совокупностью его операторов декларативного и процедурного типа, формализовано описывает все множество допустимых логических структур данных, которые могут принять, обработать и выдать программы, составленные на этом алгоритмическом языке. Совокупность конкретных логических структур данных любой конкретной программы, написанной на этом языке, представляет собой подмножество этого множества. Однако охарактеризовать это множество, перечислив все его элементы -возможные логические структуры данных, невозможно. Поэтому модель данных, поддерживаемую некоторым языком программирования, обычно характеризуют следующим образом:
идентифицируют типы логических структур данных, которые можно представить в МД. Две структуры следует рассматривать как структуры различного типа, если они имеют различные признаки, правила композиции или правила их обработки (правила манипулирования) процедурными операторами;
специфицируют: признаки (характеристики) структур данного типа, правила композиции (составления) структур данного типа из логических структур других типов; правила обработки структур данного типа процедурными операторами.
Все это полностью относится и к МД любой программной системы обработки данных и, в частности, к МД поддерживаемой конкретной СУБД. С позиций прикладного программиста можно рассматривать СУБД как некоторый алгоритмический язык, на котором программируются подлежащие решению задачи. Отличие от алгоритмического языка заключается в том, что операторы описания и процедурные операторы разделены и оформлены в виде самостоятельных языков: языка описания данных и языка манипулирования данными. Однако в логическом плане это не меняет ситуации, поэтому совокупность операторов ЯОД и ЯМД определяет модель данных, поддерживаемую конкретной рассматриваемой СУБД и понимаемую как совокупность структур данных и операций над этими структурами, для определения логической структуры БД и динамического моделирования состояний ПО.
Дополнительно к структурам данных СУБД обеспечивает построения, называемые схемой данных. Схемой структуры данных называется описание структуры данных некоторого типа на формализованном языке. Схема задает совокупность свойств, присущих данному типу структуры данных. Реализацией схемы является конкретная структура данных соответствующего типа. Каждая конкретная реализация называется экземпляром схемы.
Схема структуры данных описывает те свойства структуры, которые не изменяются в течении выполнения прикладных программ и которые можно объявить заранее, до выполнения программ. Эти свойства называют статическими свойствами данных. Система имеет возможность выполнять предварительную проверку корректности структур, которые будут в дальнейшем созданы в БД. Правила композиции схемы структуры данных и правила генерации (формирования) экземпляра схемы в БД определяются ЯОД СУБД.
Построение структур данных в каждой конкретной МД не может выполняться произвольным образом, а только по определенным правилам. Это связано с ограничениями, вытекающими из особенностей используемых в модели типов структур данных и операций, которые можно выполнять над этими структурами. Поэтому в качестве основных компонентов модели данных рассматривают: структуры данных, операции над данными, ограничения. Основные компоненты модели данных тесно взаимосвязаны между собой и в различных конкретных моделях могут быть реализованы различными способами.