- •Обзор команд создания, изменения и удаления таблиц
- •Представления и соединения
- •Представления и подзапросы
- •Ограничения представлений
- •Удаление представлений
- •Технология и модели «клиент – сервер»
- •Модель fs (файловый сервер)
- •Технологический недостаток модели
- •Модель rda (доступ к удаленным данным)
- •Модель сервера бд (dbs)
- •Модель as- сервер приложений (Application server)
- •Поддержка транзакций
- •Восстановление базы данных
Представления и подзапросы
Представления также могут использовать подзапросы, включая связанные подзапросы. Рассмотрим сложный пример: допустим, что компания платит премию продавцу, который имеет покупателя с наибольшим количеством заказов на заданную дату.
CREATE VIEW EliteS
AS SELECT b.odate, a.snum, a.sname
FROM Salespeople a, Orders b
WHERE a.snum = b.snum
AND b.amt = (SELECT MAX (amt)
FROM Orders c
WHERE c.odate = b.odate);
Теперь предположим, что вознаграждение должен получить тот продавец, который имел наибольшее количество заказов, по крайней мере, 10 раз, то информацию можно получить, основываясь на первом представлении:
CREATE VIEW Bonus
AS SELECT DISTINCT snum, sname
FROMEliteSaсчитает число строк
WHERE 10< = (SELECT COUNT (*)
FROM EliteS b
WHERE a.snum = b.snum);
Теперь, чтобы извлечь продавца, которому полагается вознаграждение:
SELECT*
FROMBonus;
Для того, чтобы извлечь такую информацию с использованием COBOL, потребовалась бы довольно большая программа. ВSQLмы использовали 2 сравнительно сложных команды, определяющие представления и один простейший запрос, который и выполняется ежедневно, отражая текущее состояние БД.
Ограничения представлений
Есть несколько аспектов области запросов, не укладывающихся в рамки определения представления: единственное представление должно базироваться на единственном запросе: UNIONиUNIONALLнедопустимы.
Нельзя использовать ORDERBY, поскольку выходные данные для запроса, формирующего представления, должны быть неупорядоченными по определению
Удаление представлений
Синтаксис сходен с удалением таблиц:
DROPVIEW<имя представления>
Технология и модели «клиент – сервер»
«Клиент – сервер» – это модель взаимодействия компьютеров в сети. Как правило, компьютеры неравноправны: одни владеют и распоряжаются информационно-вычислительными ресурсами, другие - имеют возможность пользоваться ими - файловой системой, почтовой службой, службой печати, базой данных. Компьютер, управляющий тем или иным ресурсом, принято называть сервером этого ресурса, а компьютер, желающий им воспользоваться- клиентом. Например, если ресурс - файлы, то сервер называется файл-сервер, если БД, то сервер БД.
Один и тот же компьютер, в принципе может иметь роль и сервера и клиента. Например, при наличии большой ЭВМ (например AS-400), компьютер может работать сервером для клиентов- ПК и посылать запросы большой ЭВМ.
Этот же принцип распространяется и на взаимодействие программ. Так, SQL- ориентированную СУБД называют сервером БД или SQL –сервером, а программы, обращающиеся к нему- SQL – клиентами.
Первоначально (до ПК), СУБД имели централизованную структуру (Большая ЭВМ- терминалы)- это не являлось “клиентом- сервером”, поскольку вся обработка сосредотачивалась в центральной ЭВМ.
Характерной особенностью технологии “клиент - сервер” является распределенная обработка, реализованная в программе- сервере и программах- клиентах, с взаимодействием согласно некоторому определенному протоколу.
При написании программы (приложения) в предметной области используется следующий основной принцип К-С - технологии.
Функции интерактивного приложения разделяются на 4 группы, имеющие различную природу:
ввод и отображение данных;
прикладные функции предметной области (например, для банковской системы- открытие счета, перевод денег с одного счета на другой и т.п.);
фундаментальные функции хранения и управления информационными ресурсами (базами данных, файловыми системами и т.д.);
служебные функции, связывающие первые три группы.
Конкретные реализации, в зависимости от накопления перечисленных компонентов, могут быть отнесены к одной из четырех моделей:
Модель файлового сервера (FileServer-FS);
Модель доступа к удаленным данным (RemoteDataAccess-RDA);
Модель сервера БД (Data Base Server - DBS);
Модель сервера приложений (Application Server - AS).