Базы Данных, 10 лекция (от 06 октября)
Материал из eSyr's wiki.
(Содержимое страницы заменено на «== From Ebaums Inc to MurkLoar. == We at EbaumsWorld consider you as disgrace of human race. Your faggotry level exceeded any imaginab...») |
(Отмена правки № 1349 участника 88.191.68.198 (обсуждение)) |
||
Строка 1: | Строка 1: | ||
- | == | + | <P STYLE="margin-bottom: 0cm">Базы данных 06.10.06</P> |
- | + | <P STYLE="margin-bottom: 0cm"><BR> | |
- | + | </P> | |
- | + | <P STYLE="margin-bottom: 0cm">Лектор хочет устроить контрольную через | |
+ | 4 пары.</P> | ||
+ | <P STYLE="margin-bottom: 0cm"><BR> | ||
+ | </P> | ||
+ | <P STYLE="margin-bottom: 0cm">r1 DIVIDE BY r2 | ||
+ | </P> | ||
+ | <P STYLE="margin-bottom: 0cm">r1{A, B} r2{B}</P> | ||
+ | <P STYLE="margin-bottom: 0cm">(r1 <REMOVE> B) <AND> <NOT> | ||
+ | (((r2 <AND> (r1 <REMOVE> B)) <AND> <NOT> r1) | ||
+ | <REMOVE> B)</P> | ||
+ | <P STYLE="margin-bottom: 0cm"><AND> <NOT> - MINUS</P> | ||
+ | <P STYLE="margin-bottom: 0cm">(r1 <REMOVE> B) MINUS (((r2 <AND> | ||
+ | (r1 <REMOVE> B)) MINUS r1) <REMOVE> B)</P> | ||
+ | <P STYLE="margin-bottom: 0cm"><BR> | ||
+ | </P> | ||
+ | <TABLE WIDTH=100% BORDER=1 BORDERCOLOR="#000000" CELLPADDING=4 CELLSPACING=0> | ||
+ | <COL WIDTH=10*> | ||
+ | <COL WIDTH=10*> | ||
+ | <COL WIDTH=10*> | ||
+ | <COL WIDTH=10*> | ||
+ | <COL WIDTH=10*> | ||
+ | <COL WIDTH=66*> | ||
+ | <COL WIDTH=10*> | ||
+ | <COL WIDTH=48*> | ||
+ | <COL WIDTH=10*> | ||
+ | <COL WIDTH=10*> | ||
+ | <COL WIDTH=45*> | ||
+ | <COL WIDTH=10*> | ||
+ | <COL WIDTH=10*> | ||
+ | <THEAD> | ||
+ | <TR VALIGN=TOP> | ||
+ | <TH WIDTH=4%> | ||
+ | <P>r1</P> | ||
+ | </TH> | ||
+ | <TH WIDTH=4%> | ||
+ | <P>A</P> | ||
+ | </TH> | ||
+ | <TH WIDTH=4%> | ||
+ | <P>B</P> | ||
+ | </TH> | ||
+ | <TH WIDTH=4%> | ||
+ | <P>r2</P> | ||
+ | </TH> | ||
+ | <TH WIDTH=4%> | ||
+ | <P>B</P> | ||
+ | </TH> | ||
+ | <TH WIDTH=26%> | ||
+ | <P>1. R1 = r1 <REMOVE> B</P> | ||
+ | </TH> | ||
+ | <TH WIDTH=4%> | ||
+ | <P>A</P> | ||
+ | </TH> | ||
+ | <TH WIDTH=19%> | ||
+ | <P>2. R2 = R1 <AND> r2</P> | ||
+ | </TH> | ||
+ | <TH WIDTH=4%> | ||
+ | <P>A</P> | ||
+ | </TH> | ||
+ | <TH WIDTH=4%> | ||
+ | <P>B</P> | ||
+ | </TH> | ||
+ | <TH WIDTH=17%> | ||
+ | <P>3. R3 = R2 MINUS r1</P> | ||
+ | </TH> | ||
+ | <TH WIDTH=4%> | ||
+ | <P>A</P> | ||
+ | </TH> | ||
+ | <TH WIDTH=4%> | ||
+ | <P>B</P> | ||
+ | </TH> | ||
+ | </TR> | ||
+ | </THEAD> | ||
+ | <TBODY> | ||
+ | <TR VALIGN=TOP> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P>a1</P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P>b1</P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P>b1</P> | ||
+ | </TD> | ||
+ | <TD WIDTH=26%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P>a1</P> | ||
+ | </TD> | ||
+ | <TD WIDTH=19%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P>a1</P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P>b1</P> | ||
+ | </TD> | ||
+ | <TD WIDTH=17%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P>a2</P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P>b2</P> | ||
+ | </TD> | ||
+ | </TR> | ||
+ | <TR VALIGN=TOP> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P>a1</P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P>b2</P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P>b2</P> | ||
+ | </TD> | ||
+ | <TD WIDTH=26%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P>a2</P> | ||
+ | </TD> | ||
+ | <TD WIDTH=19%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P>a1</P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P>b2</P> | ||
+ | </TD> | ||
+ | <TD WIDTH=17%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P>a2</P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P>b3</P> | ||
+ | </TD> | ||
+ | </TR> | ||
+ | <TR VALIGN=TOP> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P>a1</P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P>b3</P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P>b3</P> | ||
+ | </TD> | ||
+ | <TD WIDTH=26%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P>a3</P> | ||
+ | </TD> | ||
+ | <TD WIDTH=19%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P>a1</P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P>b3</P> | ||
+ | </TD> | ||
+ | <TD WIDTH=17%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | </TR> | ||
+ | <TR VALIGN=TOP> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P>a2</P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P>b2</P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=26%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=19%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P>a2</P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P>b1</P> | ||
+ | </TD> | ||
+ | <TD WIDTH=17%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | </TR> | ||
+ | <TR VALIGN=TOP> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P>a3</P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P>b1</P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=26%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=19%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P>a2</P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P>b2</P> | ||
+ | </TD> | ||
+ | <TD WIDTH=17%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | </TR> | ||
+ | <TR VALIGN=TOP> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P>a3</P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P>b2</P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=26%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=19%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P>a2</P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P>b3</P> | ||
+ | </TD> | ||
+ | <TD WIDTH=17%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | </TR> | ||
+ | <TR VALIGN=TOP> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P>a3</P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P>b3</P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=26%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=19%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P>a3</P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P>b1</P> | ||
+ | </TD> | ||
+ | <TD WIDTH=17%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | </TR> | ||
+ | <TR VALIGN=TOP> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=26%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=19%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P>a3</P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P>b2</P> | ||
+ | </TD> | ||
+ | <TD WIDTH=17%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | </TR> | ||
+ | <TR VALIGN=TOP> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=26%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=19%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P>a3</P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P>b3</P> | ||
+ | </TD> | ||
+ | <TD WIDTH=17%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | </TR> | ||
+ | <TR VALIGN=TOP> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=26%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=19%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=17%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | </TR> | ||
+ | <TR VALIGN=TOP> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=26%> | ||
+ | <P>4. R3 PROJECT {A} = R4</P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P>A</P> | ||
+ | </TD> | ||
+ | <TD WIDTH=19%> | ||
+ | <P>5 .R1 MINUS R4</P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P>A</P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=17%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | </TR> | ||
+ | <TR VALIGN=TOP> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=26%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P>a2</P> | ||
+ | </TD> | ||
+ | <TD WIDTH=19%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P>a1</P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=17%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | </TR> | ||
+ | <TR VALIGN=TOP> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=26%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=19%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P>a3</P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=17%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | <TD WIDTH=4%> | ||
+ | <P><BR> | ||
+ | </P> | ||
+ | </TD> | ||
+ | </TR> | ||
+ | </TBODY> | ||
+ | </TABLE> | ||
+ | <P STYLE="margin-bottom: 0cm"><BR> | ||
+ | </P> | ||
+ | <P STYLE="margin-bottom: 0cm">На время мы простимся с алгеброй.</P> | ||
+ | <P STYLE="margin-bottom: 0cm"><BR> | ||
+ | </P> | ||
+ | <P STYLE="margin-bottom: 0cm">Основной механизм манипулирования БД – | ||
+ | </P> | ||
+ | <P STYLE="margin-bottom: 0cm">Реляционное исчисление</P> | ||
+ | <OL> | ||
+ | <LI><P STYLE="margin-bottom: 0cm">Кортежей</P> | ||
+ | <LI><P STYLE="margin-bottom: 0cm">Доменов</P> | ||
+ | </OL> | ||
+ | <P STYLE="margin-bottom: 0cm"><BR> | ||
+ | </P> | ||
+ | <P STYLE="margin-bottom: 0cm">РассмотримЖ</P> | ||
+ | <P STYLE="margin-bottom: 0cm">СЛУЖАЩИЕ{СЛУ_НОМ, СЛУ_ИМЯ, СЛУ_ЗАРП, | ||
+ | ПРО_НОМ}</P> | ||
+ | <P STYLE="margin-bottom: 0cm">ПРОЕКТЫ{ПРО_НОМ, ПРОЕКТ_РУК, ПРО_ЗАРП}</P> | ||
+ | <P STYLE="margin-bottom: 0cm"><BR> | ||
+ | </P> | ||
+ | <P STYLE="margin-bottom: 0cm">Мы хотим узнать имена и номера служащих | ||
+ | – начальников отжела со средней заработной платой 11500 рублей.</P> | ||
+ | <P STYLE="margin-bottom: 0cm"><BR> | ||
+ | </P> | ||
+ | <P STYLE="margin-bottom: 0cm">(СЛУЖАЩИЕ JOIN ПРОЕКТЫ WHERE (СЛУ_НОМ = | ||
+ | ПРОЕКТ_РУК AND ПРО_ЗАРП > 11500)) PROJECT (СЛУ_ИМЯ, СЛУ_НОМ)</P> | ||
+ | <P STYLE="margin-bottom: 0cm"><BR> | ||
+ | </P> | ||
+ | <P STYLE="margin-bottom: 0cm">Это мощные операции, но если отвлечься | ||
+ | от этого, то это обычные операции.</P> | ||
+ | <P STYLE="margin-bottom: 0cm"><BR> | ||
+ | </P> | ||
+ | <P STYLE="margin-bottom: 0cm">Сейчас люди говорят раньше на SQL, чем | ||
+ | на русском.</P> | ||
+ | <P STYLE="margin-bottom: 0cm"><BR> | ||
+ | </P> | ||
+ | <P STYLE="margin-bottom: 0cm">В 60 х языках провели исследование, как | ||
+ | лучше писать запросы, на SQL (коммандном языке) или на алгебре. На | ||
+ | SQL начали через два дння, в алгебре через 2 недели. Но через месяц | ||
+ | на SQL делали в три раза больше ошибок.</P> | ||
+ | <P STYLE="margin-bottom: 0cm"><BR> | ||
+ | </P> | ||
+ | <P STYLE="margin-bottom: 0cm">Этот же запрос на языке реляционного | ||
+ | исчисления кортежей:</P> | ||
+ | <P STYLE="margin-bottom: 0cm">Вводятся две кортежные переменные:</P> | ||
+ | <P STYLE="margin-bottom: 0cm">RANGE СЛУЖАЩИЙ IS СЛУЖАЩИЙ</P> | ||
+ | <P STYLE="margin-bottom: 0cm">RANGE ПРОЕКТ IS ПРОЕКТ</P> | ||
+ | <P STYLE="margin-bottom: 0cm">СЛУЖАЩИЙ.СЛУ_ИМЯ, СЛУЖАЩИЙ.СЛУ_НОМ</P> | ||
+ | <P STYLE="margin-bottom: 0cm"> WHERE EXISTS ПРОЕКТ</P> | ||
+ | <P STYLE="margin-bottom: 0cm"> (СЛУЖАЩИЙ.СЛУ_НОМ = ПРОЕКТ.ПРОЕКТ_РУК | ||
+ | AND ПРОЕКТ.ПРО_ЗАР > 11500)</P> | ||
+ | <P STYLE="margin-bottom: 0cm"><BR> | ||
+ | </P> | ||
+ | <P STYLE="margin-bottom: 0cm">//Я очень старался всех сотрудников | ||
+ | вычистить, но кое-где остались.</P> | ||
+ | <P STYLE="margin-bottom: 0cm"><BR> | ||
+ | </P> | ||
+ | <P STYLE="margin-bottom: 0cm">На операцию соединения очень сильно | ||
+ | намекает СЛУЖАЩИЙ.СЛУ_НОМ = ПРОЕКТ.ПРОЕКТ_РУК.</P> | ||
+ | <P STYLE="margin-bottom: 0cm"><BR> | ||
+ | </P> | ||
+ | <P STYLE="margin-bottom: 0cm">EXISTS можно выбросить, так как по | ||
+ | смыслу квантора существования его можно выбросить, не нарушая смысл | ||
+ | выражения.</P> | ||
+ | <P STYLE="margin-bottom: 0cm"><BR> | ||
+ | </P> | ||
+ | <P STYLE="margin-bottom: 0cm">Почем уквантор существования полезен – | ||
+ | пример эквисоединения, который является полусоединением (было ещё на | ||
+ | первой лекции)</P> | ||
+ | <P STYLE="margin-bottom: 0cm"><BR> | ||
+ | </P> | ||
+ | <P STYLE="margin-bottom: 0cm">Реляционная алгебра, при том, что это | ||
+ | совершенно фундаментальная вещь, она показывает много хороших св-в, | ||
+ | тем не менее, на самой алгебре языков БД практически не было. На | ||
+ | памяти лектора в 70х годах был только один язык, QUEL (?). А на | ||
+ | исчислении доменов языки существовали и один из них существует до сих | ||
+ | пор.</P> | ||
+ | <P STYLE="margin-bottom: 0cm"><BR> | ||
+ | </P> | ||
+ | <P STYLE="margin-bottom: 0cm">QUEL использовался в университете | ||
+ | Кэмбридж (Ingres). - Стоунбрейкер</P> | ||
+ | <P STYLE="margin-bottom: 0cm"><BR> | ||
+ | </P> | ||
+ | <P STYLE="margin-bottom: 0cm">Alpha - был первый декларативный язык | ||
+ | лектора.</P> | ||
+ | <P STYLE="margin-bottom: 0cm"><BR> | ||
+ | </P> | ||
+ | <P STYLE="margin-bottom: 0cm">Этот язык был сильно | ||
+ | математизированный. Про это можно почитать, но, спасибо Кристоферу | ||
+ | Дейте, который написал пересказ Коддовских статей, две из которых | ||
+ | перевёл лектор.</P> | ||
+ | <P STYLE="margin-bottom: 0cm"><BR> | ||
+ | </P> | ||
+ | <P STYLE="margin-bottom: 0cm">В SQL есть доно свойство, которое люди | ||
+ | хвалт, но оно удручает временами. В нём разрешается писать вложенные | ||
+ | подзапросы в разных местах. Но в языке ещё есть кванторы. В этом | ||
+ | случае они себя ведут по-дурацки, ибо пишется целый запрос, который | ||
+ | вырабатывает да или нет. В QUEL кванторы можно писать без | ||
+ | подзапросов.ы</P> | ||
+ | <P STYLE="margin-bottom: 0cm"><BR> | ||
+ | </P> | ||
+ | <P STYLE="margin-bottom: 0cm">//Педедыв</P> | ||
+ | <P STYLE="margin-bottom: 0cm"><BR> | ||
+ | </P> | ||
+ | <P STYLE="margin-bottom: 0cm">В основе исчислений, самое дазовое | ||
+ | понятие – переменная. Так как мы говорим про исчисление | ||
+ | кортежей, то кортежная переменная. Чтобы можно было ими пользоваться, | ||
+ | их нужно объявлять (ситаксис QUEL):</P> | ||
+ | <P STYLE="margin-bottom: 0cm">RANGE a IS r //a.b</P> | ||
+ | <P STYLE="margin-bottom: 0cm">Правильно построенная формула | ||
+ | (Well-Formal Formula):</P> | ||
+ | <P STYLE="margin-bottom: 0cm">Простое условие – правильно | ||
+ | формула, в скобках – простое условие:</P> | ||
+ | <P STYLE="margin-bottom: 0cm">СЛУЖАЩИЙ.СЛУ_НОМ = 2934</P> | ||
+ | <P STYLE="margin-bottom: 0cm">СЛУЖАЩИЙ.СЛУ_НОМ = ПРОЕКТ.ПРОЕКТ_РУК</P> | ||
+ | <P STYLE="margin-bottom: 0cm"><BR> | ||
+ | </P> | ||
+ | <P STYLE="margin-bottom: 0cm">Конструкции:</P> | ||
+ | <P STYLE="margin-bottom: 0cm">NOT, AND, OR, IF ... THEN</P> | ||
+ | <P STYLE="margin-bottom: 0cm">IF a THEN b = NOT a OR b;</P> | ||
+ | <P STYLE="margin-bottom: 0cm"><BR> | ||
+ | </P> | ||
+ | <P STYLE="margin-bottom: 0cm">Читатель нашёл у меня ошибку, но, | ||
+ | естественно, он был не прав.</P> | ||
+ | <P STYLE="margin-bottom: 0cm"><BR> | ||
+ | </P> | ||
+ | <P STYLE="margin-bottom: 0cm">Из лжи следует всё, что угодно</P> | ||
+ | <P STYLE="margin-bottom: 0cm"><BR> | ||
+ | </P> | ||
+ | <P STYLE="margin-bottom: 0cm">Иногда формулировка с помощью | ||
+ | импликаций выглядит заманчиво, затягивает, она и в sQL есть.</P> | ||
+ | <P STYLE="margin-bottom: 0cm"><BR> | ||
+ | </P> | ||
+ | <P STYLE="margin-bottom: 0cm">Приоритеты: NOT > AND > OR</P> | ||
+ | <P STYLE="margin-bottom: 0cm"><BR> | ||
+ | </P> | ||
+ | <P STYLE="margin-bottom: 0cm">если for m – WFF, сопр-простое | ||
+ | сравнение</P> | ||
+ | <P STYLE="margin-bottom: 0cm">NOT form, comp AND form? Comp OR form, | ||
+ | IF comp THEN form – WFF</P> | ||
+ | <P STYLE="margin-bottom: 0cm"><BR> | ||
+ | </P> | ||
+ | <P STYLE="margin-bottom: 0cm">Есть правильно построенная формула. Мы | ||
+ | хотим определить формулу истинности, то есть те выражения, которые | ||
+ | приводят её в TRUE. Мы довольно долго думали, и в результате | ||
+ | придумали использовать вложенные циклы.</P> | ||
+ | <P STYLE="margin-bottom: 0cm"><BR> | ||
+ | </P> | ||
+ | <P STYLE="margin-bottom: 0cm">Следующий шаг – прямого аналога в | ||
+ | алгебре нет – квантор.</P> | ||
+ | <P STYLE="margin-bottom: 0cm">Функция, Аргумент – множество, | ||
+ | вырабатывает тру или фолс.</P> | ||
+ | <P STYLE="margin-bottom: 0cm">Поддерживается два квантора:</P> | ||
+ | <P STYLE="margin-bottom: 0cm">Квантор существования EXISTS</P> | ||
+ | <P STYLE="margin-bottom: 0cm">FORALL</P> | ||
+ | <P STYLE="margin-bottom: 0cm"><BR> | ||
+ | </P> | ||
+ | <P STYLE="margin-bottom: 0cm">EXISTS var(form), FORALL var(form) – | ||
+ | WFF</P> | ||
+ | <P STYLE="margin-bottom: 0cm"><BR> | ||
+ | </P> | ||
+ | <P STYLE="margin-bottom: 0cm">Свободные и связанные переменные</P> | ||
+ | <P STYLE="margin-bottom: 0cm"><BR> | ||
+ | </P> | ||
+ | <P STYLE="margin-bottom: 0cm">Переменные, которые ни разу не | ||
+ | встречаются под знаком квантора, называются свободными.</P> | ||
+ | <P STYLE="margin-bottom: 0cm"><BR> | ||
+ | </P> | ||
+ | <P STYLE="margin-bottom: 0cm">Связанные переменные – закрытые, | ||
+ | только под квантором, влияют на способ вычисления формулы.</P> | ||
+ | <P STYLE="margin-bottom: 0cm"><BR> | ||
+ | </P> | ||
+ | <P STYLE="margin-bottom: 0cm">Пусть есть формула:</P> | ||
+ | <P STYLE="margin-bottom: 0cm">есть СЛУ1 и СЛУ2, определены на | ||
+ | отношении СЛУЖАЩИЕ</P> | ||
+ | <P STYLE="margin-bottom: 0cm">Формула:</P> | ||
+ | <P STYLE="margin-bottom: 0cm">EXISTS СЛУ2(СЛУ1.СЛУ_ЗАРП > | ||
+ | СЛУ2.СЛУ_ЗАРП) – все с неминимальной зарплатой.</P> | ||
+ | <P STYLE="margin-bottom: 0cm"><BR> | ||
+ | </P> | ||
+ | <P STYLE="margin-bottom: 0cm">Циклы:</P> | ||
+ | <P STYLE="margin-bottom: 0cm">foreach СЛУ1</P> | ||
+ | <P STYLE="margin-bottom: 0cm"> foreach СЛУ2</P> | ||
+ | <P STYLE="margin-bottom: 0cm"><BR> | ||
+ | </P> | ||
+ | <P STYLE="margin-bottom: 0cm">FORALL СЛУ2(СЛУ1.СЛУ_ЗАРП >= | ||
+ | СЛУ2.СЛУ_ЗАРП) – все с максимальной зарплатой.</P> | ||
+ | <P STYLE="margin-bottom: 0cm"><BR> | ||
+ | </P> | ||
+ | <P STYLE="margin-bottom: 0cm">Нет условия на несравнение с самим | ||
+ | собой, ибо это не влияет.</P> | ||
+ | <P STYLE="margin-bottom: 0cm"><BR> | ||
+ | </P> | ||
+ | <P STYLE="margin-bottom: 0cm">Здесь точно внутринний цикл будет | ||
+ | крутиться до конца, ибо квантор такой.</P> | ||
+ | <P STYLE="margin-bottom: 0cm"><BR> | ||
+ | </P> | ||
+ | <P STYLE="margin-bottom: 0cm">В одну формулу может входить несколько | ||
+ | подформул, в которые одна и та же связанная переменная может входить | ||
+ | в разном качестве.</P> | ||
+ | <P STYLE="margin-bottom: 0cm">EXISTS СЛУ2(СЛУ1.ПРО_НОМ = СЛУ2.ПРО_НОМ | ||
+ | AND СЛУ1.СЛУ_НОМ != СЛУ2.СЛУ_НОМ) AND FORALL СЛУ2(IF СЛУ1.ПРО_НОМ = | ||
+ | СЛУ2.ПРО_НОМ THEN СЛУ1.СЛУ_ЗАРП = СЛУ2.СЛУ_ЗАРП)</P> | ||
+ | <P STYLE="margin-bottom: 0cm">Нельзя обойтись одним вхождением, ибо | ||
+ | нужны и квантор существования, и квантор всеобщности.</P> | ||
+ | <P STYLE="margin-bottom: 0cm"><BR> | ||
+ | </P> | ||
+ | <P STYLE="margin-bottom: 0cm">SQL и вложенные запросы:</P> | ||
+ | <P STYLE="margin-bottom: 0cm">Кванторы появились в SQL не так давно.</P> | ||
+ | <P STYLE="margin-bottom: 0cm">QUEL был лучше, чем SQL. Но SQL его | ||
+ | загубил. | ||
+ | </P> | ||
+ | <P STYLE="margin-bottom: 0cm">Зато в SQL очень давно существуют | ||
+ | другие агрегатные функции (возвращают халявное значание, а получают | ||
+ | множество) – COUNT, MINIMUM, MAXIMUM, AVERAGE. Для | ||
+ | использования их нужно сформировать множество, то есть использовать | ||
+ | подзапрос. В SQL мы с тем же самым успехом могли написать</P> | ||
+ | <P STYLE="margin-bottom: 0cm">min СЛУ2.СЛУ_ЗАРП | ||
+ | </P> | ||
+ | <P STYLE="margin-bottom: 0cm">QUEL позволяет обходиться ьез | ||
+ | подзапросов, когда они не нужны. Когда доберемся до System R, нам | ||
+ | расскажут ещё про вложенные запросы. Языки рел исчисления, в отличие | ||
+ | от SQL, позволяют для квантифицуированных запросов обойтись без | ||
+ | подзапросов.</P> | ||
+ | <P STYLE="margin-bottom: 0cm"><BR> | ||
+ | </P> | ||
+ | <P STYLE="margin-bottom: 0cm">Что осталось сделать:</P> | ||
+ | <P STYLE="margin-bottom: 0cm">Научились строить формулы, в которых | ||
+ | есть свободные переменныею Не хватает конструкции, которая говорит, | ||
+ | что мы хотим получить.</P> | ||
+ | </BODY> |
Текущая версия
Базы данных 06.10.06
Лектор хочет устроить контрольную через 4 пары.
r1 DIVIDE BY r2
r1{A, B} r2{B}
(r1 <REMOVE> B) <AND> <NOT> (((r2 <AND> (r1 <REMOVE> B)) <AND> <NOT> r1) <REMOVE> B)
<AND> <NOT> - MINUS
(r1 <REMOVE> B) MINUS (((r2 <AND> (r1 <REMOVE> B)) MINUS r1) <REMOVE> B)
r1 |
A |
B |
r2 |
B |
1. R1 = r1 <REMOVE> B |
A |
2. R2 = R1 <AND> r2 |
A |
B |
3. R3 = R2 MINUS r1 |
A |
B |
---|---|---|---|---|---|---|---|---|---|---|---|---|
|
a1 |
b1 |
|
b1 |
|
a1 |
|
a1 |
b1 |
|
a2 |
b2 |
|
a1 |
b2 |
|
b2 |
|
a2 |
|
a1 |
b2 |
|
a2 |
b3 |
|
a1 |
b3 |
|
b3 |
|
a3 |
|
a1 |
b3 |
|
|
|
|
a2 |
b2 |
|
|
|
|
|
a2 |
b1 |
|
|
|
|
a3 |
b1 |
|
|
|
|
|
a2 |
b2 |
|
|
|
|
a3 |
b2 |
|
|
|
|
|
a2 |
b3 |
|
|
|
|
a3 |
b3 |
|
|
|
|
|
a3 |
b1 |
|
|
|
|
|
|
|
|
|
|
|
a3 |
b2 |
|
|
|
|
|
|
|
|
|
|
|
a3 |
b3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4. R3 PROJECT {A} = R4 |
A |
5 .R1 MINUS R4 |
A |
|
|
|
|
|
|
|
|
|
|
a2 |
|
a1 |
|
|
|
|
|
|
|
|
|
|
|
|
a3 |
|
|
|
|
На время мы простимся с алгеброй.
Основной механизм манипулирования БД –
Реляционное исчисление
Кортежей
Доменов
РассмотримЖ
СЛУЖАЩИЕ{СЛУ_НОМ, СЛУ_ИМЯ, СЛУ_ЗАРП, ПРО_НОМ}
ПРОЕКТЫ{ПРО_НОМ, ПРОЕКТ_РУК, ПРО_ЗАРП}
Мы хотим узнать имена и номера служащих – начальников отжела со средней заработной платой 11500 рублей.
(СЛУЖАЩИЕ JOIN ПРОЕКТЫ WHERE (СЛУ_НОМ = ПРОЕКТ_РУК AND ПРО_ЗАРП > 11500)) PROJECT (СЛУ_ИМЯ, СЛУ_НОМ)
Это мощные операции, но если отвлечься от этого, то это обычные операции.
Сейчас люди говорят раньше на SQL, чем на русском.
В 60 х языках провели исследование, как лучше писать запросы, на SQL (коммандном языке) или на алгебре. На SQL начали через два дння, в алгебре через 2 недели. Но через месяц на SQL делали в три раза больше ошибок.
Этот же запрос на языке реляционного исчисления кортежей:
Вводятся две кортежные переменные:
RANGE СЛУЖАЩИЙ IS СЛУЖАЩИЙ
RANGE ПРОЕКТ IS ПРОЕКТ
СЛУЖАЩИЙ.СЛУ_ИМЯ, СЛУЖАЩИЙ.СЛУ_НОМ
WHERE EXISTS ПРОЕКТ
(СЛУЖАЩИЙ.СЛУ_НОМ = ПРОЕКТ.ПРОЕКТ_РУК AND ПРОЕКТ.ПРО_ЗАР > 11500)
//Я очень старался всех сотрудников вычистить, но кое-где остались.
На операцию соединения очень сильно намекает СЛУЖАЩИЙ.СЛУ_НОМ = ПРОЕКТ.ПРОЕКТ_РУК.
EXISTS можно выбросить, так как по смыслу квантора существования его можно выбросить, не нарушая смысл выражения.
Почем уквантор существования полезен – пример эквисоединения, который является полусоединением (было ещё на первой лекции)
Реляционная алгебра, при том, что это совершенно фундаментальная вещь, она показывает много хороших св-в, тем не менее, на самой алгебре языков БД практически не было. На памяти лектора в 70х годах был только один язык, QUEL (?). А на исчислении доменов языки существовали и один из них существует до сих пор.
QUEL использовался в университете Кэмбридж (Ingres). - Стоунбрейкер
Alpha - был первый декларативный язык лектора.
Этот язык был сильно математизированный. Про это можно почитать, но, спасибо Кристоферу Дейте, который написал пересказ Коддовских статей, две из которых перевёл лектор.
В SQL есть доно свойство, которое люди хвалт, но оно удручает временами. В нём разрешается писать вложенные подзапросы в разных местах. Но в языке ещё есть кванторы. В этом случае они себя ведут по-дурацки, ибо пишется целый запрос, который вырабатывает да или нет. В QUEL кванторы можно писать без подзапросов.ы
//Педедыв
В основе исчислений, самое дазовое понятие – переменная. Так как мы говорим про исчисление кортежей, то кортежная переменная. Чтобы можно было ими пользоваться, их нужно объявлять (ситаксис QUEL):
RANGE a IS r //a.b
Правильно построенная формула (Well-Formal Formula):
Простое условие – правильно формула, в скобках – простое условие:
СЛУЖАЩИЙ.СЛУ_НОМ = 2934
СЛУЖАЩИЙ.СЛУ_НОМ = ПРОЕКТ.ПРОЕКТ_РУК
Конструкции:
NOT, AND, OR, IF ... THEN
IF a THEN b = NOT a OR b;
Читатель нашёл у меня ошибку, но, естественно, он был не прав.
Из лжи следует всё, что угодно
Иногда формулировка с помощью импликаций выглядит заманчиво, затягивает, она и в sQL есть.
Приоритеты: NOT > AND > OR
если for m – WFF, сопр-простое сравнение
NOT form, comp AND form? Comp OR form, IF comp THEN form – WFF
Есть правильно построенная формула. Мы хотим определить формулу истинности, то есть те выражения, которые приводят её в TRUE. Мы довольно долго думали, и в результате придумали использовать вложенные циклы.
Следующий шаг – прямого аналога в алгебре нет – квантор.
Функция, Аргумент – множество, вырабатывает тру или фолс.
Поддерживается два квантора:
Квантор существования EXISTS
FORALL
EXISTS var(form), FORALL var(form) – WFF
Свободные и связанные переменные
Переменные, которые ни разу не встречаются под знаком квантора, называются свободными.
Связанные переменные – закрытые, только под квантором, влияют на способ вычисления формулы.
Пусть есть формула:
есть СЛУ1 и СЛУ2, определены на отношении СЛУЖАЩИЕ
Формула:
EXISTS СЛУ2(СЛУ1.СЛУ_ЗАРП > СЛУ2.СЛУ_ЗАРП) – все с неминимальной зарплатой.
Циклы:
foreach СЛУ1
foreach СЛУ2
FORALL СЛУ2(СЛУ1.СЛУ_ЗАРП >= СЛУ2.СЛУ_ЗАРП) – все с максимальной зарплатой.
Нет условия на несравнение с самим собой, ибо это не влияет.
Здесь точно внутринний цикл будет крутиться до конца, ибо квантор такой.
В одну формулу может входить несколько подформул, в которые одна и та же связанная переменная может входить в разном качестве.
EXISTS СЛУ2(СЛУ1.ПРО_НОМ = СЛУ2.ПРО_НОМ AND СЛУ1.СЛУ_НОМ != СЛУ2.СЛУ_НОМ) AND FORALL СЛУ2(IF СЛУ1.ПРО_НОМ = СЛУ2.ПРО_НОМ THEN СЛУ1.СЛУ_ЗАРП = СЛУ2.СЛУ_ЗАРП)
Нельзя обойтись одним вхождением, ибо нужны и квантор существования, и квантор всеобщности.
SQL и вложенные запросы:
Кванторы появились в SQL не так давно.
QUEL был лучше, чем SQL. Но SQL его загубил.
Зато в SQL очень давно существуют другие агрегатные функции (возвращают халявное значание, а получают множество) – COUNT, MINIMUM, MAXIMUM, AVERAGE. Для использования их нужно сформировать множество, то есть использовать подзапрос. В SQL мы с тем же самым успехом могли написать
min СЛУ2.СЛУ_ЗАРП
QUEL позволяет обходиться ьез подзапросов, когда они не нужны. Когда доберемся до System R, нам расскажут ещё про вложенные запросы. Языки рел исчисления, в отличие от SQL, позволяют для квантифицуированных запросов обойтись без подзапросов.
Что осталось сделать:
Научились строить формулы, в которых есть свободные переменныею Не хватает конструкции, которая говорит, что мы хотим получить.
</BODY>