КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Соединение с дополнительным условием.
Пример: Выдать номера поставщиков и номера деталей, которые соответственно проживают и изготавливаются в одном городе и исключить из рассмотрения поставщиков с состоянием меньшим 10 ( поставщик не обязательно поставляет деталь).
Решение: SELECT S.номер_поставщика, P.номер_детали FROM S, P WHERE S.город = P.город AND P.состояние > 10;
Результат:
1. Простой подзапрос. Пример: Выдать номера поставщиков, которые поставляют детали с номерос P2.
Примеры таблиц: S
SPG
Решение: SELECT имя FROM S WHERE номер_поставщ IN (SELECT номер_поставщи FROM SPJ WHERE номер_детали = ‘P2’);
Вначале обрабатывается внутренний подзапрос. Здесь определяются номера поставщиков, которые поставляют детали с номером P2. Затем выполняется внешний запрос, где номер поставщика из каждой записи таблицы S проверяется на принадлежность ранее найденному множеству.
В принципе подзапрос возвращает множество {S2}. Этому условию удовлетворяет вторая запись в таблице S. è Результат:
2. Запрос с несколькими уровнями вложенности подзапросов. Пример: Выдать имена поставщиков, которые поставляют, по крайней мере, одну красную деталь. Примеры таблиц S и SPG см. в предыдущем примере. Пример таблицы P.
Решение: SELECT имя FROM S WHERE номер_поставщ IN (SELECT номер_поставщика FROM SPJ WHERE номер_детали = IN SELECT номер_детали FROM P WHERE цвет = ‘красный’)); Вычисление начинается с самого внутреннего подзапроса и продолжается вверх до внешнего запроса. Самый внутренний подзапрос возвращает {P1,P2} Следующий подзапрос возвращает {S1,S2} Результат:
-------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------
БИЛЕТ 17
1. Алгоритм построения схемы базы данных, обладающей свойствами соединения без потерь, сохранения зависимостей, отсутствия аномалий. Преимущества и недостатки алгоритма.
Алгоритм построения «хорошей» схемы БД Дано: – универсальная схема отношения; F – исходное множество функциональных зависимостей на R.
Задача: Построить «хорошую» схему БД. – ?
Решение:
Иначе перейти к пункту 5.
Примечание: после выполнения пунктов алгоритма 1-6 схема БД обладает Свойством Сохранения Зависимостей, и каждая её схема отношения находится в 3НФ.
Примечание: после выполнения всех 7 пунктов алгоритма схема БД обладает всеми свойствами «хорошей» схемы БД: 1) Свойство Соединения Без Потерь; 2) Свойство Сохранения Зависимостей; 3) Каждая схема отношения в находится в 3НФ.
7-е условие слишком жесткое (надо найти ключ для универсальной схемы отношения – а в ней бывают сотни атрибутов).
Примечание: 7-ой пункт предполагает, что, в принципе, при разработке таблиц в БД, будут соединены все таблицы из , но на практике такого не бывает, поэтому его можно ослабить: 7. Если в запросах к БД соединяет не все схемы отношений из , а только из подмножества , , …, , то в можно добавить ключи для Q1, Q2, …, Qk в качестве новых схем отношений. (Если, конечно, эти ключи не содержатся уже ни в одной из схем отношения из ).
Лекция 11
|