2011-02-08 5 views
1

私が取り組んでいる小さなプロジェクト用のデータベースを設計しようとしています。最終的に、私はそれをウェブアプリにしたいと思いますが、今はデータをオフラインで実験するだけでいいです。しかし、私は交差点に立ち往生しています。データベースを使って、オンラインで開発すること

基本的な考え方は、データベース内のものと比較される10個のフィールドの値を入力し、各アイテムは重み付けされた値を持ちます。私はそれをコード化する場合、各フィールドのルックアップテーブルを使用して値を追加し、その結果をエンドユーザーに表示できることを知っています。

もう1つの例では、2つのポイント間の距離を取得する必要があります。各ポイントは1つの行に格納され、X値はY値とともに独自の列を取得します。

ここで、データベース内にデータを格納する場合、クエリ内ですべてを実行するか(一時テーブルを含むと思われる)、単純なクエリを使用してアプリケーションコード内で返された行を操作します?

今、私は後者(アプリケーション内のデータを操作する)に行き、クエリを使用して並べ替えが必要なデータ量を減らすことを考えています。あなたは何をお勧めしますか?

編集:現在、私はMicrosoft Accessを使用して基本的なパターンを得て、良い設計をしようとしています。 IIRCでOracleとMySQLを使用した経験があれば、バッチ処理でコマンドを実行して1つの結果しか返すことはできません。しかし、あなたがAccessでそれを行うことができるかどうかは分かりません。

答えて

2

データベースを使用している場合は、SQLを使用してすべての操作を行うことを強くお勧めします。 SQLは、命令型プログラミング言語と比較して、この種の仕事にはるかに強力で強力です。

もちろん、宣言的なスタイルでデータを「セット」やプログラミングとして考えるのは簡単です。しかし、SQLを使いこなすのに時間を費やし、SQLを使ってデータを操作すると、長期的には大きな時間を費やすことになります。このプロジェクトだけでなく将来のプロジェクトにも使用できます。ストアドプロシージャは、システムの残りの部分に影響を与えずにテーブルデザインを時間の経過とともに変更できるようにする、美しい抽象レイヤーを提供するため、コード内のクエリに対するストアドプロシージャを使用することをお勧めします。

データベースの使用と作業の非常に大きな部分は、データモデリング、正規化などを理解することです。他のすべてのものと同様に、それは努力になりますが、長期的にはそれは報われるでしょう。

私はMSSQL Expressのような優れたデータベースを手に入れたときにAccessを使用する理由を尋ねることができますか? MSSQL ExpressからMSSQLまたはSQL Azureへの移行パスは非常にシームレスで、今日(このプロジェクトでは)現在やっていることはすべて、将来のプロジェクトのためのMSSQL Server/SQL Azureに完全に変換されます。

バッチプロセスの実行と1つの結果の取得についての最後の声明は理解できませんが、OracleとMySQLで実行できる場合は、MSSQL Expressでも実行できます。

+0

私は基本的なテストのために自分のPCにアクセスしていますが、SQL ExpressのないVS2008はあります。私はこのプロジェクトで特定のデータベースやプログラミング言語に自分自身を固定したくありません。私はAsp.Netに傾いていますが、何か他のことを行う前に、バックエンドと連携してコアの概念を取得したいと考えています。 –

+1

@Jefferyあなたが言っていることは、Accessは特定のデータベースにあなたを結びつけていないということです。あるいは、MSSQLは特定のプログラミング言語にあなたを結びつけますか?私が言っていることは、より主流となっているデータベースエンジンでは、基本的な概念を簡単に取得して実装できるため、必要に応じて他のデータベースに移行できるということだけです。データベースはプログラミング言語とは何の関係もなく、私はプログラミング言語に言及していないと信じています(あなたもそうでなかったので) –

+0

有効な点。私はVisual Studio Expressの最新バージョンを今すぐダウンロードしています。 –

0

シブが言った、とも...

良いDBMSは、その中に固体工学のかなりを持っています。特に慎重に設計された2つのコンポーネント、つまりクエリオプティマイザとトランザクションコントローラがあります。 DBMSを愚かなテーブル検索ツールとして使用するという見解を採用すると、おそらくアプリケーション内で独自のオプティマイザとトランザクションコントローラを発明することになります。複数の同時ユーザーをサポートする環境に移動するまで、トランザクションコントローラは必要ありません。

あなたのエンジニアリングの才能が格別なものでなければ、あなたはたぶん優れたDBMSのものほど良くない自家製のデータ管理システムで終わるでしょう。

SQLの学習曲線は急峻です。複数のテーブルからデータを結合し、プロジェクトし、制限するクエリのフレーズを指定する方法を学ぶ必要があります。トランザクションのコンテキストで更新を処理する方法を学ぶ必要があります。

シンプルで健全なテーブルデザインとインデックスデザインを学ぶ必要があります。これには、データ正規化とデータモデリングが含まれますが、これに限定されません。また、最適な最適化と優れたトランザクション制御を備えたDBMSが必要です。

学習曲線は急峻です。しかし、トップからの景色は登る価値がある。

+0

私はこれまでにいくつかのデータベースを使っていましたが、私は正規化の基礎を知っています。しかし、私は「入力したクエリを実行して宿題に回答するための結果を貼り付け」からWebアプリを作成する最良の方法を見つけようとすることに移行しようとしています。私はストアドプロシージャなど、それらのコンセプトを知っていますが、それはあなたが笑の周りのガイドなしでそれを最初から作成しているときとは異なります –

関連する問題