Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Необходимые признаки того, что связь 1 к 1 / 14 сообщений из 14, страница 1 из 1
04.02.2013, 22:42
    #38137135
juventine
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Необходимые признаки того, что связь 1 к 1
Добрый вечер!

Слышал, что на собеседовании в одну уважаемую IT-компанию любят задавать следующий вопрос.. Условие: есть модель БД, известна структура таблиц. Как по этим начальным условиям определить, что две таблицы связаны связью 1 к 1? То есть ( знаю точно, что таких признаков два ), какие должны быть необходимые признаки того, что две таблицы находятся в связи 1 к 1?

Спасибо!
...
Рейтинг: 0 / 0
05.02.2013, 09:02
    #38137342
vadiminfo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Необходимые признаки того, что связь 1 к 1
juventine,

ну наличие ограничения 1:1 все же предаполагает наличие ОЦ в РМД в общем случае. Если по струкутре - одинаковые имена колононк в разных таблах, связь можно предполагать (с оглядкой конечно на наклонности проектировщика), то для 1:1 все же нужно прописать, скорее всего, ОЦ. Типа уникальность столбцов внешнего ключа, чтобы не допустить 1:N. Если не допустимо 1:0, то ограничение на значение NOT NULL для тех же столбцов. Одной только структурой, вроде, не допустить нарушение 1:1, скорей всего, не получится. А стало быть и определить только по структуре, если и можно, то если в этой уважаемой фирме есть какие-то стандарты для этого. Напрмер, в именах столбцов они что-то налабывают.
...
Рейтинг: 0 / 0
05.02.2013, 11:33
    #38137588
Arhat109
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Необходимые признаки того, что связь 1 к 1
vadiminfo,

круто... :)
...
Рейтинг: 0 / 0
05.02.2013, 11:41
    #38137599
Кот Матроскин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Необходимые признаки того, что связь 1 к 1
vadiminfojuventine,

ну наличие ограничения 1:1 все же предаполагает наличие ОЦ в РМД в общем случае. Если по струкутре - одинаковые имена колононк в разных таблах, связь можно предполагать (с оглядкой конечно на наклонности проектировщика), то для 1:1 все же нужно прописать, скорее всего, ОЦ. Типа уникальность столбцов внешнего ключа, чтобы не допустить 1:N. Если не допустимо 1:0, то ограничение на значение NOT NULL для тех же столбцов. Одной только структурой, вроде, не допустить нарушение 1:1, скорей всего, не получится.

А ОЦ - это не структура, разве?
...
Рейтинг: 0 / 0
05.02.2013, 12:01
    #38137653
vadiminfo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Необходимые признаки того, что связь 1 к 1
Кот МатроскинА ОЦ - это не структура, разве?
OЦ (ограничения целостности) - логические правила, которым должны удовлетворять данные.
...
Рейтинг: 0 / 0
05.02.2013, 12:10
    #38137673
BJValentine
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Необходимые признаки того, что связь 1 к 1
Ну, с мастер-таблицей всё понятно сразу, на неё сылается внешний ключ дочерней таблицы, а ссылаться он может только на уникальный ключ, то есть, 1..N (N>=0) уже есть 100%. А если поля внешнего ключа в дочерней таблице являются уникальным ключем (AK, PK), то уже этого достаточно чтобы понять, что связь 1..1 или 1..0.
...
Рейтинг: 0 / 0
05.02.2013, 12:22
    #38137702
Naf
Naf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Необходимые признаки того, что связь 1 к 1
мне одному кажется, что связи 1 : 1 быть не может
только 1 : 0..1 или 0..1 : 0..1
не?
...
Рейтинг: 0 / 0
05.02.2013, 12:28
    #38137717
BJValentine
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Необходимые признаки того, что связь 1 к 1
Конечно, если ни в дочерней, ни в мастере нет данных, то можно утверждать, что по <b>этим записям</b> связь 0:0. Но речь то идёт о <b>возможных</b> связях <b>таблицы</b>.
...
Рейтинг: 0 / 0
05.02.2013, 12:56
    #38137776
ChA
ChA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Необходимые признаки того, что связь 1 к 1
1:1 - встречные FK на PK. Проблема только с заполнением подобных таблиц, нельзя сделать вставку записей в 2 разных таблицы одновременно, только по очереди, а это уже нарушение 1:1. Так что или deffered FK, или отключать FK на моменты добавления записей.
...
Рейтинг: 0 / 0
05.02.2013, 13:01
    #38137794
vadiminfo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Необходимые признаки того, что связь 1 к 1
Nafмне одному кажется, что связи 1 : 1 быть не может
только 1 : 0..1 или 0..1 : 0..1
не?
Ну навязать то, наверное, можно. Вы же можете, скорее всего (Оракл, например, позволяет), взаимные вненшние ключи создать, чтобы не допустить пояление записи в одной не связаннную с другой. Т.е. в принципе может быть навязана. Но возможно, в этом был подвох на собеседовании: должно быть два внешних ключа.
...
Рейтинг: 0 / 0
05.02.2013, 13:08
    #38137811
vadiminfo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Необходимые признаки того, что связь 1 к 1
Не видел предыднщего, поэтому повторение получилось
...
Рейтинг: 0 / 0
05.02.2013, 13:19
    #38137850
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Необходимые признаки того, что связь 1 к 1
juventineСлышал, что на собеседовании в одну уважаемую IT-компанию любят задавать следующий вопрос.. Условие: есть модель БД, известна структура таблиц. Как по этим начальным условиям определить, что две таблицы связаны связью 1 к 1?

В обоих таблицах поля PK должны быть одинаковые и кроме этих полей в PK не должно быть других полей. Т.е. у двух таблиц должен полностью совпадать первичный ключ (порядок полей при этом может быть и разным).
...
Рейтинг: 0 / 0
05.02.2013, 13:21
    #38137856
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Необходимые признаки того, что связь 1 к 1
Кстати, если вдруг в схеме (модели БД) поля в первичных ключах таблиц называются по-разному, и нет связи (foreign key), но тем не менее это одно и то же поле, то ты ни в жисть не догадаешся, что это связь 1:1.
...
Рейтинг: 0 / 0
05.02.2013, 13:23
    #38137863
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Необходимые признаки того, что связь 1 к 1
Nafмне одному кажется, что связи 1 : 1 быть не может
только 1 : 0..1 или 0..1 : 0..1
не?

Да, правильно.
Т.е. связь в модели данных может быть и строго 1:1, но в БД она реализуется связью 1:0..1, а дополнительное ограничение, что
во второй таблице тоже должна быть связь реализуется логикой приложения (триггером или процедурой).
Ну, или вообще не проверяется.
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Необходимые признаки того, что связь 1 к 1 / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]