- •Системы управления базами данных введение
- •1. Компоненты субд
- •1.1. Типы и структуры данных
- •1.1.1. Основные типы данных.
- •1.1.2. Обобщенные структуры или модели данных.
- •1.2. Методы доступа к данным.
- •1.2.1.Методы поиска по дереву.
- •2.1. Представление данных с помощью модели "сущность-связь".
- •2.1.1.Назначение модели.
- •2.1.2.Элементы модели.
- •1.2.2.Хеширование.
- •2. Представление данных
- •2.2.Диаграмма "сущность-связь".
- •2.3. Целостность данных.
- •3. Дореляционные модели представления данных.
- •3.1.Иерархическая модель данных.
- •3.1.1.Структура данных.
- •3.1.2.Операции над данными, определенные в иерархической модели:
- •3.1.3.Ограничения целостности.
- •3.2.Сетевая модель данных
- •3.2.1.Структура данных.
- •3.2.2.Операции над данными.
- •3.2.3.Ограничения целостности.
- •4. Реляционный подход к представлению данных
- •4.1.Реляционная модель данных
- •4.1.1.Структура данных.
- •4.1.2.Свойства отношений.
- •4.2.Теория нормальных форм.
- •4.2.1.Функциональные зависимости.
- •4.2.5. Bcnf - нормальная форма Бойса-Кодда.
- •4.2.6. Многозначные зависимости и четвертая нормальная форма (4nf).
- •4.2.7. Зависимости по соединению и пятая нормальная форма (5nf).
- •4.3.Ограничения целостности
- •4.3.1.Целостность сущностей.
- •4.3.2.Целостность ссылок
- •4.4. Реляционная алгебра
- •4.4.1. Операции обработки кортежей.
- •4.4.2. Операции обработки отношений.
- •4.5. Реляционное исчисление.
- •4.6.Язык sql
- •4.7. Вопросы практического программирования.
- •4.8.Навигационный подход к манипулированию данными и персональные субд.
- •4.9.Транзакции, блокировки и многопользовательский доступ к данным.
- •4.10. Определение степени соответствия субд реляционной модели.
- •5. Проектирование реляционных баз данных.
- •5.1. Этапы проектирования данных
- •5.2.Инструментальные средства проектирования информационных систем.
- •5.4.Концептуальное моделирование.
- •5.5.Правила порождения реляционных отношений из модели "сущность-связь"
- •5.5.1. Бинарные связи
- •5.5.3. Иерархические связи.
- •5.6. Проектирование реляционной базы данных на основе декомпозиции универсального отношения.
- •5.7.Обзор некоторых case-систем.
- •5.7.1. Power Designer компании Sybase.
- •5.7.2. Silverrun компании Silverrun Technologies Ltd.
- •5.7.3. BpWin и erWin компании LogicWorks.
- •5.7.4. Designer/2000 компании Oracle.
- •6. Классификация субд.
- •6.1.Ограничения реляционных баз данных.
- •6.2.Постреляционные субд.
- •6.3.Объектно-ориентированные субд.
- •6.3.1. Объектно-ориентированная парадигма.
- •6.3.2. Объектно-ориентированные субд.
- •6.3.3. Стандарт odmg.
- •6.3.4. Объектные расширения реляционных субд. Язык sql-3.
- •6.4. Объектно-реляционные субд.
- •6.5.Нечисловая обработка и ассоциативные процессоры.
- •7. Представление данных по принципу технологии "клиент-сервер".
- •7.1.Архитектура "клиент-сервер".
- •7.1.1. Основные понятия.
- •7.1.2. Модели взаимодействия клиент-сервер.
- •7.1.3. Мониторы транзакций.
- •7.2.Обработка распределенных данных.
- •7.3.Структура сервера базы данных.
- •8.Базы знаний.
- •8.1. Понятие системы баз знаний.
- •8.2.Структура и функции системы баз знаний.
- •8.3.Инструментальные средства построения систем баз знаний.
1.1.2. Обобщенные структуры или модели данных.
Мы рассмотрели несколько типов структур, являющихся совокупностями элементов данных: массив, дерево, запись. Более сложный тип данных может включать эти структуры в качестве элементов. Элементами записи может быть массив, стек, дерево. Обобщенные структуры называют моделями данных, поскольку они отражают представление пользователя о данных реального мира. Любая модель данных должна содержать три компоненты:
структура данных - описывает точку зрения пользователя на представление данных.
набор допустимых операций, выполняемых на структуре данных. Модель данных предполагает, как минимум, наличие языка определения данных (ЯОД), описывающего структуру их хранения, и языка манипулирования данными (ЯМД), включающего операции извлечения и модификации данных.
ограничения целостности - механизм поддержания соответствия данных предметной области на основе формально описанных правил.
В процессе исторического развития в СУБД использовалось следующие модели данных:
иерархическая,
сетевая,
реляционная.
В последнее время все большее значение приобретает объектно-ориентированный подход к представлению данных.
1.2. Методы доступа к данным.
Вопросы представления данных тесно связаны с операциями, при помощи которых эти данные обрабатываются. К числу таких операций относятся: выборка, изменение, включение и исключение данных. В основе всех перечисленных операций лежит операция доступа, которую нельзя рассматривать независимо от способа представления.
В задачах поиска все данные хранятся в памяти с определенной идентификацией и доступ к данным (называемым ключами) однозначно идентифицирует связанные с ключами совокупности данных. Существуют два класса методов, реализующих доступ к данным по ключу:
методы поиска по дереву,
методы хеширования.
1.2.1.Методы поиска по дереву.
Определение: Деревом называется конечное множество, состоящее из одного или более элементов, называемых узлами, таких, что:
между узлами имеет место отношение типа "исходный-порожденный";
есть только один узел, не имеющий исходного. Он называется корнем;
все узлы за исключением корня имеют только один исходный; каждый узел может иметь несколько порожденных;
отношение "исходный-порожденный" действует только в одном направлении, т.е. ни один потомок некоторого узла не может стать для него предком.
Число порожденных отдельного узла (число поддеревьев данного корня) называется его степенью. Узел с нулевой степенью называют листом или концевым узлом. Максимальное значение степени всех узлов данного дерева называется степенью дерева. Если в дереве между порожденными узлами, имеющими общий исходный, считается существенным их порядок, то дерево называется упорядоченным. В задачах поиска почти всегда рассматриваются упорядоченные деревья. Упорядоченное дерево, степень которого не больше 2, называется бинарным деревом. Бинарное дерево особенно часто используется при поиске в оперативной памяти.
Используется следующее правило сравнения строковых переменных: считается, что значение символа соответствует его порядковому номеру в алфавите. Поэтому "И" меньше "К", а "К" меньше "С". Если текущие символы в сравниваемых строках совпадают, то сравниваются символы в следующих позициях.
Бинарные деревья особенно эффективны в случае, когда множество ключей заранее неизвестно, либо когда это множество интенсивно изменяется. Очевидно, что при переменном множестве ключей лучше иметь сбалансированное дерево.
Определение: Бинарное дерево называют сбалансированным, если высота левого поддерева каждого узла отличается от высоты правого поддерева не более чем на 1.
При поиске данных во внешней памяти очень важной является проблема сокращения числа перемещений данных из внешней памяти в оперативную память. По сравнению с бинарными деревьями более выгодными окажутся сильно ветвящиеся деревья. Наибольшее применение в этом случае получили В-деревья (В-balanced)
Определение: В-деревом порядка n называется сильно ветвящееся дерево степени 2n+1, обладающее следующими свойствами:
Каждый узел, за исключением корня, содержит не менее n и не более 2n ключей.
Корень содержит не менее одного и не более 2n ключей.
Все листья расположены на одном уровне.
Каждый нелистовой узел содержит два списка: упорядоченный по возрастанию значений список ключей и соответствующий ему список указателей (для листовых узлов список указателей отсутствует).
Для такого дерева:
сравнительно просто может быть организован последовательный доступ, т.к. все листья расположены на одном уровне;
при добавлении и изменении ключей все изменения ограничиваются, как правило, одним узлом.
В-дерево, в котором истинные значения содержатся только в листьях (концевых узлах), называется В+-деревом. Во внутренних узлах такого дерева содержатся ключи-разделители, задающие диапазон изменения ключей для поддеревьев. Следует отметить, что B- деревья наилучшим образом подходят только для организации доступа к достаточно простым (одномерным) структурам данных. Для доступа к более сложным структурам, таким, например, как пространственные (многомерные) данные в последнее время все чаще используют R-деревья. R-дерево - индексная структура для доступа к пространственным данным. R-дерево допускает произвольное выполнение операций добавления, удаления и поиска данных без периодической переиндексации.
Для представления данных используются записи, каждая из которых имеет уникальный идентификатор. В каждом концевом узле (листе) дерева содержится запись вида (I,tuple-identifier), где I - n-мерный параллелепипед, содержащий указатели на пространственные данные, а каждый элемент в tuple-identifier содержит верхнюю и нижнюю границу параллелепипеда в соответствующем измерении.
Неконцевые узлы содержат записи вида (I,childnode-pointer), где I - минимальный ограничивающий параллелепипед для MBR всех узлов, производных по отношению к данному. сhildnode-pointer - это указатель на производные узлы.
Пусть M и m<=M/2 соответственно максимальное и минимальное количество элементов, которое может быть размещено в узле. Тогда свойства R-дерева можно описать следующим образом:
R-дерево является сильно сбалансированным деревом, т.е. все листья находятся на одном уровне.
Корневой узел имеет, как минимум, двух потомков.
Для каждого элемента (I,childnode-pointer) в неконцевом узле I является наименьшим возможным параллелепипедом, т.е. содержит все параллелепипеды производных узлов.
Каждый концевой узел (лист) содержит от m до M индексных записей.
Для каждой индексной записи (I,tuple-identifier) в концевом узле I является параллелепипедом, который содержит n-мерный объект данных, на который указывает tuple-identifier
