- •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.1.2. Объединение, пересечение и разность запросов
Операторам объединения (), пересечения () и разности (-) соответствуют служебные слова языка SQL: UNION, INТЕRSЕСТ и ЕХСЕРТ. Каждое из них располагается между текстами двух запросов, заключенными в круглые скобки.
Операторы применяются к результатам запросов в предположении, что запросы возвращают отношения с совпадающими списками атрибутов и атрибуты относятся к одинаковым доменам.
Задание 3. Отыскать имена и адреса всех актрис, которые одновременно являются президентами киностудий или продюсерами, обладающими совокупным годовым доходом в размере свыше 10 миллионов долларов. Запрос к отношениям
MovieStar (name, address, gender, birthdate)
MovieExec (name, address, cert#, netWorth)
может выглядеть следующим образом:
1) (SELECT nаmе, address
2) FROM MovieStar
3) WНERE gender = 'F')
4) INTERSECT
5) (SELECT nаmе, address
6) FROM MovieExec
7) WНERE netWorth > 10000000);
Аналогичным образом может быть вычислена разность двух множеств кортежей. Запрос
(SELECT nаmе, address FROM MovieStar)
ЕХСЕРТ
(SELECT nаmе, address FROM MovieExec);
возвратит имена и адреса тех актеров (независимо от их пола и размера годового дохода), которые не являются одновременно продюсерами или президентами киностудий.
Задание 4. Выбрать названия и даты выпуска кинофильмов, которые упоминаются в любом из отношений
Movie (title, year, length, inColor, studioName, producerC#)
StarsIn (movieTitle, movieYear, starName)
"кинематографической" базы данных.
Запрос может выглядеть так:
(SELECT title, year FROM Movie)
UNION
(SELECT movieTitle AS title, movieYear AS year FROM StarsIn);
10.2. Подзапросы
Язык SQL позволяет использовать один запрос в качестве вспомогательного при вычислении результатов другого. Запрос, служащий частью более "крупного" запроса, принято называть подзапросом (subquery). Степень взаимной вложенности запросов не ограничивается и может быть произвольной.
Способы использования подзапросов:
1. Запрос возвращает единственное значение, которое сравнивается с другим значением в условии предложения WНERE.
2. Запрос возвращает отношение, используемое в предложении WНERE с той или иной целью.
-
Запрос оперирует отношениями, перечисленными в предложении FROM.
10.2.1. Подзапросы для вычисления скалярных значений
Атомарное значение, способное выступать в роли содержимого одного компонента кортежа отношения, называют скаляром (scalar). Запросы вида "select-from-where" могут возвращать отношения с любым числом атрибутов и произвольным количеством кортежей. Однако зачастую требуется получить набор значений единственного атрибута. Более того, нередко результатом запроса является единственное значение, представляющее некоторый итог, вычисленный на основании содержимого целой группы компонентов.
Задание 5. Найти имя продюсера киноленты "Star Wars".
Необходимо адресовать сразу два отношения,
Movie (title, year, length, inColor, studioName, producerC#)
MovieExec (name, address, cert#, netWorth).
Текст запроса в новой редакции:
1) SELECT name
2) FROM MovieExec
З) WНERE cert# =
4) (SELECT producerC#
5) FROM Movie
-
WНERE title = 'Star Wars') ;