Первая, вторая, третья нормальные формы на практике
Вставка
- Опубліковано 18 жов 2024
- Об этом не расскажут в учебных пособиях =), ведь в этом видео вы узнаете о том, что нормализованная таблица в третьей нормальной форме может запросто превратиться в абсолютно ненормализованное отношение, если не предусмотреть определенные нюансы. А также - о том, как проектировать БД, чтобы предвидеть многие подводные камни и избежать нежелательных последствий в виде необходимости переделать структуру базы.
Плейлист БД: • Базы данных. Нормализа...
I НФ: • Первая нормальная форм...
II НФ: • Вторая нормальная форм...
III НФ: • Третья нормальная форм...
1,2,3 формы в одном видео: • Первая, вторая, третья...
Нормальная форма Бойса-Кодда: • Нормальная форма Бойса...
Наша группа вконтакте:
excelle...
Приятного просмотра!
Оставайтесь воодушевленными!
Привет! Давно уже собирался сделать очередное видео по нормализации БД, поскольку тема довольно интересная. И вот, собственно, оно =). Немного поговорим отвлечемся от Angular и других тем, и поговорим о прекрасном - о структуре базы данных о том, какие сложности возникают при нормализации, и как их преодолеть.
Здравствуйте. Можете ли Вы сделать видео про остальные нормализации форм? Для интереса)
@@fuad022 +
@@fuad022 , здравствуйте. Остальные - имеете ввиду, пятую, шестую?
@@JohnnySvarog Да
Пьяный мельник, веселый негр, дачница баба Дуся - интересная компания)
Спасибо большое за ваше объяснение. Действительно, на очень многих ресурсах ставятся в пример оторванные от реальности случаи.
Касательно ИП "Веселый негр" - если вспомнить географию, то принято выделять 3 самые большие географические расы: европеоидную, монголоидную, негроидную. Так вот я за то, чтобы было побольше добрых, счастливых, а следовательно - веселых людей, вне зависимости от того, европеец это, монгол или негр.
Поэтому улыбайтесь, радуйтесь жизни, а самое главное - помните, что всегда есть тонкая, но очень четко различимая грань между расизмом и здравым смыслом.
названием ип вы рескуете нагнать гнев
@@teastrum, до недавних событий этого особо никто не замечал. все потому, что люди видят то, что хотят видеть. Кому круги на полях, кому всемирный заговор... а мы здесь занимаемся изучением нормализации баз данных и только =)
На лицо пропаганда США, до блм никто внимания не обращал. Поверьте, вы не хотите у себя в стране весь маразм который набрал сильных оборотов на западе. У нас своих проблем хватает.
Лайк авансом!
Что будет, если у одного поставщика несколько контактов - разобрались. Спасибо, при просмотре других видео действительно вопрос возникал.
Идём дальше. Случай из жизни: у большинства моих знакомых, являющихся учредителями ООО, есть ещё зарегистрированное ИП, а иногда они при этом ещё и сами подрабатывают где-то замдиректорами или ведущими специалистами. Это я к тому, что дачница баба Дуся может оказаться хозяйкой ИП "Пьяный мельник" и контактным лицом отдела снабжения ИП "Соль Мажор". Т.е. Один (не смог написать с маленькой:) ) контакт может соответствовать нескольким поставщикам. Как тут лучше быть?
Лучше чем в вузе
Спасибо. Объяснили очень четко
Очень солидно, спасибо
А если contact не будет уникальным, то есть не будет логическим праймери кеем, тогда 1 контакт может быть для разных Vendor (например это дочерняя компания поэтому контакт одинаковый). То тогда в таблице с контактами мы вводим суррогатный праймери кей и таблица с контактами будет иметь вид Id, Contact, Vendor, а таблица с вендорами Vendor Id, Vendor Name (без изменений). Такой вид будет соответствовать 3-ей нормальной форме?
ИП "Веселый негр" теперь понятно из-за кого протесты в США начались!
Хорошее объяснение
На 2 уроке возник вопрос по авто инкременту в таблице связей, но тут увидел ответ, все ок =)
Почему Contact не зависит от Vendor Name? Ведь если поменять поставщика то поменяется и контакт. Разве нет?
Все верно. Но поменять поставщика - не то же самое, что сменить его имя. К примеру, поставщик может сменить фамилию (если это человек) или наименование (если это организация). Но контакт его при этом может и не измениться. В базе гарантировать то, что мы имеем дело все с тем же поставщиком, будет ID-идентификатор.
Понял, спасибо за ответ.
Спасибо
Объясните пожалуйста, не понимаю разницу между простым и скалярным, можете привести пример где в первой нормальной форме выполняется 2 условие, но не 3 (число является простым, но не скалярным)
Хороший вопрос. По большому счету, это вопрос классификации.
Атрибуты бывают простыми и составными. Пример простого - Фамилия, пример составного - ФИО, ну или Contact, как вот в этом видео (как вы видите, все зависит от того, какой смысл вкладывается в это поле). Простой - тот, что ЛОГИЧЕСКИ не делится на части (ну или делится, но в этом нет и не возникнет необходимости).
Идем дальше. Определение "скалярный" относится к типам данных и их значениям. Типы данных бывают скалярными и агрегатными. Например, int, varchar - простые типы (если, конечно, не рассматривать строку как набор символов). PostgreSql, к примеру, поддерживает тип данных Array (массив) - это агрегатный тип. Агрегатный - это тот, который имеет иерархическую внутреннюю структуру, содержащую несколько элементов, тип JSON - опять же.
Значит ли это, что все таблицы в Postgre, в которых есть атрибуты с типом данных Array, не находятся в 1 НФ? Нет! Потому что, как правило, с точки зрения хранения и обработки данных, все значения этого массива рассматриваются как одно целое. А вот если, скажем, в каждом элементе массива была бы ссылка на другую таблицу, и средствами БД по этим ссылкам вытягивались данные, то вот здесь бы таблица не была в 1 НФ.
На самом деле, нужно очень постараться, чтобы таблица на физическом уровне БД не находилась в 1 НФ, потому что не нормализованная до 1 формы таблица в реляционной бд - это уже не отношение, а свалка, и интуитивно сложно такое натворить =).
Почему бы не создать допполя Contact2 и\или Contact3 ? Это приведет к 1ой форме.Ключ останется простым, поэтому это будет и второй формой также. А выделив отдельную таблицу Contacts с ключом ID это будет 3ей формой. Так можно?
А почему не создать просто ещё Столбец email 2 email 3
А если их количество будет увеличиваться? Всегда добавлять столбец?)
7:50 а ничего что vender id тоже должен быть в ключе!!!
Спасибо. Ничего не понял.
😎
автор антисимит - ИП "Веселый негр"))
Негр-еврей... Сильно, не иначе
ИП «Веселый негр», вы что серьезно?следите за примерами, персосяны.
Следи за языком, дешевка
Вас там в Тернополе они таскают по углам? Наслышан
Что за веселый негр? С ума сошел?
@@caesarfatalhammer Ну если тебя ничего не смущает, то нам не о чем говорить, и как то обсуждать тему)
@@caesarfatalhammer Мне страйк прилетел за то, что я написал это слово
Спасибо