長い。下部の要約を参照してください。
RDBMS
RDBMSは、リレーショナルデータベース管理システムの略です。リレーショナルデータベースを管理するシステムです。データはそこに保存されます。データ。ビジネスロジックとは言いません。
ビジネスプロセス
ビジネスロジックとはどういう意味ですか?私にとって、それは論理的な用語でのビジネスプロセスの説明です。
プロセスは、定期的に発生するビジネスアクティビティであり、アドホックではなくなります。これらはビジネスごとに異なります。
ここでビジネスの上限を設定し、ビジネスの意味を説明しましょう。ある人にとっては、これは驚きになるかもしれません。
ビジネス
ビジネスは、価値、より具体的には取引可能な価値の創造を達成するために実行される活動の合計です。これは、コンバイン、マグロのサンドイッチ、または銀行サービスの提供を意味します。世界の大部分の国では、非資本主義システムであっても、人々はお金の価値を最大限に引き出したいため、これらの価値ある商品やサービスの異なるプロバイダー間で競争があります。競争は通常、価格、品質、および可用性に依存します。
簡単な迂回:2日間で4000万個のリベットが必要です。通常のベンダーよりも価格がいくら安くても、PayPalアカウントでインターネット上の誰かに注文することはありません。
プロセス知識
ご想像のとおり、この「価値」の実現に関与するプロセスは、ほとんどが経営者の頭の中にあります。その一部は紙の上に置かれ、会社のポリシーと手順として使用されます。その一部は企業顧問の頭の中に住んでいます。その多くは、部門、部門、チームを運営している人々、機械、レジ、オーブン、トラックを運営している人々の頭の中に住んでいます。その小さなサブセットは、ソフトウェアのビジネス要件に基づいて決定され、さらに小さなサブセットはコンピューターシステムに実装されるまでに正確です。
最終的に、コードに表示されるビジネスロジックは、ビジネスを実行するものではなく、ビジネスのアプリケーションを実行するものです。実際の人の中の実際の脳は、実際のビジネスプロセスを保持しており、脳のプロセスがコンピューターのプロセスよりも正確であることを理解するのに問題はありません。余談ですが、ほとんどの企業のポリシーと手順さえあれば、おそらくビジネスを運営できません。非常に多くの場合、これらは非常に不正確ですが、非常に不正確です。
したがって、最終的には、ソフトウェアにコーディングされるのはアプリケーションロジックです。また、データベース管理システムのベンダーが大々的に主張しているため、人々はそれをデータベースに入れたいと考えています。
アプリケーションロジック
私はノーと言います。アプリケーションロジックはアプリケーション内にとどまります。データは非常に正規化された方法でデータベースに格納され、レポートおよびドリルとロールアップおよびピボットとキュービングのためにデータウェアハウスにETLされます。
データ
また、データはアプリケーションよりも長持ちするため、データの正規化作業はアプリケーション固有でなく、ビジネス固有でなく、ビジネス全般である必要があります。状態コードを保存しますか?INCITS 38:2009(http://www.census.gov/geo/www/ansi/statetables.html)を使用する必要があります。これは、ビジネス全体に移植可能であるためです。これにより、複数のアプリケーションがデータを操作しやすくなります。
NoSQL?
テーブルレイアウトからトリガー、ストアドプロシージャ、データ形式に至るまで、アプリケーションのコードの一部としてデータベースを扱う場合、実質的にエンタープライズデータベースを、栄光のあるフラットファイル構造である栄光のBerkleyDBとして使用しています。これは本当に永続化されたリストです。これは基本的にNoSQLが行っていることです。ルートに戻りますが、マルチプロセス、永続的、耐障害性のある方法で実行します。
実際のコード
いいえ、データベースを現在および将来の複数のアプリケーションのデータの共通リポジトリとして扱う必要があります。今、私は私の議論の核心に来ます。ビジネスプロセスは、市場、政治、ファッションの気まぐれによって変化します。非常に多くの場合、コンピューターサイエンスグレードの言語(Java、C#、C ++など)で管理できるコーダーよりも速く変更され、最終的に会計部門またはマーケティング部門のExcelスプレッドシートでVBAで記述されます。(そしてそれが派手なvlookupsで表現できない場合のみ...)
データベースの劣化
データがうまく編成されていれば、データはあまり変化しません。ビジネスロジックは非常に速く変化します。データベースにビジネスロジックを配置することにより、データベースの価値が低下します。これは、データベースがすぐに古くなって不正確になるためです。
概要
ビジネスプロセスはアプリケーション内に存在し、ビジネスプロセスはより頻繁に変化するため、データはアプリケーションよりも長く存続する必要があります。データベースにビジネスロジックを含めると、その寿命と全体的な価値が低下します。
警告
私はdba-ingを共有し、dba.seで答えを読みましたが、正直なところ、彼らが話しているのはデータの整合性の問題とパフォーマンスの問題です。会社のデータに触れる人は、dba、プログラマー、または読み取り/書き込みアクセス権を持つSASシニアアナリストなど、何をしているのかを知っている必要があることに完全に同意します。
また、コーダーがSQLを知っていることを推奨していることにも注意しました。同意する。これはコンピュータープログラミング言語なので、コンピュータープログラマーがそれを知りたくない理由はわかりません。
後で、それについて考えた後
妥協点は、APIを作成し、そのAPIにデータフローを管理させることだと思います。アプリがテーブルに直接接続することを許可できない場合は、少なくともアクセスメカニズムを最新の言語にすることができます。