情報処理試験
小雨の中受けてきました。
午前。
やっぱり過去問がそのまま出るのが多いですね。
6割は全く同じです。問題文と答えの記号を覚えれば良いみたいに言ってる人もいましたが確かにそうですーー;
問33が問題が間違えていたようですね。
SELECT DISTINCT S1.生年 FROM 社員 S1, 社員 S2
WHERE S1.生年>=S2.生年
GROUP BY S1.生年
HAVING COUNT(*)<=3
で社員テーブルがあるのですが、結果、正解が4択にないという問題でした。
まぁどうでもいいのですが。
http://www.jitec.jp/1_04hanni_sukiru/mondai_kaitou・・・
今年から解答例が翌日に出ます。午後のは後ですが。
46/55くらいでした。2 問くらい勉強したけど見逃していたのですが、残りはあまり興味ない問題?だったのでいいです。
あと、標準化は、セキュアドの本読んだのが出てよかったです。
午後1
1,2,3を選択。
1がちょっとUMLを用いた目新しい問題だったの慎重にやったら簡単でしたが、ちょと気が抜けて
2,3の時間がギリギリで両方中途半端になってしまいました。
7割は出来てると思いますが、ちょい不安くらいです。
午後2
問1をやろうと決めていましたが、過去問であまりにも問1と2の難易度が違ったので
念のため両方読んで決めることにしました。
問2のほうが明らかに読みやすそうだったので2を選択^-^。
いちお完答ですが・・・
自信はありません。解答例が出るのを待つしかなさそうです。
水曜くらいに各社が解答例を出すようです。
2006-04-17 14:58:18
[送信者]
平文
↓
↓←[メッセージダイジェスト関数]
↓
メッセージダイジェスト
↓
↓←[送信者の秘密鍵]
↓
ディジタル署名
平文+ディジタル署名
↓
↓←[受信者の公開鍵]
↓
暗号文
[受信者]
暗号文
↓
↓←[受信者の秘密鍵]
↓
平文+ディジタル署名
平文
↓
↓←[メッセージダイジェスト関数]
↓
メッセージダイジェストA
ディジタル署名
↓
↓←[送信者の公開鍵]
↓
メッセージダイジェストB
AとBを比較。
2006-04-13 16:39:44
英国 BS7799-1 → BS7799-2
国際標準 ISO/IEC17799
国内標準 JIS X 5080 → ISMS 認証基準
左がベストプラクティス
矢印の右が認証基準。
ISMS認証基準はVer2.0になっている。
認証基準とは、
ある企業を第三者機関が評価する際に使用するガイドライン
ISO9000(品質管理)
ISO14000(環境管理)
など。
マネジメントシステム策定の手順。
PDCAサイクル
上流工程:Plan、Do。
下流工程:Check、Action。
下流工程の重要性。
2006-04-07 18:21:50
表明 / 複数のリレーション(テーブル)間から条件設定できる。
表明は、特定のテーブルに依存する必要はない。
下の場合、テーブルAにX>0の存在を許さない。「表明Z」を作成!
CREATE ASSERTION 表明名Z CHECK (
NOT EXISTS (
SELECT * FROM A WHERE X > 0
)
)
下の場合、テーブルA,BをXで自然結合したときC+D>100の存在を許さない。「表明Z」を作成!
CREATE ASSERTION 表明名Z CHECK (
NOT EXISTS (
SELECT * FROM A,B WHERE A.X=B.X AND (A.C + B.D) > 100
)
)
+++
整合性制約の復習。+++
定義域制約(ドメイン)
┗ 型
検査制約
┗ CHECK
一意性制約
┗ UNIQUE
ヌル制約
┗ NOT NULL
参照性制約
┗ FOREIN KEY(仕入先コード) REFERENCES (仕入先)
CREATE TABLE 商品(
商品コード CHAR(4) PRIMARY KEY,
商品名 VARCHAR(10) NOT NULL,
仕入値 INT,
売価 INT,
仕入先コード CHAR(4),
FOREIN KEY(仕入先コード) REFERENCES (仕入先)
ON DELETE CASCADE
ON UPDATE NO ACTION ,
CHECK ( 単価 <= 500)
CHECK ( 売価 BETWEEN 100 AND 1000 )
)
2006-04-05 16:06:49
窓口に来る間隔が、ランダムな場合。
M / M / 1
平均待ち時間: W = ( ρ/(1-ρ) ) * Ts
窓口に来る間隔が、一定な場合。
M / D / 1
平均待ち時間: W = ( ρ/2(1-ρ) ) * Ts
平均待ち時間は 1/2 違うのだ!
M / M / 1 だけ考えていたら、 M / D / 1 は違った。
2006-04-03 13:31:12
せっかく理解したので、試験にも出て欲しいな^-^。
多値従属とは。
A→→B
Aが決まると多値(複数の)のBが決まる。
条件。
・選手は好きな練習ポジションを複数選択できる。
・練習ポジションにごとに練習内容は決まっている。
| 選手 | 練習ポジション | 練習内容 |
| ロナウド | FW | シュート |
| ロナウド | FW | ドリブル |
| ロナウド | FW | 跨ぎフェイント |
| ロビーニョ | FW | シュート |
| ロビーニョ | FW | ドリブル |
| ロビーニョ | FW | 跨ぎフェイント |
| ジダン | MF | ドリブル |
| ジダン | MF | パス |
| ジダン | MF | ロングパス |
| ベッカム | MF | ドリブル |
| ベッカム | MF | パス |
| ベッカム | MF | ロングパス |
| ロビーニョ | MF | ドリブル |
| ロビーニョ | MF | パス |
| ロビーニョ | MF | ロングパス |
| カシージャス | GK | キャッチ |
| カシージャス | GK | ロングパス |
多値従属している部分を一部抜き出してみる。
選手→→練習ポジション
練習ポジション→→選手
練習ポジション→→練習内容
練習内容→→練習ポジション
練習内容→→選手
選手→→練習内容
第4正規形でない条件。
・自明でない多値従属が存在する場合
・自明でない多値従属とは
独立した多値従属が存在する!
A→→B|C ( かつ A→→{B,C} ではない。 )
この場合。
A→→B
A→→C
と分割することにより第4正規化できる。
( 選手 , 練習ポジション , 練習内容 )
を
Aに対応する列は”練習ポジション”として
( 選手 , 練習ポジション )
( 練習ポジション , 練習内容 )
の2つに分けるのが適切である。
( 選手 , 練習内容 )
( 練習ポジション , 練習内容 )
は何故いけないか?
この場合意味がハッキリしているのでわかり易い、選手が選ぶのは練習ポジションであり練習内容ではない。
* 確認方法として、この2つの直積を求めたとき、例にはない列が出る。
(
カシージャス,ロングパス )
( MF,ロングパス )
から、( カシージャス,MF,ロングパス )が出来てしまう。
( 選手 , 練習内容 )
( 選手,練習ポジション )
だと
(
ロビーニョ,シュート )
( ロビーニョ,MF )
から、( ロビーニョ,MF,シュート )が出来てしまう。
ってことでこうなる。
| 選手 | 練習ポジション |
| ロナウド | FW |
| ロビーニョ | FW |
| ジダン | MF |
| ベッカム | MF |
| ロビーニョ | MF |
| カシージャス | GK |
| 練習ポジション | 練習内容 |
| FW | シュート |
| FW | ドリブル |
| FW | 跨ぎフェイント |
| MF | ドリブル |
| MF | パス |
| MF | ロングパス |
| GK | キャッチ |
| GK | ロングパス |
単純にデータの意味を考えると分かる。データの意味がよくわからないと分けようがない^-^;
2006-04-03 13:08:19
+++ CREATE TABLE +++
CREATE TABLE 商品(
商品コード CHAR(4) PRIMARY KEY,
商品名 VARCHAR(10) NOT NULL,
仕入値 INT,
売価 INT,
仕入先コード CHAR(4),
FOREIN KEY(仕入先コード) REFERENCES (仕入先)
ON DELETE CASCADE
ON UPDATE NO ACTION ,
CHECK ( 単価 <= 500)
CHECK ( 売価 BETWEEN 100 AND 1000 )
)
+++ CREATE INDEX +++
CREATE INDEX index_name ON tbl_name (index_col_name,...)
+++ CREATE VIEW +++
CREATE VIEW ビュー名(列1,2,3 ・・・) AS SELECT ・・・
次のものを使用しているとVIEWの更新追加削除は出来ない。
・DISTINCT
・GROUP
・複数テーブル
・集合関数
・相関副問合せ
+++ 権限 +++
priv_type : SELECT,UPDATE,INSERT,DELETE,ALL(ALL PRIVILEGES)
user_nameには、 PUBLIC も指定可能。PUBLIC = 全ユーザ
GRANT priv_type [(column_list)] [, priv_type [(column_list)] ...]
ON tbl_name
TO user_name
( WITH GRANT OPTION ( *権限を付与されたユーザは付与された権限を他のユーザに与えることが可能になる ))
REVOKE priv_type [(column_list)] [, priv_type [(column_list)] ...]
ON {tbl_name | * | *.* | db_name.*}
FROM user_name [, user_name ...]
+++ 集合関数 +++
SUM,AVG,MAX,MIN,COUNT
+++ 内部結合 +++
INNER JOIN 通常略される。
SELECT * FROM TA,TB WHERE TA.X = TB.Y
SELECT * FROM TA inner join TB on TA.X = TB.Y
同じ。
+++ 外部結合 +++
LEFT OUTER JOIN
SELECT * FROM TA LEFT OUTER JOIN TB on TA.X = TB.Y
(OUTERは通常省略)
TAのすべての行を対象に結合される。対応するものが無い場合NULLが入る。
RIGHT の場合は右側に指定されたすべての行
+++ 副問合せ +++
INを使った例。
SELECT * FROM 学生 WHERE 学生番号 IN( SELECT 学生番号 FROM 成績 WHERE 点数 >= 80 )
+++ 相関副問合せ +++
既に使用している副問合せのSELECT外のテーブルを利用する。
EXISTSはSELECT結果が0か1行以上かのどちらかを判断。
納品(
商品番号,
社番号,納品数)
商品(
商品番号,商品名)
会社(
社番号,社名)
SELECT DISTINCT 会社.社名 FROM 会社
WHERE NOT EXISTS
( SELECT * FROM 商品
WHERE NOT EXISTS
( SELECT * FROM 納品
WHERE 納品.商品番号 = 商品.商品番号
AND 納品.社番号 = 会社.社番号 )
( SELECT * FROM 納品
一個でも納品テーブルに行があれば1
NOT EXISTS なのでひとつも取り扱いの無い場合1となる。
( SELECT * FROM 商品
納品の無い商品が一個でもある場合1となる。
NOT EXISTSなので納品の無い商品が無い場合1となる。
つまり全商品取り扱っている会社のみ表示される。
+++ カーソル +++
1.宣言
DECLARE カーソル名 CURSOR FOR SELECT 文。
2.オープン
OPEN カーソル名
3.フェッチ、変数名にデータを入れて次の行へ進む。
FETCH カーソル名 INTO 変数名
4.クローズ
CLOSE カーソル名
更新!削除
UPDATE テーブル名 SET 列=値 WHERE CURRENT OF カーソル名
DELETE FROM デーブル名 WHERE CURRENT OF カーソル名
2006-03-31 18:02:30
これは確実に点を取っておかないといけない問題をおさらい。
(一瞬忘れるやつ、しかも超基本・・・)
・ACID特性
・隔離性水準
・直列可能性と2相ロック
・障害回復
+ログファイル
+チェックポイント
+ロールバック・ロールフォワード
・分散データベース(2相コミットメント)
これ復習したら、午前はばっちりだな^-^。
2006-03-30 12:02:38
暗唱メモ^-^;
利用時間:Ts
単位時間当たりの平均利用率:ρ
平均待ち時間
Tx = (ρ/(1 - ρ)) * Ts
こんな感じ。半分暗記してるから大ボケしなければ、たぶん大丈夫かなぁ^-^。
2006-03-30 11:51:19
ボイスコッド正規形の定義
・「すべての関数従属の決定項がスーパーキー(候補キー)である。」
第三正規形:部分従属、推移従属がない。
R ( A, B, C, D )
{A,B}→C
B→D
D→B
このとき
{A,D}→Cでもある。
候補キーは{A,B}または{A,D}であるので
関数従属B→DとD→BのB,Dは候補キーでなく候補キーの一部である。のでボイスコッド正規形ではない。
これをボイスコッドにすると。
R1 ( A, B, C )
R2 ( B, D )
R1 : {A,B}→C
R2 : B→D , D→B
・「関数従属性を保てるか否か。」
分割した際に、不整合が起きない形であれば
ボイスコッド正規形まで分割して良い。
2006-03-29 13:18:58