- •1.1.Введение
- •1.1.1.Термины и определения
- •1.1.2. Основные функции субд
- •1.1.3. Классификация субд
- •1.1.4. Возможности субд
- •1.2. Обзор структуры субд
- •1.2.1.Источники управляющих инструкций
- •1.2.2.Обработка запросов
- •1.2.3. Менеджеры буферов и хранения данных
- •1.2.4. Обработка транзакций
- •1.2.5.Процессор запросов
- •2.2. Программирование приложений баз данных
- •2.3. Реализация систем баз данных
- •3.1.2.Домен
- •3.1.3. Схема отношения, схема базы данных
- •3.1.4. Кортеж, отношение
- •2.1. Проектирование баз данных
- •3.1.2.Домен
- •3.1.3. Схема отношения, схема базы данных
- •3.1.4. Кортеж, отношение
- •3.2. Фундаментальные свойства отношений
- •3.3. Реляционная модель данных
- •4.4. Специальные реляционные операции
- •5.2.Исчисление кортежей
- •5.2.1.Правильно построенные формулы
- •5.2.2. Кванторы, свободные и связанные переменные
- •5.2.3.Целевые списки и выражения реляционного исчисления
- •Лекция 6. Функциональные зависимости и декомпозиция без потерь Учебные вопросы
- •6.2. Замыкание множества функциональных зависимостей
- •6.3. Аксиомы Армстронга.
- •6.4.Замыкание множества атрибутов
- •6.5. Минимальное покрытие множества функциональных зависимостей
- •6.6.Декомпозиция без потерь и функциональные зависимости
- •6.7. Корректные и некорректные декомпозиции отношений. Теорема Хита
- •6.8. Диаграммы функциональных зависимостей
- •7.1. Введение
- •7.1. Введение
- •7.2. Минимальные функциональные зависимости и вторая нормальная форма
- •8.1. Введение
- •8.1. Введение
- •8.2. Многозначные зависимости и четвертая нормальная форма
- •8.2.1. Аномалии обновлений при наличии многозначных зависимостей и возможная декомпозиция
- •8.2.2. Многозначные зависимости. Теорема Фейджина. Четвертая нормальная форма
- •8.2.3. Лемма Фейджина
- •8.2.4. Теорема Фейджина
- •8.3. Зависимости проекции/соединения и пятая нормальная форма
- •8.3.2. Зависимость проекции/соединения
- •8.3.3. Аномалии, вызываемые наличием зависимости проекции/соединения
- •8.3.4. Устранение аномалий обновления в 3-декомпозиции
- •8.3.5. Пятая нормальная форма
- •Лекция 9. Sql язык структурированных запросов
- •9.1. Введение
- •9.2. Функции языка sql
- •9.3 История
- •9.4.Вопросы совместимости
- •9.5. Преимущества и недостатки
- •9.5.1. Преимущества
- •1. Независимость от конкретной субд
- •2. Наличие стандартов
- •3. Декларативность
- •9.5.2.Недостатки
- •1. Несоответствие реляционной модели данных
- •9.7. Проекция в sql
- •9.8. Выбор в sql
- •9.9. Сравнение строк
- •9.10. Запросы к нескольким отношениям9.10.1. Декартово произведение и соединение в sql
- •Дисциплина “Обработка информации баз данных и знаний” Лекция 10. Sql язык структурированных запросов
- •10.1.2. Объединение, пересечение и разность запросов
- •10.2. Подзапросы
- •10.2.1. Подзапросы для вычисления скалярных значений
- •10.2.2. Условия уровня отношения
- •10.2.3. Условия уровня кортежа
- •10.2.4. Коррелированные подзапросы
- •10.2.5. Подзапросы в предложениях from
- •10.2.6. Выражения соединения в sql
1.2.5.Процессор запросов
Подсистема, в наибольшей степени определяющая показатели производительности СУБД носит название процессора запросов (query processor). Процессор запросов представлен двумя компонентами:
1. Компилятор запросов (query compiler) транслирует запрос во внутренний формат системы — план запроса (query plan). Последний описывает последовательность инструкций, подлежащих выполнению. Компилятор запросов, принимая решение о том, какая из последовательностей операций с большей вероятностью окажется самой оптимальной по быстродействию, пользуется метаданными и статистической информацией, накопленной СУБД.
2.Исполняющая машина (execution engine) несет ответственность за осуществление каждой из операций, предусмотренных выбранным планом запроса. В процессе своей работы она взаимодействует с большинством других компонентов СУБД — либо напрямую, либо при посредничестве буферов данных. Чтобы получить возможность обрабатывать данные, исполняющая машина обязана считать их с носителя и перенести в буферы. При этом ей необходимо "общаться" с планировщиком заданий, чтобы избежать опасности обращения к блокированным порциям информации, а также с менеджером протоколирования, обеспечивающим гарантии того, что все изменения, внесенные в базу данных, должным образом зафиксированы в протоколе.
Компилятор запросов
состоит из трех основных частей:
синтаксического анализатора запросов (query parser), создающего на основе текста запроса древовидную структуру данных;
препроцессора запросов (query preprocessor), выполняющего семантический анализ запроса (проверку того, все ли отношения и их атрибуты, упомяну тые в тексте запроса, действительно существуют) и функции преобразования дерева, построенного анализатором, в дерево алгебраических операторов, от вечающих исходному плану запроса;
оптимизатора запросов (query optimizer), осуществляющего трансформацию плана запроса в наиболее эффективную последовательность фактических операций над данными.
Лекция. Обзор технологий СУБД
Учебные вопросы
Обзор технологий СУБД
2.1. Проектирование баз данных
2.2. Программирование приложений баз данных
2.3. Реализация систем баз данных
2.1. Проектирование баз данных
Вопросы:
Как разрабатывать полезные базы данных?
Информация каких разновидностей должна быть включена в базу данных?
Как надлежит структурировать данные?
Какие предположения следует выдвигать относительно типов и значений элементов данных?
Как обеспечить взаимосвязь этих элементов?
Ответы получают, привлекая:
технологию проектирования баз данных называемую ER-моделью, или моделью "сущность—связь" (entity-relationship model)
реляционную модель (relational model), лежащую в основе большинства наиболее распространенных коммерческих СУБД
зависимости (dependencies), формально выражающие предположение о взаимоотношениях кортежей отношения.
2.2. Программирование приложений баз данных
Вопросы:
Каковы средства представления запросов и других операций над содержимым базы данных?
Каким образом следует использовать другие возможности СУБД, такие как транзакции или ограничения, в конкретном программном приложении?
Как соотносится и сочетается программирование баз данных с программированием обычных приложений?
Ответы получают, привлекая:
абстрактную трактовку запросов в рамках реляционной модели, введя семейство операторов, применяемых в контексте отношения, которые составляют существо реляционной алгебры (relational algebra)
технологии программирования на языке SQL