|
|
|
Определение ключей результата запроса.
|
|||
|---|---|---|---|
|
#18+
Если у кого-нить есть идеи, мысли, может быть материалы и ссылки по следующей теме - поделитесь, пожалуйста. Тема такая. Есть набор таблиц, для которых заданы ключи. Над этими исходными таблицами выполняются всякие реляционные операции. Как понять, какие поля будут однозначно ключевыми в результате (если такие поля там будут вообще)? Примеры (навскидку): 1) Если делается UNION двух таблиц, то в результате ключевые поля не определены 2) В декартовом произведении ключ есть объединение ключей исходных отношений 3) При проекции ключ определён только в случае, когда в результат попали все ключевые столбцы исходной таблицы. и т.п. Хочется найти, определить полный свод таких правил для всех операций. Кстати. для SQL и для pureRDM скорее всего будут различия (в первом случае допускаются дубликаты) - интересуют оба случая. Это нужно для статической проверки типов. Например я хочу присвоить Код: plaintext Код: plaintext Естественно, в таком присвоении надо быть уверенным, что ключи в левой и правой части присваивания совпадают - или справа или надо выполнять группировку по полям, которые д.б. ключевыми слева. Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2011, 15:11 |
|
||
|
Определение ключей результата запроса.
|
|||
|---|---|---|---|
|
#18+
авторТема такая.Тема курсача ? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2011, 11:12 |
|
||
|
Определение ключей результата запроса.
|
|||
|---|---|---|---|
|
#18+
U-geneЕсть набор таблиц, для которых заданы ключи. Над этими исходными таблицами выполняются всякие реляционные операции. Как понять, какие поля будут однозначно ключевыми в результате (если такие поля там будут вообще)? Примеры (навскидку): 1) Если делается UNION двух таблиц, то в результате ключевые поля не определены 2) В декартовом произведении ключ есть объединение ключей исходных отношений 3) При проекции ключ определён только в случае, когда в результат попали все ключевые столбцы исходной таблицы. и т.п. Хочется найти, определить полный свод таких правил для всех операций.Если правильно понял, вычислить на основе существующих PK ? Примеры не самые удачные, их нужно уточнять. Например, для 1). все атрибуты входят в ключ, для 2). составные ключи с общим полем, в 3). для detail-таблицы, опять же в случае составного ключа, поля FK могут оказаться вне ключа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2011, 11:52 |
|
||
|
Определение ключей результата запроса.
|
|||
|---|---|---|---|
|
#18+
U-geneКак понять, какие поля будут однозначно ключевыми в результате (если такие поля там будут вообще)? а никак, если я правильно понял вопрос. "ключевые поля" - это декларация. То есть, я говорю, что столбец А является ключевым для конкретного кортежа, и создаю на него ПК (да будет так). Далее, в SQL (DML), я просто умозрительно опираюсь на то, что столбец А - ключевой. То есть, в DML отсутствует понятие "ключей". Я мог бы и не создавать ПК, а просто считать, что буду столбец А заносить конкретные значения. И SQL от этого никак не изменится. То есть, если хочется найти "ключевые" столбцы после выполнения конкретного SQL-запроса, то нужно посмотреть на список столбцов результирующей "записи", и из каких таблиц эти столбцы взяты, а потом посмотреть, являются-ли эти столбцы "ключевыми" в исходных таблицах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2011, 12:08 |
|
||
|
|

start [/forum/topic.php?fid=32&tid=1542192]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
169ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
29ms |
get tp. blocked users: |
1ms |
| others: | 235ms |
| total: | 463ms |

| 0 / 0 |
