Web開発のコンテキストで、誰がデータベースを設計しますか?バックエンドのWeb開発者をサーバー側の処理、データモデリングなどに関連付ける情報のホスト全体にもかかわらず、方程式のデータベース設計の側面は神秘的に存在しないようです。
誰が物理データベースを設定するかということではありません。データベースの論理モデルを設計する人、ユーザーストーリーのインタビューを実施して、必要なフィールド、フィールドの仕様などに関する情報を取得することを指します。 。
([〜#〜] proper [〜#〜])データベースの設計は小さな作業ではないことに気づきました(私は読んでいます this 672ページャー)であり、簡単に職業全体になる可能性があります。ただし、インターネットを上下に検索しても、Web開発のコンテキストで誰がこのタスクを処理することが期待できるかについては、驚くほど少ない結果しか得られていません。
あなたの質問は、ウェブアプリだけでなく、データベースバックエンドを使用するあらゆる種類のアプリに関連しています。
私の経験では
ボトムライン:
更新:
DBAには次の3種類があります。
ほとんどのDBAは本番のDBAです。これは、夜間の非常に短い時間に、障害が発生したディスクアレイから失われたデータベースを回復するためです。ただし、設計プロセスには積極的に参加していません。
使用するデータベースの用途によって異なります。
多くのアプリケーション(Webアプリであるかどうかに関係なく)では、データベースはそのアプリケーションの永続ストアとして機能するため、そのアプリケーションに密接に関連付けられています。次に、データベースは概念的にはアプリケーションの一部であるため、一緒に設計されます(そして、他のプログラムがそのデータベースに大幅にアクセスまたは更新しないと仮定します)。ところで、 persistence は、データベース以外の方法で実現できます。プレーンテキストファイル、バイナリファイル(特にインデックス付きファイル [〜#〜] gdbm [〜#〜] )、 git (または他のVCS)リポジトリ、ディレクトリ、またはファイルツリー、rawディスクパーティション、専用ハードウェア(フラッシュなど)、リモートファイルシステム、 チェックポイント テクニック。 1つのアプリケーション用に設計されたデータベースの場合、一般的な取得と更新のパターンに注意し、それらを念頭に置いてデータベーススキーマ(およびインデックス作成)を設計する必要があります。
状況によっては、データベース自体が主要で独立した資産であり、severalさまざまなアプリケーション(および将来のアプリケーション)で使用されるようにアプリオリに設計されています。次に、独立して(そしてより慎重に)設計する必要があります。
特に、一部のWebアプリは既存のデータベースへの単なるWebインターフェイスです。
多くの場合(いくつかのwikiを例として考えます)、データはそれを使用するアプリケーションよりも重要であり、より価値があります。あなたはそれを将来の証拠にして、それを簡単に進化させることができる方法に関心があるかもしれません(たとえば、それをバックアップおよび復元するために、テキストおよび多目的-できれば標準化され、文書化されたフォーマットを使用または定義することによって)。
データベースの(適切な)設計は簡単な作業ではないことに気づきました...
NoSQL 、 ドキュメント指向のデータベース 、 Key-Valueデータベース 、 知識管理 、 知識表現と推論 、 オントロジー 、 専門家システム 、 ビジネスルールアプローチ 、 [〜#〜] erp [〜 #〜] 、 [〜#〜] cms [〜#〜] 。 [〜#〜] redis [〜#〜] 、 MongoDB などの使用を検討してください。