Текущая версия |
Ваш текст |
Строка 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">В отделах с номерами >5 должны
| + | |
- | работать служащие старше 30 лет.</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">context Отдел inv:</P>
| + | |
- | <P STYLE="margin-bottom: 0cm"> self.отдел.номер <= 5 OR
| + | |
- | self.служащий -> select(возраст <= 5) -> size()=0</P>
| + | |
- | <P STYLE="margin-bottom: 0cm"><BR>
| + | |
- | </P>
| + | |
- | <P STYLE="margin-bottom: 0cm">context Служащий inv:</P>
| + | |
- | <P STYLE="margin-bottom: 0cm"> self.возраст<=30 OR
| + | |
- | self.отдел.номер > 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.служащий ->
| + | |
- | exists(должен=»manager») and</P>
| + | |
- | <P STYLE="margin-bottom: 0cm"> self.компания.годОснования <=
| + | |
- | 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.годОснования
| + | |
- | < 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.отдел ->
| + | |
- | collect(служащие)->size() < 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 – это ещё более
| + | |
- | древняя история, чем у оракла. Датируется 74 годом. Когда длелалась
| + | |
- | Ingris (?), сделана она была некрасиво, но там быле кое-каие яркие
| + | |
- | пятна. Там динамически можно было определять новые способы доступа.
| + | |
- | Потом, когда делалли Постгрес, они не выбросили старый код. Потом
| + | |
- | опять горячие финские парни, которые почему-то больше всего наделали
| + | |
- | в опенсурсе, сделаи ПостгреСКЛ.</P>
| + | |
- | <LI><P STYLE="margin-bottom: 0cm">MSSQL – история вообще
| + | |
- | занимательная. Была маленькая зародышевая компания, которая сделала
| + | |
- | собственную разработку ядра, они стали делать свои собственные
| + | |
- | версии 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">Одно из основных новшеств –
| + | |
- | предложение нового языка, имепративного.</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 – язык, который
| + | |
- | позволяет работьа с таблицами. На нём нельзя писать приложения,
| + | |
- | потому что он этого не умеют</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}}
| + | |