SQL
SQL (structure Query Language) – язык структурированных запросов.
Основные понятия и компоненты
SQL представляет собой множество инструкций для выполнение конкретных действий: создание таблиц, удаление, извлечение данных из таблиц, ограничение доступа к таблице и т.д. Инструкция SQL начинается с выполнения команды – ключевого слова, описывающего действие, выполняемой инструкции. (CREAT, INSERT, DELETE, UPDATE)
Структура SQL включает следующий разделы: DDL, DML, DCL.
Таблица “Операторы определение данных DDL”
Оператор | Смысл | Действие |
CREATE TABLE | Создать таблицу | Создает таблицу в БД |
DROP TABLE | Удалить таблицу | |
ALTER TABLE | Изменить таблицу | Изменяет структуру существующей таблицы или ограничения целостности, задаваемы пользователем |
CREATE VIEW | Создать представление | Создает виртуальную таблицу, соответствующую запросу (SQL – запрос) |
ALTER VIEW | Изменить представление | Изменяет ранее созданное представление |
DROP VIEW | Удаление представления | Удаляет ранее созданное представление |
CREAT INDEX | Создать индекс | Создает индекс для некоторой таблицы для обеспечения быстрого доступа по атрибутам, входящим в индекс. |
ALTER INDEX | Изменить индекс | Изменить индекс |
DROP INDEX | Удалить индекс | Удалить индекс |
Табл. “Операторы манипулирования данными DML”
Оператор | Смысл | Действие |
DELETE | Удалить строку | Удалить одну или несколько строк, соответствующим условиям отбора (фильтраций). Применение этого оператора согласовуется с принципами поддержки целостности, поэтому этот оператор не всегда может быть выполнен корректно, даже если он записан синтаксически правильно |
INSERT | Вставить строку | |
UPDATE | Обновить строку |
Табл. “DQL (Data Query Language – язык описания запросов)”
|
Оператор | Смысл | Действие |
Select | Выбрать строки | Оператор заменяющий все операторы РА и позволяющий сформировать результирующие отношения. |
Оператор | Смысл | Действие |
COMM IT | Завершить транзакцию | Завершить комплексную взаимосвязанную обработку информации (набор строк), объединенную в транзакцию |
ROLLDBACK | Откатить транзакцию | Отменить изменения, проведенные в ходе транзакции |
SAVEPOINT | Сохранить промежуточную точку выполнение транзакции. | Сохранить промежуточное состояние БД, зафиксировать его, чтобы можно было вернуться в дальнейшее состояние |
Табл. Средства администрирования БД
Оператор | Смысл | Действие |
ALTER DATABASE | Изменить БД | Изменить набор основных объектов БД, ограничений, касающихся всей БД |
ALTER DBAREA | Изменить область хранения БД | Изменить ранее созданную область хранения |
ALTER | Изменить | Изменить пароль для всей БД |
Create DBAREA | Создать область хранения | |
DROP DATABASE | Удалить БД | |
DROP DBAREA | ||
GRANT | Предоставить права | Предоставить права доступа на ряд действий над некоторым объектом БД |
REVOKE | Подготовить оператор SQL к выполнению динамического запроса | Сгенерировать план выполнения запроса, соответствующего SQL – коду |
Тема: Архитектура клиентов
Модель плюс терминалы и многопользовательские СУБД
При построении ИС самый популярный была модель “хост – компьютер + терминал” реализован на базе майнфреймов (IBM 360/370) либо на базе миниЭВМ. Характерной особенностью такой системы была полная неинтелектуальность терминалов, их работой управлял хост компьютер.
Достоинства: системы могли совместно использовать разные периферийные устройства (принтер, графостроитель) и ресурсы хоста (оп, процессор).
|
Недостатки: полная зависимость пользователей от администратора хоста. Фактически пользователь (а не редко и программист) не имеют возможности настроить рабочую среду под свои потребности – используемое ПО, в том числе и текствоые редакторы, компиляторы, СУБД и т.д.
ПК и настольные СУБД
Для настольных СУБД и ПК появилось большое количество необходимых программных оболочек и СУБД, которые удовлетворяют потребности основной части пользователей. (Access, Paradox, FoxPro). Следующим этапом развития этого ПО было появление сетевых версий упомянутых СУБД, позволяющих совместную работу пользователей с общими данными в локальной сети.
Особенности клиент – сервер: в определенной степени эта архитектура базируется на модели хост-терминал, так как ядром такой системы является сервер БД, представляющий собой приложение, выполняющие комплекс действий по управлению данными:
1) Выполнение запросов
2) Хранение и резервирование данных
3) Отслеживание ссылочной целостности
4) Проверка прав и привелегий пользователей
5) Ведение журнала транзакций
При этом в качестве рабочего места может быть использован обычный ПК, что позволяет не отказываться от привычной рабочей среды. Одним из важнейших преимуществ клиент-серверных ИС является снижение сетевого трафика при выполнении запросов, например при необходимости выбора 5 записей из таблицы, содержащий миллион, клиентское приложение посылает серверу запрос, который сервером компилируется, оптимизируется и выполняется, после чего результат запроса (те самые 5 записей, не вся таблица) передаются обратно на рабочую станцию (если конечно клиентское приложение корректно формирует запросы к серверу). Один из важных преимуществ – возможность хранения бизнес-правил на сервере, что позволяет избежать дублирование кода в разных приложениях, использующих общую БД. Кроме того в этом случае может быть в рамках этих правил выполняться редактирование внештатных ситуаций. Кроме того, для описания серверных бизнес-правил в наиболее типичных ситуаций (при работе с заказчиками и заказами) существуют очень удобные инструменты – CASE – средство, позволяющие описать правила и создавать реализующие их БД (индексы, триггеры), буквально используя мышь для связи между таблицами. В этом случае приложении будет избавлено от многих рутинных операций. Некоторые серверные СУБД поддерживают так называемы роли, представляющие собой совокупность прав на доступ к объектам БД.
|
Кроме того современные серверные СУБД обладают большими возможностями для резервирования и архивации данных.
Итак, клиент-серверная ИС состоит, как минимум, из 3 основных компонентов:
1. Сервер БД, управляющий хранением данных, доступом и защиты, резервным копированием, отслеживающий ссылочную целостность данных в соответствии с бизнес- правилами и самое главное выполняющее запросы клиентов.
2. Клиент, представляющий интерфейс пользователя, выполняющий логику приложения, проверяющий допустимость данных, посылающий запросы к серверу и получающий от него ответы.
3. Сеть и коммуникационные ПО, осуществляющий взаимодействие между клиентом и сервером с помощью сетевых протоколов.
Многозвенные ИС и интернет
Распределенные ИС представляют собой следующий этап развития архитектуры ИС. Потребность в них появилось при дальнейшем укрупнении ИС, связанном с увеличением количество пользователей, появлением удаленных филиалов, необходимостью в централизованном хранении и обработки данных. В случае большого числа пользователей возникают проблемы своевременной и синхронной заменой версий клиентских приложений на рабочих станциях (особенно, в случае территориальной разбросанности предприятия), проблемы поддержания настроек, а также перегрузки сети и серверы БД. Эти проблемы решаются путем создания многозвенных ИС с “тонким” клиентом.
Тонкие клиенты сервер приложений сервер БД
В этом случае проблема поддержки настроек решается путем переноса их на промежуточное звено (такое ПО называется middleware). На него также можно возложить функции – проведение расчетов, обработка данных, генерация отчетов. При разумном распределении функции между серверных приложений и клиентом последний обычно содержит лишь функциональность, связанную с предоставлением пользовательского интерфейса. По этой причине он обычно называется тонким клиентом (в отличие от классического толстого клиента, традиционного для архитектуры клиент – сервер).
Что касается своевременного обновления версии тонкого клиента, то эта проблема решается путем поставки приложений, с помощью технологий интернета (вэб сервером, браузеров). Если речь идет о сети, масштабы предприятия, в которой используется для корпоративных целей подобных технологий в этом случае используют термин intranet.
Наиболее распространенным на сегодня способами поставки тонких клиентов с помощью таких технологий являются копирование или установка приложений с вэб – сервера и как один из вариантов – копирование компонентов ActiveX, полностью реализующего функциональность тонкого клиента, с целью отображения его браузера.
Настройка доступа к данным с использованием библиотеки BDE
В процессе выполнения приложений в БД с помощью Delphi происходит обращение к функциям API, который анализирует тип источника данных и обращаются к одной из динамически загружаемой библиотеки, входящих в состав SQL Links.
BDE обеспечивает для созданных приложений:
1. Непосредственный доступ к локальным БД (dBase, Paradox, Access. FoxPro).
2. Доступ к SQL – серверам (Oracle, Sybase, MS SQL Server, IB Database, DB2, Informix).
3. Доступ к любым источникам данных имеющих драйвер в ODBS (открытые таблицы Excell, Lotus), серверам БД, не имеющим драйверы SQL Links.
4. Создание приложений клиент- серверов, использующих разнородные данные;
5. Высокую производительность при работе с таблицами
6. Использование SQL, в том числе и при работе с локальными данными
7. Изоляцию приложения от средств языковой поддержки
8. Изоляцию приложения от конфигурации системы и сети
Группы операторов SQL
1. DML – включает операторы для записи, изменения и поиска данных в таблице (select, insert, update, delete).
2. DDL – включает операторы, используемые для определения схем и объектов внутри схем (create table, create, view, alter table, drop table/view)
3. DCL – включает операторы, определяющий права пользователей grant, revoke.
4. DML – выбор заданных столбцов из таблицы.
Синтаксис: select имена_столбцов
From таблицы;
Пример: выбрать номера, названия и местоположение всех отделов и списка отделов
Select deptno, dname, loc from dept;
Результат
Dept dname loc
10 research Moscow
20 sales Sp
Выбор заданных строк
Выбор заданных строк осуществляется оператором where, определяющего условие выборки.
Пример: выбрать сотрудников отдела 30 с окладом более 2800 долларов
Select *from emp
Where dept=30 and sal>2800;
Пример: выбор сотрудников от
Select *from emp
Where deptno=30 and
Sal between 1200 and 2800;
Пример: вывести сведения об отделах 10 и 30
Select *from
Where deptno in(10,30);