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