MySQL

こんな具合にデータを入力していっています。とりあえず僕個人のデータのみ入力し、

SQLとJSPの連携を確認しようという段階です。

データベース論理設計


1. データ項目を洗い出し、概要ERモデル図の各エンティティに対応するようにグループ化する。

2. E.F.Coddの第三正規形に基づいてテーブルの正規化を行い、キーに着目して統合化する。

3. 正規化および統合化により得られた概要ERモデル図と突き合わせて、修正が必要であれば行う。


■インスタンス洗い出し

学生ID

入学年度

氏名

自宅郵便番号

自宅住所

自宅電話番号

携帯電話番号

帰省先郵便番号

帰省先住所

帰省先電話番号

大学メールアドレス

携帯メールアドレス

顔写真

内定先企業

研究テーマ

学年ホームページ

個人ゼミ専用ブログURL


■グループ化

学生

学生ID

入学年度

氏名

自宅郵便番号

自宅住所

自宅電話番号

携帯電話番号

帰省先郵便番号

帰省先住所

帰省先電話番号

大学メールアドレス

携帯メールアドレス

顔写真

研究テーマ

学年ホームページ


内定先企業

企業コード

企業名


■正規化

入学年度が決まれば、学年ホームページも決定される、つまり従属関係にあるので、新たなテーブルとして学年別項目を置く。


学生
学生ID

入学年度

氏名

自宅郵便番号

自宅住所

自宅電話番号

携帯電話番号

帰省先郵便番号

帰省先住所

帰省先電話番号

大学メールアドレス

携帯メールアドレス

顔写真

研究テーマ


内定先企業

企業コード

企業名


年度別項目

入学年度

学年ホームページ


ER図の作成:
■ER図

ER図

■問題点の解決法

ゼミを途中でやめた人、ゼミの単位を落とした人、中途退学した人、留年した人など不確定要素をどのように扱うべきか。


もう1つ「ゼミ生状態(仮)」というエンティティを作成し、コード1が「在籍」、コード2が「単位落とす」、コード3が「中途退学」、コード5が「留年」と付け加えるのというのはどうでしょうか?一度皆の意見を聞いてみたいです。よろしくお願いします。

ER2

データベース概念設計


概念設計の手順

1. 対象となる業務および機能を定義し、それらの関係や流れを体系的に表現する。

2. 業務の管理対象となるエンティティを抽出し、キーや主要なデータ項目を定義する。

3. エンティティ同士の関係を表した概要をER図を作成することにより、概念データモデルを表現する。


目的:

目的:卒業後永続的にゼミ生が使用できるゼミ生情報システムの構築


機能:
個人情報登録
個人情報閲覧
個人情報変更


ユースケース図


問題点:

ゼミを途中でやめた人、ゼミの単位を落とした人、中途退学した人、留年した人など不確定要素をどのように扱うべきか。


エンティティの抽出:

■エンティティ

ゼミ生

学生ID

入学年度

氏名

自宅郵便番号

自宅住所

顔写真


内定先企業

企業コード

内定先企業

ER


先週3人で調べてくる内容を分担することを決めました。

僕はデータベース担当ということで、MySQLについての解説本を参考にしています。


田中 ナルミ, 阿部 忠光, ソフトエージェンシー
標準MySQL―RDBの理解からWebアプリケーションの開発と運用まで

ゼミ生データを入力しました。

DB名:takaizemi_db

テーブル名:member

カラム名:ID, NAME, ADDRESS, TEL, Email, Mmail(携帯メールアドレス)

◆ゼミ生情報登録システム

メールアドレス・個人情報の登録
WEBからゼミ生の個人情報を登録することで、メーリングリストなどを利用して、
登録者に自動的にメールが送信されるようなシステム。

機能:
個人情報登録
個人情報閲覧
個人情報変更


ユースケース図

DBサーバ:MySQL
WEBサーバ:Apache
使用言語:Java(サーバサイド)
OS:Linux?Windows?

XML?

◆Tomcatのインストール

JSPコンテナTomcatのインストーラjakarta-tomcat-5.5.4.exeを入手します 。
入手したインストールファイルからインストールを開始します。
Tomcatを起動します 。
Tomcatの正常インストールを確認

  http://(コンピュータ名またはIPアドレス):8080/
  または

  http://localhost:8080/

  以下のように表示されたことを確認しました。

Tomcat


◆Apacheのインストール

Apacheのインストーラapache_2.0.45-win32-x86-no_ssl.msiを入手します。

入手したインストールファイルからインストールを開始します。

Apacheが正常にインストールされたことを確認します。

  http://(コンピュータ名またはIPアドレス)/
  または
  http://localhost/

  以下のように表示されたことを確認しました。

Apache


◆ApacheとTomcatの連携


まずApacheとTomcatとを連携するにはコネクタというモジュールが必要です。

そこで、mod_jk2というモジュールを使用することにします。

mod_jk2.soを移動します。

  jakarta-tomcat-connectors-jk2.0.4-win32-apache2.0.49.zipダウンロードし、を解凍します。

  解凍後にできるmodulesフォルダに格納されているmod_jk2.soをApacheインストールフォルダ直下のmodulesフォルダに移動します。

Apache設定ファイルhttpd.confを編集します。

  以下の内容をApacheインストールフォルダ直下のconf/httpd.conf末尾に追記します。

  LoadModule jk2_module modules/mod_jk2.so

workerを設定します。

  mod_jk2の接続設定をworkers2.propertiesというファイルに記述します。
以下の内容をworkers2.propertiesというファイル名で作成後、Apacheインストールフォルダ配下のconfフォルダに保存します。

  [status:]
  [uri:/jkstatus/*]
  group=status:
  [shm:]
  disabled=1
  [channel.socket:localhost:8009]
  [ajp13:]
  [uri:/tomcat-docs/*]    


TomcatとApacheを再起動します。

  ※設定ファイル編集後、Tomcat→Apacheの順番で再起動します。

ApacheとTomcatの連携を確認します。

  http://(コンピュータ名またはIPアドレス)/tomcat-docs/index.html

  または、

  http://localhost/tomcat-docs/index.html
  以下のように表示されることを確認しました。

Connect


◆MySQLのインストール

MySQL 4.1をダウンロードします。
zipを解答し、インストールファイル(Setup.exe)をダブルクリックし、インストール。
MySQLの設定完了。

◆JDBCドライバのインストール

JSP&ServletからMySQLサーバにアクセスするためには、MySQL用のJDBCドライバをインストールしておく必要があります。

mysql-connector-java-3.1.11.zipをhttp://dev.mysql.com/downloads/connector/j/ からダウンロードする。

mysql-connector-java-3.1.11-bin.jar」を「%CATALINA_HOME%\common\lib」フォルダにコピーして、JDBCドライバの設定完了です。

ようやく注文していた書籍2冊が本日自宅に届きました。

しかし「はじめてのJSP&サーブレットプログラミング」の方は、

改訂版ではなく、古いほうの版を買ってしまってました。

TomcatもMySQLも一昔前のバージョン対応の書籍のようです。

やはりもう一度改訂版の方を購入すべきでしょうか。。

きちんと確認しておくべきでした。


卒研の課題は成果物としてはWEBショップのシステムということにしたいと思います。

そこで、データベースに何を入れるべきもの、新技術の導入などの考案をする必要があると思います。

できるだけ早く大まかなアイデアだけでも決定事項はブログにアップしていきたいと考えています。

新技術の導入に関してですが、今の段階での考えていることはただユーザーインターフェースが静止している良くあるWEBサイトよりも、感覚的に買い物ができるような動きのあるサイトができればという理想を持っています。Flashを用いるサイトも珍しくないと思うので悩みどころですが、こまめに雑誌などを参考にヒントを探していけたらと考えています。


とにかく今後下記掲載の書籍の習得に努めていきたいと思っています。

アイティーブースト
はじめてのJSP&サーブレットプログラミング―Tomcat4+MySQL3対応
野矢 茂樹
論理トレーニング

◆変数

プログラムは、データを保存しておく場所を確保しなければなりません。このデータを保存しておく場所を変数という。変数には基本型と参照型という2つのグループわけができる。


基本型

  型 変数名;
  型 変数名 = 初期値;


  例

int a;

int a = 1234; 整数専用の箱

double = 9.87; 少数専用の箱

char = 'A' 文字専用の箱


参照型

  クラス名 変数;


  例

     JFrame frame; クラスのオブジェクト専用の箱

□参照型は後にオブジェクトの変数やメソッドを参照・実行できる。

□オブジェクトの実体は後に、別途記述する。


◆変数のスコープ

変数にはプログラム中の宣言した位置によって、その宣言の有効範囲があります。

これを変数のスコープといいます。


public class クラス名{

変数宣言

□public コンストラクタ(){

変数宣言 →宣言した変数はコンストラクタ内のみ有効

}

□public メソッド名(){

変数宣言


{

変数宣言

}


}

}

     
◆定数

Javaでは、定数として専用の入れ物が無いため、変数に初期値を代入して変更できなくさせれば、定数扱いとみなす。


final 型 変数名 = 初期値(定数値);

final int CONSTANT = 100;


◆配列

配列は、同じ型の変数が組になっているようなもの と考える。

10 20 1000

□ □・・・・・・・・・・・・・・□

a[0]a[1] a[99]


int a[] = new int[3];

□配列の宣言

  ↓添え字

a[0] = 1; →配列要素に値を代入

a[1] = 2;

a[2] = 3;


System.out.println("a[0]の中身は" + a[0] + "です");

System.out.println("a[1]の中身は" + a[1] + "です");

System.out.println("a[2]の中身は" + a[2] + "です");

→a[0]の中身は1です

a[1]の中身は2です

a[2]の中身は3です


◆クラスとオブジェクト
同じ性質とメソッドを持つオブジェクトの集まりをクラスという。

またオブジェクトとは、プログラムが完成したときに、そのプログラムによって表現される

「もの」のことをいう。


例 「電卓」


  クラス:電卓の設計図

  オブジェクト:電卓そのもの

◆プログラミングの基礎

プログラミングの成り立ちについて解説を加えていきます。


/* ウィンドウの表示 */

import java.awt.*;

import javax.swing.*;          

□クラスの宣言

  public class WindowTest {

  □WindowTestクラスの定義

    public static void main(String[] args) {

    □mainメソッドの内容記述

      JFrame frame;

      □JFrameというFrame型を指定

      frame = new JFrame("ウィンドウ表示サンプル");

      □「ウィンドウ表示サンプル」というタイトルのフレームを作成

      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

      □フレームを閉じたとき、アプリケーションが終了するようにする

      Container container = frame.getContentPane();

      □コンテナを作成する。ここに、ボタンなどを載せられる。

      container.setLayout(new FlowLayout());

      □コンテナのレイアウトを設定する

      container.add(new JLabel("Hello, World"));

      □コンテナに「Hello,World」というテキストを持ったラベルを表示

      container.add(new JButton("これはボタンです"));

      □コンテナに「これはボタンです」というテキストを持ったボタンを追加

      frame.setSize(350,200);

      □フレームのサイズを設定する

      frame.setVisible(true);

      □フレームを可視化し、モニター上に表示されるようにする

    }

}


※文(ステートメント)

「;」は文章の終わりを示す。

※ブロック(段落)

{

1行または複数の文;

}

※コメント(注釈)

/* 1行または複数行のコメント */