м |
|
Строка 1: |
Строка 1: |
- | =Вопросы= | + | == From Ebaums Inc to MurkLoar. == |
- | * Реляционная модель данных / ограничения реляционной модели / ограничения сущности: почему должен существовать хотя бы один возможный ключ? ([[Базы Данных, 07 лекция (от 28 сентября)]])
| + | We at EbaumsWorld consider you as disgrace of human race. |
- | ** Ограничения сущности. Для каждой переменной отношения должен существовать хотя бы один возможный ключ и ни в одном значении соотв отношения, ни в одном кортеже этот ключ не должен содержать неопределенного отношения.
| + | Your faggotry level exceeded any imaginable levels, and therefore we have to inform you that your pitiful resourse should be annihilated. |
- | * Придумать хорошую хэш-функцию ([[Базы Данных, 08 лекция (от 29 сентября)]])
| + | Dig yourself a grave - you will need it. |
- | ** Наиболее часто используемая функция — получающая от деления на простое число.
| + | |
- | * Какова последовательность действий, эквивалентная Theta-соединению? ([[Базы Данных, 08 лекция (от 29 сентября)]])
| + | |
- | ** Rename
| + | |
- | ** Times
| + | |
- | ** Where
| + | |
- | ** Project
| + | |
- | * Как будет звучать лемма, если есть FR A -> В? ([[Базы Данных, 15 лекция (от 26 октября)]])
| + | |
- | ** Лема Фейджина. B отн r{A, B, C} выполн MVD->->B <=> выполн MVD A->->C
| + | |
- | * Есть r(A1,...An), А1 – возможный ключ. Есть ли здесь зависимость проекций соединений? Если да, то какая? ([[Базы Данных, 16 лекция (от 27 октября)]])
| + | |
- | ** Есть, ({A1, A2}, {A1, A3}, {A1, An}) – доказывается по теореме Хитта, так как всё без потерь. Оно сколько угодно декомпозируемое, и его декомпозировать не надо, так как оно и так хорошее.
| + | |
- | * Нетривиальные вещи – что такое связь, когда добавляют связь один к одному и n к m. Оба вопроса возн на экзамене. ([[Базы Данных, 18 лекция (от 03 ноября)]])
| + | |
- | ** Самый дурацкий ответ – и там и там первичный ключ. Откуда тогда возьмётся связь?
| + | |
- | ** На самом деле: Если оперд 1 к 1, то надо выбрать, что где будет, в одной таблице объявл первич ключ, в другой внешний ключ, но сам он должен быть уникальным идентификатором первой сущности. То есть это комбинация внешнего и возможного ключа. Если на одном конце связь необяз, то на этом конце надо определить возм ключ, который обладает свойствами внешнего по скуэлоским понятиям.
| + | |
- | ** Н к М – всегда очень сильно показывает ответ на экзамене, готовился ли человек к экзамену вообще, читал ли он лекции лектора, ходил ли он на лекции.
| + | |
- | ** Странные ответы: на двух концах внешние ключи. Куда ссылаются? На первичные ключи. А откуда н к м?
| + | |
- | ** Очень хороший пример – когда бригада милиционеров ловит банду бандитов.
| + | |
- | ** Как это делается: Если у нас два типа сущностей: милиционеры и бандиты, у них есть связь. Предположим, что есть уник ИД милиционера (МИД), уникальный идентификатор бандита (БИД). Заводится таблица, один столбец МИД, другой – БИД, и в ней выписываются все пары МИДов и БИДов, эта таблица называется таблицей связи, и лектор не слышал других способов. На самом деле, один парень смог придумать на экзамене страшно сложный механизм, неправильность которого лектор доказать не смог.
| + | |
- | ** На самом деле, в СКЛ с любой реализации, если в таблице опред возм ключ, то создается индекс, если внешний ключ – то индекс на внешнем ключе. В некоторых БД все индексы создавались явно. И если такие вещи не делаются, их надо проделать.
| + | |
- | * Что нужно иметь по минимуму, чтобы было позднее связывание? ([[Базы Данных, 19 лекция (от 09 ноября)]])
| + | |
- | ** Отвечают, что нужен механизм вирт функций. Это соверш неправильно.
| + | |
- | ** А нужно в рантайме по ссылке на объект узнавать, какого он точно класса.
| + | |
- | * Чем отличается OCL от языка исчисления кортежей. ([[Базы Данных, 20 лекция (от 16 ноября)]])
| + | |
- | ** Разница одна. Здесь (в OCL) есть фактически одна переменная. Что мы не можем сделать с помощью этого языка – мы не можем сделать соединение, можем сделать только полусоединение.
| + | |
- | * Вопрос, как он добирается до таблицы SYSTABLES, чтобы узнать, где находится таблицы SYSTABLES. ([[Базы Данных, 22 лекция (от 23 ноября)]])
| + | |
- | ** Идея первого знакомства – любой приличный человек для того, чтобы познакомиться с человеком, должен иметь общего знакомого. Тут хороший знакомый – системные таблицы. И у них можно сделать предопр идентификатор: у SYSTABLES – 1, SYSCOLUMNS – 2, и т д.
| + | |
- | * В систем Р для этого делали две динамических области. Как делать менеджер памяти? ([[Базы Данных, 22 лекция (от 23 ноября)]])
| + | |
- | ** Очень просто – с двух строн, одну сверху, другую снизу. Как только сошлись – память в блоке кончилась.
| + | |
- | * Почему двухфазный протокол блокировки двухфазный? ([[Базы Данных, 25 лекция (от 07 декабря)]])
| + | |
- | ** Одна фаза трабочая – от начала транзакции, до rollback-commit, на которой накапливаются блокировки. Выполняется операция коммит, и все блокировки освобождаются.
| + | |
- | * Есть двухфазный протокол блокировки. Предположим, что выполняется не коммит, а роллбэк. У роллбэка две вещи – надо освободить все блокировки, и вернуть в исходное состояние. Можно ли сначала разблокировать, а потом делать откат. И вообще, когда можно снимать блокировки? ([[Базы Данных, 25 лекция (от 07 декабря)]])
| + | |
- | ** rollback – дополнительная транзакция, компенсирующая, и когда выполнится последняя операция отката, после этого выполняется неявня операция commit, и только после неё можно снять блокировку.
| + | |
- | * Предположим, что в качестве механизма блокировок выбран двух фаз протокол, единица блокировки – строка, пример операции, которую нельзя выполнить. Лектор не знает, как при таком способе выполнить операцию уничтожения таблицы. Для этоог нужно сначала выкинуть данные, строка за строкой, и блокировать их. Когда последняя строка удалена, то можно её уничтожить. Но никто не мешает вставить другой кортеж в это время. Нужно блокировать таблицу целиком в режиме X. Если в качестве единицы блокировки теаблица целиком, то когда как удалить базу данных? А если блокировать БД целиком, то как тогда выполнять транзакции одновременно? ([[Базы Данных, 26 лекция (от 08 декабря)]])
| + | |
- | ** Нужно иметь транзакционные блокировки разных уровней. В System R это реализовывалось при помощи граниулированных синхрозационных блокировок.
| + | |
- | * Почему в журнале нельзя ставить ссылки вперед? ([[Базы Данных, 27 лекция (от 14 декабря)]])
| + | |
- | * для того, чтобы выполнить какую-либо операцию на уровне РСС, нужно, вообще говоря, выполнить следующие действия: поменять данные, установить блокировку, нужно поместить запись в журнал. В каком порядке их выполнять? ([[Базы Данных, 28 лекция (от 15 декабря)]])
| + | |
- | ** Cначала блокировка, потом запись в журнал, последнее – физические изменения.
| + | |
- | | + | |
- | =Что любит и что не любит лектор=
| + | |
- | * Лектор не любит слово директория, вместо этого использовать слово каталог, справочник
| + | |
- | * Лектор не любит, когда путают конъюнкцию и дизъюнкцию, и когда забывают их значки
| + | |
- | * При рассмотрении реляционной модели про Microsoft говорить нельзя
| + | |
- | * Лектор любит, когда определения говорят лаконично
| + | |
- | * Не надо говорить, что схемы не пересекаются. Пересечь можно всё, но результат может быть пуст или нет
| + | |
- | * Лектор не любит писать на доске, и рисовать картинки особенно противно
| + | |
- | * Младшие поколения начинают называть consistency консистентностью, лектор это не любит
| + | |
- | * Перевод слова deadlock как самоблокировка
| + | |
- | | + | |
- | =Замечания=
| + | |
- | * Очень хорошим критерием, когда человек отвечает на экзамене — он не понимает, какой природы ключ.
| + | |
- | * БД называть БД, СУБД называть СУБД
| + | |
- | * На время рассказа про средства манипулирования данными забыть про неопределённые значения
| + | |
- | * Б в В-деревьях не от слова Байер.
| + | |
- | * Сбалансированные деревья АВЛ не сбалансированы
| + | |
- | | + | |
- | =Прочая информация=
| + | |
- | * Лектор родом из города Жуковска
| + | |
- | * Всего в курсе три теоремы, одна лемма
| + | |
- | * Лектор не читает лекцию, если на неё приходит менее 3 человек
| + | |
- | * Очень хороший тест: когда спрашиваешь, это было на лекциях или не было.
| + | |
- | | + | |
- | {{Курс Базы Данных}}
| + | |