В СУБД можно выделить несколько основных компонентов: данные, пользователи, аппаратное обеспечение, программное обеспечение, процедуры.
Данные являются наиболее важным компонентом.
Для хранения данных и функционирования базы необходимо аппаратное обеспечение – набор физических устройств (ПК, сеть), на которых существует база и СУБД.
Для того, чтобы можно было работать с данными, кроме аппаратного обеспечения необходимо иметь операционную систему, сетевое программное обеспечение, программное обеспечение самой СУБД и прикладные программы-приложения. Прикладные программы пишутся программистами на одном из языков высокого уровня (Pascal, C, VB) для нужд конкретной организации. Такие программы используют средства СУБД для обращения к данным в базе и их обработки, создавая различные свойственные данной организации формы, отчеты.
Среди пользователей базой данной можно выделить 4 категории лиц: администраторы данных, администраторы баз данных, разработчики баз данных, непосредственно сами пользователи.
Администраторы данных работают с данными с самого начала процесса ее создания. Отвечают за сбор информационных потребностей данной организации, проектирование будущей базы.
Администратор базы данных отвечает за физическую реализацию базы, обеспечение безопасности, сопровождает базу в процессе ее эксплуатации, следит за достоверностью информации в базе и т.д.
Разработчики баз данных – категория лиц, которые работают с ней только в процессе ее разработки по проекту, созданному администратором данных.
Пользователи – это конечные пользователи, ради которых база проектировалась, создавалась и будет работать. Их часто называют клиентами.
СУБД является достаточно сложным видом программного обеспечения, поэтому в составе СУБД можно выделить ряд программных компонентов:
– ядро СУБД, которое отвечает за управление данными во внешней памяти, управление буферами оперативной памяти, транзакциями, журнализацию. Это главная часть СУБД. Ядро обладает собственным интерфейсом, недоступным пользователю напрямую.
– компилятор языка БД (обычно SQL), предназначенный для работы с данными.
– набор утилит.
Лекция 2. Модели данных
Первые СУБД использовали иерархическую модель данных. Типичным представителем СУБД, поддерживаемых данный вид моделей (наиболее известным и распространенным), является Information Management System (IMS) фирмы IBM. Первая версия появилась в 1968 г. и была создана для поддержки лунного проекта «Аполлон» (управление огромного количества деталей, иерархически связанных между собой).
Структурная часть
Основными информационными единицами являются сегмент, поле дерево. Поле данных – наименьшая неделимая поименованная информационная единица, сегмент (запись) образуется из конкретных значений полей данных, тип записи – набор взаимосвязанных сегментов одного уровня, дерево – набор записей данного типа (таблица).
Иерархическая модель базируется на теории графов и представляет собой древовидный граф. Вершины графа – деревья базы данных, дуги, соединяющие вершины – связь «предок – потомок». Иерархическая модель из-за своего внешнего сходства часто называют деревом или набором деревьев. В вершине иерархии лежит корень дерева, ответвления – листья дерева.
Между типами записи поддерживаются связи.
База данных с такой схемой могла бы выглядеть следующим образом:
Примерами типичных операторов манипулирования иерархически организованными данными могут быть следующие:
· Найти указанное дерево БД (например, отдел 310);
· Перейти от одного дерева к другому;
· Перейти от одной записи к другой внутри дерева (например, от отдела - к первому сотруднику);
· Перейти от одной записи к другой в порядке обхода иерархии;
· Вставить новую запись в указанную позицию;
· Удалить текущую запись.
В иерархической модели используются два метода доступа к данным: прямой порядок обхода дерева и обратный порядок. Прямой обход осуществляется сверху вниз, начинается с корня и постепенно делается обход всех предков в направлении сверху-вниз, слева-направо. Обратный подход начинается с доступа к самым нижним сегментам с постепенным переходом снизу-вверх, слева-направо.
Целостность связи поддерживается между предками и потомками. Основное правило: никакой потомок не может существовать без своего родителя.
Кроме того, иерархическая модель обладает следующими свойствами:
1. каждый потомок имеет только одного предка;
2. предок может не иметь потомков.
К достоинствам иерархической модели данных относятся эффективное использование памяти компьютера и высокие временные показатели выполнения операций над данными. Недостатком иерархической модели является ее громоздкость для обработки информации с достаточно сложными связями.
Примеры иерархических СУБД: Ока, ИНЭС, МИРИС, DataEdge
Сетевая модель
Сети – естественный способ представления реальных отношений между объектами. Сетевая модель также опирается на теорию графов.
Появились в 70-х годах XX века. ТипичнымипредставителямиявляютсяСУБД Integrated Database Management System (IDMS) компании Cullinet Software, Inc. и Integrated Data Store (IDS) фирмы General Electric.
Сетевой подход к организации данных является расширением иерархического. В иерархических структурах запись-потомок должна иметь в точности одного предка; в сетевой структуре данных потомок может иметь любое число предков.
Основными элементами сетевой базы данных являются элемент данных, агрегат данных, запись, набор.
Элемент данных – наименьшая неделимая поименованная информационная единица, доступная пользователю. Элемент данных может иметь свой тип. Агрегат данных – поименованная совокупность элементов данных внутри записи (дата – день, месяц, год).
Запись – поименованная структура, содержащая элементы данных (запись в реляционной таблице).
Тип записей – это совокупность логически связанных экземпляров записей, моделирует некоторый класс объектов реального мира.
Набор – это поименованная двухуровневая иерархическая структура, которая выражает связи между двумя типами записей (один к одному, один ко многим).
На формирование типов связи не накладываются особые ограничения; возможны, например, следующие ситуации:
– Данный тип записи может быть предком для любого числа связей.
– Данный тип записи может быть потомком в любом числе связей.
– Может существовать любое число связей с одним и тем же типом записи предка и одним и тем же типом записи потомка.
– Типы записи X и Y могут быть предком и потомком в одной связи и потомком и предком - в другой.
– Предок и потомок могут быть одного типа записи.
– Между двумя типами записей может быть любое количество наборов (преподаватель может не только преподавать, и быть куратором этой группы).
Простой пример сетевой схемы БД:
Таким образом, сетевая база данных – поименованная совокупность записей различного типа и наборов, содержащих связи между ними.
Примерный набор операций может быть следующим:
– Найти конкретную запись в наборе однотипных записей (инженера Сидорова);
– Перейти от предка к первому потомку по некоторой связи (к первому сотруднику отдела 310);
– Перейти к следующему потомку в некоторой связи (от Сидорова к Иванову);
– Перейти от потомка к предку по некоторой связи (найти отдел Сидорова);
– Создать новую запись;
– Уничтожить запись;
– Модифицировать запись;
– Включить в связь;
– Исключить из связи;
– Переставить в другую связь и т.д.
Достоинством сетевой модели данных является возможность эффективной реализации по показателям затрат памяти и оперативности. В сравнении с иерархической моделью сетевая модель предоставляет большие возможности по созданию и моделированию различных связей между сущностями реального мира (предметной области). Недостатком сетевой модели является высокая сложность и жесткость схемы данных, сложность для понимания и выполнения обработки информации обычным пользователем.
Сложность практического использования иерархических и сетевых СУБД, желание пользователей оперировать более крупными объектами, чем элементы данных заставили искать иные способы представления данных и послужило причиной возникновения новой структуры данных – реляционной (табличной). Работа с таблицами понятна и привычна каждому пользователю. Создателем реляционной модели является математик, сотрудник фирмы IBM Э.Ф. Кодд (1970 г.). Он же ввел два языка манипулирования данными SQL и QBE.
Э.Кодд предложил использовать для обработки данных аппарат теории множеств (объединение, пересечение, разность). Он показал, что любое представление данных сводится к совокупности двумерных таблиц.
Структурная часть
Реляционная база данных представляет собой набор таблиц (которые Кодд назвал отношениями), каждая из которых имеет уникальное имя и состоит из строк – записей (кортежей) и столбцов – полей (атрибутов). Каждая запись представляет объект реального мира. Свойства объекта, его характеристики определяются значениями полей. Каждое поле имеет имя, тип и размер данных, хранимых в нем. Имена полей вынесены в шапку таблицы.
Понятие тип данных в реляционной модели данных полностью адекватно понятию типа данных в языках программирования. Обычно в современных реляционных БД допускается хранение символьных, числовых данных, битовых строк, специализированных числовых данных (таких как "деньги"), а также специальных "темпоральных" данных (дата, время, временной интервал).