- •Курс за третий семестр. Введение в субд. Базы данных как аппарат моделирования.
- •Базы данных
- •Классификация бинарных отношений
- •Реляционные базы данных
- •Сжатие избыточной информации
- •Нормализация баз данных
- •Моделирование бд. Нарушение целостности
- •К эволюции сетевых бд (этапы)
- •Определение бд в рамках архитектуры «клиент-сервер»
- •Язык sql (Structured Query Language)
- •Структура sql
- •Ограничение ссылочной целостности
- •Команды dml
- •Предикаты в sql
- •Выборка из нескольких таблиц
- •Опции group by и having Группировка и групповые вычисления
- •Опции order by и union
- •Предикаты, использующие выборку Вложенные подзапросы
- •Создание представлений
- •Проблемы модификации представлений
- •Проблема исчезающих значений
- •Транзакции
- •Примеры транзакций
К эволюции сетевых бд (этапы)
-
Хост-архитектура.
-
Архитектура файл-сервер.
-
Клиент-сервер.
-
(Трёхзвенная архитектура).
1. Хост-компьютер хранит все данные и полностью осуществляет их обработку. Компьютер-терминал посылает команды (запросы) к БД, отображает полученную информацию. Пересылка информации (трафик) осуществляется в символьном виде. Интернет развивался в рамках хост-архитектуры.
2. Сервер только хранит данные, вся их обработка сосредоточена на компьютере-клиенте. Хотя возможно и локальное хранение данных. Недостаток – перегрузка – большой трафик. Пересылаются, по сути дела, копии таблиц. Проблема многих пользователей – согласование модификаций.
3. Клиент-сервер. Сервер хранит данные и программы стандартной обработки. Клиент осуществляет специфическую обработку соответствующих данных.
4. Трёхзвенная архитектура построена уже на логическом делении. Любая переработка информации включает хранение данных, логику преобразования данных и некоторое внешнее отображение (представление) данных.
Data services Business services User services
Хранение данных Логика преобразования
данных Отображение данных
Такое логическое деление нацелено на идеал распределённых вычислений. Как сделать так, чтобы сеть представляла собой единую вычислительную систему?
В результате выделились те же логические схемы (понятия), что и в процедурном программировании.
Определение бд в рамках архитектуры «клиент-сервер»
БД=таблицы + отношения (значения)
+правила целостности
+представления (коды программ-функций)
+хранимые процедуры (функции).
Правила целостности хранятся в виде кода-триггера (trigger – переключатель), осуществляющего автоматическое преобразование таблиц в ответ на пользовательскую модификацию родительской. Например, триггер каскадного удаления удалит все дочерние записи в ответ на удаление пользователем родительской таблицы.
Правила допустимости – также программы, хранимые на сервере, проверяющие входные данные на корректность, связанные с логическим отображением хранимых данных.
Разные группы пользователей нуждаются в разной форме представления находящейся в БД информации в максимально понятном развёрнутом виде. Клиента интересуют не вопросы физического хранения и доступа к данным, но данные как классификация, иерархия понятий. Причём разные группы пользователей интересуют разные иерархии.
Язык sql (Structured Query Language)
Создан инженерами фирмы IBM как язык командной строки операторов мейнфрейм (больших компьютеров). Отсюда ориентированность на естественный (английский) язык и отсутствие сложных программистских конструкций. В настоящее время играет роль стандарта языка коммуникации сетевых БД архитектуры «клиент-сервер».
Клиент Сервер
Свой язык Свой язык
(например, Pascal) (чаще расширение SQL)
Встроенный SQL (возможность вызова SQL-команд внутри языка программирования клиента) является ныне неотъемлемой частью любой крупной системой программирования.
Достоинство SQL – максимальная компактность и логическая простота, делающие его не только языком программирования СУБД (и не столько), но средством проектирования больших программных систем.
Недостатки. Стандартность SQL далека от идеальной, хотя существуют описания обязывающих стандартов (мы будем придерживаться первого и самого простого - ANSI SQL), но на практике существующие версии не являются их расширениями. Компактность и декларативность языка, отсутствие традиционных структур управления усложняют его использование.