Текущая версия |
Ваш текст |
Строка 1: |
Строка 1: |
- | <P STYLE="margin-bottom: 0cm">БД 02.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. |
- | Выбрал он его потому, что он ему нравится.</P>
| + | |
- | <P STYLE="margin-bottom: 0cm">Некоторые потребности модели в отрыве
| + | |
- | от потребностей РБД. Оракловский синтаксис сильно ориентирован на SQL
| + | |
- | 80х годов.
| + | |
- | </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>
| + | |
- | <LI><P STYLE="margin-bottom: 0cm">Атрибут</P>
| + | |
- | </OL>
| + | |
- | <P STYLE="margin-bottom: 0cm">В прошлый раз лектор остановился на
| + | |
- | понятии сущности. Это реальный или представляемый объект, информация
| + | |
- | о котором должна сохраняться и быть доступной. На дианграме
| + | |
- | изображается в виде прямоугольника, имя большими буквами, и ещё могут
| + | |
- | приводиться примеры.
| + | |
- | </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">Связь</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">На практике:</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">Есть сущности и связи между ними, и
| + | |
- | Когда происходит инстанциация, ... .</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"><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">В терминологии Оракла это называется
| + | |
- | степенью. Слева степень много, Справа 1. Пунктир –
| + | |
- | необязательность связи.</P>
| + | |
- | <P STYLE="margin-bottom: 0cm"><BR>
| + | |
- | </P>
| + | |
- | <P STYLE="margin-bottom: 0cm">Лектор недавно перевёл несколько новых
| + | |
- | статей Дейта, одна из них в частности ругает диаграммы классов (UML),
| + | |
- | у них понятие, сколько экземпляров объектов может присутствоватьна
| + | |
- | конце связи называется multiplicity, и Дейта ругает людей, которые
| + | |
- | заменили (cardinality) мощность на множественность, которая
| + | |
- | неизвестно что обозначает. Русские программисты придумали слово
| + | |
- | кратность.</P>
| + | |
- | <P STYLE="margin-bottom: 0cm"><BR>
| + | |
- | </P>
| + | |
- | <P STYLE="margin-bottom: 0cm">Пассажир может иметь 0 или сколько
| + | |
- | угодно билетов.
| + | |
- | </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">Каждый – сын мужчины, и у мужчины
| + | |
- | 0 или более детей.</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"><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">Пример: книга. Казалось бы, тривиальная
| + | |
- | вещь. Рассмотрим два случая: книга на складе и книга в библиотеке.
| + | |
- | Для библ и для склада экземпляр сущности книга является разным. И для
| + | |
- | склада лучшим идентификатором будет ISBN, а для библиотеки –
| + | |
- | уникальный идентификатор библиотеки и уникальный идентификатор
| + | |
- | библиотеки.</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">Зная порялки паспортного стола, делаем
| + | |
- | связь принадлежит необязательной.
| + | |
- | </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НФ – устраняются атрибуты,
| + | |
- | которые содержат множественные значения</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">... //ну задолбался я писать</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">номер рейса</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">ЭЛЕМЕНТ РАСПИСАНИЯ</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">ГОРОД</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>
| + | |
- | <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">Сейчас мы можем сказать:</P>
| + | |
- | <OL>
| + | |
- | <LI><P STYLE="margin-bottom: 0cm">Существует точно одна связь</P>
| + | |
- | <LI><P STYLE="margin-bottom: 0cm">Существует 0 или одна связь</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">В Китае было нельзя иметь больше 2
| + | |
- | детей. Родили третьего – родителей в тюрьму, детей в детдом.
| + | |
- | Хотелось бы иметь средства, которые позволяют это указывать. Для
| + | |
- | этого рядом с концом связи пишется необх. Степень связи. Чем блоьше
| + | |
- | подробностей накручиваем на степень связи, тем сложнее ограничения
| + | |
- | целостности.</P>
| + | |
- | <P STYLE="margin-bottom: 0cm"><BR>
| + | |
- | </P>
| + | |
- | <P STYLE="margin-bottom: 0cm">Не исключено, что в след четверг
| + | |
- | контрольной не будет.</P>
| + | |
- | <P STYLE="margin-bottom: 0cm">10 лекции не будет, ибо защита
| + | |
- | диссертации.</P>
| + | |
- | <P STYLE="margin-bottom: 0cm">Придётся контрольную сдвинуть на одну
| + | |
- | неделю.</P>
| + | |
- | {{Базы Данных}}
| + | |
- | {{Lection-stub}}
| + | |