Мартин грубер понимание sql перевод Лебедева В. Н. Под редакцией Булычева В. Н. Москва, 1993 martin gruber


SELECT a.snum, sname, cname FROM Salespeople a, Customers b WHEREa.snum = b.snum(+)


Download 1.45 Mb.
bet162/172
Sana26.01.2023
Hajmi1.45 Mb.
#1128343
1   ...   158   159   160   161   162   163   164   165   ...   172
Bog'liq
Грубер. Понимание SQL

SELECT a.snum, sname, cname
FROM Salespeople a, Customers b
WHEREa.snum = b.snum(+);

Это является эквивалентом следующего объединения (UNION):
SELECT a.snum, sname, cname
FROM Salespeople a, Customers b
WHERE a.snum = b.snum

UNION


SELECT snum, sname, '_ _ _ _ _ _ _ _ _ _'
FROM Salespeople
WHERE snum NOT IN (SELECT snum
FROM Customers);

Мы считаем, что подчеркивания будут отображены NULL значениями (см. команду FORMAT ранее в этом приложении, где описывалось отображение NULL значениями).
ОТСЛЕЖИВАНИЕ ДЕЙСТВИЙ
Ваша SQL реализация достаточна хороша, если она доступна многим пользователям, чтобы обеспечивать для них некий способ слежения за действиями, выполняемыми в базе данных. Имеются две основные формы, чтобы делать это:


Journaling (Протоколирование) и Auditing (Ревизия).

Эти формы отличаются по назначению.


Journaling применяется с целью защиты ваших данных при разрушении вашей системы. Сначала Вы используете реализационно-зависимую процедуру, чтобы архивировать текущее содержание вашей базы данных, поэтому копия ее содержания где-нибудь будет сохранена. Затем вы просматриваете протокол изменений сделанных в базе данных. Он сохраняется в некоторой области памяти, но не в главной памяти базы данных а желательно на отдельном устройстве, и содержит список всех команд которые произвели изменения в структуре или в содержании базы данных. Если у вас вдруг появились проблемы и текущее содержание вашей базы данных оказалось нарушенным, вы можете повторно выполнить все изменения зарегистрированные в протоколе на резервной копии вашей базы данных, и снова привести вашу базу данных в состояние, которое было до момента последней записи в протокол. Типичной командой, чтобы начать протоколирование, будет следующая:
SET JOURNAL ON;
Auditing используется c целью защиты. Она следит за тем, кто и какие действия выполнял в базе данных, и сохраняет эту информацию в таблице, доступной только очень немногим высоко привилегированным пользователям. Конечно, вы редко будете прибегать к процедуре ревизии, потому что очень скоро она займет много памяти и вам будет сложно работать в вашей базе данных. Но вы можете устанавливать ревизию для определенных пользователей, определенных действий или определенных объектов данных. Имеется такая форма команды AUDIT:

Download 1.45 Mb.

Do'stlaringiz bilan baham:
1   ...   158   159   160   161   162   163   164   165   ...   172




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling