
- •Серверы баз данных Курс лекций
- •Предисловие
- •Серверы баз данных. Основные понятия
- •История развития субд
- •Перспективы развития субд
- •Трехуровневая архитектура бд. Ее назначение
- •Пользователи бд
- •Разработчики и администраторы приложений.
- •Контрольные вопросы
- •Модели клиент- сервер в технологии бд
- •Двухуровневые модели
- •Модель удаленного доступа к данным
- •Удаленная презентация (Модель сервера бд)
- •Модель распределенной бд
- •Модель сервера приложений
- •Проектирование баз данных
- •Этапы разработки базы данных
- •Критерии оценки качества логической модели данных
- •Алгоритм нормализации (приведение к 3нф)
- •Элементы модели "сущность-связь"
- •Основные понятия er-диаграмм
- •Пример разработки er-модели
- •Описание предметной области
- •Описание сущностей и типов связей
- •П ереход к реляционной модели
- •Концептуальные и физические er-модели
- •Контрольные вопросы
- •Языки бд. Язык определения данных
- •Создание бд. Способы создания бд
- •Создание таблиц базы данных
- •Декларативные ограничения при создании таблиц
- •Задание ограничений ссылочной целостности
- •Изменение таблиц
- •Создание индексов в системе sql-сервер
- •Кластеризованный индекс
- •Контрольные вопросы
- •Языки бд. Язык управления данными
- •Выборка данных
- •Сортировка результатов запроса
- •Вложение запросов
- •Создание таблицы из набора результатов
- •Использование оператора union
- •Запросы на модификацию данных
- •Запросы на удаление
- •Запросы на добавление
- •Вставка записей из другой таблицы
- •Добавление данных в указанные поля
- •Values(‘31.03.03’,’согласен’,3000,4)
- •Запросы на обновление
- •Контрольные вопросы
- •Создание представлений
- •Создание, удаление и обновление представлений
- •Модифицируемые и немодифицируемые представления
- •Контрольные вопросы
- •Хранимые процедуры
- •Элементы Transact sql
- •Оператор условия
- •Циклическое выполнение операций
- •Функции
- •Создание хранимых процедур
- •Выполнение хранимой процедуры.
- •Контрольные вопросы
- •Триггеры
- •Назначение триггеров
- •Создание триггеров
- •Принцип работы триггеров
- •Включение и отключение триггера. Удаление триггера, Просмотр информации о триггерах
- •Контрольные вопросы
- •Транзакции и блокировки
- •Понятие транзакции
- •Свойства транзакций. Способы завершения транзакций
- •Операторы Transact sql для работы с транзакциями
- •Журнал транзакций.
- •Блокировки.
- •Сериалиация транзакций
- •Переопределение блокировок на уровне запроса. Типы блокировок
- •Контрольные вопросы
- •Безопасность данных и привилегии
- •Принципы защиты баз данных от несанкционированного доступа
- •Защита данных в системе ms sql Server
- •Контрольные вопросы
- •Организация доступа к бд из прикладных программ
- •Понятие курсора
- •Интерфейс прикладного программирования
- •Архитектура odbc
- •Архитектура odbc
- •Контрольные вопросы
- •Файловые структуры, используемые для хранения информации в бд.
- •Файлы прямого и последовательного доступа
- •Индексные файлы
- •Файлы с плотным индексом
- •Файлы с неплотным индексом
- •Моделирование отношений 1:м на файловых структурах
- •Моделирование отношений 1:м с использованием однонаправленных указателей
- •Структура записи подчиненного файла.
- •Алгоритм удаление записи из цепочки подчиненного файла.
- •Инвертированные списки
- •К Рисунок 14 онтрольные вопросы
- •Литература
- •Содержание
Пользователи бд
Конечные пользователи – основная категория пользователей, для которых и создается БД. Это могут быть случайные пользователи, обращающиеся к БД время от времени за получением некоторой информации, например, клиенты фирмы, просматривающие каталог продукции. Регулярными пользователями могут быть сотрудники фирмы, работающие со специально разработанными для них программами. Главный принцип разработки заключается в том, что от конечных пользователей не требуется никаких специальных знаний в области ВТ и языковых средств.
Администраторы БД. Эта группа пользователей, которая на начальной стадии разработки БД отвечает за его оптимальную организацию для одновременной работы множества конечных пользователей. На стадии эксплуатации администратор отвечает за корректность работы данного банка информации в многопользовательском режиме. На стадии развития и реорганизации отвечает за корректную реорганизацию без изменения или прекращения его текущей эксплуатации.
Основные функции администратора:
Анализ предметной области, выявление ограничений целостности, определение статуса информации (доступность, секретность), определение потребностей пользователей.
Проектирование структуры БД: определение состава и структуры таблиц, выбор методов доступа к информации, описание БД на языке описания данных.
Задание ограничений целостности при описании структуры БД и процедур обработки данных, в том числе задание декларативных ограничений целостности, присущих предметной области; определение динамических ограничений целостности в процессе изменения информации, хранящейся в БД; определение ограничений целостности при параллельной работе пользователей.
Разработка технологии первоначальной загрузки, которая будет отличаться от процедуры модификации и дополнения данными при штатном использовании БД.
Защита данных, включающая определение системы паролей, принципов регистрации пользователей.
Разработка средств фиксации доступа к данным и попыток нарушения системы защиты.
Разработка организационных средств архивирования и принципов восстановления БД.
Работа с конечными пользователями: сбор информации об изменении предметной области, обучение пользователей, разработка необходимой методической и учебной документации по работе конечных пользователей.
Разработчики и администраторы приложений.
Эта группа пользователей функционирует во время проектирования, создания и реорганизации БД. Администраторы приложений координируют работу разработчиков. Разработчики конкретных приложений работают с той частью информации из БД, которая требуется для конкретного приложения.
Контрольные вопросы
В чем заключаются основные особенности каждого из этапов развития СУБД?
Что представляет собой трехуровневая архитектура ANSI-SPARC; каково ее назначение?
Охарактеризуйте каждый из уровней архитектуры ANSI-SPARC.
Перечислите основных пользователей базы данных.
В чем заключаются функции администратора базы данных?
Модели клиент- сервер в технологии бд
Вычислительная модель клиент-сервер исходно связана с парадигмой открытых систем, которая появилась в 90-х годах и быстро развивалась. Термин клиент-сервер исходно применялся к архитектуре, при которой клиентский процесс запрашивает некоторые услуги, а серверный процесс обеспечивает их выполнение.
Реализация архитектуры клиент - сервер, применительно к разработке БД позволяет более полно использовать ресурсы сети. Нагрузка равномерно распределяется между компьютером сервером и компьютером клиентом, который также как и сервер обладает собственными ресурсами.
Основной принцип технологии клиент – сервер применительно к технологии БД заключается в разделении функций стандартного интерактивного приложения на 5 групп, имеющих различную природу:
Функции ввода и отображения данных (Presentation Logic).
Прикладные функции, определяющие основные алгоритмы решения задач приложения (Business Logic).
Функции обработки данных внутри приложения (Database Logic).
Функции управления информационными ресурсами (Database Manager System).
Служебные функции, играющие роль связок между функциями первых 4-х групп.
Структура типового интерактивного приложения, работающего с БД, приведена на рисунке 2.
рис.
Рисунок 2
Презентационная логика – эта часть приложения, определяющая то, что пользователь видит на экране. Сюда относятся, интерфейсные экранные формы, а также все, что выводится пользователю на экран, как результаты решения промежуточных задач или справочная информация.
Основными задачами презентационной логики являются:
Формирование экранных изображений;
чтение и запись в экранные формы информации;
управление экраном;
обработка движений мыши и нажатия клавиш клавиатуры.
Бизнес- логика или логика приложений - это часть кода приложения, которая определяет собственно алгоритмы решения задач приложения. Обычно этот код пишется с помощью различных языков программирования: С, Соbol, Visual Basic.
Логика обработки данных - это часть кода приложения, которая связана с обработкой данных внутри приложения. Данными управляет собственно СУБД. Для обеспечения доступа к данным используются язык запросов и средства манипулирования данными языка SQL. Процессор управления данными – это собственно СУБД, которая обеспечивает хранение и управление БД.
В централизованной архитектуре эти функции располагаются в единой среде и комбинируются внутри исполняемой программы. В децентрализованной архитектуре эти задачи могут быть по-разному распределены между серверным и клиентским процессами. В зависимости от характера распределения можно выделить следующие модели распределений:
распределенная презентация; (часть представления на клиенте, часть на сервере, на севере – все остальные части)
удаленная презентация; (вся презентация на клиенте – все остальное на сервере)
распределенная бизнес логика; (презентация и часть бизнес-логики на клиенте)
распределенное управление данными; (презентация, бизнес-логика, и часть управления данными на клиенте);
удаленное управление данными (презентационная и бизнес-логика на клиенте, остальное на сервере).
распределенная БД.
Эта классификация показывает, как задачи могут быть распределены между серверным и клиентским процессами.