2017年2月28日火曜日

VS プログラム作成とデータベース設計

プログラム作成とデータベース設計 と言う観点で、
Visual Studio から SQL Server 等のスキーマを煮詰めて行く時の事を考えます。
いえ、 少しでも、楽をするには、どうするか? ですね。
プログラム言語と T-SQL 言語の 狭間 で 右往左往 する or していた 私。


プログラムを書く上で、データベースは重宝します。
でも、 その道の専門家 がいらしゃる様に、 その世界は 奥が深い です。
DOS 時代の RDBMS ( Relational Database Management System ) を少し齧った身としては、
その触りくらいは知っている心算です。

さて、データベースを利用したプログラムって、 詰まる処、 そのフロントエンドな訳です。
一番、簡単にデータベースを弄るなら、
例えば、極端ですが、
開発環境やデータベース・エンジンが提供するツールを使って、
設計したり、データを入れたり、検索すれば、(クエリを実行させれば)、 済む訳です。
そう、 データベース・エンジンを直接的に操作して、
変更やデータ操作をする事が、シンプルで内容も理解出来ます。
でも、 開発段階ならまだしも、実際の運用で それ は 厳しい ですね。
と言うか、 少しでも、楽をする為に、手作業のミスを減らす為に、 プログラムを書くのですよね。

そう言う立ち位置で、少し、書いて見ます。


大体、データベースを使う時って、その項目が多岐に渡り複雑な場合が多いと思います。
ですから、 ちょっとした 思い付き で、プログラムを書き出す方は少ないのではないでしょうか?。

色々な事を考えて、充分に配慮した上で、
データベース設計に取り掛かるのが王道ですね。
その上で、 それを操作する プログラム を書く のですよね。

それでも、 プログラムを書いていると、 データベース構造を弄る羽目になります。
考えていた事を現実にするには、どうも、当初の目論見では上手く行かない、と。

でも、データベース設計あっての プログラム です。
柔軟に開発環境が追従してくれる程は こなれた ものには、まだ、なっていません。
最近の Entity Framework では、随分、楽になって来ていますが、
それでも、自由自在に、データベース構造を気軽に弄り廻す のは ... 。
ましてや、DataSet & DataTable の時代は、言わずもがな です。
懲りています。


データ構造に手を入れたばかりに、 プログラムがぐちゃぐちゃ。
データベースは壊れるわ!、 IDE は悲鳴を上げるわ!、 酷いと、にっちもさっちも行かない状況に追い込まれたり ... 。
  あ~、 これなら、全て、データベースにパラメータ付きクエリを放り込む形式のものの方が被害が少ないかも。
  いっその事、何もかも ... 。
  あっ、 冗談です。.


今迄は、 紙に書いたデータベース設計書もどき! を元に、
Visual Studio の IDE で対話的に作業をしていました。
そう、 データベース構造を弄る時も です。
そうです、 すごろく で 最初のコマに戻る 時の様に。

でも、 楽出来る方法 があったのですね!。

  そうです。  昨年 、 sqlce (.sdf) から sql (.mdf) に乗り換える 投稿を書いた時の あれ です。
  その時に、 気付けば良かった!。

作業経過を残すのです。.
クエリやスクリプトとして。.

以下の様な 操作 をファイルで取って置くのです。

  作成 Create 
  制約 Contrant
  相関 Relation
  挿入 Data  ( for Test / Case Study ? )
  削除 DeleteDate ( for Test )
  削除 DeleteTables

データ構造の変更時には、
これらのファイルを編集して実行する事で、
少しは、少しは、楽が出来ますね。
挿入時のフィールド(列)は * を使わず、 必ず、名称で全て書くのが 原則。
    幾つか毎に改行を入れ、どのフィールド(列)のデータか判別し易い様に工夫を。

何も、最初から、T-SQLで書く必要はありません。
ある程度迄は、GUI で操作し、 その結果を スクリプト化すれは良いのです。
つまり、 今動いている状態を再現させるべく、 ファイルに残すのです。


プログラミングの途中は、何が起こるか分かりません。
Project を白紙に戻して(破棄して)、 新たに、作り直すケースも多いです。
試行錯誤を繰り返す。
そんな時の為に、 Project 内では無く、外部 (若しくは バックアップした Project) から、
再スタートが可能な様な配慮も必要です。
  破棄した Project にしか、これらのものが無ければ、 意味を成しませんから。
そんな場合、 これらのファイルがあれば重宝します。
実際に、 VS の IDE は、ファイル作成時に その保存場所 を 尋ねる様なロジックになっています。
つまり、別に保存しなさい と言う事なのでしょう。
あっ、 各 Query 文の最後に 改行 GO をお忘れなく!。
そうすれば、複数の Query をひとつに纏められます。

これらのクエリを手直しし、実行すれば、 簡単に、元環境を修繕した 状態 に復帰出来る!。


勿論、最初に、完璧なデータベース設計が出来ていれば、この様な配慮は 不毛 ですが ... 。


  

0 件のコメント:

コメントを投稿