誰がウェブ開発でデータベースを設計していますか?[閉まっている]


10

Web開発のコンテキストで、誰がデータベースを設計しますか?バックエンドのWeb開発者をサーバー側の処理、データモデリングなどに関連付ける情報のホスト全体にもかかわらず、方程式のデータベース設計の側面は神秘的に存在しないようです。

誰が物理データベースをセットアップするかについては言及していません。データベースの論理モデルを設計し、ユーザーストーリーのインタビューを実施して、必要なフィールド、フィールド仕様などについての情報を入手する人について言及しています。 。

データベースの(PROPER)設計は簡単な作業ではなく(私はこの 672ページャーを読んでいます)、簡単に職業全体になる可能性があることに気付きました。ただし、インターネットを上下に検索しても、Web開発のコンテキストで誰がこのタスクを処理することが予想されるかについては、驚くほど少ない結果しか得られていません。


2
それは、組織と使用する部門と構造に非常に依存しています。私の経験では、通常、バックエンドの開発者/ソリューションアーキテクトであり、データベース部門がある場合は、DBAまたは特定のデータベース開発者に関連しています。
Allan S. Hansen

what those field specifications areあなたのプロジェクトがスペックを持っている場合、あなたはあなたの中のモデルを識別することができるはずです。
Walfrat

1
最近では、使用しているフレームワークがデータベースの設計に影響を与えています。
Pieter B

回答:


17

あなたの質問は、ウェブアプリだけでなく、データベースバックエンドを使用するあらゆる種類のアプリに関連しています。

私の経験では

  • データベースの設計は、開発者とDBAの共同作業です。
  • 開発者は、大まかな、または多くの場合非常に優れたデータベース設計を行います。それはすべて、プログラマーの経験に依存します。
  • 多くの場合、開発者は開発データベースにテーブルを作成し、そこから概念モデルがリバースエンジニアリングされます。
  • 多くの場合、概念的なERダイアグラムは他のチームメンバー、多くの場合クライアントと話し合います。この段階で、明らかな概念上のエラーが検出され、うまくいけば、解決されます。
  • DBAの仕事は、そのような設計をレビューし、通常のフォームの違反を検出するように微調整することです。
  • また、DBAはテーブルと列の命名規則を実施します
  • また、DBAは考えられるパフォーマンスのボトルネックを想定し、後で適切なインデックスを作成するためにデータがどのようにクエリされるかを理解しようとします。
  • 開発者/アプリデザイナーとDBAの間の改訂/チェック/修正サイクルは、モデルが物理モデルを生成するのに十分成熟するまで、いくつかの反復を経ます。
  • 通常、データベース設計ツールは、このプロセスを支援するために非常に小さなデータベースを除くすべてで使用されます。

結論:

  • 開発者はDBAよりもビジネスと問題の領域をよく理解しているため、初期設計のほとんどを行い、開発者の経験によっては、このような設計は最終設計に非常に近い場合があります。
  • DBAの役割は、ほとんどの場合、NF、命名規則、パフォーマンスの考慮事項を確認し、明らかなエラーを修正し、最後に物理モデルを生成し、次にデータベース固有のスクリプトを生成して、これらを実行してデータベースを作成することです。
  • 80%の開発者と要件分析作業と20%のDBA作業だと思います。

更新:

DBAには次の3種類があります。

  • データモデリングを理解し、SQLの専門家であり、ストアドプロシージャを記述できる開発DBAは、通常、以前の開発者です。
  • インストール、パフォーマンス調整、バックアップ、復元などを専門とする運用DBA
  • そして、これらすべてのことを実行してきたため、ほとんどが実行できる(すべてはない)DBAは、ほとんど実行できます(ごくわずかです)。

ほとんどのDBAは本番DBAです。これは、夜間の非常に短い時間に、障害が発生したディスクアレイから失われたデータベースを回復するためです。ただし、設計プロセスには積極的に参加していません。


2
これは、あなたがそれを行うことができるDBAを持っていることを考慮しています。
Walfrat 2016

2
@Walfratあなたは正しいです。DBAには3種類あります。現在データモデリングを行っており、SQLの専門家であり、ストアドプロシージャを記述できる開発DBAです。インストール、パフォーマンスチューニング、バックアップと復元などを専門とする本番DBA、およびこれらすべてのことを実行してきたすべての業務を担当するDBAなどが、ほとんどの場合に実行できます。悲しいことに、ほとんどのDBAは実動DBAのみです。
TulainsCórdova16年

9
ショップが小さすぎて一部の開発者がデータベースを側で保守している「DBAに余裕がない」を忘れた。それも非常に一般的です。
Sebastian Redl

1
「NF」は何の略ですか?
BЈовић

1
通常の形式。ウィキペディアも参照してください。
フリーク

4

使用するデータベースの用途によって異なります。

多くのアプリケーション(Webアプリであるかどうかに関係なく)では、データベースはそのアプリケーションの永続ストアとして機能するため、そのアプリケーションに密接に関連付けられています。次に、データベースは概念的にはアプリケーションの一部なので、一緒に設計されます(そして、他のプログラムがそのデータベースに大幅にアクセスしたり更新したりしないと想定しています)。ちなみに、永続化は、データベース以外の手段、たとえばプレーンテキストファイル、バイナリファイル(特にGDBMのインデックスファイル)、git(または他のVCS)リポジトリ、ディレクトリまたはファイルツリー、ローディスクパーティション、専用ハードウェア(例:フラッシュ)、リモートファイルシステム、チェックポイントテクニック。1つのアプリケーション用に設計されたデータベースの場合、一般的な取得と更新のパターンに注意し、それらを念頭に置いてデータベーススキーマ(およびインデックス作成!)を設計する必要があります。

状況によっては、データベースはそれ自体が主要かつ独立した資産であり、いくつかの異なるアプリケーション(さらには将来のアプリケーション)で使用されるようにアプリオリに設計されいます。次に、独立して(そしてより注意深く)設計する必要があります。

特に、一部のWebアプリは、既存のデータベースへの単なるWebインターフェイスです。

多くの場合(例としてwikiを考えます)、データはそれを使用するアプリケーションよりも重要であり、より価値があります。あなたはそれを将来の証拠にして、それを簡単に進化させることができる方法に関心があるかもしれません(たとえば、それをバックアップおよび復元するために、テキストおよび多目的-できれば標準化され、文書化されたフォーマットを使用または定義することによって)。

データベースの(適切な)設計は簡単な作業ではないことに気づきました...

NoSQLドキュメント指向データベースキーバリューデータベース知識管理知識表現と推論オントロジーエキスパートシステムビジネスルールアプローチERPCMSについてもお読みください。おそらくREDISMongoDBなどの使用を検討してください


わからない。私はそれをしませんでした。最後のいくつかのリンクをありがとう!
the_endian 2016

私見、最初の段落のリンクも読む価値があります。
Basile Starynkevitch

ええ、なぜなのかはわかりませんが、この内容は、開発者コースでは可能な範囲で「カバー」されていないようです。Web開発の世界で深刻なデータベースハックジョブが発生していると私が確信するところまで。彼らはあなたにDBMSの使い方を教えますが、ここで話したことについてはそれほどではありません。
the_endian 2016

@TeeSee断言できます。データベースで深刻なハックジョブが行われているのは、ウェブ開発だけではありません。しかし、はい、一般にビジネス上の理由から、初期費用を
低く
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.