Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Работа Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2]      все
 Re: Стандартные требования на вакансию SQL junior dev  [new]
DaniilSeryi
Member

Откуда:
Сообщений: 1844
Какие бывают отношения между таблицами в РСУБД? Приведите возможный пример таких отношений.
Всего существует три вида связей между таблицами баз данных:
• связь один к одному;
• связь один ко многим;
• связь многие ко многим.
Примером связи один к одному является супружеская пара – одному мужу соответствует только одна жена, и одной жене соответствует только один муж.
Связь один ко многим – это султан и его гарем. У султана может быть много жён, но у каждой из них только один муж.
Связь многие ко многим – шведская семья. Первое: одну девочку могут любить несколько мальчиков. Второе: одного мальчика может любить несколько девочек. Здесь мы наблюдаем типичную ситуацию, когда связь между таблицами многие ко многим. Такая связь (связь многие ко многим) реализуется путем добавления третьей таблицы.

Источник: https://zametkinapolyah.ru/zametki-o-mysql/chast-3-2-vidy-svyazej-mezhdu-tablicami-v-baze-dannyx-svyazi-v-relyacionnyx-bazax-dannyx-otnosheniya-kortezhi-atributy.html#i-2
29 мар 21, 21:30    [22301698]     Ответить | Цитировать Сообщить модератору
 Re: Стандартные требования на вакансию SQL junior dev  [new]
Vyatich
Member

Откуда:
Сообщений: 3788
DaniilSeryi

Связь многие ко многим – шведская семья. Первое: одну девочку могут любить несколько мальчиков. Второе: одного мальчика может любить несколько девочек. Здесь мы наблюдаем типичную ситуацию, когда связь между таблицами многие ко многим. Такая связь (связь многие ко многим) реализуется путем добавления третьей таблицы.

Не рассмотрен случай когда одного мальчика могут любить несколько мальчиков и наоборот.
29 мар 21, 22:19    [22301717]     Ответить | Цитировать Сообщить модератору
 Re: Стандартные требования на вакансию SQL junior dev  [new]
yob
Member

Откуда:
Сообщений: 39
DaniilSeryi
Не могу удержаться от того, чтобы не выложить.

Нашёл у себя кусочек теории со своими комментариями
Теория, которая нужна… …да никому она на практике не нужна. Честно говоря, у меня это на собеседованиях спросили только один раз. У Вас это спрашивают на собеседовании? Бегите оттуда.

Атрибут — свойство некоторой сущности. Нормальные люди называют это полем или столбцом таблицы.

Домен атрибута — множество допустимых значений, которые может принимать атрибут (значения, которые можно вводить в столбец таблицы).

Кортеж — конечное множество взаимосвязанных допустимых значений атрибутов, которые вместе описывают некоторую сущность (строка таблицы).

Отношение — конечное множество кортежей (таблица).

Схема отношения — конечное множество атрибутов, определяющих некоторую сущность. Иными словами, это структура таблицы, состоящей из конкретного набора полей.

Проекция — отношение, полученное из заданного путём удаления и (или) перестановки некоторых атрибутов.

Функциональная зависимость между атрибутами (множествами атрибутов) X и Y означает, что для любого допустимого набора кортежей в данном отношении: если два кортежа совпадают по значению X, то они совпадают по значению Y. Например, если значение атрибута «Название компании» — Canonical Ltd, то значением атрибута «Штаб-квартира» в таком кортеже всегда будет Millbank Tower, London, United Kingdom. Обозначение: {X} -> {Y}.

Аномалией называется такая ситуация в таблице БД, которая приводит к противоречию в БД либо существенно усложняет обработку БД. Причиной является излишнее дублирование данных в таблице, которое вызывается наличием функциональных зависимостей от не ключевых атрибутов.

Аномалии-модификации проявляются в том, что изменение одних данных может повлечь просмотр всей таблицы и соответствующее изменение некоторых записей таблицы.

Аномалии-удаления — при удалении какого либо кортежа из таблицы может пропасть информация, которая не связана на прямую с удаляемой записью.

Аномалии-добавления возникают, когда информацию в таблицу нельзя поместить, пока она не полная, либо вставка записи требует дополнительного просмотра таблицы.


И чуть больше приближенная к практике теория:
Нормальная форма — требование, предъявляемое к структуре таблиц в теории реляционных баз данных для устранения из базы избыточных функциональных зависимостей между атрибутами (полями таблиц).

Метод нормальных форм (НФ) состоит в сборе информации о объектах решения задачи в рамках одного отношения и последующей декомпозиции этого отношения на несколько взаимосвязанных отношений на основе процедур нормализации отношений.

Цель нормализации: исключить избыточное дублирование данных, которое является причиной аномалий, возникших при добавлении, редактировании и удалении кортежей(строк таблицы).

На самом деле разработчику нормальные формы нужны только для того, чтобы понять и запомнить два простых правила: 1) одна ячейка таблицы – одно значение; 2) для каждого отдельного понятия (сущности) предметной области должна быть выделена своя собственная таблица.
Когда Вы спроектируете под контролем наставника свою первую БД, получите по шее за то, что предлагаете хранить в ячейке таблицы несколько значений и за то, что у Вас нет нужных таблиц-справочников, и Вы дублируете данные о сущностях текстом по всей таблице, тогда Вы намертво усвоите принципы, которые скрываются за формулировками нормальных форм. После этого формулировки нормальных форм Вам будут нужны только на собеседованиях, и то – степень адекватности тех, кто задаёт такие вопросы, вызывает сомнения.

+1
В случае SQL теория должна быть подкреплена огромным количеством практики,
Как, в принципе, и в любом ЯП
30 мар 21, 01:05    [22301776]     Ответить | Цитировать Сообщить модератору
 Re: Стандартные требования на вакансию SQL junior dev  [new]
yob
Member

Откуда:
Сообщений: 39
yob
DaniilSeryi
Не могу удержаться от того, чтобы не выложить.

Нашёл у себя кусочек теории со своими комментариями
Теория, которая нужна… …да никому она на практике не нужна. Честно говоря, у меня это на собеседованиях спросили только один раз. У Вас это спрашивают на собеседовании? Бегите оттуда.

Атрибут — свойство некоторой сущности. Нормальные люди называют это полем или столбцом таблицы.

Домен атрибута — множество допустимых значений, которые может принимать атрибут (значения, которые можно вводить в столбец таблицы).

Кортеж — конечное множество взаимосвязанных допустимых значений атрибутов, которые вместе описывают некоторую сущность (строка таблицы).

Отношение — конечное множество кортежей (таблица).

Схема отношения — конечное множество атрибутов, определяющих некоторую сущность. Иными словами, это структура таблицы, состоящей из конкретного набора полей.

Проекция — отношение, полученное из заданного путём удаления и (или) перестановки некоторых атрибутов.

Функциональная зависимость между атрибутами (множествами атрибутов) X и Y означает, что для любого допустимого набора кортежей в данном отношении: если два кортежа совпадают по значению X, то они совпадают по значению Y. Например, если значение атрибута «Название компании» — Canonical Ltd, то значением атрибута «Штаб-квартира» в таком кортеже всегда будет Millbank Tower, London, United Kingdom. Обозначение: {X} -> {Y}.

Аномалией называется такая ситуация в таблице БД, которая приводит к противоречию в БД либо существенно усложняет обработку БД. Причиной является излишнее дублирование данных в таблице, которое вызывается наличием функциональных зависимостей от не ключевых атрибутов.

Аномалии-модификации проявляются в том, что изменение одних данных может повлечь просмотр всей таблицы и соответствующее изменение некоторых записей таблицы.

Аномалии-удаления — при удалении какого либо кортежа из таблицы может пропасть информация, которая не связана на прямую с удаляемой записью.

Аномалии-добавления возникают, когда информацию в таблицу нельзя поместить, пока она не полная, либо вставка записи требует дополнительного просмотра таблицы.


И чуть больше приближенная к практике теория:
Нормальная форма — требование, предъявляемое к структуре таблиц в теории реляционных баз данных для устранения из базы избыточных функциональных зависимостей между атрибутами (полями таблиц).

Метод нормальных форм (НФ) состоит в сборе информации о объектах решения задачи в рамках одного отношения и последующей декомпозиции этого отношения на несколько взаимосвязанных отношений на основе процедур нормализации отношений.

Цель нормализации: исключить избыточное дублирование данных, которое является причиной аномалий, возникших при добавлении, редактировании и удалении кортежей(строк таблицы).

На самом деле разработчику нормальные формы нужны только для того, чтобы понять и запомнить два простых правила: 1) одна ячейка таблицы – одно значение; 2) для каждого отдельного понятия (сущности) предметной области должна быть выделена своя собственная таблица.
Когда Вы спроектируете под контролем наставника свою первую БД, получите по шее за то, что предлагаете хранить в ячейке таблицы несколько значений и за то, что у Вас нет нужных таблиц-справочников, и Вы дублируете данные о сущностях текстом по всей таблице, тогда Вы намертво усвоите принципы, которые скрываются за формулировками нормальных форм. После этого формулировки нормальных форм Вам будут нужны только на собеседованиях, и то – степень адекватности тех, кто задаёт такие вопросы, вызывает сомнения.

+1
В случае SQL теория должна быть подкреплена огромным количеством практики,
Как, в принципе, и в любом ЯП


В плане нормализации - хорошей практикой опираться на общеизвестные и общепринятые модели данных под конкретный вид бизнеса и предметную область. Т.к. условно, если вы напишите тз, заложив модель, то менять целая история, а если бизнес горячий - источники цепляются каждый день, внедряются новые расчеты, в итоге может получиться свалка и переделывать придется с нуля.
30 мар 21, 02:06    [22301782]     Ответить | Цитировать Сообщить модератору
 Re: Стандартные требования на вакансию SQL junior dev  [new]
Troi51
Member

Откуда:
Сообщений: 10
Господа, большое спасибо, что нашли время и возможность ответить и помочь советом. Приятно осознавать, что мир не без добрых людей. Крепко жму Вам руку.
30 мар 21, 02:14    [22301784]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2]      все
Все форумы / Работа Ответить