2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Количество ключей/суперключей в схеме, СУБД
Сообщение01.02.2012, 11:21 
Здравствуйте, Вы не могли бы проверить, верно ли я ответил на следующие два вопроса

1) Какое максимальное число ключей может иметь схема с N атрибутами ?
--------- я думаю, что ответ N! Так как с схеме $R(A_1,A_2,\dots.A_N)$
есть N различных атрибутов, и каждый из них может быть ключом, но и каждая комбинация их N атрибутов может быть ключом, посему мы получаем факториал от количества столбцов в таблице(количества атрибутов в схеме)


2) Дана схема с N атрибутами и точно известно ,что в этой схеме есть ровно 1 ключ. Определить сколько суперключей может быть в схеме, объяснить почему.

------------ мне кажется, что ответ будет (N-1)!, т.к. в этом случае мы фиксируем один атрибут в качестве ключа, после чего у нас остаётся N-1 атрибут, и посему у нас есть ещё N-1 атрибут для составления суперключа из первого атрибута ( т.е. мы можем приписать к первому атрибуту ещё N-1 атрибут) Причём например
в нашеё схеме
$R(A_1,A_2,\dots.A_N)
$
$A_1$ это ключ, тогде, мы можем приписать N-1 комбинацию из оставшихся атриюутов, чтобы получить суперключ, "длиной" два, дальше, мы можем приписать третий атрибут ( и таких компинаций будет N-2) и так далее до последнего $A_N$ атрибута

 
 
 
 Re: Количество ключей/суперключей в схеме, СУБД
Сообщение01.02.2012, 11:53 
Я сам не знаю, потому спрошу: под ключом понимается ключ по одному атрибуту, а под суперключом - ключ по нескольким атрибутам?
И, видимо, в задаче спрашивается не о числе ключей, а о числе возможностей построения ключа.
Если так, то в 2 можно ли данный ключ дополнять? Если да, то правильно, если нет, то $(N-2)!$.

 
 
 
 Re: Количество ключей/суперключей в схеме, СУБД
Сообщение01.02.2012, 12:08 

(Оффтоп)

Суперключ — в реляционной модели данных — подмножество атрибутов отношения, удовлетворяющее требованию уникальности: не существует двух кортежей данного отношения, в которых значения этого подмножества атрибутов совпадают (равны).
Суперключ отличается от потенциального ключа тем, что на суперключ не накладывается требование минимальности, или несократимости (это требование означает, что в составе ключа отсутствует меньшее подмножество атрибутов, удовлетворяющее условию уникальности). Вследствие этого в состав суперключа может входить другой, более «компактный» по количеству атрибутов суперключ.
Таким образом, потенциальный ключ может быть определён как суперключ, обладающий свойством минимальности (несократимости).
Поскольку все кортежи в отношении по определению уникальны, в нём всегда существует хотя бы один суперключ (например, включающий все атрибуты отношения).

Но всё равно, ключём может быть совокупность атрибутов, например А1,А4,А9 могут однозначно определять кортеж в таблице, тогда для этого случая суперключём будет А1,А4,А9 +A2,A3,A5,A6,A7,A8,A10,....A_N
или даже просто А1,А4,А9,А12
Разве не так ?

Но тут в задании не написано чётко, что они хотят .
Хотя может быть при переводе задания я упустил смысл?
в оригинале оно звучало так:

1) What is the maximum number of keys that a schema with N attributes can have ?
2) F given schema has N atributes and exactly 1 key. How many superkeys are there in the schema ? Show why.

 
 
 
 Re: Количество ключей/суперключей в схеме, СУБД
Сообщение01.02.2012, 12:26 
Alexeybk5 в сообщении #533698 писал(а):
Суперключ — в реляционной модели данных — подмножество атрибутов отношения, удовлетворяющее требованию уникальности: не существует двух кортежей данного отношения, в которых значения этого подмножества атрибутов совпадают (равны).
Угу, ладно, но нам-то не дано, какие там данные: они могут быть такими, что любой столбец дает уникальный ключ, а могут быть такими, что даже все столбцы не образуют уникальный ключ. Тогда 2 варианта: либо мы ищем уникальный ключ для любой структуры данных (и тогда ответ "нуль ключей"). Либо мы от этого требования абстрагируемся (как Вы это сделали) и получаем Ваш ответ. Как им конкретно надо - я не знаю.
Со вторым заданием, видимо, надо аналогично поступить :roll: :? Но во 2-м-то задании Вы как раз нашли минимальное число возможных ключей независимо от структуры данных (хотя нет, это только если ключ и суперключ - одно и то же).
А "ключ" тогда что такое?

 
 
 
 Re: Количество ключей/суперключей в схеме, СУБД
Сообщение01.02.2012, 12:29 
Ну это вопрос в тесте, на понимания этого понятия. По идее тут надо рассматривать общий случай, не зависящий от данных

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

 
 
 
 Re: Количество ключей/суперключей в схеме, СУБД
Сообщение01.02.2012, 12:31 
Alexeybk5 в сообщении #533703 писал(а):
абстрагироваться от уникального ключа
Ой, а это как?
Подождите, я вру: Вы же в 1-м задании ищете ключи, а не суперключи, а я еще не знаю, что такое "ключ". Тогда я может чушь написал.
Что такое "ключ"?

 
 
 
 Re: Количество ключей/суперключей в схеме, СУБД
Сообщение01.02.2012, 12:38 
Потенциальный ключ — в реляционной модели данных — подмножество атрибутов отношения, удовлетворяющее требованиям уникальности и минимальности (несократимости).

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

 
 
 
 Re: Количество ключей/суперключей в схеме, СУБД
Сообщение01.02.2012, 13:03 
Alexeybk5 в сообщении #533706 писал(а):
Потенциальный ключ — в реляционной модели данных — подмножество атрибутов отношения, удовлетворяющее требованиям уникальности и минимальности (несократимости).
Т.е. ключ - это потенциальный ключ (странное название).
Ну тогда в 1 ответ нуль, а во 2-м все верно.
Alexeybk5 в сообщении #533706 писал(а):
ну в принципе, ведь для обещго случая не так важная уникальность, тем более, когда они спрашивают какое максимальное число ключей может иметь схема с N атрибутами.
Она может иметь ключ состоящий из N атрибутов(ведь данные могут быть любыми)
Ну вот и я говорю: для ответа $N!$ нам нужно абстрагироваться от того, какие в таблице могут быть данные.
В общем, вроде разобрались.

 
 
 
 Re: Количество ключей/суперключей в схеме, СУБД
Сообщение02.02.2012, 11:40 
Sonic86 в сообщении #533710 писал(а):
В общем, вроде разобрались.

Извините, что вмешиваюсь, но, по-моему, только запутались (я-то уж точно :-) ). В первом вопросе спрашивают о максимально возможном количестве ключей. Ответ 0 на такой вопрос означает, вообще говоря, что ключей не существует в принципе нигде и никогда :-) Изначальный ответ ТС ($N!$) почти верен, если речь идет о суперключах (почти --- потому что суперключ --- это подмножество, оно не упорядочено, если следовать стандартным определениям из Дейта, и ответ, конечно, не факториал). Но, судя по всему, речь все-таки о потенциальных ключах, и эта задача не так проста. То есть если у нас каждый атрибут - пот. ключ, то никаких пот. ключей из двух атрибутов быть уже не может, например. Если у нас каждый из 2 атрибутов --- потенциальный ключ, то, теоретически, потенциальным ключом может быть любая пара из оставшихся $N-2$ атрибутов, и так далее. С ходу я тут не соображу, какой максимум. Во второй задаче все проще, только настораживает, что не задано количество атрибутов в потенциальном ключе. Если он состоит из одного атрибута, то рассуждения ТС верны (с поправкой на неупорядоченность), ну и ясно, какой будет ответ для ключа из $k$ атрибутов.

 
 
 [ Сообщений: 9 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group