- •Содержание
- •Глава 1 Концепция баз данных 6
- •Глава 2 Модели данных 12
- •Глава 3 Реляционная модель данных 24
- •Глава 4 Элементы языка sql 42
- •Глава 5 Проектирование баз данных 66
- •Глава 6 Функции субд и системы обработки транзакций 81
- •Глава 7 Технологии, модели и архитектура систем обработки данных 88
- •Глава 1 Концепция баз данных
- •1.1 Данные и эвм
- •1.2 Поколения субд и направления исследований
- •1.3 Терминология в субд
- •1.4 Вопросы для самоконтроля к главе 1
- •Глава 2 Модели данных
- •2.1. Классификация моделей данных
- •2.2 Основные особенности систем, основанных на инвертированных списках
- •2.2.1 Структуры данных
- •2.2.2 Манипулирование данными
- •2.2.3 Ограничения целостности
- •2.3 Иерархические модели
- •2.3.1. Иерархические структуры данных
- •2.3.2 Манипулирование данными
- •2.3.3 Ограничения целостности
- •2.4 Сетевые модели
- •2.4.1 Сетевые структуры данных
- •2.4.2 Манипулирование данными
- •2.4.3 Ограничения целостности
- •2.5 Физические модели организации баз данных
- •Файловые структуры, используемые для хранения данных в бд
- •Модели страничной организации данных в современных бд
- •Этапы доступа к бд
- •Вопросы и упражнения для самоконтроля к главе 2
- •Глава 3 Реляционная модель данных
- •3.1 Базовые понятия реляционных баз данных
- •3.1.1. Тип данных
- •3.1.2. Домен
- •3.1.3 Схема отношения, схема базы данных
- •3.1.4 Кортеж, отношение, ключи
- •3.1.5 Связи в реляционных базах данных
- •3.2 Фундаментальные свойства отношений
- •3.2.1 Отсутствие кортежей-дубликатов
- •3.2.2 Отсутствие упорядоченности кортежей
- •3.2.3 Отсутствие упорядоченности атрибутов
- •3.2.4 Атомарность значений атрибутов
- •3.3. Характеристика реляционной модели данных
- •3.4 Трехзначная логика (3vl)
- •3.5 Реляционная алгебра
- •Эквисоединение. Наиболее важным частным случаем -соединения является случай, когда есть просто равенство. Синтаксис эквисоединения:
- •3.6 Особенности операций реляционной алгебры
- •Реляционное исчисление
- •Вопросы и упражнения для самоконтроля к главе 3
- •Глава 4 Элементы языка sql
- •4.1 История языка sql
- •4.2 Структура языка sql
- •Ddl (Data Definition Language) - операторы определения объектов базы данных:
- •Dml (Data Manipulation Language) - операторы манипулирования данными:
- •Dcl (Data Control Language) - операторы контроля данных, защиты и управления данными:
- •4.3 Создание запроса с помощью оператора select
- •4.3.1 Создание простых запросов
- •4.3.2. Агрегирование данных в запросах
- •4.3.3 Формирование запросов на основе соединения таблиц
- •4.3.4 Формирование структур вложенных запросов
- •Простые подзапросы
- •4.3.4.2 Соотнесенные (коррелированные) подзапросы
- •Запросы с использованием кванторов
- •4.3.5 Объединение нескольких запросов в один
- •4.3.6 Синтаксис оператора select
- •4.4 Операторы манипулирования данных
- •4.4.1 Оператор удаления данных delete
- •4.4.2 Оператор вставки данных insert
- •4.4.3 Оператор обновления данных update
- •Операторы определения объектов базы данных
- •4.5.1 Операторы определения таблицы
- •4.5.2 Оператор определения представлений create view
- •Операторы контроля данных, защиты и управления данными
- •4.6.1 Операторы управления привилегиями
- •4.6.2 Операторы управления транзакциями
- •4.6.3 Проблемы параллельной работы транзакций
- •Вопросы и упражнения для самоконтроля к главе 4
- •Глава 5 Проектирование баз данных
- •5.1 Проектирование реляционных бд с использованием принципов нормализации
- •Проектирование реляционных бд с использованием семантических моделей
- •5.2.1 Применение семантических моделей при проектировании
- •5.2.2. Основные понятия модели Entity-Relationship
- •5.2.3 Пример разработки простой er-модели
- •Практические рекомендации по проектированию бд
- •Вопросы и упражнения для самоконтроля к главе 5
- •Глава 6 Функции субд и системы обработки транзакций
- •6.1 Основные функции субд
- •1.Непосредственное управление данными во внешней памяти
- •2. Управление буферами оперативной памяти
- •3. Управление транзакциями
- •4. Журнализация
- •5. Поддержка языков бд
- •Системы обработки транзакций
- •6.2.1 Oltp-системы
- •6.2.2 Olap -системы
- •6.2.3 Мониторы транзакций
- •Архитектура субд
- •6.4 Пользователи бд
- •6.4 Вопросы и упражнения для самоконтроля по главе 6
- •Глава 7 Технологии, модели и архитектура систем обработки данных
- •7.1 Технологии и модели архитектуры «клиент-сервер»
- •7.2 Распределенная обработка данных
- •Аспекты сетевого взаимодействия
- •Технология распределенной бд (технология star)
- •Технология тиражирования данных
- •7.3 Концепция активного сервера в модели dbs
- •7.4 Вопросы и упражнения для самоконтроля к главе 7
- •Литература
Этапы доступа к бд
Опишем последовательность действий при доступе к БД (см. рис. 2.7):
Сначала в СУБД определяется искомая запись, а затем для ее извлечения запрашивается диспетчер файлов (ДФ).
Диспетчер файлов одним из рассмотренных способов адресации определяет страницу, на которой находится искомая запись, а затем для ее извлечения запрашивается диспетчер дисков (ДД).
Диспетчер дисков определяет физическое положение искомой страницы на диске и посылает запрос на ввод – вывод данных (страница уже может находиться в ОЗУ).
С точки зрения СУБД база данных выглядит как набор записей, которые могут просматриваться с помощью ДФ. С точки зрения ДФ БД выглядит как набор страниц, которые могут просматриваться с помощью ДД.
ДД часто бывает компонентом ОС, с помощью которого выполняются все операции ввода/вывода, используя физические адреса записей. Однако ДФ не обязательно знать физические адреса записей, достаточно рассматривать диск как набор страниц фиксированного размера с уникальным идентификатором набора страниц.
запрос хранимых записей
запрос хранимых страниц
дисковые операции ввода/
вывода
Рисунок 2.7 Схема доступа к БД
Страница внутри набора обладает уникальным идентификационным номером страницы. Соответствие физических адресов на диске и номера станиц достигается с помощью ДД.
Преимущества страничной организации - все компоненты высокого уровня не зависят от конкретного диска.
Диск – это набор хранимых файлов. Файл – хранимый набор однотипных записей. В общем случае хранимый файл может храниться в памяти различными способами:
на одном томе памяти (диске);
на нескольких томах;
физически упорядоченным в соответствии со значением некоторого хранимого поля;
упорядоченным с помощью одного или нескольких индексов;
упорядоченным с помощью цепочек указателей;
к нему может быть обеспечен доступ методом хэш-адресации;
хранимые записи могут быть объединены в блоки (несколько логических записей в одной физической записи).
Набор страниц может содержать несколько хранимых файлов. Каждый хранимый файл имеет имя или идентификационный номер (file ID), уникальный в данном наборе страниц. А каждая хранимая (логическая) запись обладает идентификационным номером (record ID).
ДФ выполняет следующие операции с файлами:
извлечь хранимую запись r из хранимого файла f;
заменить хранимую запись r в хранимом файле f;
удалить хранимую запись r из хранимого файла f;
добавить новую хранимую запись r в хранимый файл f;
создать новый хранимый файл f;
удалить хранимый файл f.
В одних СУБД ДФ – компонент ОС, а в других – СУБД.
Все страницы диска делятся на несвязанные наборы. Один из наборов, набор пустых страниц, - свободное пространство на диске.
Операции, выполняемые ДД с наборами страниц:
извлечь страницу P из набора S;
заменить страницу P из набора S;
добавить новую страницу в набор S (извлечь ее из набора пустых страниц и добавить в набор S);
удалить страницу P из набора S (поместить ее в набор пустых страниц).
Пример 2.1 Рассмотрим БД «Заказы деталей», которая содержит таблицы ПОСТАВЩИКИ (Р1, Р2, Р3, Р4, Р5); ДЕТАЛИ (Д1, Д2, Д3, Д4, Д5, Д6); ПОСТАВКИ (РД1, РД2, РД3, РД4, РД5, РД6). Для размещения БД будет создан набор страниц:
0 |
1 Р1 |
2 Р2 |
3 Р3 |
4 Р4 |
5 Р5 |
6 Д1 |
7 Д2 |
8 Д3 |
9 Д4 |
10 Д5 |
11 Д6 |
12 РД1 |
13 РД2 |
14 РД3 |
15 РД4 |
16 РД5 |
17 РД6 |
18 |
19 пустые станицы на диске |
На странице с номером 0 хранится информация о структуре БД: количестве записей в таблице; их распределении по страницам; о номерах и количестве пустых страниц. Выполним действия по модификации БД.
Добавить запись о поставщике Р6. Для этого ДФ вставляет новую хранимую запись, а ДД ищет первую пустую страницу (18), а затем добавляет ее к набору страниц поставщиков.
Удалить запись о поставщике Р2. ДФ удаляет запись, а ДД возвращает страницу 2 в набор пустых страниц.
Добавить новую запись о детали Д7. Для этого ДФ вставляет новую хранимую запись, а ДД ищет первую пустую страницу (2), а затем добавляет ее к набору страниц о деталях.
После выполнения действий по модификации нельзя гарантировать, что логически близкие записи будут физически располагаться рядом. Поэтому логическую последовательность страниц в данном наборе следует задавать с помощью указателей.
Для некоторого хранимого файла всегда можно осуществить последовательный доступ ко всем хранимым записям обычно в порядке возрастания RID (под термином «последовательный» понимаем доступ согласно последовательности записей внутри страницы и последовательности страниц внутри набора страниц). Такая последовательность называется физической, хотя она не всегда соответствует физическому расположению данных на диске. Это наиболее простой способ доступа к данным - последовательное сканирование.
Для ускорения поиска используются технологии хеширования, индексирования, поиска с использованием В-деревьев.