Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИСЭ_курс лекций_для Ф-10-С(И6).doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
1.19 Mб
Скачать

4.2. Классификация баз данных и виды моделей данных

По технологии обработки данных базы подразделяются на централизованные и распределенные. Централизованная база данных хранится в памяти одной вычислительной системы (машины). Такой способ использования часто применяется в локальных сетях. Распределенная база состоит из нескольких, возможно пересекающихся и даже дублирующих друг друга частей, хранимых в различных ЭВМ сети.

По способу доступа базы разделяются на базы данных с локальным доступом и базы данных с сетевым (удаленным) доступом.

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

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

  • объект;

  • средство;

  • время;

  • связь.

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

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

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

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

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

Рис. 4.1. Основные структурные единицы базы данных

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

В основе любой базы данных лежит модель данных, т.е. их информационная структура. Модель базы данных — это множество структур данных и операций манипулирования с этими структурами. Если БД не содержит никаких внешних данных, в ней все равно имеется информация. Эта информация — структура самой базы. Структура определяет методы занесения данных и хранения их в базе.

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

  • объектные модели данных;

  • модели данных на основе записей;

  • физические модели данных.

Наибольшее распространение получили модели данных на основе записей. В них БД состоит из нескольких записей фиксированного формата и разных типов. Информационные модели данных на основе записей подразделяются на:

  • теоретико-графовые (ТГ):

  • иерархические модели;

  • сетевые модели;

  • теоретико-множественные (ТМ):

    • реляционные модели.

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

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

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

Первые системы управления базами данных использовали иерархическую модель данных. Самой известной СУБД, использующей модель данных этого типа, является система фирмы IBM — Information Management System (IMS), первая версия которой появилась в 1968 году.

Рис. 4.2. Иерархическая БД

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

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

  • имеется только одна вершина графа — корень, в которую не заходит ни одно ребро;

  • в вершины -го уровня заходит одно ребро -го уровня, исходят из этих вершин ноль, один или несколько порожденных вершин, называемых потомками;

  • единственный проход к порожденной вершине лежит через ее исходную вершину;

  • каждый потомок имеет только одного предка;

  • нет замкнутых петель и циклов;

  • сегмент, у которого нет потомков, называется листовым сегментом.

При работе с древовидной структурой используются два метода доступа ко всем вершинам внутри дерева: прямой порядок обхода дерева (от корня с нисходящим обходом поддеревьев до нужного уровня) и обратный порядок обхода дерева ( от -го уровня с восходящим обходом поддеревьев до корня).

Рис. 4.3. Сетевая БД

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

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

Типичным представителем СУБД, использующих сетевую модель данных, является Integrated Database Management System (IDMS) компании Cullinet Software, Inc., предназначенная для использования на машинах фирмы IBM.

Рис. 4.4. Основные структуры сетевой модели данных

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

Сетевой граф БД устроен значительно сложнее иерархического и имеет следующие свойства:

  • БД может содержать любое количество наборов и записей;

  • между двумя типами записей может быть любое количество наборов;

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

  • только один тип записи может быть владельцем в каждом наборе;

  • типы наборов могут образовывать циклическую структуру;

  • один и тот же тип записи может быть владельцем нескольких типов наборов и одновременно может быть членом нескольких типов наборов.

Недостатком сетевой модели является сложность ее реализации.

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

Создатель реляционной модели — сотрудник фирмы IBM Э.Ф. Кодд1. Одним из основных преимуществ реляционной модели является ее однородность. Все данные рассматриваются как хранимые в таблицах и только в таблицах. Каждая строка такой таблицы имеет один и тот же формат.

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

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

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

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

Основные теоретические результаты реляционного подхода были получены в 70-е годы XX столетия. Большой вклад в развитие реляционной алгебры и нормализации отношений внес Э.Ф. Кодд. В частности в статье, опубликованной в журнале "Computer Word" он сформулировал двенадцать правил, которым должна соответствовать настоящая реляционная база данных.

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

  • ограниченность реляционных БД при использовании, например, в системах автоматического проектирования (САПР), в которых используются очень сложные структуры;

  • ограниченные возможности адекватного отражения семантики предметной области.

Итак, реляционная БД — это конечный набор отношений. Отношения используются для представления объектов и для представления связей между объектами. Каждое отношение — это двумерная таблица, состоящая из строк и столбцов, причем строки соответствуют записям, а столбцы атрибутам.

Атрибут — это поименованный столбец отношения. Свойства объекта, его характеристики определяются значениями атрибутов.

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

Каждая реляционная таблица, представляя двумерный массив (см. рис. 4.1), обладает следующими свойствами:

  • каждый элемент таблицы — один элемент данных;

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

  • каждый столбец имеет уникальное имя;

  • одинаковые строки в таблице отсутствуют;

  • порядок следования строк и столбцов произвольный.

Рассмотрим основные свойства полей БД и используемые типы данных на примере реляционной СУБД Microsoft Access. В ней все поля имеют следующие основные свойства:

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

  • тип поля — определяет тип данных, содержащихся в данном поле;

  • размер поля — задает предельную длину поля (в символах);

  • формат поля — определяет способ форматирования данных в адресах памяти, принадлежащих полю;

  • значение по умолчанию — это значение вводится в адреса поля автоматически и является средством автоматизации вода данных;

  • условие на значение — ограничение, используемое для проверки правильности ввода данных;

  • сообщение об ошибке — текстовое сообщение, выдаваемое при попытке ввода в поле ошибочных данных;

  • обязательное поле — свойство, определяющее обязательность заполнения данных этого поля;

  • индексированное поле — свойство, ускоряющее операции по поиску и сортировке записей и проверяющее записи на наличие дублирования данных.

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

  • текстовый — тип, используемый для хранения текста длиной до 255 символов;

  • поле MEMO — специальный тип для хранения больших объемов текста (до 65 535 символов). Физически такой текст хранится не в поле, а в другом месте базы данных, в поле же хранится лишь указатель на этот текст;

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

  • дата/время — тип данных для хранения календарных дат и текущего времени;

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

  • счетчик — специальный тип данных для натуральных чисел с автоматическим наращиванием. Используется для порядковой нумерации записей;

  • логический — тип для хранения логических величин;

  • поле объекта OLE — специальный тип данных, предназначенный для хранения мультимедийных объектов. Эти объекты, как и объекты полей MEMO, хранятся в специальном месте БД, а в поле объекта OLE хранится лишь ссылка на этот адрес;

  • гиперссылка — специальное поле для хранения адресов Web-объектов Интернета. При щелчке на ссылке происходит запуск браузера и воспроизведение объекта в его окне.

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

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