
- •Операции над данными, определенные в иерархической модели:
- •Операции над данными.
- •Объединение
- •Пересечение
- •Разность
- •Произведение
- •Выборка
- •Проекция
- •Деление
- •Соединение
- •Операторы базы данных
- •Создание и удаление таблиц
- •Добавить новую запись в таблицу:
- •Примеры использования
- •Модификация записей:
- •Удаление записей
- •Выборка данных.
- •Специальные операторы any или some
- •Специальный оператор all
- •Any и all вместо exists с пустым указателем( null )
- •Удаление индексов
- •Введение: представления
- •Что такое представление ?
- •Команда create view
- •Модифицирование представлений
- •Что не могут делать представления
- •Удаление представлений
- •Основные понятия метода
- •Формирование отношений для связи 1:1
- •Формирование отношений для связи м:м
- •Архитектура базы данных. Физическая и логическая независимость
- •Проблемы параллельного доступа с использованием транзакций
- •[Править]По области действия
- •[Править]По строгости
- •Восстановление базы данных
- •Характеристики хранилищ данных
- •Тип данных hierarchyid
- •Пространственные типы данных
- •Встроенные (системные) функции
- •1) Список стандартных функций
- •Объявление хранимой функции
- •Основные методы восстановления данных
Деление
Реляционное деление достаточно нетривиально описать, но на примере его смысл нагляден. В целом, из таблицы берутся значения строк, для которых присутствуют все комбинации значений из таблицы B. Понятно? Ну, примерно об этом я и пытался сказать, смотрим пример:
Пример
Пусть даны следующие соотношения:
Мульфильмы
Код_мульта |
Название_мульта |
Название_канала |
0 |
The Simpsons |
RenTV |
0 |
The Simpsons |
2х2 |
0 |
The Simpsons |
CTC |
1 |
Family Guy |
RenTV |
1 |
Family Guy |
2х2 |
2 |
Duck Tales |
СТС |
2 |
Duck Tales |
2x2 |
Тогда при делении на таблицу каналов:
Каналы
Название_канала |
RenTV |
2х2 |
Результатом будет:
Код_мульта |
Название_мульта |
0 |
The Simpsons |
1 |
Family Guy |
Family Guy и The Simpsons - мультфильмы, которые показывались и на RenTV и на 2x2 (условие во второй таблице). При этом Duck Talesне показывалось по RenTV, потому был исключён из результирующей таблицы.
Эквивалентный SQL-запрос привести затрудняюсь
Соединение
Операция соединения есть результат последовательного применения операций декартового произведения и выборки. Если в отношениях и имеются атрибуты с одинаковыми наименованиями, то перед выполнением соединения такие атрибуты необходимо переименовать. [ 4 ]
Пример
Мульфильмы
Код_мульта |
Название_мульта |
Название_канала |
0 |
The Simpsons |
2х2 |
1 |
Family Guy |
2х2 |
2 |
Duck Tales |
RenTV |
Каналы
Код_канала |
Частота |
RenTV |
3,1415 |
2х2 |
783,25 |
Соединим ИХ с выборкой а Название_канала = Код_канала (Произведение) Первый этап, произведение:
Код_мульта |
Название_мульта |
Название_канала |
Код_канала |
Частота |
0 |
The Simpsons |
2х2 |
RenTV |
3,1415 |
0 |
The Simpsons |
2х2 |
2х2 |
783,25 |
1 |
Family Guy |
2х2 |
RenTV |
3,1415 |
1 |
Family Guy |
2х2 |
2х2 |
783,25 |
2 |
Duck Tales |
RenTV |
RenTV |
3,1415 |
2 |
Duck Tales |
RenTV |
2х2 |
783,25 |
Второй этап, а выборка Название_канала = Код_канала (Произведение):
Код_мульта |
Название_мульта |
Название_канала |
Код_канала |
Частота |
0 |
The Simpsons |
2х2 |
2х2 |
783,25 |
1 |
Family Guy |
2х2 |
2х2 |
783,25 |
2 |
Duck Tales |
RenTV |
RenTV |
3,1415 |
Эквивалентный SQL-запрос:
ВЫБОР * FROM Мультфильмы, Каналы ГДЕ Название _ канала = Код _ канала
9)Операторы SQL для создания, модификации и удаления баз данных и таблиц.