- •Основные понятия информационных систем Информация и субд
- •Файловые системы
- •Структуры файлов
- •Именование файлов
- •Области применения файлов
- •Потребности информационных систем
- •Структуры хранения данных и методы доступа к ним
- •Доступ к базе данных
- •Диспетчер дисков
- •Диспетчер файлов
- •Кластеризация
- •Наборы страниц и файлы
- •Индексирование
- •Плотное и неплотное индексирование
- •Структура типа б-дерева
- •Хеширование
- •Задание
- •Расширяемое хеширование
- •Цепочки указателей
- •Управление данными, размещенными в оперативной памяти
- •Функции и архитектура субд
- •Примеры приложений субд
- •Обзор основных компонентов субд
- •Диспетчер памяти
- •Процессор запросов
- •Диспетчер транзакций
- •Параллелизм
- •Задание. Привести схему применения двухфазной блокировки для решения проблемы незафиксированной зависимости и проблемы несовместимого анализа.
- •Журнализация
- •Поддержка языков бд
- •Типовая организация современной субд
- •Ранние подходы к организации бд
- •Основные особенности систем, основанных на инвертированных списках
- •Структуры данных
- •Манипулирование данными
- •Ограничения целостности
- •Иерархические системы
- •Иерархические структуры данных
- •Манипулирование данными
- •Ограничения целостности
- •Сетевые системы
- •Сетевые структуры данных
- •Манипулирование данными сетевой схемы
- •Ограничения целостности сетевых систем
- •Достоинства и недостатки
- •Реляционные базы данных Общие понятия и терминология реляционного подхода
- •Тип данных
- •Фундаментальные свойства отношений (таблиц)
- •Реляционная модель
- •Каталог
- •Базовые таблицы, представления, снимки и запросы
- •Отношения и предикаты
- •Null-значения; потенциальные и внешние ключи
- •Базисные операции над реляционными данными
- •5.1. Реляционная алгебра
- •5.1.1. Общая интерпретация реляционных операций
- •Замкнутость реляционной алгебры и операция переименования
- •Особенности теоретико-множественных операций реляционной алгебры
- •Специальные реляционные операции
- •Операция взятия проекции
- •Операция соединения отношений
- •Операция деления отношений
- •Упражнения
- •Задание
- •Операция расширения и подведения итогов
- •Операция подведения итогов
- •Задания
- •Операторы обновления
- •Упражнения по запросам
- •5.2. Реляционное исчисление
- •Кортежные переменные и правильно построенные формулы
- •Еще раз о свободных и связанных переменных
- •Целевые списки и выражения реляционного исчисления
- •Реляционное исчисление доменов
- •Список литературы
Каталог
Каждая СУБД должна обеспечивать функцию каталога, илисловаря. Каталог размещается там, где сохраняются различные схемы (внешние, концептуальные, внутренние). Каталог содержит детальную информацию (иногда называемуюдескрипторами), касающуюся различных объектов, которые имеют значение для самой системы. Примерами таких объектов могут служить таблицы, индексы, правила целостности, правила безопасности и т.д. Информация дескриптора необходима для обеспечения правильной работы системы. Например, оптимизатор использует информацию каталога об индексах, а также другую информацию, чтобы определиться, каким образом выполнить запрос пользователя. Подобно этому, подсистема безопасности использует информацию каталога о пользователях и правилах безопасности, чтобы разрешить (или отказать) запросу первоочередное выполнение.
Важно, что в реляционных системах каталог сам состоит из таблиц (точнее, системных таблиц). В результате пользователь может обращаться к каталогу так же, как к своим данным.
Базовые таблицы, представления, снимки и запросы
Исходные таблицы называют базовыми, а таблицы, полученные из них путем выполнения какихлибо реляционных выражений, называютпроизводнымитаблицами. То есть производная таблицаэто такая таблица, которая определяется в терминах других таблиц и, в конечном счете, в терминах базовых таблиц, а базовая таблицаэто такая таблица, которая не является производной.
Реляционные системы, очевидно, должны предоставлять средства для создания в первую очередь базовых таблиц. В SQL, например, эта функция выполняется операторомCREATETABLE. Базовые таблицы должны быть именованными. Большинство производных таблиц, напротив, неименованные. Однако реляционные системы обычно поддерживают один определенный вид производных таблиц, называемыхпредставлением, которое имеет имя. Таким образом, представлениеэто именованная таблица, которая, в отличие от базовой, не может существовать сама по себе, а определяется в терминах одной или нескольких именованных таблиц (базовых таблиц или других представлений).
Например, инструкцию
CREATEVIEWСПЕЦИАЛИСТЫAS(СОТРУДНИКИWHEREСОТР_ЗАРП > 10000) [СОТР_НОМЕР, СОТР_ИМЯ, СОТР_ЗАРП];
можно использовать для определения представления СПЕЦИАЛИСТЫ. Когда эта инструкция выполняется, выражение, следующее за ключевым словом ASи фактически определяющее представление не вычисляется, а просто «запоминается» системой (обычно путем сохранения в каталоге под указанным именем СПЕЦИАЛИСТЫ). Однако для пользователя это теперь такая же реальная таблица. Иными словами, СПЕЦИАЛИСТЫ обозначает виртуальную таблицу, т.е. таблицу, которая была бы результатом, если бы выражение, определяющее представление было бы на самом деле вычислено.
Здесь важно отметить, что СПЕЦИАЛИСТЫ не ссылается а отдельную копию данных, т.е. на самом деле представление не вычисляется. Наоборот, представление это просто «окно» в основной таблице СОТРУДНИКИ. Более того, любые изменения в основной таблице будут автоматически и немедленно видны через такое «окно», и наоборот.
В MSAccessпредставлению соответствует запрос, сохраняемый в базе данных.
Снимки (snapshot) это именованные производные отношения, такие же как представления. Однако в отличие от представлений снимки реальны, а не виртуальны, т.е. представлены не только с помощью определения в терминах других именованных отношений, но и также своими отдельными данными. Создание снимка похоже на выполнение запроса, за исключением того, что результат такого запроса сохраняется в базе данных под определенным именем как отношение, доступное только для чтения, и периодически (например, каждый день) снимок «обновляется», т.е. его текущее значение сбрасывается, запрос выполняется снова и его результат становится новым значением снимка.
Результатом запросаназывается неименованное производное отношение, служащее результатом некоторого определенного запроса (чтобы сохранить результат запроса, его можно присвоить некоторому именованному отношению).
Наконец, промежуточным результатомназывается неименованное производное отношение, являющееся результатом некоторого реляционного выражения, вложенного в другое, большее выражение.