- •Архитектура субд
- •Иерархическая модель данных
- •Сетевая модель данных
- •Реляционная структура данных
- •Реляционная модель данных
- •Понятие отношения и таблицы
- •Представление базы данных
- •Связь между таблицами
- •Манипулирование реляционными данными
- •Основные операции над таблицами и их интерпретация Теоретико-множественные операции реляционной алгебры
- •Специальные операции реляционной алгебры
- •Первая нормальная форма (1nf)
- •Функциональные зависимости.
- •Теорема Хита
- •Третья нормальная форма (3nf)
- •Многозначные зависимости и четвертая нормальная форма (4nf).
- •Структура языка sql
- •Insert — осуществляет вставку строк в таблицу.
- •Типы хранимых процедур
- •Создание, изменение и удаление хранимых процедур
- •Операторы управления явным курсором
- •Атрибуты курсора
- •Типы триггеров
- •Ссылочная целостность
- •Транзакции
- •Использование between
- •Проверка на вхождение во множество in
- •Использование like
- •Предложение having
- •Создание индекса
- •Некластерный индекс
- •Кластерный индекс
- •Уникальный индекс
- •Удаление индекса
- •Изменение таблицы
- •Основные функции группы администратора бд
- •Объектно-ориентированная парадигма.
- •Реализации olap
- •Использование
- •Требования
- •Преимущества, Недостатки
- •Case-средство Erwin
Иерархическая модель данных
Иерархические, или древовидные, структуры данных разработаны и используются достаточно давно. Например, большинство методов индексирования базируются именно на древовидных структурах данных. Иерархическая модель данных близка по своей идее к иерархической структуре данных. Но модель описывает не конкретные методы работы и манипулирования ссылками, а способ логического представления данных, то, какими терминами оперирует проектировщик структуры базы данных, когда отражает реальные зависимости с помощью имеющихся в СУБД механизмов.
Иерархическая модель позволяет строить иерархию элементов. То есть у каждого элемента может быть несколько “наследников” и существует один “родитель”. Для каждого уровня связи вводится интерпретация, зависящая от предметной области и описывающая взаимоотношение между “родителями” и “наследниками”. Каждый элемент представляется с помощью записи. Структура данных, обычно используемая для представления этой записи об элементе, обычно содержит некоторые атрибуты, характеристики каждого элемента.
Попробуем представить себе базу данных для описания тематических сборников по некоторой теме. Прежде всего, выделим уровни иерархии.
Первый уровень - это издательства. Каждое издательство характеризуется своим названием, юридическим адресом, номером счета в банке.
Каждое издательство выпускает несколько сборников. То есть издательство является “родителем” для сборника и связано со сборником соотношением “издает” (“публикует”, “печатает” и т.д.). Для каждого сборника появляются такие атрибуты, как размер, периодичность, цена, ответственный редактор, корректор и т.д.
В каждом сборнике есть несколько статей (хотя бы, одна). То есть сборник и статья связаны соотношением “включает”. Далее, у каждой статьи есть название, авторы.
Авторы представляются отдельным элементом и образуют следующий уровень иерархии. Каждый автор характеризуется фамилией, именем, отчеством, гонораром и т.д. Статьи связаны с автором соотношением “написаны”.
Графическое представление этого примера приведено на Рис.2.2. Элементы нарисованы прямоугольниками, их названия даны обычным шрифтом. Связи нарисованы стрелками и их названия даны курсивом, атрибуты для каждого элемента на этой схеме не показаны - они являются частью элемента данных.
Рис.2.2. Графическое представление иерархической модели данных (справа пример какой-то конкретной базы данных)
Достоинства иерархических СУБД: возможность реализовать быстрый поиск нужных значений, когда условия запроса соответствуют иерархии в схеме базе данных.
Недостатки иерархических СУБД: например, если запрос не соответствует имеющейся иерархии, то и его программирование, и его исполнение, потребуют значительных усилий. Например, попытки реализовать запрос типа “в скольких сборниках статей опубликовал свои статьи какой-либо автор” может оказаться весьма трудной задачей (мы можем искать в направлении от статьи к автору, но не наоборот). Другим недостатком иерархической модели является сложность внесения в нее изменений. Если, по каким-то причинам изменились условия задачи, и модель предметной области перестала быть иерархической (например, в нашем примере, мы хотим иметь не только зависимость авторов от статьи, но и статей от автора), то приведение схемы базы данных в соответствие предметной области становится нетривиальной задачей.
Недостатки иерархической модели проистекают оттого, что данная модель слишком жесткая. Иерархическая модель очень хорошо подходит для устоявшихся предметных областей с четкими зависимостями “родитель-потомок”, то есть к моделям, где есть четкая субординация между понятиями.