Задать вопрос
  • Чем отличается вторая форма нормализации от третьей?

    Третья нормальная форма не допускает наличия транзитивных зависимостей.

    Допустим, у нас есть БД автосалона. Имеется отношение Автомобиль(СерийныйНомер, Модель, Цена). Имеется зависимость СерийныйНомер -> Модель (т.е. для каждого авто мы всегда точно знаем модель этого авто). Также, так как у нас фирменный автосалон, а не продажа подержаных авто, цена автомобиля зависит только от его модели (т.е. все новые авто одной и той же модели будут стоить одинаково, всякие комплектации в расчёт не берем). Т.е. имеется зависимость Модель -> Цена.

    Т.к. по серийному номеру мы можем определить модель, а по модели - цену, то цена также зависит от серийного номера: СерийныйНомер -> Цена. Однако эта зависимость транзитивная: цена зависит не непосредственно (!) от СерийногоНомера, а от Модели. Следовательно, это отношение не находится в третьей нормальной форме (хотя находится во второй). Для приведения отношения в 3НФ его нужно разбить на два - МодельАвтомобиля(СерийныйНомер, Модель) и ЦенаМодели(Модель, Цена).

    Следует заметить, что если бы предметная область определяла бы иные зависимости, то и рассмотренное отношение могло быть в другой НФ. Например, если бы у нас все-таки продавались подержаные автомобили, и цену на каждый из них мы бы устанавливали отдельно, то зависимости Модель -> Цена уже б не было, а была бы прямая (нетранзитивная зависимость) СерийныйНомер -> Цена, и отношение подходило под критерии третьей нормальной формы.
    Ответ написан
    Комментировать
  • Что такое self в Python?

    @olegshv
    SysAdmin
    Объяснение self в python:

    dog‎: у котов внутри есть мурчалка
    dog‎: она реализована для всех котов в классе кот
    ‎dog‎: в объекте кот надо как то вызвать метод мурчало у класса кот
    ‎dog‎: как ты это сделаешь?
    dog‎: кот.мурчало()
    ‎dog‎: ежели ты вызовешь кот.мурчало(), муркнут сразу все коты на свете
    ‎dog‎: а ежели ты вызовешь self.мурчало(), муркнет только тот кот, на которого указывает self
    Ответ написан
    5 комментариев