- •Основы sql. Курс лекций
- •Лекция 1: Введение в структурированный язык запросов sql
- •Основные понятия
- •Реляционные базы данных
- •Введение в технологию клиент-сервер
- •Типы команд sql
- •Запись sql-операторов
- •Описание учебной базы данных
- •Типы данных языка sql, определенные стандартом
- •Символьные данные
- •Varchar][длина]}
- •Округленные числа
- •Дата и время
- •Понятие домена
- •Создание пользовательского типа данных
- •If лог_выражение
- •Основные объекты структуры базы данных sql-сервера
- •Создание базы данных в среде ms sql Server
- •Индексы в среде ms sql Server
- •Уникальный индекс
- •Index имя_индекса on имя_таблицы(имя_столбца
- •Предложение from
- •Предложение where
- •Is not null используется для проверки присутствия значения в поле.
- •Пример 4.16. Список клиентов в алфавитном порядке.
- •Пример 4.17. Список фирм и клиентов. Названия фирм в алфавитном порядке, имена клиентов в каждой фирме в обратном порядке.
- •Операция соединения по двум отношениям (таблицам)
- •Операция тета-соединения
- •Лекция 6: Вычисления и подведение итогов в запросах
- •Insert into – запрос добавления ;
- •Запрос добавления
- •Пример 8.1. Добавление в таблицу товар новой записи.
- •Insert into Итог
- •Ссылочная целостность
- •Создание таблицы
- •Изменение и удаление таблицы
- •Ограничение первичного ключа (primary key)
- •Ограничение внешнего ключа (foreign key)
- •Ограничение уникального ключа (unique)
- •Ограничение по умолчанию (default)
- •Изменение таблицы
- •Удаление таблицы
- •Пример 10.1. Представление клиентов из Москвы.
- •Insert into view1 values (12,'Петров', 'Самара')
- •Независимость от данных
- •Понятие функции пользователя
- •Inline – функции содержат всего одну команду select и возвращают пользователю набор данных в виде значения типа данных table ;
- •Функции Scalar
- •Пример 11.3. Создание функции, которая для некоторого сотрудника выводит список всех его подчиненных.
- •Создание, изменение и удаление хранимых процедур
- •Выполнение хранимой процедуры
- •Пример 12.6. Процедура с входными и выходными параметрами. Создать процедуру для определения общей стоимости товаров, проданных за конкретный месяц.
- •Лекция 13: Курсоры: принципы работы
- •Реализация курсоров в среде ms sql Server
- •Изменение и удаление данных
- •0, Если выборка завершилась успешно;
- •Пример 13.5. Курсор для вывода списка фирм и клиентов из Москвы.
- •Пример 13.6. Курсор для вывода списка приобретенных клиентами из Москвы товаров и их общей стоимости.
- •Определение триггера в стандарте языка sql
- •Реализация триггеров в среде ms sql Server
- •If (columns_updates(){оператор_бит_обработки}
- •Типы триггеров
- •Программирование триггера
- •Пример 14.1. Использование триггера для реализации ограничений на значение.
- •Пример 14.2. Использования триггера для сбора статистических данных.
- •Пример 14.3. Триггер для обработки операции удаления записи из таблицы
- •Пример 14.4. Триггер для обработки операции изменения записи в таблице
- •Пример 14.5. Исправленный вариант триггера для обработки операции изменения записи в таблице
- •Реализация правил целостности данных
- •Добавление записи в рекурсивную структуру
- •Пример 15.2. Триггер для изменения записи в таблице.
- •Удаление записи из рекурсивной структуры
- •Пример 15.3. Триггер для удаления записи из таблицы.
- •Введение в транзакции
- •Acid-свойства транзакций
- •Блокировки
- •Управление транзакциями
- •Явные транзакции
- •Пример 16.1. Использование точек сохранения
- •Вложенные транзакции
- •"Мертвые" блокировки
- •Уровни изоляции sql Server
- •Insert – право вставлять в таблицу новые строки;
- •Предоставление привилегий пользователям
- •Отмена предоставленных пользователям привилегий
- •Предоставление прав
- •Права на выполнение команд sql
- •Неявные права
- •Запрещение доступа
- •Неявное отклонение доступа
- •Конфликты доступа
- •Пример 17.1. Создание новой базы данных, нового пользователя для этой базы данных, с предоставлением ему всех прав.
- •Sql и прикладные программы
- •Архитектура odbc
- •Источники данных и odbc
- •Взаимодействие с базой данных в Java-программах
- •Загрузка драйвера
- •Создание соединения: класс Connection
- •Создание оператора: класс Statement
- •Получение результатов: класс ResultSet
- •Item - извлечение определенного объекта Parameter.
- •Объект Connection
- •Пример 18.3. Выполнение статического sql-запроса к учебной базе данных из vbScript-сценария.
- •Пример 18.4. Выполнение динамического sql-запроса к учебной базе данных из vbScript-сценария.
Источники данных и odbc
При использовании в клиентском приложении средств ODBC осуществляется обращение к определенному источнику данных, а через него - к представляемой им СУБД. Кроме того, устанавливается общая подсистема ODBC и определяются пары "драйвер - база данных", которым задаются имена, применяемые при установке соединения с базой данных. Соответствующие пары называются именами источников данных, или поименованными источниками данных ( Data Source Names, DSN ).
Создание источника данных выполняется с помощью утилиты ODBC Data Source Administrator, вызываемой из окна панели управления. В состав параметров источника данных входят: его имя и описание; сервер, с которым устанавливается соединение ; метод аутентификации; имя базы данных.
Имя DSN позволяет обратиться к источнику данных ODBC из прикладного приложения.
Взаимодействие с базой данных в Java-программах
Извлечение и обработка информации из базы данных в общем случае связаны с решением следующих задач:
подключение / отключение базы данных;
запуск, фиксация и откат SQL-транзакций;
отображение результатов SQL-запроса;
создание обновляемых курсоров для просмотра, вставки, удаления и изменения данных;
доступ к большим бинарным объектам с мультимедиа-содержимым.
В качестве примера организации доступа к базе данных из прикладных программ рассмотрим:
взаимодействие с базой данных в Java-программах;
обращение к базе данных из языков сценариев с использованием технологии ADO.
Java-программа может быть специализирована для работы с внешними базами данных. С этой целью в Java включены классы для доступа к БД (java.sql.*).
Взаимодействие Java-программы с внешним сервером баз данных осуществляется посредством специализированного протокола, отвечающего за совместимость Java с базами данных ( Java Database Connectivity, JDBC ). Он построен на принципах интерфейса ODBC и применяется для стандартизации Java-кода при организации доступа к различным СУБД. Созданный вслед за спецификацией ODBC, пакет JDBC стал одним из методов доступа к реляционным СУБД из Java-программ. Протокол JDBC, по сути, является посредником Java-кода и драйвером ODBC.
Этап подключения к базе данных включает загрузку драйвера и создание соединения.
Загрузка драйвера
Конкретная база данных обычно доступна с помощью одного или нескольких драйверов. Составная часть JDBC - драйвер для доступа из JDBC к источникам данных ODBC. Этотдрайвер называется программой сопряжения JDBC-ODBC и реализован в виде JdbcOdbc.class.
Поскольку JDBC конструктивно близок к ODBC, программа сопряжения представляет собой надстройку над JDBC. На внутреннем уровне этот драйвер отображает методы Java в вызовы ODBC и тем самым взаимодействует с любым ODBC-драйвером. Достоинство такой программы сопряжения состоит в том, что JDBC имеет доступ к любым базам данных, поскольку ODBC-драйверы распространены очень широко. Драйвер JDBC-ODBC является мост-драйвером, т.к. создает мост между JDBC и другим интерфейсом уровня обращения (Call Level Interface, CLI). Он обрабатывает обращения JDBC и, в свою очередь, вызывает функции ODBC, которые передают запросы SQL источнику данных ODBC.Драйвер JDBC-ODBC загружается командой:
Class.forName(
"com.ms.jdbc.odbc.JdbcOdbcDriver");