- •Основные требования к организации базы данных
- •Основные компоненты субд
- •Три уровня представления данных в аис.
- •Классификация моделей данных
- •Инфологическое моделирование
- •Иерархическая модель данных
- •Сетевая модель данных
- •Реляционная модель данных. Элементы модели
- •Правила вывода функциональной зависимости
- •Реляционная алгебра
- •Нфсо, нф1, нф2
- •Нормальная форма Бойса - Кодда(нфбк)
- •Минимальное покрытие
- •Обобщённый алгоритм декомпозиции:
- •Соединение без потерь, сохраняющих зависимость
- •Метод Табло
- •Язык запросов sql. Основные категории
- •Язык запросов sql. Тип связывания
- •Многотабличные запросы. Использование псевдонимов
- •Использование оператора union для объединения результатов инструкций select
- •Модели транзакций. Журнал транзакций.
- •Основные компоненты субд Cache'
- •Файлы прямого и последовательного доступа
- •Инвертированные списки
- •Многозначная зависимость
- •Модель удаленного доступа к данным
- •Постреляционная модель данных
- •Многомерные модели
- •Распределенная обработка данных
- •Плотный, неплотный индекс
- •Модель сервер-приложение
- •Организация индексов в виде в-деревьев
- •Реляционное исчисление с переменными на доменах
- •Реляционное исчисление с переменными кортежами
- •Модель активного сервера
- •Модель файлового сервера
- •Субд Cache. Виды классов. Элементы классов
Реляционная алгебра
В ней определяются основные операции над данными реляционного типа. Все операции можно разделить на традиционные над множествами и специализированные, вводимые для удобства поиска в БД.
К операциям 1-й группы относятся: объединения, пересечения, разность, декартово произведение. К операциям 2 -й группы относятся: проекция, ограничение, соединение, деление.
Объединение. В результате применения этой операции получается отношение. объединяющее кортежи, содержащиеся в исходных отношениях. Пусть имеем два исходных отношения R1 и R2 . Операция объединения этих отношений обозначается R1 R2:
R1 R2 = { r / r R1 или r R2 }.
Объединяемые отношения должны иметь одинаковые атрибуты ( должны быть объединимы ):
Пересечение. В данной операции ( обозначенной ) получают отношение, включающее кортежи, общие для R1 и R2:
R1 R2 = { r / r R1 и r R2 }.
Разность: В результате применения этой операции (R1 \ R2 ) получается отношение, содержащее кортежи, являющиеся кортежами отношения R1 и не являющиеся кортежами отношения R2:
R1 \ R2 = { r / r R1 и r R2 }.
Декартово ( прямое ) произведение. В этой операции ( R1 х R2 ) из m - местного отношения R1 и n - местного отношения R2 получают ( m + n ) - местное отношение. Причём первые m элементов представляют кортежи из отношения R1 , последние n элементов - кортежи из отношения R2:
R1 х R2 = {< r1, r2 > / r R1 и r R2 }.
Проекция: Операция проекции предназначена для изменения числа столбцов в отношении, то есть в том случае, когда из строк - кортежей требуется исключить какие-либо атрибуты. Обозначим через j1, j2,..., jn - номера столбцов n - местного отношения R. Операцию определения проекции отношения R обозначим через j1, j2,..., jn ( R ), а сама операция заключается в том, что из отношения R выбираются столбцы и компонуются в указанном порядке j1, j2,..., jn.
Ограничение. Ограничением называют такую операцию, в которой отношение исследуют по строкам и выделяют множество строк, удовлетворяющим заданным условиям.
Соединение. Операция соединения обратна операции проекции. Рассмотрим два отношения R1 (А, В) и R2 (В, С). Соединением отношений R1 и R2 (R1 R2 ) называют операцию, при которой соединяют два отношения, используя в качестве признака общий атрибут В:
R1 R2 = { <A,B,C> / <A,B> R1 и <B,C> R2 }.
Отношение R1 R2 является отношением с атрибутами <A,B,C>.
Деление. Рассмотрим деление m - местного отношения R1 на n - местное отношение R2.
Пусть из общего количества m атрибутов отношения R1 выделим несколько атрибутов: A,B,...,F и из них составляем список, обозначив его через M. Набор значений атрибутов из М столбцов можно рассмотреть как проекцию отношения R на список атрибутов М, то есть М (R1). Тогда через М будут обозначаться атрибуты дополнительные к М, то есть атрибуты отношения R1, не вошедшие в список М, и соответственно значения атрибутов из списка М определяются М (R1).
Операцию деления можно определить так:
R1 [M N] R2 = М (R1) \ М ((М (R1) N (R2)) \ R1 },
где М - это проекция отношения на атрибуты списка М.