
- •Введение. Цели и задачи. Изучение базы и банков данных
- •Реляционные базы данных
- •Реляционная база данных
- •Функции субд. Типовая организация субд
- •Типовая организация субд
- •Базисные средства манипулирования реляционными данными
- •Реляционная алгебра
- •Общая интерпретация реляционных операций
- •Особенности теоретико-множественных операций реляционной алгебры
- •Реляционное исчисление
- •Целостность сущности и ссылок
- •Субд в архитектуре клиент-сервер
- •Сервера баз данных
- •Типичные распределения функций между клиентами и серверами
- •Оптимизация запросов
- •Стадии процесса оптимизации запросов
- •Язык реляционных баз данных sql
- •Типы данных
- •1) Числовые целые типы данных.
- •2) Нецелочисленные типы данных.
- •3) Денежные типы данных.
- •4) Типы данных для хранения информации о времени.
- •5) Бинарные типы данных.
- •6) Символьные типы данных.
- •7) Текстовые типы данных.
- •8) Специальные типы данных.
- •Управляющие конструкции Transact sql
- •If...Else
- •Логические операторы
- •Создание, модификация и удаление таблиц
- •Определение идентификационной колонки (Identity)
- •Создание таблиц средствами transact sql
- •Изменение структуры таблицы при помощи Transact-sql
- •Управление данными
- •Использование insert
- •Извлечение данных
- •Раздел into предназначен для сохранения результата, выполнения запроса в заданной таблице.
- •Изменение данных
- •Хранимые процедуры
- •Создание хранимых процедур
- •1. Определение типа создаваемой хранимой процедуры.
- •2. Определение входных и выходных параметров хранимой процедуры.
- •3. Разработка кода хранимой процедуры.
- •Управление процессом компиляции хранимой процедуры
- •Управление автоматическим выполнением хранимых процедур
- •Модификация хранимой процедуры
- •Удаление хранимых процедур
- •Использование индексов
- •Создание индексов
- •Использование представлений
- •Создание триггеров
- •Использование курсора
- •Управление правами доступа к объектам базы данных
- •Современные направления исследований и разработок
Реляционное исчисление
Реляционное исчисление является прикладной ветвью формального механизма исчисления предикатов первого порядка.
Базисными понятиями исчисления являются понятия переменной с определенной для нее областью допустимых значений и понятие правильно построенной формы, опирающиеся на переменные, предикаты и кванторы. В зависимости оттого, что является областью определения переменной, различают исчисления картежей и доменов. Исчисление картежей областями определения переменных является отношение базы данных. Допустимое значение каждой переменной является кортежем некоторого отношения. В исчислении доменов областью определения переменных являются домены, для которых определены атрибуты отношения базы данных, т.е. допустимым значение каждой переменной является значение некоторого домена.
Для определения картежей переменной используются оператор RANGE. Правильно построенная форма (ППФ) служит для выражения условий, накладываемых на картежные переменные. Основой ППФ являются простые сравнения, которые представляют собой операции сравнения скалярных значений, т.е. значений атрибутов переменных или заданных констант. Более сложные варианты ППФ строятся с помощью логических операций И, ИЛИ, НЕ и оператора ЕСЛИ – ТО. Допускается также построение ППФ с помощью кванторов: EXISTS.
Переменные, входящие в ППФ, могут быть свободными или связанными. Все переменные, входящие в ППФ, при построении которых не использовались кванторы, являются свободными. Если имя переменной использовано в ППФ сразу после квантора, то эта переменная называется связанной и это означает, что такая переменная не видна за пределами ППФ, связавшую эту переменную. При вычислении значений такой ППФ используется не одно значение связанной переменной, а вся ее область определения.
Целостность сущности и ссылок
Согласно концепции, предложенной Дейтом, реляционная модель состоит из трех частей: структурной, манипуляционной и целостной.
В целостной части реляционной модели данных фиксируются два базовых принципа, которые должны поддерживаться в любой реляционной СУБД.
Первое требование называется требованием целостности. Объекту или сущности реального мира реляционных баз данных ставятся в соответствие картежи отношений. Требование о целостности сущности состоит в том, что любой картеж любого отношения отличен от любого другого картежа этого отношения, т. е. любое отношение должно обладать первичным ключом.
Второе требование называется требованием целостности по ссылкам. Атрибут называется внешним ключом, если его значение однозначно характеризует сущности, представленные картежами некоторого другого отношения, т.е. задают значения их первичного ключа. Требование о целостности по ссылкам, которое еще называют требованием целостности ключа: для каждого значения внешнего ключа, появляющееся в ссылающемся отношении, на которое ведет ссылка, должен найтись картеж с таким же значение первичного ключа либо значение внешнего ключа должно быть неопределенным. Ограничения целостности сущности и целостности по ссылкам должны поддерживаться СУБД. Для соблюдения целостности сущности достаточно гарантировать отсутствие в любом отношении картежей с одним и тем же значение первичного ключа. При обновлении ссылающегося отношения или модификации значений внешнего ключа в существующих ключах достаточно следить за теми, чтобы не появлялись не корректные значения внешнего ключа. При удалении картежа из отношения существуют три подхода поддержания целостности по ссылкам.
Запрещается производить удаление ключа, на который существуют ссылки, т.е. сначала нужно либо удалить ссылающиеся картежи, либо соответствующим образом изменить значения их внешнего ключа.
При удалении картежа, на который используются ссылки во всех ссылающихся картежах, значение внешнего ключа автоматически становится неопределенным.
Каскадное удаление. При удалении картежа из отношения, на которое ведет ссылка и ссылается отношение, автоматически удаляются все ссылки картежи.