- •Лекція 8. Основи баз даних
- •1 Базы данных и файловые системы Основи баз даних
- •Файловые системы и информационные системы
- •Потребности и задачи информационных систем
- •Пример Простая ис, которая предназначена для учета сотрудников некоторой организации. Она должна:
- •2 Функции субд
- •Типовая организация субд
- •Субд различных информационных моделей
- •1 Субд на инвертированных (преобразованных) списках
- •2Субд иерархического типа
- •3Сетевые субд
- •Реляционные базы данных
- •Фундаментальные свойства отношений
- •Реляционная модель данных
- •Манипуляционная часть рмд
- •Реляционная алгебра
- •Теоретико-множественные операции ра
- •Специальные реляционные операции
- •Реляционное исчисление
- •Исчисление кортежей
- •Проектирование реляционных бд
- •Функциональная зависимость
- •Полная функциональная зависимость
- •Транзитивная функциональная зависимость
- •Семантическое моделирование данных
- •Моделирование по схеме сущности – связи
- •Нормализация er-диаграмм
- •Внутренняя организация реляционных субд
- •1 Хранение отношений
- •2 Индексы
- •3 Хеширование
- •4 Журнальная информация
- •5 Служебная информация
- •Обработка с помощью транзакций
- •Сериализация транзакций
- •Синхронизационные захваты
- •Гранулированные синхронизационные захваты
- •Временные метки
- •Журнализация и откаты
- •Индивидуальный откат транзакций
- •Восстановление при мягком сбое
- •Теневой механизм
- •Журнализация постраничных изменений
- •Обзор языка рбд sql
Реляционное исчисление
Рассмотрим конкретный пример. Есть БД, состоящая из двух отношений: Сотрудники (Сотр_№, Сотр_имя, Сотр_зарпл, Сотр_отд);
Отделы(Отд_№, Отд_ кол, Отд_нач).
Задача: узнать имена и номера сотрудников, являющихся начальниками отделов, в которых работает более 50 человек.
Подход, основанный на РА, состоит в написании серии операций, результатами которых будут отношения. Результатом выполнения серии операций будет отношение Начальники(Сотр_имя, Сотр_№). Операции:
соединение Сотрудники и Отделы по условию Сотр_№ = Отд_нач
;ограничение
;проекция
.
Непроцедурный подход состоит в том, чтобы написать требование, которому должен удовлетворять результат. Это требование можно записать так: выдать Сотр_имя, Сотр_№ для сотрудников таких, что существует отдел с таким же значением Отд_нач, как и Сотр_№ и значением Отд_кол 50. Те. Здесь указана характеристика результата. В этом случае СУБД должна сама решить, какую последовательность операций надо выполнить, чтобы получить желаемый результат. Если это высказывание построено по определённым правилам, то существуют простые правила перевода высказывания в последовательность реляционных операций.
Непроцедурный подход основан на РИ. Здесь выделяют 2 базовых понятия:
переменная, у которой должна быть установлена область определения;
правильно построенная формула (WFF – Well Formed Formula), в которой учитываются переменные, кванторы и предикаты. Квантор – логический эквивалент слов ВСЕ, ДЛЯ ЛЮБОГО, СУЩЕСТВУЕТ и т.д. Предикат – оператор, который формализует логическое значение квантора, т.е. ставит этому квантору в соответствие значение ДА или НЕТ. Т.о. предикат – это свойство.
Область определения может задаваться как множество кортежей, и тогда говорят об исчислении кортежей, или как домен, и тогда говорят об исчислении доменов.
Исчисление кортежей
Определение кортежной переменной – это указание, из какого отношения она принимает значение.
Ссылки типа СОТРУДНИК Сотр_зарпл или СОТРУДНИК.Сотр_имя говорят о том, что имея кортежную переменную, можно получить доступ к атрибутам.
WFF – правильно построенная формула. Она может быть преобразована в набор реляционных операций. WFF служит для выражения условий, накладывающихся на кортежные переменные. Основой WFF являются простые сравнения – операции сравнения скалярных значений. Такими скалярными значениями могут быть атрибуты кортежных переменных или константы:
Другим вариантом WFF являются формулы из простых сравнений, объединённых логическими связями:
WFF может быть построена с помощью кванторов:
Все переменные, которые входят в WFF, не использующие кванторов, не являются свободными. «Свобода» фактически означает, что если при вычислении WFF получено .t., то это значение кортежной переменной будет входить в результирующее отношение. Т.е. свободная переменная определяет какое-то результирующее отношение. Переменная, которая входит в WFF, построенную с помощью кванторов – связанная переменная. Связанность означает, что данная переменная не видна за пределами WFF. Т.е. при вычислении формулы используется не одно значение этой переменной, а вся область определения, но в результирующем отношении эта область не видна.
Целевые списки (target list)
WFF обеспечивают средства, с помощью которых можно выбрать кортежи из отношений. Для того, чтобы можно было реально работать с БД нужно ещё одно средство. С помощью него будет определяться набор атрибутов и имена атрибутов результирующего отношения. Такой набор называется целевым списком. Целевой список состоит из элементов, каждый из которых может иметь 3 различные формы:
var.attr (свободная переменная, соответствующая WFF . имя атрибута отношения, на котором определена var);
var (имя свободной переменной)– эквивалентно наличию списка, включающего все атрибуты;
new_name= var.attr; new_name – новое имя соответствующего атрибута результирующего отношения.
Этот вариант требуется в том случае, когда имеется несколько свободных переменных с одинаковой областью определения.
Target_list WHERE wff
Значением этого выражения является отношение. В нём тело определяет WFF, а схема отношения определяется целевым списком.
Логике РИ следует грамматика языка SQL.
В РИ доменов тоже есть переменные, но областью их определения являются не отношения, а домены. Поэтому в исчислении доменов роль WFF выполняют выражения, которые выражают условия членства.
