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

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

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

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

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

Текущая версия Ваш текст
Строка 1: Строка 1:
-
<P STYLE="margin-bottom: 0cm">БД 17.11.06</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.
-
видеть, что свойство ОО-сиcтем, что у объекта есть уникальный
+
-
идентификатор естественно.
+
-
</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">В отделах с номерами &gt;5 должны
+
-
работать служащие старше 30 лет.</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">Как это на ОЦЛ сформулировать от
+
-
отдела:</P>
+
-
<P STYLE="margin-bottom: 0cm">context Отдел inv:</P>
+
-
<P STYLE="margin-bottom: 0cm"> self.отдел.номер &lt;= 5 OR
+
-
self.служащий -&gt; select(возраст &lt;= 5) -&gt; size()=0</P>
+
-
<P STYLE="margin-bottom: 0cm"><BR>
+
-
</P>
+
-
<P STYLE="margin-bottom: 0cm">context Служащий inv:</P>
+
-
<P STYLE="margin-bottom: 0cm"> self.возраст&lt;=30 OR
+
-
self.отдел.номер &gt; 5</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">context Отдел inv:</P>
+
-
<P STYLE="margin-bottom: 0cm"> self.служащий -&gt;
+
-
exists(должен=&raquo;manager&raquo;) and</P>
+
-
<P STYLE="margin-bottom: 0cm"> self.компания.годОснования &lt;=
+
-
self.годОснования</P>
+
-
<P STYLE="margin-bottom: 0cm"><BR>
+
-
</P>
+
-
<P STYLE="margin-bottom: 0cm">context Компания inv:</P>
+
-
<P STYLE="margin-bottom: 0cm"> forAll self.Отдел(self.годОснования
+
-
&lt; self.отдел.годОснования and
+
-
exists(self.отдел.служащий.должность=manager))</P>
+
-
<P STYLE="margin-bottom: 0cm"><BR>
+
-
</P>
+
-
<P STYLE="margin-bottom: 0cm">В лбюбой компании служащих не больше
+
-
1000</P>
+
-
<P STYLE="margin-bottom: 0cm"><BR>
+
-
</P>
+
-
<P STYLE="margin-bottom: 0cm">context Компания inv:</P>
+
-
<P STYLE="margin-bottom: 0cm"> self.отдел -&gt;
+
-
collect(служащие)-&gt;size() &lt; 1000</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>
+
-
<OL>
+
-
<LI><P STYLE="margin-bottom: 0cm">есть большое желание определять
+
-
класс с операциями. Если это очень хочется, надо подуматьб, в какой
+
-
СУБД это будет реализовываться.</P>
+
-
<LI><P STYLE="margin-bottom: 0cm">Если у нас много связей 1 к 1, то
+
-
нужно подумать, нужны ли они нам. Нужно подумать, не является ли
+
-
объект на другом конце связи атрибутом. Есть хорошая парочка доярка
+
-
и корова. Предположим, что у доярки может быть одна корова. Но
+
-
корова не есть собственность доярки, у неё есть своя жизнь, свои
+
-
связи...</P>
+
-
<LI><P STYLE="margin-bottom: 0cm">Очень надо аккуратно относиться к
+
-
тому, когда мы рисуем агрегатные или композитные связи. Надщо
+
-
подумать, если такие средства в SQL.</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"><BR>
+
-
</P>
+
-
<P STYLE="margin-bottom: 0cm">Внутренне устройство СУБД</P>
+
-
<P STYLE="margin-bottom: 0cm"><BR>
+
-
</P>
+
-
<P STYLE="margin-bottom: 0cm">В прошлые годы, лет 10 назад, лектор
+
-
настолько её отдавал должное, что у неё было три прохода:</P>
+
-
<OL>
+
-
<LI><P STYLE="margin-bottom: 0cm">Введение</P>
+
-
<LI><P STYLE="margin-bottom: 0cm">На примере System R</P>
+
-
<LI><P STYLE="margin-bottom: 0cm">Общее, совр подход</P>
+
-
</OL>
+
-
<P STYLE="margin-bottom: 0cm"><BR>По прошествии лет лекто понял:</P>
+
-
<OL>
+
-
<LI><P STYLE="margin-bottom: 0cm">Можно убиццо, но все не
+
-
расскажешь.</P>
+
-
<LI><P STYLE="margin-bottom: 0cm">Нужен какой-то каркас, нельзя
+
-
рассказывать их в отрыве от общих методов построения СУБДЖ. Как ни
+
-
странно, оказываетсф структура System R, которой 30 лет, остаётся
+
-
эталоном.
+
-
</P>
+
-
</OL>
+
-
<P STYLE="margin-bottom: 0cm"><BR>
+
-
</P>
+
-
<P STYLE="margin-bottom: 0cm">Меньше всего компромиссов в DB2.</P>
+
-
<P STYLE="margin-bottom: 0cm"><BR>
+
-
</P>
+
-
<P STYLE="margin-bottom: 0cm">Давате рассмотрим 2.. 3.. 4 примера:</P>
+
-
<OL>
+
-
<LI><P STYLE="margin-bottom: 0cm">Oracle. Это система, которая
+
-
делалась после Стистем Р, и писалась она, как вспоминают, на основе
+
-
статей по поводу Систем Р. Люди их прочитали, переманили людей и
+
-
делали эту систему. У оракла была задача сделать быстро работающую
+
-
систему, которая заняла бы место на рынке. А нишей тогда были
+
-
миникомпьютеры (ПДП-11). Они быстро склепали ядро системы, и до сих
+
-
пор они от этого ядра освободиться не смогли. На него настраивали,
+
-
настраивали, настривали новые модули. Сейчас вообще не видна её
+
-
архитектура</P>
+
-
<LI><P STYLE="margin-bottom: 0cm">MySQL - система, котроая делалась
+
-
на коленке, чтобы появились в ОпенСорсе возможности СКЛ, чтобы
+
-
работали вебсайты. Собрались немсколько горячих финских парней,
+
-
которые написали, как линукс, систему.</P>
+
-
<LI><P STYLE="margin-bottom: 0cm">PostgreSQL &ndash; это ещё более
+
-
древняя история, чем у оракла. Датируется 74 годом. Когда длелалась
+
-
Ingris (?), сделана она была некрасиво, но там быле кое-каие яркие
+
-
пятна. Там динамически можно было определять новые способы доступа.
+
-
Потом, когда делалли Постгрес, они не выбросили старый код. Потом
+
-
опять горячие финские парни, которые почему-то больше всего наделали
+
-
в опенсурсе, сделаи ПостгреСКЛ.</P>
+
-
<LI><P STYLE="margin-bottom: 0cm">MSSQL &ndash; история вообще
+
-
занимательная. Была маленькая зародышевая компания, которая сделала
+
-
собственную разработку ядра, они стали делать свои собственные
+
-
версии SQL, и потом откололся кусочек. Внешне это очень мощная
+
-
система, но безыдейная.</P>
+
-
</OL>
+
-
<P STYLE="margin-bottom: 0cm"><BR>
+
-
</P>
+
-
<P STYLE="margin-bottom: 0cm">Почему ДБ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>
+
-
<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>
+
-
<OL START=4>
+
-
<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">существовало 5-10 лет некая технология
+
-
БД. Поддерживалось три разновидности способов организации БД:</P>
+
-
<OL>
+
-
<LI><P STYLE="margin-bottom: 0cm">Иерархическая организация,
+
-
фактически на физическом уровне. И ИБМ была в этом отношении
+
-
передовой, у неё была ИМС, котораябыла есть, будет, и будет
+
-
оставаться</P>
+
-
<LI><P STYLE="margin-bottom: 0cm">Сетевые БД. Те же самые физ
+
-
ссылки, но могли они образовывать орграф, и тут у каждого потомка
+
-
моглоб ыть бльше одного родителя</P>
+
-
<LI><P STYLE="margin-bottom: 0cm">Инвертированные таблицы. То есть
+
-
когда основными структурами были именно таблицы, и над этими
+
-
таблицами можно было строить индекс явно. Это Adobase. И что бы они
+
-
не говорили, у них всё тоже</P>
+
-
</OL>
+
-
<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">Соответственно, был сформирован
+
-
достаточно мололдо коллектив разработчиков, за последние 30 лет
+
-
умерло почти 3 человека. Они немногим старше лектора, сейчас, уже,
+
-
конечно, не работоспособны, но вполне себе функционируют. Например,
+
-
Джим Грей.</P>
+
-
<P STYLE="margin-bottom: 0cm"><BR>
+
-
</P>
+
-
<P STYLE="margin-bottom: 0cm">Цели Systrem R</P>
+
-
<OL>
+
-
<LI><P STYLE="margin-bottom: 0cm">Ненавигационный интерфейс высокого
+
-
уровня, который позволял бы достичь независимочти приложений от
+
-
данных и при этом позволял бы работать достаточно эффективно</P>
+
-
<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">Вопрос на экзамене: как удалить
+
-
таблицу, заполненную данными?</P>
+
-
<OL START=5>
+
-
<LI><P STYLE="margin-bottom: 0cm">Средства восстановления сост БД
+
-
после сдбоя</P>
+
-
<LI><P STYLE="margin-bottom: 0cm">Обеспечить механизм представления
+
-
БД (view)</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">Как работают сегодняшние системы: если
+
-
должна выполница какая-то операция SQL, в любом случае этот текст
+
-
передаётся на компиляцию (JIT). В IBM- заблаовременная компиляция.
+
-
Есть приложение, и в это приложение вставлены SQL-операции, и они
+
-
компилируются во время компиляции приложения. Для этого были
+
-
специальные прекомпиляторы.</P>
+
-
<P STYLE="margin-bottom: 0cm"><BR>
+
-
</P>
+
-
<P STYLE="margin-bottom: 0cm">Пункт 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">В 73 году появился первый драф,т
+
-
который назывался SEQUEL-1, в 74 SEQUEL-2, и первая статья была
+
-
посвященна именно ему. Это язык, который позволял достичь первой
+
-
цели. Потом появился SQL (1976).
+
-
</P>
+
-
<P STYLE="margin-bottom: 0cm"><BR>
+
-
</P>
+
-
<P STYLE="margin-bottom: 0cm">Direct SQL &ndash; язык, который
+
-
позволяет работьа с таблицами. На нём нельзя писать приложения,
+
-
потому что он этого не умеют</P>
+
-
<P STYLE="margin-bottom: 0cm">Embedded SQL -
+
-
</P>
+
-
<P STYLE="margin-bottom: 0cm"><BR>
+
-
</P>
+
-
<P STYLE="margin-bottom: 0cm">SQL это такой impendance mismatch, о
+
-
котором говорили большевики</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"><BR>
+
-
</P>
+
-
 
+
-
{{Базы Данных}}
+
-
{{Lection-stub}}
+

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

Разделы