Добавлен: 07.07.2023
Просмотров: 748
Скачиваний: 15
Введение
В классической теории баз данных, модель данных есть формальная теория представления и обработки данных в системе управления базами данных (СУБД), которая включает, по меньшей мере, три аспекта:
- аспект структуры: методы описания типов и логических структур данных в базе данных;
- аспект манипуляции: методы манипулирования данными;
- аспект целостности: методы описания и поддержки целостности базы данных.
Аспект структуры определяет, что из себя логически представляет база данных, аспект манипуляции определяет способы перехода между состояниями базы данных (то есть способы модификации данных) и способы извлечения данных из базы данных, аспект целостности определяет средства описаний корректных состояний базы данных.
Модель данных — это абстрактное, самодостаточное, логическое определение объектов, операторов и прочих элементов, в совокупности составляющих абстрактную машину доступа к данным, с которой взаимодействует пользователь. Эти объекты позволяют моделировать структуру данных, а операторы — поведение данных
Каждая БД и СУБД строится на основе некоторой явной или неявной модели данных. Все СУБД, построенные на одной и той же модели данных, относят к одному типу. Например, основой реляционных СУБД является реляционная модель данных, сетевых СУБД — сетевая модель данных, иерархических СУБД — иерархическая модель данных и т. д.
О терминологии
В литературе, статьях и в обиходной речи иногда встречается использование термина «модель данных» в смысле «схема базы данных» («модель базы данных»). Такое использование является неверным, на что указывают многие авторитетные специалисты, в том числе К. Дж. Дейт, М. Р. Когаловский, С. Д. Кузнецов. Модель данных есть теория, или инструмент моделирования, в то время как модель базы данных (схема базы данных) есть результат моделирования. По выражению К. Дейта соотношение между этими понятиями аналогично соотношению между языком программирования и конкретной программой на этом языке
М. Р. Когаловский поясняет эволюцию смысла термина следующим образом. Первоначально понятие модели данных употреблялось как синоним структуры данных в конкретной базе данных. В процессе развития теории систем баз данных термин «модель данных» приобрел новое содержание. Возникла потребность в термине, который обозначал бы инструмент, а не результат моделирования, и воплощал бы, таким образом, множество всевозможных баз данных некоторого класса. Во второй половине 1970-х годов во многих публикациях, посвященных указанным проблемам, для этих целей стал использоваться все тот же термин «модель данных». В настоящее время в научной литературе термин «модель данных» трактуется в подавляющем большинстве случаев в инструментальном смысле (как инструмент моделирования).
Тем не менее, длительное время термин «модель данных» использовался без формального определения. Одним из первых специалистов, который достаточно формально определил это понятие, был Э. Кодд. В статье «Модели данных в управлении базами данных» он определил модель данных как комбинацию трёх компонентов:
- коллекции типов объектов данных, образующих базовые строительные блоки для любой базы данных, соответствующей модели;
- коллекции общих правил целостности, ограничивающих набор экземпляров тех типов объектов, которые законным образом могут появиться в любой такой базе данных;
- коллекции операций, применимых к таким экземплярам объектов для выборки и других целей
Данные могут представляться разными структурными моделями: реляционной, инвертированными списками, иерархической, сетевой, постреляционной. В настоящее время нашли широкое применение многомерные и объектно-ориентированные модели.
Мы остановимся на более подробном рассмотрении некоторых из них.
Иерархическая сетевая модель строится в виде древовидной структуры. При поиске данных дерево всегда просматривается сверху вниз. Первой СУБД, построенной на базе иерархической модели, стала система IMS, представленная компанией IBM в 1968 г.
Основным недостатком иерархической модели данных является отсутствие универсальности (трудно представить объекты реального мира в виде древовидной структуры с одним корнем), однако она хорошо отражает реальные иерархические связи, существующие между объектами предметной области (структура организации, каталог книг и т.д.).
В экономических информационных системах информация редко укладывается в иерархическую схему, поэтому как ее расширение была сформирована сетевая модель данных. Сетевая модель универсальна и имеет большие возможности по моделированию связей между объектами, в ней происходит объединение нескольких различных иерархий.
Основным ее недостатком является сложность изменения структуры: приходится знать и учитывать при перестройке множество различных связей между разнородными объектами.
Сетевая и иерархические модели являются навигационными. Они разрабатывались в то время, когда главными требованиями являлись эффективность использования внешней памяти и быстрота выполнения поиска и других операций над данными. СУБД, построенные на основе этих моделей, используют физическую реализацию на уровне файлов и записей и в полной мерс независимыми от нее не являются.
Реляционная модель данных для СУБД имеет строгое математическое обоснование в виде теории множеств (реляционная алгебра) и исчислении предикатов (реляционное исчисление).
Основными понятиями реляционных БД являются тип данных, домен, атрибут, кортеж, первичный ключ и отношение.
Тип данных – аналог типа данных в языках программирования. В современных реляционных БД это символьные, числовые, битовые строки, дата и время.
Домен – допустимое потенциальное множество значений данного типа (например, домен "Телефоны" определен как строка символов, но число его значений ограничено только геми строками, которые могут изображать телефонный номер).
Атрибут – величина, характеризующая свойство объекта, явления, процесса.
Основой реляционной модели является отношение (Relation), содержащее информацию об одном классе объектов предметной области и представляющее собой множество элементов, называемых кортежами.
Наглядной формой представления отношения является таблица, в которой значения атрибутов представлены столбцами (поля), а кортежи – строками (записями). База данных представляет собой совокупность таких таблиц. Отношения строятся по правилам, обеспечивающим минимальную избыточность хранения информации, целостность БД, легкость ее модификации.
Можно выделить следующие основные правила формирования отношений в форме таблиц:
- • в таблице не может быть повторяющихся строк;
- • порядок строк и столбцов произвольный;
- • на пересечении столбца и строки может находиться только одно значение.
Первичный ключ – это поле или минимальный набор полей, однозначно идентифицирующих запись. Поиск любого конкретного элемента данных производится по имени таблицы, первичному ключу записи и имени поля.
Первичные ключи используются для идентификации строк в таблице, ускорения работы со строками таблицы, связывания таблиц.
Характерные особенности реляционных СУБД – это ненавигационность и обеспечение целостности.
К достоинствам реляционной модели можно отнести:
- • простоту и доступность для понимания конечным пользователем (единственной информационной конструкцией является таблица);
- • строгие правила, базирующиеся на математическом аппарате;
- • полную независимость данных;
- • для построения запросов и написания прикладных программ нет необходимости знания конкретной организации БД во внешней памяти.
В качестве недостатков реляционной модели можно выделить следующие:
- • более низкая скорость доступа и необходимость большего объема внешней памяти (представляется незначительным, поскольку внешняя память и быстродействие современных компьютеров многократно возросли);
- • большое количество таблиц затрудняет понимание структуры данных;
- • предметную область не всегда можно представить в виде совокупности таблиц.
При построении экономических информационных систем в большинстве случаев используется именно реляционная модель и основанные на ней коммерческие продукты, поэтому для практического освоения взята реляционная СУБД.
К числу СУБД, поддерживающих реляционную модель, относятся MS Access, Dbase, FoxPro, Clipper и др.
Для преодоления недостатков реляционной модели развиваются постреляционная, многомерная и объектно-ориентированная модели.
Постреляционная модель данных – это расширенная реляционная модель, допускающая многозначные поля (поля, состоящие из подзначений). Совокупность значений таких полей рассматривается как таблица, встроенная в основную таблицу. Например, если покупатель в один заказ включает несколько наименований товара, то наименование товара является многозначным полем, и для каждого заказа в этом поле содержится столько значений, сколько различных продуктов имеется в заказе.
Достоинством постреляционной модели является наглядность представления информации и повышение эффективности се обработки, основным недостатком – необходимость решения проблем обеспечения целостности и непротиворечивости хранимых данных, что требует включения в СУБД дополнительных механизмов.
К числу СУБД, поддерживающих постреляционную модель, относятся uniVers, Bubba, Dasdb.
Объектно-ориентированная база данных (ООБД) – база данных, основанная на принципах объектно-ориентированной технологии.
Понятийный аппарат ООБД включает:
- • объекты в смысле "объектов" объектно-ориентированного программирования;
- • классы (понятие "тип данных" реляционной модели заменяется понятиями "класс" и "подкласс");
- • наследование (классы образуют иерархию наследования, заимствуя свойства друг друга);
- • атрибуты (характеристики объекта моделируются его атрибутами);
- • сообщения и методы (каждый класс имеет определенную совокупность методов, классы взаимодействуют друг с другом посредством механизма сообщений);
- • инкапсуляция (внутренняя структура объектов скрыта);
- • идентификаторы объектов – дескрипторы.
Система управления ООБД должна обеспечить постоянное хранение объектов, причем в отличие от традиционной СУБД ООСУБД должна хранить в составе объекта как данные, так и программы (методы).
Каждый объект определенного класса имеет один и тот же набор методов, поэтому методы сохраняются только один раз – как методы класса, а данные для каждого экземпляра объекта хранятся отдельно.
В объектно-ориентированном моделировании не существует развитого математического аппарата, нет универсальной модели данных, отсутствует аналогичный SQL язык запросов высокого уровня, а при доступе к данным используется малоэффективный навигационный подход. Программный интерфейс создания приложения практически отсутствует, поэтому для разработки приложений используются алгоритмические языки программирования.
Объектно-ориентированные возможности появляются в ведущих современных СУБД (Oracle, Poet, Versant, Objectivity).
- [1] В них вводится понятие текущего дерева, текущей записи, и перемещение при поиске может осуществляться путем перехода вдоль связи от текущего объекта к следующему.
- [2] Теорию реляционных баз данных, свободную от недостатков прежних моделей, разработал сотрудник исследовательской лаборатории компании IBM Э. Ф. Кодд и в 1970 г. опубликовал статью, посвященную краткому описанию новой модели.
В сетевой модели данных у родительского элемента может быть несколько потомков, а у дочернего элемента — несколько предков. Записи в такой модели связаны списками с указателями. IDMS («Интегрированная система управления данными») от компании Computer Associates international Inc. — пример сетевой СУБД.
Иерархическая модель структурирует данные в виде древа записей, где есть один родительский элемент и несколько дочерних. Сетевая модель позволяет иметь несколько предков и потомков, формирующих решётчатую структуру.
Сетевая модель позволяет более естественно моделировать отношения между элементами. И хотя эта модель широко применялась на практике, она так и не стала доминантной по двум основным причинам. Во-первых, компания IBM решила не отказываться от иерархической модели в расширениях для своих продуктов, таких как IMS и DL/I. Во-вторых, через некоторое время её сменила реляционная модель, предлагавшая более высокоуровневый, декларативный интерфейс.
Популярность сетевой модели совпала с популярностью иерархической модели. Некоторые данные намного естественнее моделировать с несколькими предками для одного дочернего элемента. Сетевая модель как раз и позволяла моделировать отношения «многие ко многим». Её стандарты были формально определены в 1971 году на конференции по языкам систем обработки данных (CODASYL).