- •18 Часов
- •Тема 1 Значение информационных систем и баз данныхв образовании инженера-строителя 4
- •Тема 2 Технология баз данных 7
- •Тема 3 Реляционные базы данных 13
- •Тема 4 Эксплуатация баз данных 19
- •Тема 5 субд в архитектуре "клиент-сервер" 20
- •Значение информационных систем и баз данныхв образовании инженера-строителя
- •Технология баз данных
- •Непосредственное управление данными во внешней памяти
- •Управление буферами оперативной памяти
- •Управление транзакциями
- •Журнализация
- •Поддержка языков бд
- •Ядро субд
- •Компилятор языка бд
- •Подсистема поддержки времени выполнения
- •Утилиты
- •Иерархическая модель
- •Сетевая модель.
- •Реляционная модель
- •Реляционные базы данных
- •Отсутствие кортежей-дубликатов
- •Отсутствие упорядоченности кортежей
- •Отсутствие упорядоченности атрибутов
- •Атомарность значений атрибутов
- •Понятие функциональной зависимости и ключи
- •Типы связей в реляционных базах
- •Связь «один ко многим»
- •Связь «один к одному»
- •Связь «много к одному»
- •Связь «много ко многим»
- •Понятие нормализации
- •Основные свойства нормальных форм
- •Запросы на выборку;
- •Запросы на модификацию данных, или управляющие запросы
- •Запрос на выборку
- •Запросы на изменение
- •Субд в архитектуре "клиент-сервер"
- •Открытые системы
- •Клиенты и серверы локальных сетей
- •Системная архитектура "клиент-сервер"
- •Принципы взаимодействия между клиентскими и серверными частями
- •Преимущества протоколов удаленного вызова процедур
- •Типичное разделение функций между клиентами и серверами
- •Требования к аппаратным возможностям и базовому по клиентов и серверов
-
Компилятор языка бд
Основной функцией компилятора языка БД является компиляция операторов языка БД в некоторую выполняемую программу. Основной проблемой реляционных СУБД является то, что языки этих систем (а это, как правило, SQL) являются непроцедурными, т.е. в операторе такого языка специфицируется некоторое действие над БД, но эта спецификация не является процедурой, а лишь описывает в некоторой форме условия совершения желаемого действия (вспомните примеры из первой лекции). Поэтому компилятор должен решить, каким образом выполнять оператор языка прежде, чем произвести программу. Результатом компиляции является выполняемая программа.
-
Подсистема поддержки времени выполнения
Эта исполняемая программа представляемая в некоторых системах в машинных кодах, но более часто в выполняемом внутреннем машинно-независимом коде. В этом случае реальное выполнение каждого оператора производится с привлечением подсистемы поддержки времени выполнения, представляющей собой, по сути дела, интерпретатор этого внутреннего языка.
-
Утилиты
Наконец, в отдельные утилиты БД в СУБД выделяют такие процедуры, которые слишком нерационально выполнять с использованием языка БД, например, загрузка и выгрузка БД, сбор статистики, глобальная проверка целостности БД и т.д. Утилиты программируются с использованием интерфейса ядра СУБД, а иногда даже с проникновением внутрь ядра.
Модели данных
Способ отображения объектов, атрибутов и связей на структуры данных определяется моделью данных. Принято выделять следующие классические модели данных:
-
иерархические,
-
сетевые
-
реляционные.
Соответственно, речь идет об иерархических, сетевых, реляционных СУБД.
-
Иерархическая модель
Иерархическая модель позволяет строить базы данных с иерархической древовидной структурой. Эта структура основана принципе подчиненности, а с точки зрения структур данных - на классическом однонаправленном ориентированном графе и определяется как дерево, образованное парными связями.
На самом верхнем уровне иерархии имеется один узел (вершина), называемый корнем. Все другие вершины, кроме корня, связываются (подчиняются) только с одной вершиной графа на более высоком (следующем) уровне иерархии.
На самом нижнем уровне иерархии имеется несколько (конечное число) вершин, у которых нет подчиненных вершин, они называются терминалами.
Все вершины связаны одинаково: у каждой есть один «начальник» и несколько «подчиненных», то есть связь «один» (начальник) ко «многим» (подчиненным). Поэтому связи не нуждаются в именовании и описании – они одинаковые. Нужно именовать и описывать лишь вершины на каждом заданном уровне.
Основное достоинство иерархической модели - простота описания и понимания иерархических структур реального мира.
Пример предметной области, идеально отвечающей по структуре подчиненности иерархической модели – система управления армией («дивизионная модель»), родовидовые отношения в живой природе, генеалогические деревья поколений др.
-
Сетевая модель.
Каждое дерево-граф иерархической модели имеет связи только по вертикали. Если в структуре модели предметной области каждый порожденный («подчиненный») элемент может иметь более одного исходного («начальника»), то такая модель называется сетевой. В ней каждый элемент может быть связан с любым другим элементом без ограничений. Сетевая БД состоит из многих наборов записей, соответствующих экземплярам объектов предметной области, и наборов связей между ними. Связи уже разные по типу. В каждом наборе есть элементы подчиненности (запись «владелец» и запись «член» образуют набор). Можно себе представлять эту структуру как несколько деревьев, связанных по «горизонтали».
Каждую связь и вершину нужно именовать и описывать в наборах, в которые она входит. Это структура, которая гораздо более сложна для понимания и программирования.