
- •2.3 Базы данных [5-7] тебеньков е.С.
- •1 .Проектирование базы данных с помощью нормализации
- •2. Операция «соединения» и ее свойства.
- •3. Разложение без потерь. Теорема. Примеры
- •4. Полностью соединимые отношения. Примеры
- •5. Операторы описания данных в sql
- •6. Операторы манипулирования данными в sql
- •7. Управление транзакциями
- •1. Запуск транзакции
- •2. Завершение транзакции
- •8. Технологии «клиент-сервер»
- •1 Вариант - файловый сервер.
- •2 Вариант – удаленный доступ.
- •3 Вариант – сервер Базы Данных.
- •4 Вариант – сервер приложений.
- •9. Оператор Select
- •10. Индексация. Достоинства и недостатки. Примеры
- •13. Архитектуры бд
- •1.1.2. Архитектуры бд
- •Локальная
- •Архитектура "файл-сервер"
- •Архитектура удаленных бд ("клиент-сервер")
- •1.1.3. Достоинства и недостатки различных архитектур приложений бд
- •14. Управление правами доступа в sql
- •15. Модель Чена
- •16. Примеры бинарных связей
- •17. Правила Джексона для перехода от модели Чена к реляционной модели
- •18. Реляционная модель данных. 12 правил Кодда.
- •12 Правил Кодда.
- •19. Ограничения целостности в реляционной модели данных и их поддержка в sql
- •20. Восстановление данных в бд
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.статус)
Модель сервера базы данных
В архитектуре клиент-сервер для обработки данных выделяется специальное ядро - так называемый сервер баз данных, который принимает на себя функции обработки запросов пользователей, именуемых теперь клиентами. Сервер баз данных представляет собой программу, выполняющуюся, как правило, на мощном компьютере. Приложения-клиенты посылают с рабочих станций запросы на выборку (вставку, обновление, удаление) данных. При этом сервер выполняет всю “грязную” работу по отбору данных, отправляя клиенту только требуемую “выжимкуТакой подход обеспечивает решение трех важных задач:
уменьшение нагрузки на сеть
уменьшение требований к компьютерам-клиентам
повышение надежности и сохранение логической целостности базы данных.
Модель сервера приложений. Использование этой модели позволяет разгрузить рабочие станции, то есть перейти к "тонким" клиентам. Конечно, сервер приложений можно организовать и с помощью хранимых процедур. Но для реализации хранимых процедур используют языки высокого уровня (например, в Oracle - язык PL/SQL ), поэтому программы получаются ресурсоёмкими. Причём возможности этих языков ограничены: с их помощью нельзя организовать обработку данных на уровне битов. Хранимые процедуры также не поддерживают распределённые приложения, т. е. они не обеспечивают автоматический запуск требуемой программы на другом сервере.