2016-07-21 3 views
0

Я фактически пишу свой Bachelorthesis и сделал обновление ER-модели для базы данных на основе материала, который мне нужен для реализации.ER-модель для базы данных, основанная на триггерах

Моя следующая проблема заключается в том, что база данных в моей компании в основном основана на триггерах, и нет реальной ER-модели, которую я мог бы использовать. Возможно ли создать ER-модель на базе базы данных, которая в значительной степени использует только триггер для взаимодействия с таблицами внутри? Внешних ключей почти нет.

Спасибо за ваши ответы,

Приветствия

+1

Еще одна причина добавить к списку [причины не использовать хранимые процедуры] (http://stackoverflow.com/a/6369030/256196) – Bohemian

+0

Да, у вас там есть точка ... :) –

+0

Я был плохо шрамы, построив всю бизнес-логику компании в SP (по общему признанию, не так много триггеров) - и это был весь мой дизайн! Это сработало, но эй ... никогда больше. Я также возглавляю (технически и политически) общую переписку с помощью кода приложения. Использование БД для не-БД - это безумие. Это сводится к следующему: только потому, что вы * можете * что-то делать с помощью определенного программного обеспечения, не означает, что вам нужно. – Bohemian

ответ

0

база данных [находится] на основе триггеров и нет никакого фактического ER-модели, которые я мог бы использовать ....

Есть почти никаких внешних ключей.

Должен сказать, что звучит так, как будто вы плохо осведомлены. У вас есть академический проект, дизайн которого не использует обычные внешние ключи и который не может быть смоделирован с диаграммой отношений сущностей?

только с помощью триггера для взаимодействия с таблицами

Триггеры были изобретены до того DRI был определен в стандарте SQL. IIRC, они были изобретены Sybase примерно в 1986 году. Если их использование ограничивается применением ограничений ссылочной целостности - как и должно быть - они будут использоваться сдержанно. В большинстве случаев применение RI с момента появления SQL-92 легко и желательно предоставляется декларативно в схеме базы данных. Триггеры сегодня правильно воспринимаются как устаревшие и экзотические: в значительной степени заменяются DRI, и иногда полезны в качестве обходного пути в странных ситуациях.

Может ли взаимодействие базы данных только через триггеры? Тривиально, нет. Триггер не может вставлять новые данные. Без смешных поворотов триггер не может выбрать данные, которые будут возвращены в приложение. Но в любом случае это едва база данных дизайн вопрос: наблюдения сохраняются независимо от соответствующих таблиц.

+0

Вау прежде всего, спасибо за ваш ответ. Я обсуждал проблему с некоторыми другими разработчиками в компании и сделал другой подход к проблеме. Тем не менее спасибо за ваш ответ! :) –