Редактирование: Базы Данных, 16 лекция (от 27 октября)

Материал из eSyr's wiki.

Перейти к: навигация, поиск

Внимание: Вы не представились системе. Ваш IP-адрес будет записан в историю изменений этой страницы.

Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.

Текущая версия Ваш текст
Строка 1: Строка 1:
-
<P STYLE="margin-bottom: 0cm">БД 06.10.27</P>
+
== From Ebaums Inc to MurkLoar. ==
-
<P STYLE="margin-bottom: 0cm"><BR>
+
We at EbaumsWorld consider you as disgrace of human race.
-
</P>
+
Your faggotry level exceeded any imaginable levels, and therefore we have to inform you that your pitiful resourse should be annihilated.
-
<P STYLE="margin-bottom: 0cm">Гораздо сложнее вопрос с
+
Dig yourself a grave - you will need it.
-
пользовательскими ТД.
+
-
</P>
+
-
<P STYLE="margin-bottom: 0cm">Это есть в SQL, но этого никто не
+
-
делает. На это решаются обычно только сами разработчики конкретной
+
-
СУБД, иногда эти ТД определяют вне зависимости от БД. Тем больше тех
+
-
возможностей появляется в СУБД, тем сложнее проектирование.
+
-
Неизвестно, что по этому поводу думал Кодд, но всё, что неявно можно
+
-
вывести из его статей, это что БД должны быть как можно проще в
+
-
использовании.</P>
+
-
<P STYLE="margin-bottom: 0cm"><BR>
+
-
</P>
+
-
<P STYLE="margin-bottom: 0cm">Лектор возвращается к проекции
+
-
соединений и 5НФ.</P>
+
-
<P STYLE="margin-bottom: 0cm"><BR>
+
-
</P>
+
-
<P STYLE="margin-bottom: 0cm">N-декомпозиция соотношения &ndash;
+
-
отношение, которое может быть декомопзировано без потерь на N
+
-
проекций. До этого мы всё время занимались этим при N=2. В действ
+
-
бывают такие отношения, которые не явл 2-декомп. Декомп для них имеют
+
-
смысл, но при N&gt;2.</P>
+
-
<P STYLE="margin-bottom: 0cm"><BR>
+
-
</P>
+
-
<P STYLE="margin-bottom: 0cm">Пример:</P>
+
-
<P STYLE="margin-bottom: 0cm">r: СЛУЖ_ПРО_ЗАДАН</P>
+
-
<TABLE WIDTH=284 BORDER=1 BORDERCOLOR="#000000" CELLPADDING=4 CELLSPACING=0>
+
-
<COL WIDTH=80>
+
-
<COL WIDTH=82>
+
-
<COL WIDTH=95>
+
-
<THEAD>
+
-
<TR VALIGN=TOP>
+
-
<TH WIDTH=80>
+
-
<P>СЛУ_НОМ</P>
+
-
</TH>
+
-
<TH WIDTH=82>
+
-
<P>ПРО_НОМ</P>
+
-
</TH>
+
-
<TH WIDTH=95>
+
-
<P>СЛУ_ЗАДАН</P>
+
-
</TH>
+
-
</TR>
+
-
</THEAD>
+
-
<TBODY>
+
-
<TR VALIGN=TOP>
+
-
<TD WIDTH=80>
+
-
<P>2934</P>
+
-
</TD>
+
-
<TD WIDTH=82>
+
-
<P>1</P>
+
-
</TD>
+
-
<TD WIDTH=95>
+
-
<P>A</P>
+
-
</TD>
+
-
</TR>
+
-
<TR VALIGN=TOP>
+
-
<TD WIDTH=80>
+
-
<P>2934</P>
+
-
</TD>
+
-
<TD WIDTH=82>
+
-
<P>1</P>
+
-
</TD>
+
-
<TD WIDTH=95>
+
-
<P>B</P>
+
-
</TD>
+
-
</TR>
+
-
<TR VALIGN=TOP>
+
-
<TD WIDTH=80>
+
-
<P>2934</P>
+
-
</TD>
+
-
<TD WIDTH=82>
+
-
<P>2</P>
+
-
</TD>
+
-
<TD WIDTH=95>
+
-
<P>A</P>
+
-
</TD>
+
-
</TR>
+
-
<TR VALIGN=TOP>
+
-
<TD WIDTH=80>
+
-
<P>2941</P>
+
-
</TD>
+
-
<TD WIDTH=82>
+
-
<P>1</P>
+
-
</TD>
+
-
<TD WIDTH=95>
+
-
<P>A</P>
+
-
</TD>
+
-
</TR>
+
-
</TBODY>
+
-
</TABLE>
+
-
<P STYLE="margin-bottom: 0cm">Попробуем это отношение
+
-
декомпозировать.</P>
+
-
<P STYLE="margin-bottom: 0cm">r1: СЛУЖ_ПРО_НОМ</P>
+
-
<TABLE WIDTH=100% BORDER=1 BORDERCOLOR="#000000" CELLPADDING=4 CELLSPACING=0>
+
-
<COL WIDTH=128*>
+
-
<COL WIDTH=128*>
+
-
<THEAD>
+
-
<TR VALIGN=TOP>
+
-
<TH WIDTH=50%>
+
-
<P>СЛУ_НОМ</P>
+
-
</TH>
+
-
<TH WIDTH=50%>
+
-
<P>ПРО_НОМ</P>
+
-
</TH>
+
-
</TR>
+
-
</THEAD>
+
-
<TBODY>
+
-
<TR VALIGN=TOP>
+
-
<TD WIDTH=50%>
+
-
<P>2934</P>
+
-
</TD>
+
-
<TD WIDTH=50%>
+
-
<P>1</P>
+
-
</TD>
+
-
</TR>
+
-
<TR VALIGN=TOP>
+
-
<TD WIDTH=50%>
+
-
<P>2934</P>
+
-
</TD>
+
-
<TD WIDTH=50%>
+
-
<P>2</P>
+
-
</TD>
+
-
</TR>
+
-
<TR VALIGN=TOP>
+
-
<TD WIDTH=50%>
+
-
<P>2941</P>
+
-
</TD>
+
-
<TD WIDTH=50%>
+
-
<P>1</P>
+
-
</TD>
+
-
</TR>
+
-
</TBODY>
+
-
</TABLE>
+
-
<P STYLE="margin-bottom: 0cm">r2: ПРО_НОМ_ЗАДАН</P>
+
-
<TABLE WIDTH=100% BORDER=1 BORDERCOLOR="#000000" CELLPADDING=4 CELLSPACING=0>
+
-
<COL WIDTH=128*>
+
-
<COL WIDTH=128*>
+
-
<THEAD>
+
-
<TR VALIGN=TOP>
+
-
<TH WIDTH=50%>
+
-
<P>ПРО_НОМ</P>
+
-
</TH>
+
-
<TH WIDTH=50%>
+
-
<P>СЛУ_ЗАДАН</P>
+
-
</TH>
+
-
</TR>
+
-
</THEAD>
+
-
<TBODY>
+
-
<TR VALIGN=TOP>
+
-
<TD WIDTH=50%>
+
-
<P>1</P>
+
-
</TD>
+
-
<TD WIDTH=50%>
+
-
<P>A</P>
+
-
</TD>
+
-
</TR>
+
-
<TR VALIGN=TOP>
+
-
<TD WIDTH=50%>
+
-
<P>1</P>
+
-
</TD>
+
-
<TD WIDTH=50%>
+
-
<P>B</P>
+
-
</TD>
+
-
</TR>
+
-
<TR VALIGN=TOP>
+
-
<TD WIDTH=50%>
+
-
<P>2</P>
+
-
</TD>
+
-
<TD WIDTH=50%>
+
-
<P>A</P>
+
-
</TD>
+
-
</TR>
+
-
</TBODY>
+
-
</TABLE>
+
-
<P STYLE="margin-bottom: 0cm">r3: СЛУ_ЗАДАН</P>
+
-
<TABLE WIDTH=100% BORDER=1 BORDERCOLOR="#000000" CELLPADDING=4 CELLSPACING=0>
+
-
<COL WIDTH=128*>
+
-
<COL WIDTH=128*>
+
-
<THEAD>
+
-
<TR VALIGN=TOP>
+
-
<TH WIDTH=50%>
+
-
<P>СЛУ_НОМ</P>
+
-
</TH>
+
-
<TH WIDTH=50%>
+
-
<P>СЛУ_ЗАДАН</P>
+
-
</TH>
+
-
</TR>
+
-
</THEAD>
+
-
<TBODY>
+
-
<TR VALIGN=TOP>
+
-
<TD WIDTH=50%>
+
-
<P>2934</P>
+
-
</TD>
+
-
<TD WIDTH=50%>
+
-
<P>A</P>
+
-
</TD>
+
-
</TR>
+
-
<TR VALIGN=TOP>
+
-
<TD WIDTH=50%>
+
-
<P>2934</P>
+
-
</TD>
+
-
<TD WIDTH=50%>
+
-
<P>B</P>
+
-
</TD>
+
-
</TR>
+
-
<TR VALIGN=TOP>
+
-
<TD WIDTH=50%>
+
-
<P>2941</P>
+
-
</TD>
+
-
<TD WIDTH=50%>
+
-
<P>A</P>
+
-
</TD>
+
-
</TR>
+
-
</TBODY>
+
-
</TABLE>
+
-
<P STYLE="margin-bottom: 0cm">С точки зрения предыдущих рассуждений
+
-
эта декомпозиция бессмысленна.</P>
+
-
<P STYLE="margin-bottom: 0cm">Теперь начнём соединять. Сначала
+
-
соединим вот это отношение с этим.</P>
+
-
<P STYLE="margin-bottom: 0cm">NAT JOIN</P>
+
-
<TABLE WIDTH=100% BORDER=1 BORDERCOLOR="#000000" CELLPADDING=4 CELLSPACING=0>
+
-
<COL WIDTH=85*>
+
-
<COL WIDTH=85*>
+
-
<COL WIDTH=85*>
+
-
<THEAD>
+
-
<TR VALIGN=TOP>
+
-
<TH WIDTH=33%>
+
-
<P><BR>
+
-
</P>
+
-
</TH>
+
-
<TH WIDTH=33%>
+
-
<P><BR>
+
-
</P>
+
-
</TH>
+
-
<TH WIDTH=33%>
+
-
<P><BR>
+
-
</P>
+
-
</TH>
+
-
</TR>
+
-
</THEAD>
+
-
<TBODY>
+
-
<TR VALIGN=TOP>
+
-
<TD WIDTH=33%>
+
-
<P>2934</P>
+
-
</TD>
+
-
<TD WIDTH=33%>
+
-
<P>1</P>
+
-
</TD>
+
-
<TD WIDTH=33%>
+
-
<P>A</P>
+
-
</TD>
+
-
</TR>
+
-
<TR VALIGN=TOP>
+
-
<TD WIDTH=33%>
+
-
<P>2934</P>
+
-
</TD>
+
-
<TD WIDTH=33%>
+
-
<P>1</P>
+
-
</TD>
+
-
<TD WIDTH=33%>
+
-
<P>B</P>
+
-
</TD>
+
-
</TR>
+
-
<TR VALIGN=TOP>
+
-
<TD WIDTH=33%>
+
-
<P>2934</P>
+
-
</TD>
+
-
<TD WIDTH=33%>
+
-
<P>2</P>
+
-
</TD>
+
-
<TD WIDTH=33%>
+
-
<P>A</P>
+
-
</TD>
+
-
</TR>
+
-
<TR VALIGN=TOP>
+
-
<TD WIDTH=33%>
+
-
<P>2941</P>
+
-
</TD>
+
-
<TD WIDTH=33%>
+
-
<P>1</P>
+
-
</TD>
+
-
<TD WIDTH=33%>
+
-
<P>A</P>
+
-
</TD>
+
-
</TR>
+
-
<TR VALIGN=TOP>
+
-
<TD WIDTH=33%>
+
-
<P>2941</P>
+
-
</TD>
+
-
<TD WIDTH=33%>
+
-
<P>1</P>
+
-
</TD>
+
-
<TD WIDTH=33%>
+
-
<P>B</P>
+
-
</TD>
+
-
</TR>
+
-
</TBODY>
+
-
</TABLE>
+
-
<P STYLE="margin-bottom: 0cm">Появился лишний кортеж. Но если теперь
+
-
мы соединим это соотношение с этим:</P>
+
-
<TABLE WIDTH=100% BORDER=1 BORDERCOLOR="#000000" CELLPADDING=4 CELLSPACING=0>
+
-
<COL WIDTH=85*>
+
-
<COL WIDTH=85*>
+
-
<COL WIDTH=85*>
+
-
<THEAD>
+
-
<TR VALIGN=TOP>
+
-
<TH WIDTH=33%>
+
-
<P><BR>
+
-
</P>
+
-
</TH>
+
-
<TH WIDTH=33%>
+
-
<P><BR>
+
-
</P>
+
-
</TH>
+
-
<TH WIDTH=33%>
+
-
<P><BR>
+
-
</P>
+
-
</TH>
+
-
</TR>
+
-
</THEAD>
+
-
<TBODY>
+
-
<TR VALIGN=TOP>
+
-
<TD WIDTH=33%>
+
-
<P>2934</P>
+
-
</TD>
+
-
<TD WIDTH=33%>
+
-
<P>1</P>
+
-
</TD>
+
-
<TD WIDTH=33%>
+
-
<P>A</P>
+
-
</TD>
+
-
</TR>
+
-
<TR VALIGN=TOP>
+
-
<TD WIDTH=33%>
+
-
<P>2934</P>
+
-
</TD>
+
-
<TD WIDTH=33%>
+
-
<P>1</P>
+
-
</TD>
+
-
<TD WIDTH=33%>
+
-
<P>B</P>
+
-
</TD>
+
-
</TR>
+
-
<TR VALIGN=TOP>
+
-
<TD WIDTH=33%>
+
-
<P>2934</P>
+
-
</TD>
+
-
<TD WIDTH=33%>
+
-
<P>2</P>
+
-
</TD>
+
-
<TD WIDTH=33%>
+
-
<P>A</P>
+
-
</TD>
+
-
</TR>
+
-
<TR VALIGN=TOP>
+
-
<TD WIDTH=33%>
+
-
<P>2941</P>
+
-
</TD>
+
-
<TD WIDTH=33%>
+
-
<P>1</P>
+
-
</TD>
+
-
<TD WIDTH=33%>
+
-
<P>A</P>
+
-
</TD>
+
-
</TR>
+
-
</TBODY>
+
-
</TABLE>
+
-
<P STYLE="margin-bottom: 0cm">Теперь в результате соед с третьим
+
-
соотношением мы получили исходное. Соединение любой пары не будет
+
-
соед без потерь, а соединение всех трёх является соединением без
+
-
потерь.</P>
+
-
<P STYLE="margin-bottom: 0cm">Для 3-декомп без потерь нужно
+
-
удовлетворять следующему ограничению:</P>
+
-
<P STYLE="margin-bottom: 0cm">IF (&lt;СН, ПН&gt; принадлежит B<SUB>r1
+
-
</SUB>AND &lt;ПН, СЗ&gt; принадлежит B<SUB>r2 </SUB>AND &lt;СН, СЗ&gt;
+
-
принадлежит B<SUB>r3 </SUB>) THEN &lt;СН, ПН, ЗН&gt; принадлежит B<SUB>r</SUB></P>
+
-
<P STYLE="margin-bottom: 0cm"><BR>
+
-
</P>
+
-
<P STYLE="margin-bottom: 0cm">n-декомпозируемые отношения</P>
+
-
<P STYLE="margin-bottom: 0cm">n=2</P>
+
-
<P STYLE="margin-bottom: 0cm">IF (&lt;СН1, ПН1, СЗ1&gt; принадлежит
+
-
B<SUB>r </SUB>AND &lt;СН2, ПН1, СЗ1&gt; принадлежит B<SUB>r </SUB>AND
+
-
&lt;СН1, ПН2, СЗ1&gt; принадлежит B<SUB>r </SUB>) THEN &lt;СН1, ПН1,
+
-
ЗН&gt; принадлежит B<SUB>r</SUB></P>
+
-
<P STYLE="margin-bottom: 0cm"><BR>
+
-
</P>
+
-
<P STYLE="margin-bottom: 0cm">Если есть отношение r, есть атрибуты A,
+
-
B, ..., Z коотрые имеют ... *(A, B, ..., Z)</P>
+
-
<P STYLE="margin-bottom: 0cm"><BR>
+
-
</P>
+
-
<P STYLE="margin-bottom: 0cm">Отношение можно декомп без потерь на n
+
-
отношений, когда его можно декомпозировать на n отншений.</P>
+
-
<P STYLE="margin-bottom: 0cm"><BR>
+
-
</P>
+
-
<P STYLE="margin-bottom: 0cm">Основная цель модификации БД &ndash;
+
-
чтобы не надо было выполнять триггеры.</P>
+
-
<P STYLE="margin-bottom: 0cm"><BR>
+
-
</P>
+
-
<P STYLE="margin-bottom: 0cm">Условие: если Сидоров в проекте 1 моет
+
-
посуду и Петров в проекте 1 подметает полы, и Сидоров в проекте 2
+
-
моет посуду, то Сидоров должен также мыть полы, потому что они ходят
+
-
парочкой.</P>
+
-
<P STYLE="margin-bottom: 0cm"><BR>
+
-
</P>
+
-
<P STYLE="margin-bottom: 0cm">Если мы добавляем &lt;2941, 1, A&gt;,
+
-
то мы должны добавить &lt;2934, 1, A&gt;. Аналогично с удалением.</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"><BR>
+
-
</P>
+
-
<P STYLE="margin-bottom: 0cm">Все боятся 5НФ, и лектор тоже в первые
+
-
разы рассказывал её сложно, пока не понял, что там всё просто.</P>
+
-
<P STYLE="margin-bottom: 0cm"><BR>
+
-
</P>
+
-
<P STYLE="margin-bottom: 0cm">PJD &ndash; Projection join
+
-
independency.
+
-
</P>
+
-
<P STYLE="margin-bottom: 0cm">PJD, Опред. Возм. Ключем</P>
+
-
<P STYLE="margin-bottom: 0cm">r ЗОВ*(A, B, ..., Z)</P>
+
-
<P STYLE="margin-bottom: 0cm"><BR>
+
-
</P>
+
-
<P STYLE="margin-bottom: 0cm">Вопрос на экзамене:</P>
+
-
<P STYLE="margin-bottom: 0cm">Есть r(A1,...An), А1 &ndash; возможный
+
-
ключ. Есть ли здесь зависимость проекций соединений? Если да, то
+
-
какая?</P>
+
-
<P STYLE="margin-bottom: 0cm">Ответ: есть, ({A1, A2}, {A1, A3}, {A1,
+
-
An}) &ndash; доказывается по теореме Хитта, так как всё без потерь.
+
-
Оно сколько угодно декомпозируемое, и его декомпозировтаь не надо,
+
-
так как оно и так хорошее.</P>
+
-
<P STYLE="margin-bottom: 0cm"><BR>
+
-
</P>
+
-
<P STYLE="margin-bottom: 0cm">Тривиальная PJD</P>
+
-
<P STYLE="margin-bottom: 0cm">Зависимость проекций называется
+
-
тривиальное, если зотя бы один атрибут совпадает с заголовком
+
-
отношения. Такая зависимость существует всегда, и она бессмысленнва.</P>
+
-
<P STYLE="margin-bottom: 0cm"><BR>
+
-
</P>
+
-
<P STYLE="margin-bottom: 0cm">5НФ. Если любая нетривиальная
+
-
зависимость соединения подразумевается возможными ключами.</P>
+
-
<P STYLE="margin-bottom: 0cm"><BR>
+
-
</P>
+
-
<P STYLE="margin-bottom: 0cm">Он находится в 5НФ, когда декомпозиция
+
-
становится бессмысленной. Ибо уже после неё аномалий нет.</P>
+
-
<P STYLE="margin-bottom: 0cm"><BR>
+
-
</P>
+
-
<P STYLE="margin-bottom: 0cm">На саом деле есть дырочка межту 4 и
+
-
5НФ. Лектор думает, что при желании можно найти дополнительные
+
-
условия, которые более сложные, чем многознач завис, но более прочты
+
-
чем ..., но никто этим не занимался.
+
-
</P>
+
-
<P STYLE="margin-bottom: 0cm"><BR>
+
-
</P>
+
-
<P STYLE="margin-bottom: 0cm">БКНФ &ndash; только для очень умных
+
-
проектировщиков, дальше уже выпендрёж.</P>
+
-
<P STYLE="margin-bottom: 0cm"><BR>
+
-
</P>
+
-
<P STYLE="margin-bottom: 0cm"><B>Проектирование БД на основе
+
-
семантических моделей</B></P>
+
-
<P STYLE="margin-bottom: 0cm"><BR>
+
-
</P>
+
-
<P STYLE="margin-bottom: 0cm">Реляционная модель данных всем хорошо,
+
-
но в ряде случаев при проектировании БД, когда ещё нет приложенийЮ
+
-
которых с ней работают, очень многие знания к моменту проектирования
+
-
исчезают. Простой пример: в представления реляционной БД остаётся
+
-
костяк голый, теряется смысл данных. Просчтой пример: отношение с
+
-
внешнимс ключом:</P>
+
-
<P STYLE="margin-bottom: 0cm">В отделах есть ID начальника, В
+
-
служащих - ID отдела.</P>
+
-
<P STYLE="margin-bottom: 0cm"><BR>
+
-
</P>
+
-
<P STYLE="margin-bottom: 0cm">На самом деле, Всё-таки РБД по своей
+
-
природе плоские. Если мы начинаем работать с проектированием БД в
+
-
терминах проецур нормализации, то и в голову не придёт ... . В
+
-
дейсьтвиетельности проектировщику БД это не хорош, не удобно, ему
+
-
удобно считать, что есть большой квадрат &ndash; предприятие, есть
+
-
малые квадроаты &ndash; подразделения, отделы, служащие, связи с
+
-
клиентами... Такая картинка могла быть более удобной. Из-за этого в
+
-
80 годы были придуманы модели данных, которые следовали определению
+
-
Кодда, но рассчитаны на то, что представление объектов внешнего мира
+
-
в них было бы больше приболижено к жизни.</P>
+
-
<P STYLE="margin-bottom: 0cm"><BR>
+
-
</P>
+
-
<P STYLE="margin-bottom: 0cm"><BR>
+
-
</P>
+
-
<P STYLE="margin-bottom: 0cm">Лектор собиратеся сказать только два
+
-
пример семант зависимостей &ndash; диаграмы. Были абсолютно линейные
+
-
модели и языки. Но это было 20 лет назад, а лектор читает не курс по
+
-
истории БД. И после педедыва лектор расскажет общий взгляд на то, как
+
-
семант модели данных можно использоваиьт при проектировании и потом.
+
-
Это не история, это представление лектора о том, что он видел в
+
-
жизни. Некоторые вещи исользуюися и их разумно исопльзовать,
+
-
некоторые не используются, но лектор не знвает, почему.</P>
+
-
<P STYLE="margin-bottom: 0cm"><BR>
+
-
</P>
+
-
<P STYLE="margin-bottom: 0cm">В советское время, вернее в то врем,
+
-
конгда советская власть казалась вечной бесконечной, были суровые
+
-
ГОСТы, и при приёмке программ кроме текстов программ должны были быть
+
-
блоксхемы программ. Но они ни разу не рисовались до того, как
+
-
программа не начинала работать, и это была самая идиотская работа,
+
-
ибо никто не сверял блоксему с программой, главное, чтобы там были
+
-
квадратики, стрелочки... Сейчас, даже с появлением UML то же самое.</P>
+
-
<P STYLE="margin-bottom: 0cm"><BR>
+
-
</P>
+
-
<P STYLE="margin-bottom: 0cm">При проектировании БД тоже нужно иметь
+
-
нотацию. Для маленьких БД достаточно смотреть на определение на SQL,
+
-
для больших (от 100) уже нет, и граница очень расплывчата. Пример:
+
-
был хороший проект, в 93-94 годах, тогда продавался Oracle 7.3,
+
-
проект был замечательный, космонавтов, тогда в постСССР, было
+
-
довольно много ЦУПов, десяток-полтора, некоторые военныЕ, некоторые
+
-
универсальные, но у всех похожая функциональность, делают они
+
-
примерно одно и то же, а ПО у всех уникальное, что печально.
+
-
Замечательный был центр Капустин Яр, народ туда шёл работать под
+
-
угрозой смертной казни, и у этих ребят была нормальная идея сделать
+
-
мобильный ЦУП. Они хотели делат это на нормльной тенолгии,чтобы всё
+
-
работало на БД, и лектор помогал эту БД проектировать. Лектор слёзно
+
-
умолял их задокументировать БД, там было 100-150 таблиц, но они
+
-
отказались. Через два года комманда сменилась, и они не смогли
+
-
разобраться.</P>
+
-
<P STYLE="margin-bottom: 0cm"><BR>
+
-
</P>
+
-
<P STYLE="margin-bottom: 0cm">Первое утверждение лектора: для БД с
+
-
достаточно большой сложностью (более ста таблиц0 надо использовать
+
-
какую-нибудь нотацию. И проблем перевести эту нотацию в SQL проблем
+
-
не составляет, но картинки обязательно должны сохраняться на время
+
-
проектирования БД.</P>
+
-
<P STYLE="margin-bottom: 0cm"><BR>
+
-
</P>
+
-
<P STYLE="margin-bottom: 0cm">Положительнеый пример: проектировали
+
-
книжный магазин, простая БД на 30-40 таблиц, и тогда таки сделали
+
-
картинки. Продаётся уже в 4 раз.</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">CASE-системы (computer Aided Software
+
-
Ingeenering), но это не совсем CASE, больше похоже на САПР.</P>
+
-
<P STYLE="margin-bottom: 0cm"><BR>
+
-
</P>
+
-
<P STYLE="margin-bottom: 0cm">Когда в Москве пыталось появиться
+
-
первое представительство Sun microsystems, и тогда на презентацию
+
-
привезли 19-дюймовый монитор, где они показывали, как можно было
+
-
использовать CASE для Оракла.</P>
+
-
<P STYLE="margin-bottom: 0cm"><BR>
+
-
</P>
+
-
<P STYLE="margin-bottom: 0cm">Неистребимый порок диаграмного
+
-
предсталения &ndash; какой бы большой монитор не был, всё равно
+
-
придётся скроллить.</P>
+
-
<P STYLE="margin-bottom: 0cm"><BR>
+
-
</P>
+
-
<P STYLE="margin-bottom: 0cm">Появились рисовалк, и народ начал
+
-
рисовать. Почему нельзя сделать компилятор для графич нотации? И
+
-
появлись первые CASE-средства, которые умели генерировать SQL. Смотря
+
-
на то, что SQL почти не менялся за 15 лет, в каждой реализации свои
+
-
отклонения, и генераторы должны привязываться к платформе, и такое
+
-
могут позвольить себе немногие, например, ИБМ.</P>
+
-
<P STYLE="margin-bottom: 0cm"><BR>
+
-
</P>
+
-
<P STYLE="margin-bottom: 0cm">Следующий шаг: как человек рисует
+
-
картинки, откуда он берёт информацию? На самом деле в области
+
-
проектирования БД не надо думать, что картинку придумывает
+
-
проектировщик, её придумывают люди, эксперты в предметной области. И
+
-
возникает идея: есди проектировщик может выслушать людей, почему
+
-
программа не может. Подобные проекты делались в Киеве, и закончились
+
-
с СССР &ndash; смесь экспертной системы и CASE-средства, там были
+
-
шаблоны ответов, эксперты ответы давали, система проверяла всё на
+
-
непроречивость, и когда необходимые графы внутри таблицы были
+
-
заполнены, она рисовала картинки, она показывала картинку
+
-
проектировщику и он говорит, подходит картинка или нет, если нет, то
+
-
задавались уточняющие вопросы. Они обеспечивали 3НФ уже в конце 80х
+
-
годов. Лектор не понимает, почему нет ни одной коммерческой системы
+
-
не сделано, хотя понятно уже 20 лет как, что это можно.</P>
+
-
<P STYLE="margin-bottom: 0cm"><BR>
+
-
</P>
+
-
<P STYLE="margin-bottom: 0cm">Далее: есть красивое диаграмное
+
-
представление, сжема БД, и мы умеем отобразить эту схему в SQLовскую
+
-
схему, но почему мы тогда заставляем работать людей в терминах SQL, а
+
-
не схем? Почемцу мы не можем отобразить операции над схемой в
+
-
операции на SQL, Такие опыты производились, и были средства, которые
+
-
позволяли взаимодействовать с БД. И возникает вопрос &ndash; а на
+
-
фига тогда SQL,Это породило направление, которое SQL было задавлено &ndash;
+
-
прямая реализация семантическим представлением. Одно время лектору
+
-
казалось, 14 лет назад, когда он впервые готовил этот курс, лектору
+
-
кахалось, что сработают ООБД. Хотя понятно, что ОО позволяется
+
-
сохранять больше семантики, чем реляционные БД, там богатые структуры
+
-
данных, их можно разным образом интерпретировать. Но этого не
+
-
произошло, и ожидания лектора от ООБД были преувеличены, и он
+
-
ошибался в том, что они обесп более высокую семантику, и лектор
+
-
теперь в этом уверен.</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">ER-диаграмы</P>
+
-
<P STYLE="margin-bottom: 0cm">(Entity-Relationship) &ndash;
+
-
сущность-связь</P>
+
-
<P STYLE="margin-bottom: 0cm">Почему в математике нет
+
-
терминологической проблемы &ndash; потому что там все термины
+
-
долговечны. Компьютерная технология меняется очень быстро, и термины,
+
-
которые вводятся 50 лет назад, уже не использоуются. И такой суеты,
+
-
как в последние 6 лет, лектор не видел. Даже если новое &ndash; это
+
-
хорошо забытое старое, маркетологи всё равно придумывают новые
+
-
термины.</P>
+
-
<P STYLE="margin-bottom: 0cm">Сущность &ndash; понятие также
+
-
неопределимое, также как и процесс, жизнь.</P>
+
-
<P STYLE="margin-bottom: 0cm">В UML это называется association.</P>
+
-
<P STYLE="margin-bottom: 0cm"><BR>
+
-
</P>
+
-
<P STYLE="margin-bottom: 0cm">Peter Chen 1976</P>
+
-
<P STYLE="margin-bottom: 0cm">Oracle Case Method &ndash; был
+
-
представлен свой диалект диаграм ER, который дектор полюбил по двум
+
-
причинам. В этой нотации очень простые графич символы и их хватает.
+
-
Во всех остальных те же самые понятие, но немного другие графич
+
-
символы. Поэтому лектор будет использовать именно этот диалект.</P>
+
-
<P STYLE="margin-bottom: 0cm"><BR>
+
-
</P>
+
-
<P STYLE="margin-bottom: 0cm">Определиния Орвкла нравятся лектору
+
-
своей эмоциональность.</P>
+
-
<P STYLE="margin-bottom: 0cm"><BR>
+
-
</P>
+
-
<OL>
+
-
<LI><P STYLE="margin-bottom: 0cm">Сущность</P>
+
-
<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">С другой стороны &ndash; методы решения
+
-
дифуров, ничего реального нет. Но мы можем скзать, чт хотим ввести
+
-
сущность дифур, у неё будут понятнве свойства, и будут связи.</P>
+
-
<P STYLE="margin-bottom: 0cm"><BR>
+
-
</P>
+
-
<P STYLE="margin-bottom: 0cm">Последнее, что хочет скзаать лектор:
+
-
сущность во всех видах диаграм изобр в виде прямоуг, в нём должно
+
-
писаться имя сущности, в этой нотации должно быть оно большими
+
-
буквами. В этой нотации, когда мы вводим этот прямоуголиничек, мы
+
-
вводим новый тип.</P>
+
-
<TABLE WIDTH=98 BORDER=1 BORDERCOLOR="#000000" CELLPADDING=4 CELLSPACING=0>
+
-
<COL WIDTH=88>
+
-
<THEAD>
+
-
<TR>
+
-
<TD WIDTH=88 VALIGN=TOP>
+
-
<P ALIGN=CENTER>АЭРОПОРТ</P>
+
-
<P ALIGN=CENTER>например,</P>
+
-
<P ALIGN=CENTER>Хитроу</P>
+
-
</TD>
+
-
</TR>
+
-
</THEAD>
+
-
</TABLE>
+
-
<P STYLE="margin-bottom: 0cm"><BR>
+
-
</P>
+
-
{{Базы Данных}}
+
-
{{Lection-stub}}
+

Пожалуйста, обратите внимание, что все ваши добавления могут быть отредактированы или удалены другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см. eSyr's_wiki:Авторское право).
НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!

Личные инструменты
Разделы