Тарифы Услуги Сим-карты

Базы данных. Модели данных. Типы моделей баз данных. Развитие языка SQL

Известны три типа моделей описания баз данных (рис.3.7):

ü иерархическая;

ü сетевая;

ü реляционная.

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

Рис 3.7. Основные типы моделей данных

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

Достоинством модели является:

· простота ее построения;

· легкость понимания сути принципа иерархии;

· наличие промышленных СУБД, поддерживающих данную модель.

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

Рис. 3.8. Иерархическая модель данных

2. Сетевая модель описывает элементарные данные и отношения между ними в виде ориентированной сети. Это такие отношения между объектами, когда каждый порожденный элемент имеет более одного исходного и может быть связан с любым другим элементом структуры рис.3.9).

Сетевые структуры могут быть многоуровневыми, иметь разную степень сложности.

База данных, описываемая сетевой моделью, состоит из областей (области - из записей, а записи - из полей).

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

Рис.3.9. Сетевая модель данных

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

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



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

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

Рис.3.10 Реляционная модель данных

В зависимости от содержания отношения реляционные базы данных бывают:

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

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



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

· простота построения;

· доступность понимания;

· возможность эксплуатации базы данных без знания методов и способов ее построения;

· независимость данных;

· гибкость структуры и др.

Недостатки реляционной модели:

· низкая производительность по сравнению с иерархической и сетевой моделями;

· сложность программного обеспечения;

· избыточность элементов.

В последние годы все большее признание и развитие получают объектно-ориентированные базы данных (ООБД).

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

Традиционными областями применения объектных СУБД являются системы автоматизированного проектирования (САПР), моделирование, мультимедиа.

К объектным СУБД можно отнести СУБД ONTOS - одного из лидеров направляя ООБД, Jasmine. ODB-Jupiter - первый российский продукт такого рода, ORACLE 8.0.

Базы знаний - это специальные компьютерные системы, основанные на обобщении, анализе и оценке знаний высококвалифицированных специалистов-экспертов.

Например, «КонсультантПлюс», «Гарант Сервис».

Основными элементами информационной технологии, используемой в БЗ являются:

Интерфейс пользователя,

База знаний,

Интерпретатор,

Модуль создания системы,

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

Выходная информация включает не только само решение, но необходимые объяснения, которые могут быть двух видов:

1) по запросам, т.е. те, которые пользователь может получить в любой момент;

2) которые пользователь получает уже при выдаче решения, т.е. то, каким образом получается решение (например, каким образом влияет на прибыль и издержки выбранная цена и т.д.).

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

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

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

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

Контрольные вопросы

1. В чем различие между информацией и данными?

2. Как выражается адекватность информации?

3. Назовите признаки классификации экономической информации.

4. Что такое структура информации?

5. Чем показатель отличается от реквизита?

6. Укажите основные свойства информации.

7. Что входит в состав информационного обеспечения?

8. Чем внемашинное информационное обеспечение отличается от внуримашинного?

9. Какие бывают классификаторы и с какой целью разрабатываются классификаторы?

10. Каково назначение штрихового кодирования? В чем его особенности?

11. Определите понятия «классификаторы» и «коды».

12. Чем автоматизированные банки данных отличаются от баз знаний?

13. Что входит в состав автоматизированных банков данных?

14. Чем клиент-серверная архитектура отличается от файл-серверной?

15. Укажите основные характеристики СУБД.

16. Что подразумевает обеспечение целостности данных?

17. Охарактеризуйте типы моделей описания баз данных.

4. информационные технологии в управлении и экономике

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

Известны три разновидности инфологических моделей баз данных:

· иерархическая;

· сетевая;

· реляционная.

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

Достоинствами иерархической модели являются простота и быст­родействие. Запрос к такой базе обрабатывается быстро, поскольку поиск данных происходит по одной из ветвей дерева, опускаясь от родительских объектов к дочерним или наоборот (поиск вверх по дереву обрабатывается дольше).

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

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

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

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

Сетевые базы считаются инструментами программистов. Так, например, чтобы получить ответ на запрос: «Какой товар наиболее часто заказывает компания X?», нужно написать некоторый программный код для навигации по базе данных. Реализация пользовательских запросов может затянуться, и к моменту появления запрошенной информации она перестанет быть актуальной.

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



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

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

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

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

В настоящее время большинство СУБД использует табличную (реляционную) модель данных.

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

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

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

Недостатки реляционной модели:

· Предметную область не всегда можно представить в виде совокупности таблиц.

· Низкая скорость обработки запросов по сравнению с другими моделями, а также требование большего объема внешней памяти.

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


Лекция 5

Базы данных информационных систем

База данных. Классификация и характеристика СУБД.

Основные модели баз данных.

Базы данных в экономических системах

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

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

Задачами СУБД являются:

Хранение информации в структурированном виде;

Обновление информации по мере необходимости;

Поиск нужной информации по определенным критериям;

Выдача информации пользователю в удобном для него виде;

Устранение избыточности данных;

Поддержка языков БД.

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



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

Централизованные СУБД;

Распределенные СУБД.

Централизованная СУБД - система управления базой данных, которая хранится в памяти одной вычислительной системы.

Системы централизованных баз данных с сетевым доступа предполагают две основные архитектуры:

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

¾ архитектура клиент-сервер . Каждый из подключенных к сети и составляющих эту архитектуру компьютеров играет свою роль: сервер владеет и распоряжается информационными ресурсами системы, клиент имеет возможность пользоваться ими.

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

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

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

Безопасность данных в базе данных достигается:

¾ шифрованием прикладных программ;

¾ шифрованием данных;

¾ защитой данных паролем;

¾ ограничением доступа к базе данных.

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

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

¾ "один к одному";

¾ "один ко многим";

¾ "многие ко многим".

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

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

Связь типа "многие-ко-многим" выражает такое отношение между таблицами, когда многие записи одной таблицы могут быть связаны со многими записями другой таблицы.

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

Рис. 1 – Иерархическая модель баз данных

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

Рис. 2 – Сетевая модель баз данных

Реляционная модель баз данных (РМД) реализует табличный способ.

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

Отношения обладают следующими свойствами :

¾ каждый элемент таблицы представляет собой один элемент данных (повторяющиеся группы отсутствуют);

¾ элементы столбца имеют одинаковую природу, и столбцам однозначно присвоены имена;

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

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

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

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

¾ простота построения;

¾ доступность понимания;

¾ возможность эксплуатации базы данных без знания методов и способов ее построения;

¾ независимость данных;

¾ гибкость структуры и др.

Недостатки реляционной модели :

¾ низкая производительность по сравнению с иерархической и сетевой модели;

¾ сложность программного обеспечения;

¾ избыточность элементов.

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

Объектом называют почти все, что представляет интерес для решения поставленной задачи на компьютере. Это может быть экранное окно, кнопка в окне поле для ввода данных, пользователь программы, сама программа и т.д. Тогда любые действия можно привязать к такому объекту, а также описать, что произойдет с объектом при выполнении опреде6ленных действий (например, при „нажатии“ кнопки). Многократно используемый объект можно сохранить и применять его в различных программах.

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

Свойство - это характеристика, с помощью которой описывается внешний вид и работа объекта.

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

Метод - это функция или процедура, управляющая работой объекта при его реакции на событие.

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

Темы: логические модели баз данных, идентификация объектов и записей, поиск записей.

1. Иерархическая и сетевая модели данных.

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

Иерархическая модель позволяет строить базы данных с древовидной структурой. В них каждый узел содержит свой тип данных (сущность) На верхнем уровне дерева в этой модели имеется один узел — «корень», на следующем уровне располагаются узлы, связанные с этим корнем, затем узлы, связанные с узлами предыдущего уровня и т д., причем каждый узел может иметь только одного предка (рис. 1)

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

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

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

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

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

Желательно отличать простые и сложные сетевые структуры.

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

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


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

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

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

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

2. Идентификация объектов и записей

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

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

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

Отдельный объект всегда уникален, поэтому запись, содержащая данные о нем, также должна иметь уникальный идентификатор, причем никакой другой объект не должен иметь такой же идентификатор. Поскольку идентификатор — суть значение элемента данных, в некоторых случаях для обеспечения уникальности требуется использовать более одного элемента. Например, для однозначной идентификации записей о дисциплинах учебного плана необходимо использовать элементы СЕМЕСТР и НАИМЕНОВАНИЕ ДИСЦИПЛИНЫ, так как возможно преподавание одной дисциплины в разных семестрах.

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

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

3. Поиск записей

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

Для этого можно использовать следующие способы:

Задать машинный адрес данных и в соответствии с физическим форматом записи прочитать значение. Это случаи, когда программист должен быть «навигатором».

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Сегодня наиболее распространены реляционные модели, которые будут подробно рассмотрены в главе 3.

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

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

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

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

3. Реляционная модель. Реляционная модель появилась вследствие стремления сделать базу данных как можно более гибкой. Данная модель предоставила простой и эффективный механизм поддержания связей данных.

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

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

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

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

5.3.3 Модели данных и концептуальное моделирование

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

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

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

· Управляющая часть, определяющая типы допустимых операций с данными (сюда относятся операции обновления и извлечения данных, а также операции изменения структуры базы данных).

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

Цель построения модели данных заключается в представлении данных в понятном виде. Если такое представление возможно, то модель данных можно будет легко применить при проектировании базы данных. Для отображения архитектуры ANSI-SPARC можно определить следующие три связанные модели данных:

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

· концептуальную модель данных, отображающую логическое (или обобщенное) представление о данных, независимое от типа выбранной СУБД;

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

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

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

    • Модель типа "сущность-связь", или ER-модель (Entity-Relationship model).
    • Семантическая модель.
    • Функциональная модель.
    • Объектно-ориентированная модель.

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

Модели данных на основе записей. В модели на основе записей база данных состоит из нескольких записей фиксированного формата, которые могут иметь разные типы. Каждый тип записи определяет фиксированное количество полей, каждое из которых имеет фиксированную длину. Существует три основных типа логических моделей данных на основе записей: реляционная модель данных (relational data model), сетевая модель данных (network data model) и иерархическая модель данных (hierarchical data model).