Спасибо, что вы затронули тему нормализации. Преподаю нормализацию баз данных студентам. Заметила, что очень тяжело объяснять нормализацию на словах. А вот если рассказывать на примерах, показывая сами таблицы, то тогда намного проще воспринимать. Поэтому советую тому, кто учит нормализацию советую просто загуглить примеры всех 3 нормальных форм.
Прекрасное видео! Ваш канал этот кладезь невероятно полезной информации. Не хватает только иллюстрации реальным кодом, но я так понимаю, что это намеренно и чтобы аудитория посещала ваши курсы. Имеете полное право на такой подход. Огромное спасибо!
Сергей и весь коллектив канала, традиционное спасибо за выпуск, как всегда содержательно и интересно 👍👍👍 * обратил внимание на то, насколько отличаются подход и отношение к БД в случаях бэкенда и дата-аналитики 🙂
Хорошее видео, спасибо. Базы данных, не смотря на казалось бы элементарность темы, могут приподнести сюпризы, так что всегда лучше продумать их схему заранее. Еще короткое и емкое объявнение темы нормализации приведено в книге Murach's MySQL в главе про проектирование баз данных.
Такие вещи лучше объяснять на примерах, тогда всё становится проще. А ещё у каждого разное отношение к составным ключам и искусственным ключам. Я даже знаком с людьми, что терпеть не могут вторичные ключи и заявляют, что лучше они это всё проконтролируют в коде, чем будут получать ошибки от БД.
@@xyzw777 вы про EXPLAIN ANALYZE или какой-то сторонний софт для отладки? Я просто хз, в последний раз занимался оптимизацией запросов в очень крупном интернет-магазине года 3 назад. Если честно, то удивлён, что для этого существуют отдельные люди, т.к. раньше подобным занимались сами же _погроммисты._
Сергей, у тебя настоящий талант рассказывать интересно о скучных вещах) Даже если ты снимешь видос о том, как чистить картошку, то это будет интересно)
У нас в институте рассылают эксель для заполнения отчета по гранту, что делал каждый день (да, це Европа). Там ссылки на какой-то другой экслель на каком--то компе в папке оутлук. У меня его нет. Я полгода пытаюсь обьяснить, что не надо так. Потом все автоматическое заполнение не работает и все вручную. И да, делали под чешскую винду. Месяцы не по номерам, а по названиям. А там всего-то сложить числа в одном столбце и все - количество отработанных часов.
Если нужно понять нормальные формы, лучше поискать другое видео. здесь спикер пытался объяснить, но у него не получилось, без примеров это сделать непросто. Ради справедливости, первую форму понятно объяснил.
Спасибо за видео. Полезно. Хочу добавить, что по идее УНП (уникальный номер налогоплательщика) уже можно использовать как ID. Т.е. ключ становится простым, состоящим из одного поля, а не составным. Тогда вторая НФ у нас получится автоматически. Вопрос о том, что вообще лучше делать искусственный ключ мы оставим за скобками :)
@@komputersh4ik546 о как, не знал. По крайней мере не слышал, возможно ли такое в Беларуси. С другой стороны, если УНП может быть null, то стоит ли его вообще включать в ключ? И опять же к вопросу о том, что ключи лучше делать искусственные, чтобы не зависеть от специфики предметной области.
Вычисляемые поля нарушают 3НФ? Например, у меня есть пул заявок с nullable датой выполнения. И мне нужно булевое поле, где хранится просто 0 - если даты нет, и 1 в любом другом случае, т.е. по факту просто отметка, закрыта заявка или нет. Получается, введние такого поля нарушает 3НФ? Или я неправильно понял? И как тогда предполагается сделать, чтобы не нарушалась НФ?
Использование столбца с типом JSON в таблице может быть признаком отклонения от строгих принципов нормализации, но это не всегда означает, что структура «ненормализованная». Всё зависит от контекста и характера данных, хранимых в этом JSON. 👇 1. Если вы используете JSON для хранения данных, которые можно было бы вынести в отдельные таблицы (например, связанные записи), то это считается отклонением от нормализации. 👎 2. Если JSON используется для хранения данных, которые не имеют фиксированной структуры или меняются со временем, это может быть оправдано. Например, пользовательские настройки или лог событий. В этом случае JSON помогает избежать чрезмерной сложности в проектировании. 👍
И 25 лет назад в книжках для простых людей писали, что дальше 3НФ вам не надо. Сейчас, в эпоху ормов, если сперва проектировать на уровне объектов, то как-то и без матана обычно видно, что вот этот вот кусок просится выделиться в отдельный объект.
ненавижу когда это спрашивают на собесах - сразу понимаю, что интервьюер не очень. Везет, что уже на уровне, когда у меня такое спрашивать не прилично, но в своей карьере попадал на такой вопрос неоднократно.
Почему же? Тема лёгкая и важная, разумеется её будут спрашивать. Хотя бы базово понимать, что ячейка хранить одно значение и записи должны быть уникальными с pk
join и сейчас нормально не работают. по крайней мере в ms sql. сильно зависит от статистик и сегментации. и довольно часто непредсказуемо время исполнения.
Хорошо объяснил на пальцах нормализацию. Но как обычно всегда есть нюансы. Современные БД (и PostgreSQL и Oracle) позволяют применять массив в виде типа поля. И если у меня в таблице есть поле, на пример, json_id int8[], то от этого едва ли моя таблица не поддерживает 1НФ. Хотя одно из правил 1НФ требует одно значение. С другой стороны, если рассматривать это поле как массив, то значение в нем и правда хранится одно - массив данных.
Интересно как Сергей готовится к записи таких видосов. Наверное он немного готовится и "поднимает" материал с интернетов а не сразу из головы? А то начинает казаться что Сергей знает всё и обо всем
Тема очень скучная, а оттуда и интерес. Так как самому ее понять большинству очень сложно. А вы ее очень хорошо объяснили, ну или, по крайней мере, дали еще одну точку зрения на непонятные формулы, что прибавляет объемности уже имеющимся у меня представлениям. За что большое спасибо.
ИМХО если человек хоть чуть чуть понимает как программа работает с данными, то ниже третей формы он бд не организует. Когда студенческую работу по продаже билетов автовокзала делал была претензия что у меня ни одного джойна нет, у меня все дублирующиеся данные были вынесены в таблицы-словарики по праймари кеям, единственное что я не смог придумать чтоб было просто как кирпич - это остановки на маршруте, но посомтрев примеры таких работ в инете понял что мало кто вообще до этого этапа дошёл.
тут имеется ввиду, что все значения будут одного типа. Если это строка, то она везде строка, а не массив строк в одном случае; если это массив, то это везде массив, а не json в одной ячейке.
Слишком уж категорично, на мой взгляд, про денормализацию. Из моего опыта, при разработке микросервисов, постоянно приходится с ней сталкиваться. Альтернатива - постоянно ходить к другим сервисам за недостающей инфой, что вообще не играет на руку устойчивости всего приложения и превращает микросервисы в уродливый монолит
Первое правило архитектуры - everything is a trade-off. Вы однозначно правы - в некоторых ситуациях денормализация необходима, чтобы достичь определенных характеристик системы, а в других - только вредит.
Трудно что-ли брать примеры из реальных кейсов? Неужели сложный ключ не можете нормально объяснить? Или вы просто давно что-то реальное делали? Ну тогда готовьтесь к роликам.
Я так и ни понял как в ето играть. И почиму про ключ много есть а про Буратину нет как бдто от него ни зависит. (камент дыля прадвижения Буратинам, а то Немчина пужаить, и страшно...)
⚡ Повысьте скорость и безопасность своего сайта!
Присоединяйтесь к UltaHost:
👉 ultahost.com/ru
👉 ultahost.com/uk
Классно ещё увидеть ролик про индексы БД, и как они устроены и как работает например B-Tree.
+ планы запрососв!
пушо стример - должен страдать!
+ уровни изоляции транзакций, блокировки и синхронизацию
не мучайте Немчинского
Спасибо, что вы затронули тему нормализации. Преподаю нормализацию баз данных студентам. Заметила, что очень тяжело объяснять нормализацию на словах. А вот если рассказывать на примерах, показывая сами таблицы, то тогда намного проще воспринимать. Поэтому советую тому, кто учит нормализацию советую просто загуглить примеры всех 3 нормальных форм.
Горе преподаватели... Вся терминология через отрицание дается, потому и тяжело
Дякую за Вашу роботу та корисну інформацію. Подивився 08.10.24
Спасибо за Вашу работу!)
Практика і досвід. Дякую!
Подобные видео полезные, а не просто развлекательные 👍🏻
Прекрасное видео! Ваш канал этот кладезь невероятно полезной информации. Не хватает только иллюстрации реальным кодом, но я так понимаю, что это намеренно и чтобы аудитория посещала ваши курсы. Имеете полное право на такой подход. Огромное спасибо!
Было очень интересно, ждем продолжения на подобные темы) Даже удалось понять большую часть)
Сергей и весь коллектив канала, традиционное спасибо за выпуск, как всегда содержательно и интересно 👍👍👍
* обратил внимание на то, насколько отличаются подход и отношение к БД в случаях бэкенда и дата-аналитики 🙂
Хорошее видео, спасибо. Базы данных, не смотря на казалось бы элементарность темы, могут приподнести сюпризы, так что всегда лучше продумать их схему заранее.
Еще короткое и емкое объявнение темы нормализации приведено в книге Murach's MySQL в главе про проектирование баз данных.
Не хотел смотреть, потому что знал это, но видос очень интересный, точный и комичный даже)). Спасибо. Лайк!👍
Эту тему не заказывал и впервые про неё вообще слышу, но посмотрел видос с огромным удовольствием) фронтендер
Очень интересно, очень понятно, очень спасибо.
Такие вещи лучше объяснять на примерах, тогда всё становится проще.
А ещё у каждого разное отношение к составным ключам и искусственным ключам. Я даже знаком с людьми, что терпеть не могут вторичные ключи и заявляют, что лучше они это всё проконтролируют в коде, чем будут получать ошибки от БД.
Хочу стать денормализатором баз данных!
Денормализаторами не становятся, ими рождаются
ты им уже стал
Т.е. клиентом с идиотскими требованиями, которые противоречат изначальному ТЗ? )
@@deniskhakimov нет человеком у кого аналитические запросы в БД летают
@@xyzw777 вы про EXPLAIN ANALYZE или какой-то сторонний софт для отладки?
Я просто хз, в последний раз занимался оптимизацией запросов в очень крупном интернет-магазине года 3 назад. Если честно, то удивлён, что для этого существуют отдельные люди, т.к. раньше подобным занимались сами же _погроммисты._
Сергей, у тебя настоящий талант рассказывать интересно о скучных вещах) Даже если ты снимешь видос о том, как чистить картошку, то это будет интересно)
Дуже цікава тема. Дякую
Сделайте пожалуйста видео про индексы, статистику, план запросов.
Очень часто это спрашивают на собесах. Теперь буду знать как отвечать на этот вопрос. На практике знаю про нормализацию, но теорию не знал)
о наконец-то эта тема, спасибо!
О Господи наконец-то нашолся человек который переложил этот ботан-описание на адекватные термины, спсасибо тебе..
Спасибо, мне было очень полезно.
У нас в институте рассылают эксель для заполнения отчета по гранту, что делал каждый день (да, це Европа). Там ссылки на какой-то другой экслель на каком--то компе в папке оутлук. У меня его нет. Я полгода пытаюсь обьяснить, что не надо так. Потом все автоматическое заполнение не работает и все вручную. И да, делали под чешскую винду. Месяцы не по номерам, а по названиям. А там всего-то сложить числа в одном столбце и все - количество отработанных часов.
Супер, спасибо!!!
Если нужно понять нормальные формы, лучше поискать другое видео. здесь спикер пытался объяснить, но у него не получилось, без примеров это сделать непросто. Ради справедливости, первую форму понятно объяснил.
Мне понравилась формулировка, что нормализация БД, это процесс который уменьшает потенциальные пустые поля, nulls.
Жаль, что нельзя сразу over1000 лайков поставить)
Полезно. 😊
норм тема, спасибо.
Сделал небольшой конспект по ролику, буду иногда читать перед сложными собесами) спасибо
Спасибо за видео. Полезно. Хочу добавить, что по идее УНП (уникальный номер налогоплательщика) уже можно использовать как ID. Т.е. ключ становится простым, состоящим из одного поля, а не составным. Тогда вторая НФ у нас получится автоматически. Вопрос о том, что вообще лучше делать искусственный ключ мы оставим за скобками :)
Нельзя потому что не у всех есть ИПН, от него можно отказаться
@@komputersh4ik546 о как, не знал. По крайней мере не слышал, возможно ли такое в Беларуси. С другой стороны, если УНП может быть null, то стоит ли его вообще включать в ключ? И опять же к вопросу о том, что ключи лучше делать искусственные, чтобы не зависеть от специфики предметной области.
@@The_Vict0rну ещё вариант использовать уникальный номер в демографическом реестре он даётся 1 раз и на всю жизнь
Как в нормализацию вписываются Date Added и Date Updated?
Урааа, я не зря учил дискретку и комбинаторику.Хотя если брать во внимание что юзаем только до NF3 то ...
Алілуя! Нарешті) всього лише кілька місяців просили на стрімах, і ось воно!
Вычисляемые поля нарушают 3НФ?
Например, у меня есть пул заявок с nullable датой выполнения. И мне нужно булевое поле, где хранится просто 0 - если даты нет, и 1 в любом другом случае, т.е. по факту просто отметка, закрыта заявка или нет. Получается, введние такого поля нарушает 3НФ? Или я неправильно понял? И как тогда предполагается сделать, чтобы не нарушалась НФ?
Использование столбца с типом JSON в таблице может быть признаком отклонения от строгих принципов нормализации, но это не всегда означает, что структура «ненормализованная». Всё зависит от контекста и характера данных, хранимых в этом JSON. 👇
1. Если вы используете JSON для хранения данных, которые можно было бы вынести в отдельные таблицы (например, связанные записи), то это считается отклонением от нормализации. 👎
2. Если JSON используется для хранения данных, которые не имеют фиксированной структуры или меняются со временем, это может быть оправдано. Например, пользовательские настройки или лог событий. В этом случае JSON помогает избежать чрезмерной сложности в проектировании. 👍
Лайк за Марка Ноплера 😂❤
И 25 лет назад в книжках для простых людей писали, что дальше 3НФ вам не надо.
Сейчас, в эпоху ормов, если сперва проектировать на уровне объектов, то как-то и без матана обычно видно, что вот этот вот кусок просится выделиться в отдельный объект.
22:00 - так появились NoSQL базы ))) (шучу)
ненавижу когда это спрашивают на собесах - сразу понимаю, что интервьюер не очень. Везет, что уже на уровне, когда у меня такое спрашивать не прилично, но в своей карьере попадал на такой вопрос неоднократно.
Почему же? Тема лёгкая и важная, разумеется её будут спрашивать.
Хотя бы базово понимать, что ячейка хранить одно значение и записи должны быть уникальными с pk
надо рисовать. слайды или хотя б рисунки на доске улучшили бы понимание.
Сергей Немчинский на протяжение 24 минут отвергает матан 😂
Не самое вдохновляющее дело, но полезное.
Спасибо за "человеческое" объяснение "нечеловеческих" определений 😅
Почтим страдания лайком!
8:57 ...достает произвольные JSONы из каждой ячейки 🫤
join и сейчас нормально не работают. по крайней мере в ms sql. сильно зависит от статистик и сегментации. и довольно часто непредсказуемо время исполнения.
17:01 бийонсе код нормал форм
Дякую 👍
Я думал что я знаю что такое нормализация БД. После просмотра видео я еще почитал википедию.
Теперь я не знаю что такое нормализация ((
Хорошо объяснил на пальцах нормализацию. Но как обычно всегда есть нюансы. Современные БД (и PostgreSQL и Oracle) позволяют применять массив в виде типа поля. И если у меня в таблице есть поле, на пример, json_id int8[], то от этого едва ли моя таблица не поддерживает 1НФ. Хотя одно из правил 1НФ требует одно значение. С другой стороны, если рассматривать это поле как массив, то значение в нем и правда хранится одно - массив данных.
Нормализировать можно всё😂
Интересно как Сергей готовится к записи таких видосов. Наверное он немного готовится и "поднимает" материал с интернетов а не сразу из головы?
А то начинает казаться что Сергей знает всё и обо всем
Конечно готовился) вы меня переоцениваете
Тема очень скучная, а оттуда и интерес. Так как самому ее понять большинству очень сложно. А вы ее очень хорошо объяснили, ну или, по крайней мере, дали еще одну точку зрения на непонятные формулы, что прибавляет объемности уже имеющимся у меня представлениям. За что большое спасибо.
ИМХО если человек хоть чуть чуть понимает как программа работает с данными, то ниже третей формы он бд не организует. Когда студенческую работу по продаже билетов автовокзала делал была претензия что у меня ни одного джойна нет, у меня все дублирующиеся данные были вынесены в таблицы-словарики по праймари кеям, единственное что я не смог придумать чтоб было просто как кирпич - это остановки на маршруте, но посомтрев примеры таких работ в инете понял что мало кто вообще до этого этапа дошёл.
> не позволят нафигачить несколько значений
А как же array?
тут имеется ввиду, что все значения будут одного типа. Если это строка, то она везде строка, а не массив строк в одном случае; если это массив, то это везде массив, а не json в одной ячейке.
Щось цей ультахост якийсь стрьомний. У переліку валют є багато чого, навіть убль, а грн відсутня.
Та й вартість щось кусається
У меня сервер не всегда успевает в нормализованную базу...
Спасибо!
Коротше кажучи, аналізуйте сутності, юзайте ОРМ і буде вам щастя.
👍
Нормально
благодарю за выделения места в левом верхнем углу места для поддержи ассоциации людей больных синдромом Дауна, от души
Ты давно не посещал психиатра. Тебе прогулы уже ставят. Лечись.
Судя по твоему комментарию это вообще не помогает
Слишком уж категорично, на мой взгляд, про денормализацию. Из моего опыта, при разработке микросервисов, постоянно приходится с ней сталкиваться. Альтернатива - постоянно ходить к другим сервисам за недостающей инфой, что вообще не играет на руку устойчивости всего приложения и превращает микросервисы в уродливый монолит
Первое правило архитектуры - everything is a trade-off. Вы однозначно правы - в некоторых ситуациях денормализация необходима, чтобы достичь определенных характеристик системы, а в других - только вредит.
❤❤❤😂😂😂😢😢😢
Не понял, при чем тут математический анализ? Терпеть не могу его
Трудно что-ли брать примеры из реальных кейсов? Неужели сложный ключ не можете нормально объяснить? Или вы просто давно что-то реальное делали? Ну тогда готовьтесь к роликам.
Я так и ни понял как в ето играть.
И почиму про ключ много есть а про Буратину нет как бдто от него ни зависит.
(камент дыля прадвижения Буратинам, а то Немчина пужаить, и страшно...)
Чё за флаг
Сергей, как к вам устроится ?
Ментором? На сайте есть форма в разделе команда
@@NemchinskyLive программером
Через постель 😂
@@torrvic1156 ваш метод ?))