Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Суррогатный ключ / 21 сообщений из 21, страница 1 из 1
21.12.2016, 11:29
    #39371705
Ольга Семенова
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суррогатный ключ
Запуталась в понятиях.
Первичный ключ (PK), внешний ключ(FK), суррогатный и бизнес ключ.
Объясните пожалуйста: суррогатный ключ это и есть внешний ключ?

Таблица "Отделы"
Id Name
1 Отдел кадров
2 Технический отдел
3 Финансовый отдел,

Таблица "Сотрудники"
Id Id_otdela FIO
1 1 Иванов
2 2 Петров
3 2 Сидоров

Поле "Сотрудники".Id_otdela является суррогатным ключом или внешним (FK) ?
...
Рейтинг: 0 / 0
21.12.2016, 11:32
    #39371709
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суррогатный ключ
Опять не туда .

Модератор: Тема перенесена из форума "Oracle".
...
Рейтинг: 0 / 0
21.12.2016, 11:49
    #39371731
Naf
Naf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суррогатный ключ
Ольга Семенова,

Это дополнительное служебное поле, добавленное к уже имеющимся информационным полям таблицы, единственное предназначение которого — служить первичным ключом. Значение этого поля не образуется на основе каких-либо других данных из БД, а генерируется искусственно.

Суррогатный ключ
...
Рейтинг: 0 / 0
21.12.2016, 12:18
    #39371777
Ольга Семенова
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суррогатный ключ
NafОльга Семенова,

Это дополнительное служебное поле, добавленное к уже имеющимся информационным полям таблицы, единственное предназначение которого — служить первичным ключом. Значение этого поля не образуется на основе каких-либо других данных из БД, а генерируется искусственно.

Суррогатный ключ

вот это как раз и поставило меня и запутало...
уточняющие вопросы в которых я путаюсь:
1) Первичный ключ это и есть Primary Key ? или это разные по сути понятия?
2) Что является Первичным ключом в Таблице "Сотрудники" ? Id ?
3) поле Id_otdela в таблице "Сотрудники" является суррогатным или внешним Foreign Key для поддержания целостности между таблицами?
...
Рейтинг: 0 / 0
21.12.2016, 12:50
    #39371821
Naf
Naf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суррогатный ключ
Ольга Семенова1) Первичный ключ это и есть Primary Key ? или это разные по сути понятия?

настолько одно и тоже, что даже дословный перевод
Ольга Семенова2) Что является Первичным ключом в Таблице "Сотрудники" ? Id ?

Да, Id
Ольга Семенова3) поле Id_otdela в таблице "Сотрудники" является суррогатным или внешним Foreign Key для поддержания целостности между таблицами?
внешним ключом
...
Рейтинг: 0 / 0
21.12.2016, 15:19
    #39372040
Курдль
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суррогатный ключ
Ольга Семенова,
Вы и Ваши комментаторы удивительно заблуждаетесь :)
Всё равно что сказать "Кресты бывают католические и металлические"

Натуральный ключ - это уникальный идентификатор, основанный на уникальном свойстве объекта предметной области.
Напр. ИНН субъекта, БИК банка, СНИЛС физического лица, WIN автомобиля и т.п.

Суррогатный ключ - это уникальный идентификатор, сгенерированный системой автоматически.
...
Рейтинг: 0 / 0
21.12.2016, 15:44
    #39372068
Ольга Семенова
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суррогатный ключ
КурдльСуррогатный ключ - это уникальный идентификатор, сгенерированный системой автоматически.

на основе Sequence например? или это уже будет первичный ключ?
...
Рейтинг: 0 / 0
21.12.2016, 16:07
    #39372099
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суррогатный ключ
Ольга Семенована основе Sequence например? или это уже будет первичный ключ?

Ольга, Вам бы букварь почитать хотя бы по базовой терминологии... Хотя бы ту же википедию.
Иначе так и будете путать тёплое с мягким.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
21.12.2016, 17:01
    #39372144
Ольга Семенова
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суррогатный ключ
Dimitry SibiryakovОльга Семенована основе Sequence например? или это уже будет первичный ключ?

Ольга, Вам бы букварь почитать хотя бы по базовой терминологии... Хотя бы ту же википедию.
Иначе так и будете путать тёплое с мягким.


Так именно прочитав ее у меня и возникли путанные вопросы :)

авторЭто дополнительное служебное поле, добавленное к уже имеющимся информационным полям таблицы, единственное предназначение которого — служить первичным ключом. Значение этого поля не образуется на основе каких-либо других данных из БД, а генерируется искусственно.

А если у меня в таблице уже есть PK, то какой смысл в себе несет тогда тут суррогатный ключ в этой же таблице ?
...
Рейтинг: 0 / 0
21.12.2016, 17:06
    #39372156
LSV
LSV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суррогатный ключ
Ольга СеменоваА если у меня в таблице уже есть PK, то какой смысл в себе несет тогда тут суррогатный ключ в этой же таблице ?Смысла нет.
...
Рейтинг: 0 / 0
21.12.2016, 17:34
    #39372188
Курдль
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суррогатный ключ
Ольга Семенова,
Для принятия решения при проектировании БД, в части ПК, достаточно ответить себе на вопрос:
"Должен ли быть первичный ключ в проектируемой таблице суррогатным или натуральным?"
"За" и "Против" можно изыскать в требованиях (ТЗ, ФТ, FSD, BRD) к АС, для которой Вы проектируете БД.
...
Рейтинг: 0 / 0
21.12.2016, 17:35
    #39372189
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суррогатный ключ
Ольга СеменоваТак именно прочитав ее у меня и возникли путанные вопросы :)

Ок, что именно Вы прочитали?
https://ru.wikipedia.org/wiki/Первичный_ключ - прочитали?
Статью Тенцера http://www.ibase.ru/natural-keys-versus-atrificial-keys-by-tentser/ -
прочитали?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
22.12.2016, 09:11
    #39372558
stomsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суррогатный ключ
Ольга СеменоваЗапуталась в понятиях.

Вы свалили в одну кучу понятия из разных категорий:
1. Суррогатные и естественные ключи - это одно
2. Первичный и внешний ключи - это другое
Что подразумеваете под суррогатным ключом и бизнес ключом я вообще не в курсе (первый раз о таких слышу).
В приведенном примере столбцы Id из обеих таблиц, как мне подсказывает интуиция, - суррогатные ключи. Значение Id однозначно идентифицирует строку в таблице. Для того, чтобы на уровне СУБД технически гарантировать неповторяемость по данным столбцам можно создать первичный ключ.
А вот если из таблицы "Отделы" столбец Id выбросить, а для однозначной идентификации использовать столбце "Name", то тогда это будет уж естественный ключ, по которому также можно (и нужно) создать первичный ключ. А вот в таблице "Сотрудники" по прежнему остается суррогатный ключ. Тогда структура таблиц будет такой:
Таблица "Отделы"
Name
Отдел кадров
Технический отдел
Финансовый отдел,

Таблица "Сотрудники"
Id otdel FIO
1 Отдел кадров Иванов
2 Технический отдел Петров
3 Технический отдел Сидоров

Т.е. ключ является суррогатным, если его значение не имеет смысла в предметной области (циферки из столбца "Id" не имеют никакого смысла с точки зрения, например, кадрового учета).
И ключ является естественным, если он построен на данных, которые имеют смыл с точки зрения предметной области (наименование отдела в нашем случае).
Первичный ключ - это частный случай уникального индекса. Он строится по одному или нескольким столбцам таблицы и технически гарантирует, что сочетание значений столбцов, входящих в его (первичного ключа) состав будет уникальным в пределах этой таблицы.
Внешний ключ - техническая реализация отношения между таблицами. В приведенном мной выше примере внешний ключ логично построить на столбцах Name (таблицы "Отделы") и otdel (таблицы "Сотрудники"). Наличие такого внешнего ключа технически гарантирует, что в столбце "otdel" не появится значений, которые отсутствуют в столбце Name таблицы "Отделы".
Так понятнее или запутал окончательно?
...
Рейтинг: 0 / 0
28.12.2016, 23:38
    #39377304
Бредятина
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суррогатный ключ
Ольга, базы данных - это не дело Вашей жизни. Вы в теории и практике баз данных не разберетесь.
Потому что, в самом начале пути (если предположить, что Вы захотели разобраться) Вы заходите в фундаментальный тупик, так сказать. В базах данных даже теоретически нет тех ключей, о которых Вы спрашиваете. Они просто не нужны. Но, чтобы это понять нужно заниматься базами данных. А Вы (вероятно, под чьим-то влиянием) начали изучать не базы данных, а что-то другое. Вероятно, так называемые, "реляционные базы данных".
...
Рейтинг: 0 / 0
31.12.2016, 19:11
    #39378657
Полковник.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суррогатный ключ
Ну так что же никто не знает зачем нужен суррогатный ключ?

Он нужен для Хранилищ Данных, как один из вариантов - поддержать изменение данных в справочнике во времени Натуральный ключ - один, суррогатных ключей - несколько

В обычных базах данных вы его скорей всего никогда и не встретите.

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

UPPER(CONVERT(char(32),HASHBYTES('MD5',
CONCAT(
UPPER(RTRIM(LTRIM(COALESCE([DocId], '')))), ';',
RTRIM(LTRIM(COALESCE([ItemId], ''))), ';',
RTRIM(LTRIM(COALESCE([UnitId], '')))
)
),2)) AS XLNK_DMSDocumentLine_HK

это вот вам пример суррогатного ключа, как проивзодного от бизнес ключей исходной таблицы

Всех с Новым Годом
...
Рейтинг: 0 / 0
02.01.2017, 21:31
    #39378982
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суррогатный ключ
Полковник.
По сути - набор пьяного бреда. По форме - попугаистое повторение некоторых тривиальных мыслей, например, из Кимбалла (хотя наверняка далеко не только). Попугаистое - означает механическое повторение слов при явном непонимании их смысла.
...
Рейтинг: 0 / 0
02.01.2017, 22:06
    #39378993
Полковник.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суррогатный ключ
softwarerПолковник.
По сути - набор пьяного бреда. По форме - попугаистое повторение некоторых тривиальных мыслей, например, из Кимбалла (хотя наверняка далеко не только). Попугаистое - означает механическое повторение слов при явном непонимании их смысла.
Ну твой то пост вообще никаких мыслей не несет. Зато сколько пафоса. Ты,что сказать то хотел? Хотя знаю - ничего, ты просто громко на весь форум перенул, поздравляю
...
Рейтинг: 0 / 0
02.01.2017, 22:17
    #39379001
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суррогатный ключ
Полковник.,

смысл слова "пафос" ты тоже явно не понимаешь.
...
Рейтинг: 0 / 0
03.01.2017, 22:26
    #39379327
Ольга Семенова
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суррогатный ключ
Спасибо всем!!! Вразумили
...
Рейтинг: 0 / 0
04.01.2017, 20:05
    #39379564
Serguei
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суррогатный ключ
Ольга СеменоваА если у меня в таблице уже есть PK, то какой смысл в себе несет тогда тут суррогатный ключ в этой же таблице ?

Возможно что у вас неправильный PK и его нужно изменить. ;) Тут общего совета как сделать ключ нету- надо в каждой ситуации по месту смотреть. Учитывая ваши познания -объяснить не получится :(
...
Рейтинг: 0 / 0
05.01.2017, 00:16
    #39379606
ВМоисеев
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суррогатный ключ
>Ольга Семенова, 21 дек 16, 11:29 [20030983]

>... Объясните пожалуйста: суррогатный ключ это ...
а-ля ассоциативный адрес объекта некоторого абстрактного пространства (два объекта с разными суррогатными ключами - суть разные объекты) + схема формирования ключа.

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


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