Лекция №1 - Операции реляционной алгебры
Определения
Схема отношения
Это поименованная совокупность атрибутов.
R =(A 1,..., An), где Ai - некоторый атрибут из домена отношения.
R =(идентификатор поставщика, адрес, товар, цена)=(A 1, A 2, A 3, A 4).
Здесь (A 1, A 3) - ключ, определяющий запись.
Степень схемы отношения
Это количество атрибутов в схеме.
Для R =(A 1, A 2, A 3, A 4) степень равна 4.
Экземпляр отношения
Это конкретная таблица с данной схемой отношения.
R =(идентификатор поставщика, адрес, товар, цена).
Кортеж
Любая одна строка в таблице экземпляра отношения.
Схема БД
A - множество всех атрибутов некоторой предметной области (универсальная схема отношения).
R 1,..., Rn - совокупность атрибутов.
Тогда ρ =(R 1,..., Rn) называется схемой БД.
Пример:
A =(A 1, A 2, A 3, A 4)
и две схемы: R 1=(A 1, A 2) и R 2=(A 1, A 3, A 4)
Так как R 1⋃ R 2= A, то ρ =(R 1, R 2).
Примеры схем БД
Пример "плохой" схемы БД
Пусть A =(идентификатор поставщика, адрес, товар, цена)
и есть одна схема ρ = R 1= A
Данная схема БД обладает следующими недостатками (аномалиями):
|
|
- избыточность. Адрес поставщика повторяется для каждого поставляемого им товара;
- потенциальная противоречивость. Если у поставщика меняется адрес, то его необходимо изменить во всех кортежах, в которые он входит;
- аномалия включения кортежа. В выбранном отношении R 1 пара атрибутов идентификатор-товар является ключом. При включении новой записи, атрибуты ключа не должны быть пустыми, поэтому в БД нельзя включить поставщика, если он в данный момент не поставляет товар;
- аномалия удаления. При удалении всех товаров, поставляемых поставщиком, теряется информация о самом поставщике.
Первопричиной этих недостатков является то, что R 1 не находится в 3НФ
Пример "хорошей" схемы БД
Пусть A =(идентификатор поставщика, адрес, товар, цена)
R 1=(идентификатор, адрес)
R 2=(товар, цена)
Схема ρ =(R 1, R 2) находится в 3НФ и не обладает перечисленными выше недостатками.
Основные операции реляционной алгебры
Объединение отношений
R = R 1⋃ R 2
Объединение отношений - это отношение, каждый кортеж которого принадлежит либо R 1, либо R 2.
Дублирование кортежей не допускается.