powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Определение ключей результата запроса.
4 сообщений из 4, страница 1 из 1
Определение ключей результата запроса.
    #37232161
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если у кого-нить есть идеи, мысли, может быть материалы и ссылки по следующей теме - поделитесь, пожалуйста.

Тема такая. Есть набор таблиц, для которых заданы ключи. Над этими исходными таблицами выполняются всякие реляционные операции. Как понять, какие поля будут однозначно ключевыми в результате (если такие поля там будут вообще)?

Примеры (навскидку):
1) Если делается UNION двух таблиц, то в результате ключевые поля не определены
2) В декартовом произведении ключ есть объединение ключей исходных отношений
3) При проекции ключ определён только в случае, когда в результат попали все ключевые столбцы исходной таблицы.
и т.п.

Хочется найти, определить полный свод таких правил для всех операций.

Кстати. для SQL и для pureRDM скорее всего будут различия (в первом случае допускаются дубликаты) - интересуют оба случая.

Это нужно для статической проверки типов. Например я хочу присвоить
Код: plaintext
targetT:= SELECT... FROM... sourceT1...sourceT2...sourceT3...WHERE...и т.д. 
где
Код: plaintext
targetT     и    sourceTi
- объявленые ранее табличные переменные с заданными ключами.

Естественно, в таком присвоении надо быть уверенным, что ключи в левой и правой части присваивания совпадают - или справа или надо выполнять группировку по полям, которые д.б. ключевыми слева.

Код: plaintext
1.
2.
------------------------------
!Напрасный труд хуже пьянства!
------------------------------
...
Рейтинг: 0 / 0
Определение ключей результата запроса.
    #37233236
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторТема такая.Тема курсача ? :)
...
Рейтинг: 0 / 0
Определение ключей результата запроса.
    #37233350
Фотография ChA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-geneЕсть набор таблиц, для которых заданы ключи. Над этими исходными таблицами выполняются всякие реляционные операции. Как понять, какие поля будут однозначно ключевыми в результате (если такие поля там будут вообще)?

Примеры (навскидку):
1) Если делается UNION двух таблиц, то в результате ключевые поля не определены
2) В декартовом произведении ключ есть объединение ключей исходных отношений
3) При проекции ключ определён только в случае, когда в результат попали все ключевые столбцы исходной таблицы.
и т.п.

Хочется найти, определить полный свод таких правил для всех операций.Если правильно понял, вычислить на основе существующих PK ? Примеры не самые удачные, их нужно уточнять. Например, для 1). все атрибуты входят в ключ, для 2). составные ключи с общим полем, в 3). для detail-таблицы, опять же в случае составного ключа, поля FK могут оказаться вне ключа.
...
Рейтинг: 0 / 0
Определение ключей результата запроса.
    #37233398
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-geneКак понять, какие поля будут однозначно ключевыми в результате (если такие поля там будут вообще)?
а никак, если я правильно понял вопрос. "ключевые поля" - это декларация. То есть, я говорю, что столбец А является ключевым для конкретного кортежа, и создаю на него ПК (да будет так). Далее, в SQL (DML), я просто умозрительно опираюсь на то, что столбец А - ключевой. То есть, в DML отсутствует понятие "ключей".
Я мог бы и не создавать ПК, а просто считать, что буду столбец А заносить конкретные значения. И SQL от этого никак не изменится.

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


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