Текущая версия |
Ваш текст |
Строка 1: |
Строка 1: |
- | <P STYLE="margin-bottom: 0cm">БД 20.10.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. |
- | приходит менее 3 человек</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">СЛУ_УРОВ – разряд, Уровень
| + | |
- | служащего – определяет размер зарплаты</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>
| + | |
- | <TABLE WIDTH=458 BORDER=1 BORDERCOLOR="#000000" CELLPADDING=4 CELLSPACING=0>
| + | |
- | <COL WIDTH=78>
| + | |
- | <COL WIDTH=84>
| + | |
- | <COL WIDTH=82>
| + | |
- | <COL WIDTH=78>
| + | |
- | <COL WIDTH=94>
| + | |
- | <THEAD>
| + | |
- | <TR VALIGN=TOP>
| + | |
- | <TD WIDTH=78>
| + | |
- | <P>СЛУ_НОМ</P>
| + | |
- | </TD>
| + | |
- | <TD WIDTH=84>
| + | |
- | <P>СЛУ_УРОВ</P>
| + | |
- | </TD>
| + | |
- | <TD WIDTH=82>
| + | |
- | <P>СЛУ_ЗАРП</P>
| + | |
- | </TD>
| + | |
- | <TD WIDTH=78>
| + | |
- | <P>ПРО_НОМ</P>
| + | |
- | </TD>
| + | |
- | <TD WIDTH=94>
| + | |
- | <P>СЛУ_ЗАДАН</P>
| + | |
- | </TD>
| + | |
- | </TR>
| + | |
- | </THEAD>
| + | |
- | <TBODY>
| + | |
- | <TR VALIGN=TOP>
| + | |
- | <TD WIDTH=78>
| + | |
- | <P>2934</P>
| + | |
- | </TD>
| + | |
- | <TD WIDTH=84>
| + | |
- | <P>2</P>
| + | |
- | </TD>
| + | |
- | <TD WIDTH=82>
| + | |
- | <P>22400</P>
| + | |
- | </TD>
| + | |
- | <TD WIDTH=78>
| + | |
- | <P>1</P>
| + | |
- | </TD>
| + | |
- | <TD WIDTH=94>
| + | |
- | <P>A</P>
| + | |
- | </TD>
| + | |
- | </TR>
| + | |
- | <TR VALIGN=TOP>
| + | |
- | <TD WIDTH=78>
| + | |
- | <P>2935</P>
| + | |
- | </TD>
| + | |
- | <TD WIDTH=84>
| + | |
- | <P>3</P>
| + | |
- | </TD>
| + | |
- | <TD WIDTH=82>
| + | |
- | <P>29600</P>
| + | |
- | </TD>
| + | |
- | <TD WIDTH=78>
| + | |
- | <P>1</P>
| + | |
- | </TD>
| + | |
- | <TD WIDTH=94>
| + | |
- | <P>B</P>
| + | |
- | </TD>
| + | |
- | </TR>
| + | |
- | <TR VALIGN=TOP>
| + | |
- | <TD WIDTH=78>
| + | |
- | <P>2936</P>
| + | |
- | </TD>
| + | |
- | <TD WIDTH=84>
| + | |
- | <P>1</P>
| + | |
- | </TD>
| + | |
- | <TD WIDTH=82>
| + | |
- | <P>20000</P>
| + | |
- | </TD>
| + | |
- | <TD WIDTH=78>
| + | |
- | <P>1</P>
| + | |
- | </TD>
| + | |
- | <TD WIDTH=94>
| + | |
- | <P>C</P>
| + | |
- | </TD>
| + | |
- | </TR>
| + | |
- | <TR VALIGN=TOP>
| + | |
- | <TD WIDTH=78>
| + | |
- | <P>2937</P>
| + | |
- | </TD>
| + | |
- | <TD WIDTH=84>
| + | |
- | <P>1</P>
| + | |
- | </TD>
| + | |
- | <TD WIDTH=82>
| + | |
- | <P>20000</P>
| + | |
- | </TD>
| + | |
- | <TD WIDTH=78>
| + | |
- | <P>1</P>
| + | |
- | </TD>
| + | |
- | <TD WIDTH=94>
| + | |
- | <P>D</P>
| + | |
- | </TD>
| + | |
- | </TR>
| + | |
- | <TR VALIGN=TOP>
| + | |
- | <TD WIDTH=78>
| + | |
- | <P>2935</P>
| + | |
- | </TD>
| + | |
- | <TD WIDTH=84>
| + | |
- | <P>3</P>
| + | |
- | </TD>
| + | |
- | <TD WIDTH=82>
| + | |
- | <P>29600</P>
| + | |
- | </TD>
| + | |
- | <TD WIDTH=78>
| + | |
- | <P>1</P>
| + | |
- | </TD>
| + | |
- | <TD WIDTH=94>
| + | |
- | <P>B</P>
| + | |
- | </TD>
| + | |
- | </TR>
| + | |
- | <TR VALIGN=TOP>
| + | |
- | <TD WIDTH=78>
| + | |
- | <P>2936</P>
| + | |
- | </TD>
| + | |
- | <TD WIDTH=84>
| + | |
- | <P>1</P>
| + | |
- | </TD>
| + | |
- | <TD WIDTH=82>
| + | |
- | <P>20000</P>
| + | |
- | </TD>
| + | |
- | <TD WIDTH=78>
| + | |
- | <P>2</P>
| + | |
- | </TD>
| + | |
- | <TD WIDTH=94>
| + | |
- | <P>C</P>
| + | |
- | </TD>
| + | |
- | </TR>
| + | |
- | <TR VALIGN=TOP>
| + | |
- | <TD WIDTH=78>
| + | |
- | <P>2937</P>
| + | |
- | </TD>
| + | |
- | <TD WIDTH=84>
| + | |
- | <P>1</P>
| + | |
- | </TD>
| + | |
- | <TD WIDTH=82>
| + | |
- | <P>20000</P>
| + | |
- | </TD>
| + | |
- | <TD WIDTH=78>
| + | |
- | <P>2</P>
| + | |
- | </TD>
| + | |
- | <TD WIDTH=94>
| + | |
- | <P>D</P>
| + | |
- | </TD>
| + | |
- | </TR>
| + | |
- | </TBODY>
| + | |
- | </TABLE>
| + | |
- | <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>
| + | |
- | <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"><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">2НФ – переменные отношения
| + | |
- | находятся в 2НФ, когда каждый ключевой атрибут минимально зависит от
| + | |
- | возможного ключа.</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">СЛУЖ1 {СЛУ_НОМ, СЛУ_УРОВ}</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">Мы получили 3НФ.</P>
| + | |
- | <P STYLE="margin-bottom: 0cm">3НФ – это когда перем отн в 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">Как правило, на 3 НФ проектирование
| + | |
- | заканчивается. Даже несмотря на то, что на практике часто бывают
| + | |
- | отношения,Ю в которых много ключей, обычно эти ключи не связаны.</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">В действительности можно формально одно
| + | |
- | и то же отношение приводить к 3НФ разными способами. То, что
| + | |
- | нарисовал лектор – хороший способ. Мы получили в результате две
| + | |
- | рпоекции, которвые могут обновляться независимо друг от друга. Но
| + | |
- | может быть другая позиция:</P>
| + | |
- | <P STYLE="margin-bottom: 0cm"><BR>
| + | |
- | </P>
| + | |
- | <P STYLE="margin-bottom: 0cm">СЛУЖ1 {СЛУ_НОМ, СЛУ_УРОВ}</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">Теорема Риссанена (о независимых
| + | |
- | проекциях). Проекции r1 и r2 отношения r являются независимыми т и
| + | |
- | тт, когда
| + | |
- | </P>
| + | |
- | <OL>
| + | |
- | <LI><P STYLE="margin-bottom: 0cm">Каждая ФЗ в r логически следует из
| + | |
- | ФЗ в r1 и r2</P>
| + | |
- | <LI><P STYLE="margin-bottom: 0cm">Общие атрибуты r1 и r2 образуют
| + | |
- | возможный ключ хотя бы в одном из них</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">Пример:</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">Если делаем декомп в 3НФ, то надо,
| + | |
- | чтобы проекции были независимые. Для этого надо помнить теорему Р.
| + | |
- | Есть понытие атомарного отношения, которое нельзя декомп. Хорошо, ели
| + | |
- | есть атомарные, но если их нет, то это не есть плохо.</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">Через 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">Само по себе изм. Возможного ключа –
| + | |
- | не такая страшная вещь. Если при изм уник не меняется, то всё
| + | |
- | нормально. Да, придётся делать каскадное обновление (обновить все
| + | |
- | ссылки на этот ключ). В некрых случаях изменения в возможных ключах
| + | |
- | может приводить к аномалиям.</P>
| + | |
- | <P STYLE="margin-bottom: 0cm"><BR>
| + | |
- | </P>
| + | |
- | <P STYLE="margin-bottom: 0cm">СЛУЖ_ПРО_ЗАДАН {СЛУ_НОМ, СЛУ_ИМЯ,
| + | |
- | ПРО_НОМ, СЛУ_ЗАДАН}</P>
| + | |
- | <P STYLE="margin-bottom: 0cm">Формально требования первых 3 нф
| + | |
- | соблюдаются.</P>
| + | |
- | <P STYLE="margin-bottom: 0cm"><BR>
| + | |
- | </P>
| + | |
- | <P STYLE="margin-bottom: 0cm">BCNF:</P>
| + | |
- | <P STYLE="margin-bottom: 0cm">Перем отн в BCNF т. и т. т., когда у
| + | |
- | нетривиальной и минимальной ФЗ детерминантом является возможный ключ.</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">Вопрос, нужно ли всегда к этому (к
| + | |
- | BCNF) стремиться.</P>
| + | |
- | <P STYLE="margin-bottom: 0cm"><BR>
| + | |
- | </P>
| + | |
- | <OL>
| + | |
- | <LI><P STYLE="margin-bottom: 0cm">Каждый человек может участвовать в
| + | |
- | нескольких проектов, но выполнять только одно задание в каждом</P>
| + | |
- | <LI><P STYLE="margin-bottom: 0cm">Задание могут выполнять несколько
| + | |
- | служащих</P>
| + | |
- | </OL>
| + | |
- | <P STYLE="margin-bottom: 0cm"><BR>
| + | |
- | </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>СЛУ_НОМ</P>
| + | |
- | </TH>
| + | |
- | <TH WIDTH=33%>
| + | |
- | <P>ПРО_НОМ</P>
| + | |
- | </TH>
| + | |
- | <TH WIDTH=33%>
| + | |
- | <P>СЛУ_ЗАД</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>2</P>
| + | |
- | </TD>
| + | |
- | <TD WIDTH=33%>
| + | |
- | <P>B</P>
| + | |
- | </TD>
| + | |
- | </TR>
| + | |
- | <TR VALIGN=TOP>
| + | |
- | <TD WIDTH=33%>
| + | |
- | <P>2935</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>2</P>
| + | |
- | </TD>
| + | |
- | <TD WIDTH=33%>
| + | |
- | <P>C</P>
| + | |
- | </TD>
| + | |
- | </TR>
| + | |
- | <TR VALIGN=TOP>
| + | |
- | <TD WIDTH=33%>
| + | |
- | <P>2941</P>
| + | |
- | </TD>
| + | |
- | <TD WIDTH=33%>
| + | |
- | <P>1</P>
| + | |
- | </TD>
| + | |
- | <TD WIDTH=33%>
| + | |
- | <P>D</P>
| + | |
- | </TD>
| + | |
- | </TR>
| + | |
- | </TBODY>
| + | |
- | </TABLE>
| + | |
- | <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">Это отношение не находятся в BCNF, Есть
| + | |
- | аномалии обновления. Это отншоние можно декомпозировать так, чтобы от
| + | |
- | аномалии избавится.<BR><BR>
| + | |
- | </P>
| + | |
- | <P STYLE="margin-bottom: 0cm">СЛУЖ_НОМ_ЗАДАН {СЛУ_НОМ, СЛУ_ЗАДАН}</P>
| + | |
- | <P STYLE="margin-bottom: 0cm">ПРО_НОМ_ЗАДАН {СЛУ_ЗАДАН, ПРО_НОМ}</P>
| + | |
- | <P STYLE="margin-bottom: 0cm"><BR>
| + | |
- | </P>
| + | |
- | <TABLE WIDTH=100% BORDER=1 BORDERCOLOR="#000000" CELLPADDING=4 CELLSPACING=0>
| + | |
- | <COL WIDTH=64*>
| + | |
- | <COL WIDTH=64*>
| + | |
- | <COL WIDTH=64*>
| + | |
- | <COL WIDTH=64*>
| + | |
- | <THEAD>
| + | |
- | <TR VALIGN=TOP>
| + | |
- | <TD COLSPAN=2 WIDTH=50%>
| + | |
- | <P>СЛУЖ_НОМ_ЗАДАН</P>
| + | |
- | </TD>
| + | |
- | <TD COLSPAN=2 WIDTH=50%>
| + | |
- | <P>ПРО_НОМ_ЗАДАН</P>
| + | |
- | </TD>
| + | |
- | </TR>
| + | |
- | </THEAD>
| + | |
- | <TBODY>
| + | |
- | <TR VALIGN=TOP>
| + | |
- | <TD WIDTH=25%>
| + | |
- | <P><BR>
| + | |
- | </P>
| + | |
- | </TD>
| + | |
- | <TD WIDTH=25%>
| + | |
- | <P><BR>
| + | |
- | </P>
| + | |
- | </TD>
| + | |
- | <TD WIDTH=25%>
| + | |
- | <P><BR>
| + | |
- | </P>
| + | |
- | </TD>
| + | |
- | <TD WIDTH=25%>
| + | |
- | <P><BR>
| + | |
- | </P>
| + | |
- | </TD>
| + | |
- | </TR>
| + | |
- | <TR VALIGN=TOP>
| + | |
- | <TD WIDTH=25%>
| + | |
- | <P>2934</P>
| + | |
- | </TD>
| + | |
- | <TD WIDTH=25%>
| + | |
- | <P>A</P>
| + | |
- | </TD>
| + | |
- | <TD WIDTH=25%>
| + | |
- | <P>1</P>
| + | |
- | </TD>
| + | |
- | <TD WIDTH=25%>
| + | |
- | <P>A</P>
| + | |
- | </TD>
| + | |
- | </TR>
| + | |
- | <TR VALIGN=TOP>
| + | |
- | <TD WIDTH=25%>
| + | |
- | <P>2934</P>
| + | |
- | </TD>
| + | |
- | <TD WIDTH=25%>
| + | |
- | <P>C</P>
| + | |
- | </TD>
| + | |
- | <TD WIDTH=25%>
| + | |
- | <P>1</P>
| + | |
- | </TD>
| + | |
- | <TD WIDTH=25%>
| + | |
- | <P>D</P>
| + | |
- | </TD>
| + | |
- | </TR>
| + | |
- | <TR VALIGN=TOP>
| + | |
- | <TD WIDTH=25%>
| + | |
- | <P>2941</P>
| + | |
- | </TD>
| + | |
- | <TD WIDTH=25%>
| + | |
- | <P>B</P>
| + | |
- | </TD>
| + | |
- | <TD WIDTH=25%>
| + | |
- | <P>2</P>
| + | |
- | </TD>
| + | |
- | <TD WIDTH=25%>
| + | |
- | <P>B</P>
| + | |
- | </TD>
| + | |
- | </TR>
| + | |
- | <TR VALIGN=TOP>
| + | |
- | <TD WIDTH=25%>
| + | |
- | <P>2941</P>
| + | |
- | </TD>
| + | |
- | <TD WIDTH=25%>
| + | |
- | <P>D</P>
| + | |
- | </TD>
| + | |
- | <TD WIDTH=25%>
| + | |
- | <P>2</P>
| + | |
- | </TD>
| + | |
- | <TD WIDTH=25%>
| + | |
- | <P>C</P>
| + | |
- | </TD>
| + | |
- | </TR>
| + | |
- | <TR VALIGN=TOP>
| + | |
- | <TD WIDTH=25%>
| + | |
- | <P>2935</P>
| + | |
- | </TD>
| + | |
- | <TD WIDTH=25%>
| + | |
- | <P>A</P>
| + | |
- | </TD>
| + | |
- | <TD WIDTH=25%>
| + | |
- | <P><BR>
| + | |
- | </P>
| + | |
- | </TD>
| + | |
- | <TD WIDTH=25%>
| + | |
- | <P><BR>
| + | |
- | </P>
| + | |
- | </TD>
| + | |
- | </TR>
| + | |
- | </TBODY>
| + | |
- | </TABLE>
| + | |
- | <P STYLE="margin-bottom: 0cm"><BR>
| + | |
- | </P>
| + | |
- | <P STYLE="margin-bottom: 0cm"><BR>
| + | |
- | </P>
| + | |
- | <P STYLE="margin-bottom: 0cm">Вроде бы всё нормально, но. Каждый
| + | |
- | может выполнять в каждом проекте только одно задание. Поэтому, если
| + | |
- | мы хотим добавить кортеж 2934, D, то мы этого сделать не можем, атк
| + | |
- | как он уже выполняет задание A. Мы получили две проекции, которые не
| + | |
- | явл независимыми. Получается, чтло в исх отношении были аномалии и
| + | |
- | оно не было нормализовано, но нормализовать его не удаётся. Более
| + | |
- | того, она не удовл теореме Р. Поэтому 3НФ всегда можно получить, а
| + | |
- | BCNF – нет. И нужно определиться, что лучше – аномалии
| + | |
- | обновления или ограничения в БД.</P>
| + | |
- | <P STYLE="margin-bottom: 0cm"><BR>
| + | |
- | </P>
| + | |
- | <P STYLE="margin-bottom: 0cm">Наличие перекрывающихся ключей не
| + | |
- | всегда мешает находиться в BCNF. От предыдущего он отличается тем,
| + | |
- | что в одном задании только один человек. Ключи здесь перекрываются, а
| + | |
- | BCNF выполняется. Легко видеть, что этому отношению, со схемой,
| + | |
- | которая была ранее, аномалии обновления не свойствены.</P>
| + | |
- | <P STYLE="margin-bottom: 0cm"><BR>
| + | |
- | </P>
| + | |
- | <P STYLE="margin-bottom: 0cm">ФЗ являются основными во всех
| + | |
- | отношениях. И в определениях – они простые, и в утверждениях.
| + | |
- | Просто потому, что человек к понятию фугкция хорошо приспособлен. Ем
| + | |
- | не менее бывают случаи, когда трив зависимочтей нет, а аномалии
| + | |
- | обновления случаются. Пример: когда есть таблица, в которой
| + | |
- | перечислены все лектора, все учебные курсы, и все учебники. Три поля:
| + | |
- | имя курса, имя препода, имя учебника. Ограничение: все преподы,
| + | |
- | которые читают курс, должны пользоваться одними и теми учебниками.
| + | |
- | Это то, что называется многозначной зависимостью. В действительности,
| + | |
- | Кузнецов и Марков зависят исключительно от предмета, БД. У курса фик
| + | |
- | кол-во преподов, фик количество учебников. Эта зависимость назыв
| + | |
- | многозначной. И если она есть, то получается не очень-то здорово. В
| + | |
- | этом отношении есть только один возм ключ, который совпадает с
| + | |
- | заголовком. Тем не менее, аномалии возникают. Вот приходит
| + | |
- | распоряжение от Минобразовании: предписано в качестве основного
| + | |
- | учебника по курсу БД надо использовать учебник Васи Пупкина. Но пока
| + | |
- | не найдётся идиот, который не согласится по этой книге, в ьбазе эту
| + | |
- | информацию сохранить нельзя. С этим разобрался ... . Вокруг
| + | |
- | многозначных зависимостей есть некоторая теория, которая похожа на
| + | |
- | теорию ФЗ. (Фейджин). На след лекции лектор приведёт два утверждения
| + | |
- | (т. и лемму Фейджина), покажет, из-за чего возникает некая
| + | |
- | громоздкость, но всё останется также просто.</P>
| + | |
- | {{Базы Данных}}
| + | |
- | {{Lection-stub}}
| + | |