- •Основы баз данных. Введение.
- •БзХранятся не только данные, но и знания о применении этих данных. Реализуются они в виде процедур и алгоритмов. Выборки обрабатывают данные.
- •История БнД.
- •Проблемы бд:
- •Состав БнД.
- •Процесс проектирования базы данных.
- •Er-модель (модель Чена).
- •Основные понятия:
- •Виды связи
- •Рекурсивные связи
- •Представление связей более высокого порядка (не бинарных).
- •Избыточное дублирование.
- •Реляционная модель данных.
- •12 Правил Кодда, которым должна удовлетворять реляционная база данных.
- •Операции над данными.
- •Реляционная алгебра.
- •Свойства реляционных операций.
- •Понятие функциональной зависимости (ф.З).
- •Запись запросов на языке реляционной алгебры.
- •Проектирование реляционной базы данных.
- •Методы проектирования.
- •7 Правил Джексона.
- •Язык доступа к данным, основанный на исчислении с переменными кортежами.
- •Атрибуты, используемые для описания таблиц.
- •Обработка ссылочной целостности.
- •Операторы манипулирования данными.
- •Как задается условие?
- •Запросы, которые реализуются на основе соединения.
- •Подзапрос.
- •Использование квантора exists для поиска пересечения и разности.
- •Квантор общности моделирующий операцию деления.
- •Соответствия между операциями реляционной алгебры и sql.
- •Технологии клиент-сервер.
- •1 Вариант - файловый сервер.
- •2 Вариант – удаленный доступ.
- •3 Вариант – сервер Базы Данных.
- •4 Вариант – сервер приложений.
- •Внутренняя модель данных.
- •B-дерево.
- •Язык query by example (qbe)
- •Операции выборки в отношениях, имеющих древовидную структуру
- •Операции запоминания
- •Библиотечные функции
3 Вариант – сервер Базы Данных.
Бизнес-правила хранятся на сервере в виде хранимых процедур. Хранимые процедуры – это программы, написанные на некотором языке хранимых процедур с SQL вставками. Их можно написать заранее и поместить в библиотеку.
Рассмотрим операторы для программирования хранимых процедур.
Create имя_процедуры (параметры)
[return список выходных данных]
тело
End procedure - создание процедуры;
Execute procedure имя (аргументы)[into список переменых] -– выполнение процедуры, созданной заранее;
drop procedure имя – удаление хранимой процедуры;
define список переменных – позволяет объявить переменные, которые являются локальными в хранимой процедуре;
call имя (аргументы) into список переменных – позволяет вызвать другую процедуру;
переменная:=выражение – присвоение;
if условие then оператор [else оператор] end if – условный оператор;
операторы цикла
for переменная:=целое1
to целое2 step целое
end for
while условие
тело
end while
for each имя_курсора
операторы
end for each
Среди операторов ТЕЛА используются следующие:
Exit - позволяет выйти из цикла до его завершения;
Continue – позволяет начать выполнение цикла, не заканчивая предыдущий шаг;
System – позволяет выполнить команды ОС;
Return – позволяет сформировать результаты и вернуть их из процедуры;
Begin
. – блок, часть пограммы, в которой могут быть объявлены
. локальные переменные.
end
4 Вариант – сервер приложений.
С помощью протокола API передается информация о том какие программы и в какой последовательности нужно выполнять.
В технологии клиент-сервер есть специальные активные программы, которые называют триггерами.
Триггер – это активная программа, которая не вызывается программистом, а активизирует сама себя в зависимости от условий, возникающих при обработке данных.
Create trigger имя событие_действие - создание триггера;
Drop trigger - удаление.
Запись события:
Insеrt on имя_таблицы – наступает тогда, когда в таблицу заносится информация;
Delete on таблица – наступает при удалении из таблицы;
Update of список_полей on имя_таблицы - возникает при изменении заданных полей в указанной таблице.
Действия бывают трех видов:
Before (оператор) – перед добавлением, удалением, изменением;
Foreach row (оператор) – для каждой строки таблицы;
After (оператор) после добавления, удаления, изменения.
В триггерах есть возможность сослаться на одно и тоже поле до изменения и после:
Referencing old as имя – запомнить до изменения;
Referencing new as имя – запомнить после изменения;
When (условие)(оператор) – задает дополнительные условия для работы с триггерами.
Пример.
Изменить статус поставщиков только в том случае, если новый статус не меньше старого и не больше 100%.
Нужно создать триггер, который будет обновлять статус:
Create trigger Sstat
Update of статус on Поставщики
Referencing old as c1
Referencing new as c2
Foreach row
When ( с1.статус >=с2.статус)
Execute procedure error (с1.статус,с2.статус)
When (с2.статус>100%)
Execute procedure error1 (с1.статус,с2.статус)