- •Серверы баз данных Курс лекций
- •Предисловие
- •Серверы баз данных. Основные понятия
- •История развития субд
- •Перспективы развития субд
- •Трехуровневая архитектура бд. Ее назначение
- •Модели клиент- сервер в технологии бд
- •Пользователи бд
- •Разработчики и администраторы приложений.
- •Контрольные вопросы
- •Двухуровневые модели
- •Модель удаленного доступа к данным
- •Удаленная презентация (Модель сервера бд)
- •Модель распределенной бд
- •Модель сервера приложений
- •Проектирование баз данных
- •Этапы разработки базы данных
- •Критерии оценки качества логической модели данных
- •Алгоритм нормализации (приведение к 3нф)
- •Элементы модели "сущность-связь"
- •Основные понятия er-диаграмм
- •Пример разработки er-модели
- •Описание предметной области
- •Описание сущностей и типов связей
- •П ереход к реляционной модели
- •Концептуальные и физические er-модели
- •Контрольные вопросы
- •Языки бд. Язык определения данных
- •Создание бд. Способы создания бд
- •Создание таблиц базы данных
- •Декларативные ограничения при создании таблиц
- •Задание ограничений ссылочной целостности
- •Изменение таблиц
- •Создание индексов в системе sql-сервер
- •Кластеризованный индекс
- •Контрольные вопросы
- •Языки бд. Язык управления данными
- •Выборка данных
- •Сортировка результатов запроса
- •Вложение запросов
- •Создание таблицы из набора результатов
- •Использование оператора union
- •Запросы на модификацию данных
- •Запросы на удаление
- •Запросы на добавление
- •Вставка записей из другой таблицы
- •Добавление данных в указанные поля
- •Values(‘31.03.03’,’согласен’,3000,4)
- •Запросы на обновление
- •Контрольные вопросы
- •Создание представлений
- •Создание, удаление и обновление представлений
- •Модифицируемые и немодифицируемые представления
- •Контрольные вопросы
- •Хранимые процедуры
- •Элементы Transact sql
- •Оператор условия
- •Циклическое выполнение операций
- •Функции
- •Создание хранимых процедур
- •Выполнение хранимой процедуры.
- •Контрольные вопросы
- •Триггеры
- •Назначение триггеров
- •Создание триггеров
- •Принцип работы триггеров
- •Включение и отключение триггера. Удаление триггера, Просмотр информации о триггерах
- •Контрольные вопросы
- •Транзакции и блокировки
- •Понятие транзакции
- •Свойства транзакций. Способы завершения транзакций
- •Операторы Transact sql для работы с транзакциями
- •Журнал транзакций.
- •Блокировки.
- •Сериалиация транзакций
- •Переопределение блокировок на уровне запроса. Типы блокировок
- •Контрольные вопросы
- •Безопасность данных и привилегии
- •Принципы защиты баз данных от несанкционированного доступа
- •Защита данных в системе ms sql Server
- •Контрольные вопросы
- •Организация доступа к бд из прикладных программ
- •Понятие курсора
- •Интерфейс прикладного программирования
- •Архитектура odbc
- •Архитектура odbc
- •Контрольные вопросы
- •Файловые структуры, используемые для хранения информации в бд.
- •Файлы прямого и последовательного доступа
- •Индексные файлы
- •Файлы с плотным индексом
- •Файлы с неплотным индексом
- •Моделирование отношений 1:м на файловых структурах
- •Моделирование отношений 1:м с использованием однонаправленных указателей
- •Структура записи подчиненного файла.
- •Алгоритм удаление записи из цепочки подчиненного файла.
- •Инвертированные списки
- •К Рисунок 14 онтрольные вопросы
- •Содержание
- •Литература
Контрольные вопросы
Перечислите и охарактеризуйте уровни моделирования базы данных.
Перечислите основные критерии качества логической модели данных.
Какими свойствами должно обладать отношение, находящееся в 1 НФ?
Какие отношения требуют перевода в 2 НФ?
В чем заключается алгоритм перевода отношения в 2 НФ?
В каких случаях требуется перевод отношений в 3 НФ?
Как перевести отношение 3 НФ?
Перечислите основные понятия ER-модели.
Что понимают под ключом сущности?
Какие типы связей возможны между сущностями?
В чем смысл понятия модальности связи, и каким образом задается модальность связи на ER-диаграмме?
Перечислите правила преобразования инфологической модели в реляционную. Каким образом выполняется преобразование связей?
Языки бд. Язык определения данных
Внутренний язык СУБД для работы с данными состоит из 2-х частей: языка определения данныx (DDL)и языка управления данными (DML).
Язык определения данных используется для определения схемы данных, язык управления данными служит для чтения и обновления данных, хранимых в базе. Во многих СУБД предусмотрена возможность внедрения операторов подъязыка данных в программы, написанные на языках высокого уровня.
Язык DDL позволяет описывать таблицы БД и связи между ними. Результатом компиляции DDL-операторов является набор таблиц, хранимых в особых файлах, называемых системным каталогом. В системном каталоге содержатся метаданные, т.е. данные, которые описывают объекты БД.
Язык DML содержит набор операторов для манипулирования данными:
вставки в БД данных новых сведений;
модификации сведений;
извлечение сведений, хранимых в базе;
удаления сведений из базы.
Языки DML различаются базовыми конструкциями извлечения данных. Различают два типа языков: процедурный и непроцедурный. С помощью процедурного языка можно указать, какие данные необходимы, и как их можно получить. Языки сетевых и иерархических СУБД обычно бывают процедурными.
Непроцедурный язык позволяет указать лишь то, какие данные необходимо получить, без указания на то, как их следует извлекать. Реляционные СУБД обычно включают поддержку непроцедурных языков манипулирования данными, чаще всего SQL.
Создание бд. Способы создания бд
Обычному пользователю, как правило, не приходится создавать БД или таблицы внутри нее. Традиционно он работает с уже готовой структурой, которая уже разработана и реализована администратором БД.
С помощью операторов DDL можно:
создать новую БД,
определить структуру новой таблицы и создать эту таблицу,
удалить существующую таблицу,
изменить определение существующей таблицы,
определить представление данных,
обеспечить условия безопасности БД,
создать индексы для доступа к таблицам,
управлять размещением данных на устройствах хранения..
DDL базируется на трех командах SQL.
CREATE – позволяет определить и создать объект БД;
DROP - применяется для удаления существующего объекта БД;
ALTER - изменяет определение объекта БД.
Использование DDL в процессе работы позволяет сделать структуру реляционной БД динамической. С течением времени БД может расти, в нее могут добавляться новые таблицы, без приостановки эксплуатации БД.
Операторы DDL можно использовать как в интерактивном, так и в программном SQL. Например, если программе или пользователю требуется таблица для временного хранения результатов, то допускается создать эту таблицу, заполнить ее информацией, выполнить необходимые манипуляции с данными и затем удалить ее. В реальных условиях за создание новых БД отвечает администратор.
Методы создания БД, применяемые в ведущих реляционных СУБД, имеют ряд различий. Например, в MS SQL SERVER существует оператор CREATE DATABASE, который является частью языка определения данных и служит для создания БД. Соответственно, оператор DROP DATABASE удаляет существующие БД. Эти операторы можно использовать как в интерактивном, так и в программном режиме.
Создание базы данных – это процесс указания имени базы и определения размеров и размещения файлов базы данных (первичного и вторичных файлов базы данных, файла журнала транзакций). В primary файле базы данных (расширение .mdf) записывается информация об основных её объектах – таблицах, индексах и т. д., а в файл журнала транзакций (расширение .ldf) информация о процессе работы с транзакциями (контроль целостности данных, состояние базы данных до и после выполнения транзакции). Если в процессе использования базы данных планируется размещение её на нескольких дисках, то в этом случае создаются secondary файлы (расширение .ndf). По умолчанию базы данных имеют право создавать только те пользователи, которым назначены роли sysadmin и dbcreator.
Синтаксис
CREATE DATABASE имя_базы_данных
[ON
[PRIMARY] (NAME=логическое_имя_файла,
FILENAME=‘физическое_имя_файла’
[, SIZE=размер]
[, MAXSIZE=максимальный размер]
[, FILEGROWTH=шаг_приращения_размера])
[, …n]
]
[LOG ON
(NAME=логическое_имя_файла_журнала,
FILENAME=‘физическое_имя_файла_журнала’
[, SIZE=размер_журнала])
[, …n]
]
[FOR RESTORE]
При этом следует иметь в виду, что пробелы используются для разделения элементов команды SQL, и поэтому они не могут быть частью имени базы данных, таблицы или какого-либо другого создаваемого объекта.
При создании базы данных можно указать следующие параметры:
PRIMARY указывает файлы основной группы файлов, которая содержит все системные таблицы базы данных. Кроме того, здесь также содержатся объекты, не привязанные к пользовательским группам файлов. В любой базе данных должен быть лишь один основной (первичный) файл данных. Он служит отправной точкой базы данных и указывает на все прочие её файлы. Стандартное расширение имени основного файла данных – .mdf. Если ключевое слово PRIMARY опущено, основным файлом становится первый файл в операторе;
FILENAME – задаёт физическое имя и путь к файлу. В пути (физическое_имя_файла) необходимо указывать папку локального диска сервера, на котором установлен SQL Server;
SIZE – указывает размер файла: в мегабайтах, тогда используется суффикс MB (по умолчанию), или в килобайтах – в этом случае применяется суффикс KB. Минимально возможное значение – 512 кб. Параметр size задает минимальный (начальный) размер файла. Файл может увеличиваться, однако его нельзя сжать так, чтобы его объем стал меньше заданного минимального размера;
MAXSIZE – указывает максимальный размер файла. Если размер не указан, то файл будет увеличиваться до полного заполнения диска;
FILEGROWTH – задает шаг приращения размера файла. Если SQL Server необходимо увеличить размер файла, он увеличит его на значение, заданное параметром FILEGROWTH, причем ноль означает запрет увеличения размера. По умолчанию (если параметр FILEGROWTH не определен) – шаг приращения равен 10%, а его минимальное значение – 64 Кб. Указанный вами размер округляется до ближайшего числа, кратного 64 Кб;
FOR RESTORE – задаёт восстановление системы по журналу транзакций в случае её сбоя. Имеется в виду сбой системы, нарушающий все выполняемые в данный момент транзакции, но не нарушающий базу данных физически. При сбое носителей, который представляет собой физическую угрозу для данных, восстановление осуществляется с резервной копии БД.
