- •Серверы баз данных Курс лекций
- •Предисловие
- •Серверы баз данных. Основные понятия
- •История развития субд
- •Перспективы развития субд
- •Трехуровневая архитектура бд. Ее назначение
- •Модели клиент- сервер в технологии бд
- •Пользователи бд
- •Разработчики и администраторы приложений.
- •Контрольные вопросы
- •Двухуровневые модели
- •Модель удаленного доступа к данным
- •Удаленная презентация (Модель сервера бд)
- •Модель распределенной бд
- •Модель сервера приложений
- •Проектирование баз данных
- •Этапы разработки базы данных
- •Критерии оценки качества логической модели данных
- •Алгоритм нормализации (приведение к 3нф)
- •Элементы модели "сущность-связь"
- •Основные понятия er-диаграмм
- •Пример разработки er-модели
- •Описание предметной области
- •Описание сущностей и типов связей
- •П ереход к реляционной модели
- •Концептуальные и физические er-модели
- •Контрольные вопросы
- •Языки бд. Язык определения данных
- •Создание бд. Способы создания бд
- •Создание таблиц базы данных
- •Декларативные ограничения при создании таблиц
- •Задание ограничений ссылочной целостности
- •Изменение таблиц
- •Создание индексов в системе sql-сервер
- •Кластеризованный индекс
- •Контрольные вопросы
- •Языки бд. Язык управления данными
- •Выборка данных
- •Сортировка результатов запроса
- •Вложение запросов
- •Создание таблицы из набора результатов
- •Использование оператора union
- •Запросы на модификацию данных
- •Запросы на удаление
- •Запросы на добавление
- •Вставка записей из другой таблицы
- •Добавление данных в указанные поля
- •Values(‘31.03.03’,’согласен’,3000,4)
- •Запросы на обновление
- •Контрольные вопросы
- •Создание представлений
- •Создание, удаление и обновление представлений
- •Модифицируемые и немодифицируемые представления
- •Контрольные вопросы
- •Хранимые процедуры
- •Элементы Transact sql
- •Оператор условия
- •Циклическое выполнение операций
- •Функции
- •Создание хранимых процедур
- •Выполнение хранимой процедуры.
- •Контрольные вопросы
- •Триггеры
- •Назначение триггеров
- •Создание триггеров
- •Принцип работы триггеров
- •Включение и отключение триггера. Удаление триггера, Просмотр информации о триггерах
- •Контрольные вопросы
- •Транзакции и блокировки
- •Понятие транзакции
- •Свойства транзакций. Способы завершения транзакций
- •Операторы Transact sql для работы с транзакциями
- •Журнал транзакций.
- •Блокировки.
- •Сериалиация транзакций
- •Переопределение блокировок на уровне запроса. Типы блокировок
- •Контрольные вопросы
- •Безопасность данных и привилегии
- •Принципы защиты баз данных от несанкционированного доступа
- •Защита данных в системе ms sql Server
- •Контрольные вопросы
- •Организация доступа к бд из прикладных программ
- •Понятие курсора
- •Интерфейс прикладного программирования
- •Архитектура odbc
- •Архитектура odbc
- •Контрольные вопросы
- •Файловые структуры, используемые для хранения информации в бд.
- •Файлы прямого и последовательного доступа
- •Индексные файлы
- •Файлы с плотным индексом
- •Файлы с неплотным индексом
- •Моделирование отношений 1:м на файловых структурах
- •Моделирование отношений 1:м с использованием однонаправленных указателей
- •Структура записи подчиненного файла.
- •Алгоритм удаление записи из цепочки подчиненного файла.
- •Инвертированные списки
- •К Рисунок 14 онтрольные вопросы
- •Содержание
- •Литература
Интерфейс прикладного программирования
Альтернативным подходом, используемым некоторыми разработчиками СУБД, является предоставление в распоряжение программиста библиотеки стандартных функций (API- программный интерфейс пользователя). Функции вызываются из создаваемых пользователем прикладных программ.
Хотя это не является требованием стандарта, многие распространенные СУБД включают соответствующие API. С помощью функций API осуществляется подключение к базе данных, например, ConnectBD(User,Passw), или dbopen((User,Passw) и построение SQL оператора (например, dbsqlexec()) и т.д.
Поставляемые разными разработчиками прикладные API имеют значительные различия. При необходимости использования одной и той же программы в среде разных СУБД необходимы разные ее версии, ориентированные на АPI разных СУБД.
Фирма Microsoft разработала стандарт ODBC (Open Database Connectivity). Эта технология предусматривает использование единого интерфейса для доступа к смешанным базам данных SQL. Данный интерфейс, который встраивается непосредственно в язык программирования (например, С) обеспечивает высокую степень универсальности, в результате чего одно и то же приложение может получать доступ к данным, хранящимся в базах различных целевых СУБД, без необходимости внесения изменений в текст программы.
В приложение, обращающееся к базе данных, записываются вызовы функций ODBC. Для каждой системы управления базами данных разрабатывается драйвер ODBC, реализующий эти функции для конкретной СУБД. Для связи приложения с любой выбранной целевой СУБД пользователю достаточно иметь соответствующий ODBC-драйвер. (Драйвер ОDBC для MS SQL Server устанавливается одновременно с установкой утилит сервера).
Утилита Источники данных ODBC позволяет настроить соединение ODBC для получения доступа к объектам баз данных. Для запуска утилиты следует выбрать соответствующий значок в панели управления Windows. Диалоговое окно утилиты открывает доступ к настройке трех типов источников данных (DSN – Data Source Name: системный DSN, файловый DSN и пользовательский DSN). Драйвер просматривает приложение, находит обращения к базе данных, передает их СУБД, получает от нее результаты и подставляет их в приложение. Идея оказалась очень удачной, и использование ODBC для работы с базами данных стало общепринятым.
Архитектура odbc
В интерфейс ODBC включены следующие элементы:
Библиотека функций, вызов которых позволяет подключаться к базе данных, выполнять SQL- операторы и извлекать информацию из результирующих наборов данных.
Стандартный механизм подключения и регистрации в СУБД.
Стандартное представление для данных различных типов.
Стандартный набор кодов ошибок.
Типовой синтаксис SQL-операторов, построенный на использовании спецификаций X/Open и ISO CLI.
Архитектура odbc
Рисунок 10
Общая архитектура ODBC (см. рисунок 15) включает 4 элемента:
Приложение, которое выполняет обработку данных и вызов функций библиотеки ODBC для отправки SQL- операторов в СУБД и выборки возвращаемой СУБД информации.
Менеджер драйверов – выполняет загрузку необходимых драйверов по требованию приложения. Менеджер драйверов был разработан компанией Microsoft и представляет собой библиотеку DLL.
Драйверы и агенты баз данных обрабатывают вызовы функций ODBC и направляют SQL-запросы конкретным источникам данных, а также возвращают полученные результаты приложению. При необходимости драйверы выполняют модификацию исходного запроса с целью приведения его в соответствие с синтаксическими требованиями целевой СУБД. Драйверы могут предоставлять только те возможности, которые обеспечиваются целевой СУБД. В архитектурном решении с использованием нескольких ODBC- драйверов все перечисленные задачи решаются самим ODBC-драйвером, и использовать агенты БД не требуется. В случае использования единственного драйвера для каждого типа СУБД потребуется применение агентов базы данных, размещаемого на стороне сервера. При обработке запросов на доступ к базе данных эти агенты тесно сотрудничают с ODBC драйвером, расположенным на стороне клиента. В среде Windows единый ODBC-драйвер реализован в виде библиотеки DLL. Агенты баз данных реализуются как процессы, выполняемые на сервере целевой СУБД.
Источники данных содержат те данные, доступ к которым необходим пользователю приложения.
