Я прохожу курс по базам данных, и у меня есть пара вопросов о вычислительных проблемах.Мы очень ценим любые идеи.
Во-первых, я слышал, что «нет никакого алгоритма» для преобразования отношений в BCNF, который является как без потерь, так и с сохранением зависимостей.Причина этого заключается в том, что для некоторых отношений в BCNF не существует отношения с требуемыми свойствами.Я нахожу это вводящим в заблуждение, в том смысле, что вы могли бы сказать, что нет алгоритма для нахождения двух реальных решений квадратного уравнения с использованием одной и той же логики.Конечно, вы не можете ... Но для проблемы нормализации, я думаю, должно быть возможно определить, есть ли преобразование в BCNF с обоими свойствами (проблема решения) и, если проблема решения выдает "да", алгоритм длявычислить эквивалентное представление BCNF.Правильно ли мое мышление или что-то из того, что я сказал, неверно?
Мой второй вопрос касается подзапросов.Можно ли переписать любой запрос в SQL, включающий подзапросы, без подзапросов?Я знаю, что это не очень хорошо сформулировано ... Я предполагаю, что давайте придерживаться базового SQL (что разделяют большинство / всех систем) и ограничим подзапросы для выбора операторов, подчиненных высокоуровневым (с учетом операций над множествами верхнего уровня),