К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

Что такое тривиальная функциональная зависимость?

Гость
0 - 17.06.2015 - 20:51
Строгое определение гласит "Функциональная зависимость тривиальна тогда и только тогда, когда ее правая (зависимая) часть является подмножеством ее левой части (детерминанта). ". Но как это понять применительно к реляционным базам данным?
Я лично понял вот так6 допустим, у нас есть столбец, в который можно вбить ограниченное множество значение, например: "Значение 1", "Значение 2", "Значение 3" и "Значение 4". И есть другой столбец, куда можно вбить "Значение 1", "Значение 2", "Значение 3" (то есть 3 из 4 значений первого столбца). Столбец второй функционально зависит от первого, то есть, например, вбитое в первый столбце значение однозначно определяет значение в столбце два. Это значит что функциональная зависимость тривиальна. Правильно ли я понял?



Гость
1 - 18.06.2015 - 01:14
Цитата:
Сообщение от megabax Посмотреть сообщение
Правильно ли я понял?
а кто его знает. такое без экзамена не обнаружишь. если что-нибудь надо, задай простой конкретный вопрос.
вот пример
таблица человек с полями фам им отч год рожд вес рост
и фио с полями фам им отч
Вообще такое в СНБЗ SQL ного типа называют view
Гость
2 - 18.06.2015 - 01:19
иди и чти http://citforum.ru/database/advanced_intro/
или бери и чти труд Дейта.
Гость
3 - 18.06.2015 - 08:08
2-xo57722 > спасибо
Гость
4 - 18.06.2015 - 10:41
Цитата:
Сообщение от megabax Посмотреть сообщение
Строгое определение гласит "Функциональная зависимость тривиальна тогда и только тогда, когда ее правая (зависимая) часть является подмножеством ее левой части (детерминанта). ". Но как это понять применительно к реляционным базам данным? Я лично понял вот так6 допустим, у нас есть столбец, в который можно вбить ограниченное множество значение, например: "Значение 1", "Значение 2", "Значение 3" и "Значение 4". И есть другой столбец, куда можно вбить "Значение 1", "Значение 2", "Значение 3" (то есть 3 из 4 значений первого столбца). Столбец второй функционально зависит от первого, то есть, например, вбитое в первый столбце значение однозначно определяет значение в столбце два. Это значит что функциональная зависимость тривиальна. Правильно ли я понял?
если я Вас правильно поняла - Вы говорите о доменах - области определения атрибутов.... Тут другое.
Если взять не любые атрибуты, а ключевые (пресловутые код сотрудника, код отдела) сджоинить к таблицей сотрудников по код сотрудника и в результат запросы выбрать все поля (объединение полей обеих таблиц), в исходной выборке мы получим, что b.код сотрудника находится в тривиальной функционально зависимости от группы атрибутов {a.код сотрудника, a.код отдела** (а - исходная, b - таблица сотрудников), ключей исходной таблицы....
правда, тут есть вопрос - будет ли результат запроса отношением, того для чего будет действовать понятия функциональных зависимостей, но будем считать, что будет... :)
Наличие таких зависимостей - избыточность в БД, одна из задач нормализации от них избавиться
http://webmath.exponenta.ru/db/bdd/0402.html
Гость
5 - 18.06.2015 - 11:01
Цитата:
Сообщение от xo57722 Посмотреть сообщение
Вообще такое в СНБЗ SQL ного типа называют view
view тут, вообще, не при делах...
view - это поименованный запрос, фактически, просто -сохраненный кусок кода... (если не брать во внимание материализованные индексированные view - "улучшение над улучшением")
частью реляционной модели оно не является - утилитарно функциональная вещь, чтобы программист не задолбался каждый раз один и тот же код писать, и понятия этой модели к нему не применимы...
Гость
6 - 18.06.2015 - 17:48
Цитата:
Сообщение от Темная сторона Посмотреть сообщение
фактически, просто -сохраненный кусок кода.
но коьорый можно использовать как таблицу. например обновлять. При соблюдении каких-то условий.
Цитата:
Сообщение от Темная сторона Посмотреть сообщение
чтобы программист не задолбался каждый раз один и тот же код писать,
Фатсон, это же элементарно! ctrl-c ctrl-v. Или слепить хранимую процедуру. Или вообще udf.
всем на sql.ru и обсуждать!
Гость
7 - 18.06.2015 - 18:12
Цитата:
Сообщение от xo57722 Посмотреть сообщение
но коьорый можно использовать как таблицу. например обновлять. При соблюдении каких-то условий.
Вы с табличными переменными не путаете или еще с чем-то?;))
Индексированные view могут обновляются, но их используют редко в экзотических случаях, потому что тормоза из-за того, что обновляются....
В общем виде, к view можно обращаться, как к таблице, но физически такого набора данных не существует...
это так - верьте мне! ну, или обсудите на sql.ru %)
Цитата:
Сообщение от xo57722 Посмотреть сообщение
ctrl-c ctrl-v. Или слепить хранимую процедуру. Или вообще udf.
Цитата:
Сообщение от xo57722 Посмотреть сообщение
ctrl-c ctrl-v. Или слепить хранимую процедуру. Или вообще udf.
Не совсем элементарно!%)
Выбор - процедура, функция или представление зависит от задачи... во view используется декларативная логика, в процедурах и функциях можно от нее отступать...
зато к процедуре нельзя делать select...
в общем, много нюансов...
Гость
8 - 19.06.2015 - 11:47
Цитата:
Сообщение от Темная сторона Посмотреть сообщение
зато к процедуре нельзя делать select...
Смотря с каким SQL сервером.
---
А megabaxу проще всего взять FireBird + IBExpert и сразу полезть в практику. Потому ка основные принципы просты: использовать справочники, короткие строчки таблиц, не пытаться слепить изощрённый запрос, а писать SP(stored procedure(, UDF.
Гость
9 - 19.06.2015 - 11:49
И самое полещное - ходить на форум в sql.ru


К списку вопросов






Copyright ©, Все права защищены