- •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
10.2.5. Подзапросы в предложениях from
Подзапросы могут использоваться и в роли отношений, перечисляемых в предложении FROM внешнего запроса.
В этом случае текст подзапроса заключается в круглые скобки и помещается в список имен отношений предложения FROM.
Поскольку итоговое отношение, получаемое в результате обработки подзапроса, заведомо безымянно, его следует снабдить соответствующим псевдонимом.
Задание 8. Найти данные о продюсерах фильмов, в которых снимался актер Гаррисон Форд.
Предположим, что имеется запрос, способный возвратить отношение, которое содержит сертификационные номера всех этих продюсеров. Связав отношение с отношением MovieExec, мы сможем легко определить имена продюсеров. Текст соответствующего запроса имеет вид:
1) SELECT name
2 ) FROM MovieExec, (SELECT producerC#
3 ) FROM Movie, StarsIn
4) WНERE title = movieTitle AND
5) year = MovieYear AND
6) starName = 'Harrison Ford'
7 )) Prod
-
WНERE cert# = Prod.producerC#;
10.2.6. Выражения соединения в sql
SQL позволяет использовать различные варианты оператора соединения (jоin) двух отношений с целью конструирования новых отношений. Речь идет об операторах декартова проuзведения (Саrtеsiаn product), естественного соединения (nаturаl join), тетасоединения (theta-join) и внешнего соединения (outerjoin). Операторы могут применяться как в виде самостоятельных запросов, так ив контексте подзапросов в предложениях FROM конструкций "select-from-where".
Простейшая форма выражения соединения в SQL носит название перекрестного соединения (cross join); термин является синонимом декартова произведения
Декартово произведение в его "чистом" виде, однако, используется относительно редко.
Более широкое применение находит операция тета-соединения, обозначаемая с помощью служебного слова ON: между именами отношений-аргументов R и S задается служебное слово JOIN, а затем, после слова ON, формулируется требуемое условие соединения.
Смысл конструкции R JOIN S ON С состоит в вычислении декартова произведения R х S с последующим применением операции выбора по критерию С, заданному после ON.
Задание 9. Пусть необходимо соединить отношения:
Movie {title, year, length, inColor, studioName, producerC#)'
StarsIn {movieTitle, movieYear, starName)
в предположении, что слиянию подлежат только такие кортежи, которые ссылаются на один и тот же "кинофильм". Иными словами, соединяемые кортежи должны обладать одинаковыми значениями компонентов title (movieTitle) и year (movieYear). Запрос можно записать как
Movie JOIN StarsIn ON
title = movieTitle AND year = movieYear;