データベース(DB)

  1. データベース入門


    1. データベースとは

       データベースは大量のデータを効率的に保存記録する「基地」となります。

    2. データベースの構成

      データベースは実際にデータを効率的に記録する部分と、データベース操作言語に指定によりデータベースを操作する部分から構成されます。


  2. データベースの構成法


    1. カード型データベース

      図書カードや名刺などのカードを一つのデータと考えて、管理します。小型のデータベースに良く利用されます。



    2. 階層型データベース
      データを下位層関係で整理して保存します。ツリー型データベースとも呼ばれます。効率的な操作が出来ますが、柔軟な処理が出来ない場合があります。



    3. ネットワーク型

       データを網目(ネット)状に管理します。階層型より柔軟な構造が可能ですが、管理やプログラムが複雑になります。



    4. リレーショナルモデル

       現在主流のモデルで、複数の表を用いたデータを表現します。1970年IBMのコッドらにより提唱されました。Excellなどの表処理システムはメモリを用いた小規模な関係モデルです。



  3. 関係モデル


    1. 関係モデル

      関係モデルは、データを表の形式で表現する方式で、現在、最もよく利用されている方式です。よく利用される表計算ソフト「エクセル」の表現形式も表形式です。

    2. 主キー

      表の各行がひとつのデータになりますが、各行のデータを他の行と区別するデータが必要です。これを主キーと呼びます。会社で注文を記録するとき、伝票の番号が主キーになります。
       主キーは複数の項目の組み合わせで決定される場合もあります。

    3. 正規形


      1. 第一正規形
         ひとつの行に不定個数繰り返し現れる項目は、別の行に記録するほうが安全です。たとえば、注文伝票で、商品名と個数などの情報は、同じ行に繰り返すのでなく、別の行で指定します。

        たとえば、
         伝票番号 商品1 商品1個数 商品2 商品2個数 商品3 商品3個数
        のような、表は
         伝票番号 商品 商品個数
        の複数の行で構成します。このような、繰り返しを削除された表を、第一正規形と呼びます。

      2. 第二正規形
         表のなかのある項目の値が定まると、他の項目の値が定まる場合があります。これを関数従属と呼びます。主キーが複数の項目から構成され、主キーの一部に関数従属する項目があるばあい、その項目を別の表に移動した表を、第二正規形 といいます。
         たとえば、
         日付 注文企業番号 注文企業名 商品名 
        のようなデータがあり、主キーは日付、伝票番号とします。この場合、注文企業名は主キーの一部の注文企業番号に関数従属します。したがって、
         日付 注文企業番号 商品名 

         注文企業番号 注文企業名 
        の二つの表に分割します。

      3. 第三正規形
         主キーでなく、特定の項目に関数従属した項目も存在します。
        例えば、
         日付 注文企業番号 商品コード 商品名 
        のような表があるばあい、商品名は商品コードに関数従属します。このような場合、主キー以外からも関数従属を取り除いた表を 第三正規形 といいます。例の場合、
         日付 注文企業番号 商品コード
        と、
         商品コード 商品名
        の二つの表に分割します。

    4. SQLコマンド

       データベースを定義する、値を挿入する、検索する、などの処理は、標準化された言語で記述することができそうです。このデータベース操作言語として広く採用されている形式が SQL 言語です。
       この SQL を利用しますと、プログラム言語は異なっても、SQL での処理は同じになり、データベースがわでは、SQL 似たいする処理を実現すれば、SQL に対応したプログラム言語から利用可能になります。

    5. SQLとAPI

       JavaやC、Perl などの言語に対し、データベースに接続し SQLコマンド を発行するプログラム群を API(ライブラリ)とか、ドライバといいます。
       データベースに対し、この、ドライバやAPIが利用できれば、プログラムからデータベースの操作が可能になります。

  4. ネットワークとDBの実現


    1. サーバー&クライアントモデル

       SQLコマンドをネットワークを介して送ることができれば、遠隔地からデータベースを直接利用できます。ネットワークからSQLコマンドを受け取りデータを処理する側をサーバー、サーバーにデータベース操作を依頼する側をクライアントといいます。

    2. MySQLシステム

       MySQLは Michael Widenius 氏によって開発されたデータベースサーバーです。webと連携し大量のデータを記録検索する目的で開発されました。

    3. MySQLのライセンス

       MySQLは GPL(General Public License) で提供されます。利用したソフトのソースを完全に公開する場合、GPLライセンスとして、無償で利用できます。完全公開をしない場合、コマーシャルライセンスを購入する必要があります。
       非営利組織がGPLライセンスでアプリケーションを公開する場合、サーバー・利用者はMySQLを無償で利用することが可能です、
      詳細は以下を参照して下さい。
       http://www.softagency.co.jp/order/index.html

    4. MySQLのドキュメント

      MySQLの詳細なマニュアルは、
       http://dev.mysql.com/doc/mysql/ja/index.html
      にあります。ここでは、その一部を紹介します。

  5. MYSQLのインストール


    1. ファイルの入手

      mysql-3.23.55-win.zip を取得し、解答します。これで、setupが可能になります。インストール先は、mysqlフォルダが標準で、これ以外に配置する場合、\winnt\my.ini ファイルへの設定が必要です。

    2. サーバーの起動

      サーバーとクライアントを1台のマシンで実行できます。mysql.bin にある mysqld がサーバー(デーモン)です。コンソールから次のコマンドを、サーバーにおくり起動します。
       >mysqld --standalone
      あるいは、winmysqladmin.exeを実行します。最初の実行の場合、利用者名とパスワードの入力が求められます。コマンドバーに信号機のロゴが現れ、緑のランプが点灯すると、起動しています。

    3. 終了

      終了するには、別のコンソールから
       >mysqladmin -p shutdown
      を実行します。-pはパスワードを指定することを意味します。サーバーからパスワードんpプロンプトがあります。
       あるいは、信号機のロゴを右クリックし、StopTheServiceを実行します。

    4. クライアント

       クライアントは,匿名ユーザにパスワードが設定されていない場合、
       >musql -u 利用者名 -p
      で起動し,サーバーに接続します。パスワードの入力が求められます。ログインできるとプロンプトが
       mysql>
      に変わります。パスワードが設定されている場合
       利用者名、パスワードが不明の場合、システムフォルダ my.ini を削除すると、新規の設定ができます。