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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

А если у меня в таблице уже есть PK, то какой смысл в себе несет тогда тут суррогатный ключ в этой же таблице ?
...
Рейтинг: 0 / 0
Суррогатный ключ
    #39372156
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ольга СеменоваА если у меня в таблице уже есть PK, то какой смысл в себе несет тогда тут суррогатный ключ в этой же таблице ?Смысла нет.
...
Рейтинг: 0 / 0
Суррогатный ключ
    #39372188
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ольга Семенова,
Для принятия решения при проектировании БД, в части ПК, достаточно ответить себе на вопрос:
"Должен ли быть первичный ключ в проектируемой таблице суррогатным или натуральным?"
"За" и "Против" можно изыскать в требованиях (ТЗ, ФТ, FSD, BRD) к АС, для которой Вы проектируете БД.
...
Рейтинг: 0 / 0
Суррогатный ключ
    #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
Суррогатный ключ
    #39372558
stomsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ольга СеменоваЗапуталась в понятиях.

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

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

Т.е. ключ является суррогатным, если его значение не имеет смысла в предметной области (циферки из столбца "Id" не имеют никакого смысла с точки зрения, например, кадрового учета).
И ключ является естественным, если он построен на данных, которые имеют смыл с точки зрения предметной области (наименование отдела в нашем случае).
Первичный ключ - это частный случай уникального индекса. Он строится по одному или нескольким столбцам таблицы и технически гарантирует, что сочетание значений столбцов, входящих в его (первичного ключа) состав будет уникальным в пределах этой таблицы.
Внешний ключ - техническая реализация отношения между таблицами. В приведенном мной выше примере внешний ключ логично построить на столбцах Name (таблицы "Отделы") и otdel (таблицы "Сотрудники"). Наличие такого внешнего ключа технически гарантирует, что в столбце "otdel" не появится значений, которые отсутствуют в столбце Name таблицы "Отделы".
Так понятнее или запутал окончательно?
...
Рейтинг: 0 / 0
Суррогатный ключ
    #39377304
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ольга, базы данных - это не дело Вашей жизни. Вы в теории и практике баз данных не разберетесь.
Потому что, в самом начале пути (если предположить, что Вы захотели разобраться) Вы заходите в фундаментальный тупик, так сказать. В базах данных даже теоретически нет тех ключей, о которых Вы спрашиваете. Они просто не нужны. Но, чтобы это понять нужно заниматься базами данных. А Вы (вероятно, под чьим-то влиянием) начали изучать не базы данных, а что-то другое. Вероятно, так называемые, "реляционные базы данных".
...
Рейтинг: 0 / 0
Суррогатный ключ
    #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
Суррогатный ключ
    #39378982
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Полковник.
По сути - набор пьяного бреда. По форме - попугаистое повторение некоторых тривиальных мыслей, например, из Кимбалла (хотя наверняка далеко не только). Попугаистое - означает механическое повторение слов при явном непонимании их смысла.
...
Рейтинг: 0 / 0
Суррогатный ключ
    #39378993
Полковник.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerПолковник.
По сути - набор пьяного бреда. По форме - попугаистое повторение некоторых тривиальных мыслей, например, из Кимбалла (хотя наверняка далеко не только). Попугаистое - означает механическое повторение слов при явном непонимании их смысла.
Ну твой то пост вообще никаких мыслей не несет. Зато сколько пафоса. Ты,что сказать то хотел? Хотя знаю - ничего, ты просто громко на весь форум перенул, поздравляю
...
Рейтинг: 0 / 0
Суррогатный ключ
    #39379001
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Полковник.,

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

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

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

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


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