- •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
9.10. Запросы к нескольким отношениям9.10.1. Декартово произведение и соединение в sql
Пусть необходимо определить имя продюсера кинофильма "Star Wars". Чтобы получить результат, необходимо воспользоваться двумя следующими отношениями из "кинематографической" базы данных:
Movie(title, year, length. inColor, studioName, producerC#)
MovieExec(name, address, cert#, netWorth)
Запрос формулируется следующим образом:
SELECT name
FROM Movie, MovieExec
WНERE title = 'Star Wars' AND producerC# = cert#;
При необходимости соединения нескольких кортежей одного и того же отношения R отношение может быть упомянуто в предложении FROM столько раз, сколько необходимо, но "копии" отношения R в предложении FROM снабжаются уникальным псевдонимом (alias) отношения, или переменной кортежа (tuple variable). Имя и псевдоним отношения в предложении FROM разделяются (необязательным) служебным словом AS.
Если отношению поставлен в соответствие псевдоним, он может быть использован вместо имени отношения во всех случаях - например, для ссылки на (одноименные) атрибуты в предложениях SELECT и WНERE.
Пусть необходимо информации о двух актерах, проживающих по одному адресу. Структура запроса сохраняется, но теперь нам предстоит соединить два кортежа одного и того же отношения MovieStar. Создадим псевдонимы для двух копий отношения MovieStar и запишем текст запроса следующим образом:
SELECT Starl.name, Star2.narne
FROM MovieStar Starl, MovieStar Star2
WНERE Starl.address = Star2.address
AND Starl.name < Star2.name;
Дисциплина “Обработка информации баз данных и знаний” Лекция 10. Sql язык структурированных запросов
Учебные вопросы
10.1. Запросы к нескольким отношениям
10.1.1. Декартово произведение и соединение в SQL
10.1.2. Объединение, пересечение и разность запросов
10.2. Подзапросы
10.2.1. Подзапросы для вычисления скалярных значений
10.2.2. Условия уровня отношения
10.2.3. Условия уровня кортежа
10.2.4. Коррелированные подзапросы
10.2.5. Подзапросы в предложениях FROM
-
Выражения соединения в SQL
10.1. Запросы к нескольким отношениям10.1.1. Декартово произведение и соединение в SQL
Задание 1. Определить имя продюсера кинофильма "Star Wars". Чтобы получить результат, необходимо воспользоваться двумя следующими отношениями из "кинематографической" базы данных:
Movie (title, year, length. inColor, studioName, producerC#)
MovieExec (name, address, cert#, netWorth)
Запрос формулируется следующим образом:
SELECT name
FROM Movie, MovieExec
WНERE title = 'Star Wars'
AND producerC# =cert#;
При необходимости соединения нескольких кортежей одного и того же отношения R отношение может быть упомянуто в предложении FROM столько раз, сколько необходимо, но "копии" отношения R в предложении FROM снабжаются уникальным псевдонимом (alias) отношения, или переменной кортежа (tuple variable). Имя и псевдоним отношения в предложении FROM разделяются (необязательным) служебным словом AS. Если отношению поставлен в соответствие псевдоним, он может быть использован вместо имени отношения во всех случаях - например, для ссылки на (одноименные) атрибуты в предложениях SELECT и WНERE.
Задание 2. Найти информацию о двух актерах, проживающих по одному адресу. Структура запроса сохраняется, но теперь нам предстоит соединить два кортежа одного и того же отношения MovieStar. Создадим псевдонимы для двух копий отношения MovieStar и запишем текст запроса следующим образом:
SELECT Star1.name, Star2.name
FROM MovieStar Star1, MovieStar Star2
WНERE Star1.address = Star2.address
AND Star1.name < Star2.name;