■ システム変数
DESC
システム変数とはSQL サーバの挙動を設定するための各種パラメータのこと。
設定は設定ファイル(my.ini)に記述することで行う。
// 現在の設定をみる
show variables;
// sjis に変更する -> かわらなかったような
SET @@character_set_results ='sjis';
SET @@character_set_results ='sjis';
[mysql]
default-character-set=utf8
となっているのを、
[mysql]
#default-character-set=utf8
default-character-set=sjis
■ Erorr
log_error : エラーログファイルパス ( c:/ProgramData/MySQL/MySQL Server 5.5/data/ )
log_warnings : 警告ログを出すか?
■ 実行中のスレッド
■ スレーブホストの一覧をみる
■ DB.とは
DESC
使い方ではなくて、DB の考え方の説明です
■ DB.から学べる.Computer.基礎知識
DESC
data を記述するための data ( meta Data )
Computer とはそもそも data 処理をするための道具
■ DB
DESC
// Table は Record の集合
[Table]
[Record]
[Record]
[Record]
[Record]
// Record は Column の集合
[Record]
[Column][Column][Column][Column][Column]
DBMS とは DB を管理する Soft( Service )
KEY は table間の relationship を向上するもの.
index は data 検索を向上させるもの.
Record を一意に識別可能な field を PrimaryKey という
外部KEY とは他tableの主KEY のこと
( 外部KEY によって Relationship が構成される )
■ DBとはデータの貯蔵庫
DESC
data を一箇所に集めるることで, 検索 SPEED があがる
data を蓄積するために, 伝票, 名刺に必要な情報をまとめる
-> 構造体 | Record
-> ここでどんな構造体がくるかわからないから,
metadata が必要になります
DB のわかりやすいたとえとして, [ 住所録 Application ]
■ relationDB.で.DRY.原則を守る
DESC
問題は 複数の [ Record が 同一のdata ]を繰り返すこと
// 墨田区 の名前が変更されたら, すべて変更しないといけない
//
住所録 DB
田中 | 墨田区 | ...
佐藤 | 墨田区 | ...
A | 中央区 | ...
B | 中央区 | ...
C | 千代田区 | ...
区Table を別管理して参照させる
墨田 -------- 田中
中央 |
千代田 ---- 佐藤
■ DatabaseSystem.の実態は.datafile
DESC
datafile < -> DBMS < -> Application
System の規模に応じて , 構成をかえる
■ 小規模(StandAlone)
DESC
一台のPC に datafile DBMS Application を配置
■ 中規模(File.共有型)
DESC
一台のPCに datafile && 複数のPCに DBMS | Application
■ 大規模(ClientServer.型)
DESC
一台のPCに datafile | DBMS を配置
複数PC Application
■ ServerとClientをWeb経由でするならばWebSystem
DESC
Application も Server に配置して, Application は browser のみ.
■ DB.を設計してみよう
DESC
何が知りたいのかを考えて Data を洗い出してみる( ここ大事です )
■ 個々のData.属性を作成する
* ( data をあらわす data を作成する )
1. Schema という.( どんな情報があるか ? を定義する. )
--------------------------------
酒屋 DB
--------------------------------
Filed name:商品 : 型 string
Filed name:顧客 : 型 string
Filed name:単価 : 型 数値
Filed name:売上数 : 型 数値
■ データの重複をなくそう
DESC
DB の中に同じ data がないかチェックする
Relational DB とは table を分割して, 情報を重複を防ぐこと.
ie. 参照にするだけ
// 同じ data を繰り返し入力する必要がある.
-----------------------
酒屋 DB
-----------------------
商品名: 単価 顧客
ウィスキー 2000 A
ウィスキー 2000 B
日本酒 1000 A
■ Table.間を.LINK.するための.KEY.を.Field.に追加する
DESC
Primary KEY : record を特定する uniq 値
-> XXX_ID という Field名 が一般的
* ForeignKey ( 他Table Record を特定する KEY -> だから外部 )
ポインタみたいなもの
* メタファーとしては 外部 KEY の部分に
他Table Record が埋め込まれるのを想像しよう
売り上げ Table
売り上げID 商品ID 顧客ID 売り上げ数量
0 1 3 10
■ Dataの検索SpeedをあげるためにIndexを利用してみる
DESC
1. Tableの各 field に index つけをする.
メタファーとしては 本の索引. glBegin < -> P315
1. Index Table
Field値 , record 場所.
-> 代表となる(_KW_: ) で情報をひくのが Point
■ つくる手順
DESC
DB を設計する
DBMS を操作する Application ( usr interface )作成する
■ SQL(StructuredQueryLanguage)とは.DBMS.に命令を与える言語
DESC
SELECT : Refer
Update
Insert
SELECT
// 取得したい Field
顧客名, 住所, 電話番号, 商品名, 単価, 売上数量
// Table
FROM 顧客Table, 商品Table, 売上Table
// 条件指定 AND == &&
WHERE 顧客Table.顧客名 = "やまだたろう"
AND 売上Table.顧客ID = 顧客Table.顧客ID
使い道としては
Asset ( Version ) 管理をするために, SQL Server をたてる
***** Transaction.制御も.DBMS.にまかせる
DESC
Transaction とは 複数の SQL 文
BEGIN_TRANSACTION SQL... COMMIT
Trouble が発生した場合は Rollback 処理をする
-> ここまでしてくれるから DB を使う意味がある!
■ FAQ
DESC
困ったときはこちら
■ SQL.でうまく動作しなくなったら.reset.するのがよいかも
DESC
何か 新規で file を追加しただけで, 動作しなくなった
■ Tomcat.のログを見る
DESC
トラブルにあったときは, 以下に log がのこる
Java の Program らしい
ので JRE の ReInstall などで 実行できなくなると
サービス開始時に落ちる
[2010-04-06 10:01:51] [info] Error occurred during initialization of VM
[2010-04-06 10:01:51] [info] java/lang/NoClassDefFoundError
[2010-04-06 10:01:51] [info] : java/lang/Object
[2010-04-06 10:10:40] [info] Procrun (2.0.4.0) started
[2010-04-06 10:10:40] [info] Running Service...
[2010-04-06 10:10:40] [info] Starting service...
■ 次のサービスを.Reboot.すると正しく動作するらしい
DESC
SQL Server (SQLEXPRESS)
* なんか 2 table を merge できるらしい
-> しかも 更新日時 が新しい方にとか
google の検索 page もこちらになるらしい
mosi local におとして, parse すると perl などですると
相当負担がかかるらしい