marunomaruno-memo

marunomaruno-memo

自動採番テーブルの補足

2010年03月26日 | DB
自動採番テーブルの補足
================================================================
■自動採番テーブル

□ 主キー項目などで、自動的に採番したい項目などは、「SERIAL」型
を指定します。なお、SERIAL型は、INTEGER型の数値として扱われます。
INSERTする度に、1ずつ加えられますが、連番を保障するものではあり
ません。

例:

CREATE TABLE sample (
    id SERIAL PRIMARY KEY, 
    data text
);

INSERT INTO sample VALUES(DEFAULT, 'test data1');

INSERT INTO sample(data) VALUES('test data2');

SELECT * FROM sample;
 id |    data
----+------------
  1 | test data1
  2 | test data2
(2 rows)


□ 現在のid列の値を取得する

SERIAL型の実体は、シーケンス・オブジェクトです。
このオブジェクト名は、「\d テーブル名」コマンドで取得できます。

\d sample
                         Table "public.sample"
 Column |  Type   |                      Modifiers
--------+---------+-----------------------------------------------------
 id     | integer | not null default nextval('sample_id_seq'::regclass)
 data   | text    |
Indexes:
    "sample_pkey" PRIMARY KEY, btree (id)

または、「\ds」メタコマンドで、シーケンスの一覧が表示できます。

\ds
              List of relations
 Schema |     Name      |   Type   |  Owner
--------+---------------+----------+----------
 public | sample_id_seq | sequence | postgres
(1 row)

SERIAL型の実体のシーケンス名は、
「テーブル名_列名_seq」
になっています。

現在の値を取得するのは、CURRVAL関数を使います。

SELECT CURRVAL('sample_id_seq');
 currval
---------
       2
(1 row)

また、つぎにどの値が取得されるかは、NEXTVAL関数を使います。

select NEXTVAL('sample_id_seq');
 nextval
---------
       3
(1 row)

ただ、このとき、注意しないといけないのは、シーケンスにNEXTVAL関
数でアクセスすることで、値が更新される、ということです。単に、次
の値を予想したい場合は、CURRVAL関数の結果に1を加えたもので使うと
よいです。ただし、シーケンスは連番を保障していないので、あくまで
も予想です。実際に、NEXTVALを使ってデータを挿入してから、その値
を取得するとよいでしょう。


■外部キー制約があるテーブルへの行の挿入

つぎのような関係があるテーブルを想定します。

    ORDER → DETAIL

なお、矢印は、1対多の関係を表し、矢が「多」側 (外部キー制約を設
定しているテーブル)、矢じりが「1」側 (外部キー制約によって参照さ
れているテーブル)を表します。

基本的な形として、つぎのように手続きを書いていきます。
なお、これはJDBCを使った擬似コードのイメージなので、実際のプログ
ラミングでは、JavaとJDBCにしたがって書く必要があります。

---
START TRANSACTION;

INSERT INTO ORDER VALUES(DEFAULT, ...);

SELECT CURRVAL('order_id_seq');
int id = res.getInt();

while (...) {    // DETAILの行数分だけ
    INSERT INTO detail VALUES(DEFAULT, ?, ...);
    stmt.setInt(1, id);
}

COMMIT;
---

ここで、テーブルdetailの1列目はSERIAL型を使ったdetailテーブルの
主キー、2列目が、orderテーブルの主キーに関係した外部キーです。


                                                            以上


XQuery+XMLデータベース入門

2007年05月03日 | DB
XQuery+XMLデータベース入門
http://store.nikkeibp.co.jp/item/main/148222829290.html
菅原 香代子、米持 幸寿著
B5変型判
256ページ
定価 3,150円(税込み)
ISBN 4-8222-8292-9
日経BP社
2006年11月20日発行

はじめに

第1章 XQueryとXMLデータベース
1-1 XQueryとはなにか
 XQueryの構文
1-2 広がるXMLの利用
 ドキュメント
 ビジネス・データ
 コンピュータ間の連携など
1-3 XMLの保存方法
 ファイルへの保存
 データベースへの保存
 なぜXMLがいいのか?
 XMLに向かないデータ

第2章 XMLの基礎
2-1 XMLの基本文法
 データの区切り方
 基本ルールと拡張ルール
 XML勧告
 XMLスキーマ
 XMLパーサーとXMLプロセッサ
 XML宣言
 要素
 名前空間
2-2 XMLプログラミング
 DOM
 SAX
 DOMとSAXの使い分け
2-3 スキーマ言語
 DTD
 XML Schema
 スキーマ言語による検証
 スキーマ言語によるXML編集
 スキーマ言語によるプログラム生成

第3章 XQueryの基礎
3-1 SQLとXQuery
 データ構造の違い
 XQueryの標準化
3-2 データ・モデルとXPath
 XQueryデータ・モデル
 データ型
 XPathとXPath演算子
 XPath表現
 値とシーケンス
 演算子
 コンストラクタ
 XPathの具体例
3-3 XQuery解説
 XQueryプロローグ
 XQueryの注意事項
 FLWOR形式
 XQuery関数
 SQL/XML

第4章 XML DBを動かしてみよう
4-1 DB2のインストール
 DB2 9のインストール
 SAMPLEデータベースの作成
 TESTデータベースの作成
 データベースの起動
 コントロール・センター
 コマンド・エディター
 コマンド行プロセッサーとコマンド・ウィンドウ
 表の閲覧
4-2 XMLデータベースの作成
 データベースの作成
 表の作成
 XMLデータの挿入
4-3 XMLデータの検索と更新
 XQueryの実行(XPath)
 XQueryの実行(FLWOR)
 SQL/XMLの実行
 XMLデータの更新
 XMLデータの削除
4-4 索引付けと検証
 索引付け
 XMLドキュメントの検証

第5章 XQueryを使った実用アプリケーション
5-1 EclipseとTomcatのインストール
 JDKのインストール
 EclipseとTomcatのダウンロード
 Eclipseの起動とWTPのインストール
 Tomcatの動作確認
 Webプロジェクトの作成
 JSPの追加
5-2 Webアプリケーションを作る
 アプリケーションの概要
 レシピの詳細表示を行うサーブレット
 データベースへの接続クラス
 リテラルでXQueryを定義するときの注意点
 レシピの詳細表示クエリー
 名前順のレシピ一覧
 材料別のレシピ一覧
5-3 Ajaxアプリケーションを作る
 ファイルの構成
 Ajaxの基礎
 材料一覧の作成
 チェックされた材料の抽出
 クエリーの発行と結果の表示
5-4 RSSの収集
 準備作業
 プログラムの概要
 RSSの構造
 プログラムの構造
 HTTPによるXMLの取得とパース
 日付の発見と読み取り
 データベースへの格納
 XQueryによる検索

データベース・セキュリティ・コンソーシアム セミナー

2006年11月07日 | DB
http://www.db-security.org/seminar/dbsc_seminar2.html

第2回データベース・セキュリティ・コンソーシアム セミナー (11/7 東京)
 ~データベース・セキュリティにご関心をお持ちの方へ~
=====================================================================
内部統制に大きな関心が寄せられている昨今、情報の格納場所であるデータ
ベースに対するセキュリティ対策はIT統制の監査においても大きなポイントに
なると考えられています。
第2回セミナーでは、本コンソーシアムのセキュリティガイドラインWGにおい
て2005年度に策定した「データベースセキュリティガイドライン 第1.0版」一
般公開を記念し、その概要と活用のポイントをご紹介いたします。

主催:データベース・セキュリティ・コンソーシアム (DBSC)
日程:11月7日(火) 13:15~17:00 (受付開始 13:00)

DB2 インフォメーション・センター

2005年04月26日 | DB
http://publib.boulder.ibm.com/infocenter/db2help/index.jsp

DB2 UDB Version 8 product manuals
http://publib.boulder.ibm.com/infocenter/db2help/index.jsp?topic=/com.ibm.db2.udb.support.doc/documentation.htm

SQL Reference Volume 1
ftp://ftp.software.ibm.com/ps/products/db2/info/vr82/pdf/en_US/db2s1e81.pdf

SQL Reference Volume 2
ftp://ftp.software.ibm.com/ps/products/db2/info/vr82/pdf/en_US/db2s2e81.pdf


IBM教科書 DB2エンジニア(V8)

2005年04月21日 | DB
http://www.seshop.com/detail.asp?pid=4417
IBM教科書 DB2エンジニア(V8)
著: 日本アイ・ビー・エム株式会社
商品番号:104810
ISBN:4798104817
添付:CD-ROM 1点
サイズ:A5
ページ:352
販売価格:3,990(本体3,800 消費税5%)
発売日:2003/10/15
出版社:株式会社翔泳社

---
* 昨年(2004)買ったものだが、DB2試用版の有効期限切れ。db2start コマンドで "SQL8000N"
---
SQL8008N この製品 "IBM DB2 Universal Database Express Edition"
には、有効なライセンス・キーがインストールされていないため、評価期間は有効期限
切れになりました。この製品に固有の関数が使用可能になっていません。
SQL8000N DB2START 処理は失敗しました。有効な製品ライセンスが見つかりませんでし
た。
---

本来は、このようなメッセージが出るはず。
---
SQL8006W この製品 "IBM DB2 Universal Database Express Edition"
には、有効なライセンス・キーがインストールされていません。この製品のライセンス
を取得した場合、ライセンス・キーが適切にインストールされているかどうか、お確か
めください。ライセンス・キーがインストールされていない場合も、評価期間の "90"
日間はこの製品が使用できます。評価期間、製品を使用していただくには、try_LA
ファイルの IBM ご使用条件への同意が必要です。このファイルは次のディレクトリーに
あります: "C:PROGRA~1IBMSQLLIBlicenseen"
SQL1063N DB2START の処理が正常に終了しました。
---

最小インストールでインストールすると、DB2SAMPL コマンドがない。
---


第1章 プランニング

DB2 UDB製品の概要
DB2 Tools
DB2 UDBのデータウェアハウス機能
DB2 Extender
練習問題

第2章 DB2 UDBのセキュリティ

データ・アクセスの制御
認証
認証用のユーザーIDとパスワードの指定
認証タイプ
TRUST_ALLCLNTSパラメーターとTRUST_CLNTAUTHパラメーター
権限
特権
練習問題

第3章 DB2 UDBへの接続

リモート・データベース接続の概念
データベース接続のための方式について
カタログ・コマンドの使用
コントロール・センターからの接続
ディスカバリーの設定
通信の構成
インスタンスの管理
練習問題

第4章 DB2 UDBデータの操作

構造化照会言語(SQL)
SQLの種類
データの照会(検索)
データの変更
SQLプロシージャー
練習問題

第5章 DB2 UDBオブジェクトの操作

データベース・オブジェクトの概要
データ・タイプ
表の管理
制約
ビュー
索引
練習問題

第6章 データの並行性

トランザクション
並行性に関する考慮事項
分離レベル
ロック
練習問題