Рассмотрим еще один пример, для
/p>
91
ФИО |
Дисциплина |
Оценка |
Уткина Н. В. |
Сети и телекоммуникации |
5 |
Трофимов П. А. |
Английский язык |
5 |
Иванова Е. А. |
Английский язык |
3 |
Уткина Н. В. |
Английский язык |
Null |
Рассмотрим еще один пример, для этого возьмем БД "Библиотека". Она состоит из трех отношений, имена атрибутов здесь набраны латинскими буквами, что является необходимым в большинстве коммерческих СУБД,
BOOKS(ISBN. TITL. AUTOR. COAUTOR. YEARIZD. PAGES)
READER(NUM_READER, NAME_READER, ADRESS. HOOM_PHONE. WORK_PHONE. BIRTH_DAY)
EXEMPLAREUNV. ISBN. YES_NO. NUM_READER. DATEJN. DATE_OUT)
Здесь таблица BOOKS описывает все книги, присутствующие в библиотеке, она имеет следующие атрибуты:
ISBN - уникальный шифр книги;
TITL - название книги;
AUTOR - фамилия автора;
COAUTOR - фамилия соавтора;
YEARIZD - год издания;
PAGES - число страниц.
Таблица READER хранит сведения обо всех читателях библиотеки, и она содержит следующие атрибуты:
NUM_READER - уникальный номер читательского билета;
NAME_READER - фамилию и инициалы читателя;
ADRESS - адрес читателя;
HOOM_PHONE - номер домашнего телефона;
WORK_PHONE - номер рабочего телефона;
BIRTH_DAY - дату рождения читателя.
Таблица EXEMPLARE содержит сведения о текущем состоянии всех экземпляров всех книг. Она включает в себя следующие столбцы:
INV - уникальный инвентарный номер экземпляра книги;
ISBN - шифр книги, который определяет, какая это книга, и ссылается на сведения из первой таблицы;
YES_NO - признак наличия или отсутствия в библиотеке данного экземпляра в текущий момент;
NUM_READER - номер читательского билета, если книга выдана читателю, и Null в противном случае;
92
DATE_IN - если книга у читателя, то это дата, когда она выдана читателю;
DATE_OUT - дата, когда читатель должен вернуть книгу в библиотеку.
Определим перечень книг у каждого читателя; если у читателя нет книг, то номер экземпляра книги равен NULL. Для выполнения этого поиска нам надо использовать левое внешнее объединение, то есть мы берем все строки из таблицы READER и соединяем со строками из таблицы EXEMPLARE, если во второй таблице нет строки с соответствующим номером читательского билета, то в строке результирующего отношения атрибут EXEMPLARE.INV будет иметь неопределенное значение NULL:
Содержание Назад Вперед