応用情報処理技術者試験の対策サイトです。 応用情報処理技術者試験の午前問題を中心とした基礎用語の解説を中心に掲載します。書き始めたばかりなので、内容はまだまだ不十分です。
カテゴリ:

5.データベース

1.データベースとは
データベース(DataBase)とは、言葉の通り、データ(Data)の土台(Base)となるものです。
例えば、各企業では、顧客データベースがあります。ここでは、顧客ID,顧客名、所在地などの情報が、Excelなどの表計算ソフトの表のように整理されています。
多少乱暴な言い方ですが、データベースの見た目は、Excelの表と思っていいでしょう。
情報セキュリティマネジメント試験を目指す剣持成子_7 

じゃあ、わざわざデータベースを利用せずに、Excelでもいいのでは?




小さいシステムであれば、Excelで十分でしょう。でも、データベースならではの機能があります。
たとえば、データの重複をさけるように正規化をしますし、SQL文を使って高度な組み合わせができます。また、インデックスを使って高速検索ができるようになります。

※SQL(Structured Query Language)とを直訳すると、Structured(構造化された)Query(問い合わせ)の言語(Language)となります。Query(問い合わせ)先はデータベースで、データベースへの操作を行う言語です。

(1)テーブル(表)、フィールド(項目)、レコード、行、列
これらの言葉を、理解しておきましょう。
図のように、テーブルの横軸がレコード(行)で、縦軸がフィールド(列)になります。
レコードとフィールド_情報セキュリティマネジメント試験 

(2)インデックス
インデックス(index)は「索引」という意味です。本の最後にある索引をイメージしてください。索引があれば、探したい情報に早くたどり着けます。この機能が、データベースにもあります。
過去問(H24年秋FE午前問27)では、「関係データベースの表の列に利用者がインデックスを設定する目的」として、「データの格納位置への効率的なアクセスが可能となり,検索速度の向上が期待できる」と述べられています。

(3)関係データベース
 このような表で表されるデータベースを関係データベース(リレーショナルデータベース、RDB)と言います。関係(リレーション)でいくつもの表がつながっているから、このように言われます。
参考までに、関係データベース以外には、木構造の階層型データベースとネットワーク型データベースの3つがあります。

ある値Xが決まると、Yが一意に決めることができる場合、「YはXに関数従属している」と言います。
以下の顧客テーブルがあるとします。
顧客(顧客番号、氏名、住所、電話番号) ※主キーは「顧客番号」です。
このとき、「顧客番号」が決まると「氏名」が決まります。また、氏名だけでなく、「住所」や「電話番号」も決まります。
このような場合、「氏名は顧客番号に関数従属している」といい、「顧客番号→氏名」と表します。

参考ですが、過去問(H28春AP午前)の抜粋(一部改変)を見てみましょう。
関数従属は、次のように表されます。
(1)属性Xの値が与えられると,属性Yの値を一意に決めることができる。(左図)
(2)属性Xと属性Yの二つの値が与えられると,属性Zの値を一意に決めることができる。(右図)
aa


2.キー(key)
ー腑ー
行を一意に識別するものを候補キーと言います。この中から、管理上最適なものが主キーです。
上記の「受注明細テーブル」の主キーは、「受注番号と明細番号」です。受注番号だけでは行を1つに特定できず、2つが合わさって初めて一つに特定できます。
また、上記の「商品テーブル」の主キーは、「商品コード」です。
応用情報技術者試験を勉強する成子
なぜ候補キーと言うのですか?
主キーの候補だからです。
ただ、応用情報技術者試験においては、両者の違いを厳密に区別しなくてもいいと思います。主キー=候補キーと考えて、問題を解いてもらえばいいでしょう。

外部キー
外部を参照するキーです。「受注明細テーブル」の外部キーは「商品コード」です。これにより、商品テーブルの情報を参照することができます。

3.E-R 図
データの実体(entity)とその関連(relationship)を表現します。
過去問(H24FE春問28)では、「E-R図に関する記述」として、「業務で扱う情報をエンティティ及びエンティティ間のリレーションシップとして表現する。」と述べられています。
エンティティというのがよく分からないかもしれません。エンティティとはデータの実体のことですが、表(テーブル)と考えていいです。たとえば、上に表を掲載していますが、「受注明細」「商品」が、それぞれエンティティになります。
両者の関係をE-R図で表すと、以下になります。
情報セキュリティマネジメント試験のE-R図 

過去問(今回はH27年春DB午後の資料を引用)では、E-R図のルールに関して、以下の説明があります。
(1)エンティティタイプとリレーションシップの表記ルールを,図1に示す。
  .┘鵐謄ティタイプは,長方形で表し,長方形の中にエンティティタイプ名を記入する。
 ◆.螢譟璽轡腑鵐轡奪廚蓮ぅ┘鵐謄ティタイプ間に引かれた線で表す。
   “1対1"のリレーションシップを表す線は,矢を付けない。
   “1対多”のリレーションシップを表す線は,“多”側の端に矢を付ける。
   “多対多”のリレーションシップを表す線は,両端に矢を付ける。
データベーススペシャリスト試験のe-r図

なぜデータの正規化が必要なのでしょうか。過去問では、「データの正規化を行う目的」として,「データか重複したり,データ更新の際に矛盾が生じたりしないようにする(H21秋IP問63)」と述べられています。
以下のテーブルを見てください。

◆受注明細テーブル
受注番号明細番号商品コード商品名数量
158671TV2000620型テレビ20
158672TV2400524型テレビ10
158673TV2800728型テレビ5
158681TV2400524型テレビ8
(表はH22年AP午前問32より)

この受注明細テーブルは正規化されているでしょうか。
情報セキュリティマネジメント試験を目指す剣持成子_11 

正規化されていないと思います。
なぜなら、商品コードと商品名の状態がよくないと思います。
その通り。この表では、商品コードが決れば商品名が決まるのですが、不整合が起きる可能性があります。
たとえば、以下のように、同じ商品コード(TV24005)であっても、「24型テレビ」と「23型テレビ」という不整合が起きます。
受注番号明細番号商品コード商品名数量
158671TV2000620型テレビ20
158672TV2400524型テレビ10
158673TV2800728型テレビ5
158681TV2400523型テレビ8
このような不整合を無くすために正規化をします。
上記を正規化し、以下の2つのテーブルに分けます。

◆受注明細テーブル
受注番号明細番号商品コード数量
158671TV2000620
158672TV2400510
158673TV280075
158681TV240058

◆商品テーブル
商品コード商品名
TV2400524型テレビ
TV2000620型テレビ
TV2800728型テレビ

正規化には、第1正規形、第2正規形、第3正規系があります。
過去問(H25秋AP午前問29)では、関係を第一正規系⇒第2正規形⇒第3正規形に変換する手順が記載されています。
‖莪貔亀系
「一つの属性に複数の値が入っている場合,単一の値になるように分解する(H25秋AP午前問29)」より。
それ以外には、重複の排除などがあります。
第2正規形
「候補キーの一部の属性から,候補キー以外の属性への関数従属性がある場合,その関係を分解する(H25秋AP午前問29)」
B3正規形
「候補キー以外の属性間に関数従属性がある場合,その関係を分解する(H25秋AP午前問29)」

さて、データベースの正規化を実際にやってみましょう。たとえば、レストランでカレーを食べたとき、以下のレシートがあったとします。これをデータベース化しましょう。
database


■非正規形
これを表にすると、以下の1行目のようになります。
注文番号担当者番号担当者名商品番号商品名数量単価
102117016鈴木010カレー1800
202サラダ1300
301コーヒー1200
102118008田中012パスタ2900
301コーヒー2200
※合計金額は自動計算できますので、データベースに記録する必要はありません。

上記の表の場合、1つの注文番号に、商品が複数並んでいますので、データベースとしては適正な状態ではありません。そこで、正規化を行います。

■第一正規形
第一正規系では、上記のように、1行に複数の属性があるような状態を解消します。
注文番号担当者番号担当者名商品番号商品名数量単価
102117016鈴木010カレー1800
102117016鈴木202サラダ1300
102117016鈴木301コーヒー1200
102118008田中012パスタ2900
102118008田中301コーヒー2200

これで、以下の注文テーブルが出来上がりました。
注文(注文番号,担当者番号、担当者名、商品番号,商品名,数量,単価)

■第二正規形
第二正規形では、候補キー(およびその一部)からの関数従属性を分割します。
さて、このテーブルの候補キーは何でしょうか。候補キーは、注文番号と、商品番号です。つまり、この2つが決まると、すべての属性が決まります。
候補キーおよびその一部は「注文番号」「商品番号」「注文番号、商品番号」の3つです。この3つからの関数従属性は以下です。
・注文番号→担当者番号、担当者名
・商品番号→商品名、単価
・注文番号、商品番号→数量

この関係をテーブルにします。
【注文】
注文番号担当者番号担当者名
102117016鈴木
102118008田中

【商品】
商品番号商品名単価
010カレー800
012パスタ900
202サラダ300
301コーヒー200

【注文明細】
注文番号商品番号数量
1021170101
1021172021
1021173011
1021180122
1021183012

これで、以下の3つのテーブルが出来上がりました。
注文(注文番号、担当者番号、担当者名)
商品(商品番号、商品名、単価)
注文明細(注文番号、商品番号、数量)


■第三正規形
第三正規形では、候補キー以外の属性にて関数従属性がある場合,その関係を分解します。
今回の場合、注文テーブルにおいて、担当者番号→担当者名という関数従属性があります。
これ分解すると、以下の2つのテーブルになります。
注文(注文番号、担当者番号)
担当者(担当者番号、担当者名)

最終的には以下の4つのテーブルが出来上がります。
注文(注文番号、担当者番号)
担当者(担当者番号、担当者名)
商品(商品番号、商品名、単価)
注文明細(注文番号、商品番号、数量)

【注文】
注文番号担当者番号
102117016
102118008

【担当者】
担当者番号担当者名
016鈴木
008田中

【商品】
商品番号商品名単価
010カレー800
012パスタ900
202サラダ300
301コーヒー200

【注文明細】
注文番号商品番号数量
1021170101
1021172021
1021173011
1021180122
1021183012


H26秋AP午前

問28 分散データベースシステムのデータディクショナリ/ディレクトリの配置方式に関する記述のうち,適切なものはどれか。

ア 集中管理方式では,データディクショナリ/ディレクトリを保有するサイトに負荷が集中することはない。
イ 集中管理方式では,データディクショナリ/ディレクトリを保有するサイトの障害が,分散データベースシステムの重大な障害になる。
ウ 分散管理方式で,各サイトにデータディクショナリ/ディレクトリを重複保有しない形態では,表の構造の変化が発生した場合,全てのサイトで内容を変更する必要がある。
エ 分散管理方式で,各サイトにデータディクショナリ/ディレクトリを重複保有する形態では,問合せに対して,他のサイトの内容を調べることがある。

正解は、イです。

問29 データマイニングの説明はどれか。

ア 検索効率を高めるために,大規模データベースの一部をあらかじめ用途に合わせて抽出し,データの要約などの加工をしておくこと
イ 大規模データベースから,統計や推論の手法を使って,意味のある情報を見つけ出すこと
ウ 大規模データベースにおけるスタースキーマを実装するのに適した,索引ファイルを作成すること
エ 大規模データベースにおけるメタデータを効率よく管理すること

正解は、イです。

H25春AP午前

問28 "プログラマは全て社員であり,社員の約10%を占める。社員は社員番号と氏名をもち,職種がプログラマである場合は,使用できるプログラム言語を一つ以上もつ。"という状況を記録するデータベース設計案として,適切なものはどれか。ここで,実線の下線は主キーを,破線の下線は外部キーを表す。
20170906_5-1

正解は、エです。

◆H22秋AP
問28 データウェアハウスを構築するために,業務システムごとに異なっているデータ属性やコード体系を統一する処理はどれか。
ア ダイス ウ ドリルダウン
イ データクレンジング エ ロールアップ

正解は、イのデータクレンジング

◆H24秋AP
問29 データウェアハウスに業務データを取り込むとき,データを抽出して加工し,データベースに書き出すツールはどれか。
ア ETLツール
イ OLAPツール 
ウ データマイニングツール
エ 統計ツール
正解はアのETLツール

H27秋AP午前

問29    "倉庫別商品在庫集計”表から在庫数の合計を求めたい。倉庫番号'C003'の倉庫で在庫数が100 以上の商品に対して,全ての倉庫における在庫数の合計を求めるSQL文のaに入る適切な字句はどれか。ここで,該当する商品は複数存在するとともに在庫数が100未満の商品も存在するものとする。また,実線の下線は主キーを表す。

倉庫別商品在庫集計(倉庫番号,商品コード,在庫数)

〔SQL文〕
SELECT 商品コード, SUM(在庫数) AS 在庫合計 FROM 倉庫別商品在庫集計
      WHERE [  a  ]
      GROUP BY 商品コード

ア 商品コード = (SELECT 商品コード FROM 倉庫別商品在庫集計
               WHERE倉庫番号 = 'C003' AND 在庫数 >= 100)
イ 商品コード = ALL(SELECT 商品コード FROM 倉庫別商品在庫集計
               WHERE倉庫番号 = 'C003' AND 在庫数 >= 100)
ウ 商品コード IN(SELECT 商品コード FROM 倉庫別商品在庫集計
               WHERE 倉庫番号 = 'C003' AND 在庫数 >= 100)
エ EXISTS (SELECT * FROM 倉庫別商品在庫集計
               WHERE 倉庫番号 = 'C003' AND 在庫数 >= 100)

正解は、ウです。

H27春AP午前

間26 "電話番号"列にNULLを含む"取引先"表に対して,SQL文を実行した結果の行数は幾つか。
20170906_3-1
〔SQL文〕
SELECT * FROM 取引先 WHERE 電話番号 NOT LIKE '010%'

ア 1   イ 2     ウ 3   エ 4
NOT LIKE '010%'はあいまい検索で「010」で始まるもの以外ということを表します。
NULL(ヌルと呼ぶ人が多い)は「値が無い」という意味です。LIKEを使った場合、NULLを抽出することはできません。よって、2行目、4行目、5行目の3つが正解です。
正解は、ウです。

(H25春AP午前 問29と同じ)
問27 埋込みSQLにおいて,問合せによって得られた導出表を1行ずつ親プログラムに引き渡す操作がある。この操作と関係の深い字句はどれか。

ア CURSOR
イ ORDER BY   
ウ UNION
エ UNIQUE

正解は、アです。

H26秋AP午前

問25 表に対するSQLのGRANT文の説明として,適切なものはどれか。

ア パスワードを設定してデータベースへの接続を制限する。
イ ビューを作成して,データベースへのアクセス処理を隠蔽し,表を直接アクセスできないようにする。
ウ 表のデータを暗号化して,第三者がアクセスしてもデータの内容が分からないようにする。
エ 表の利用者に対し,表への問合せ,更新,追加,削除などの操作を許可する。

正解は、エです。

H26春AP午前

問28 "東京在庫" 表と "大阪在庫" 表に対して,SQL文を実行して得られる結果はどれか。ここで,実線の下線は主キーを表す。
20170906_3-2

正解は、エです。

H25秋AP午前
(H21春AP午前 問31と同じ)
問27 クライアントサーバシステムにおけるストアドプロシージャに関する記述のうち,誤っているものはどれか。
ア 機密性の高いデータに対する処理を特定のプロシージャ呼出しに限定することによって,セキュリティを向上させることができる。
イ システム全体に共通な処理をプロシージャとして格納しておくことによって,処理の標準化を行うことができる。
ウ データベースへのアクセスを細かい単位でプロシージャ化することによって,処理性能(スループット)を向上させることができる。
エ 複数のSQL文から成る手続を1回の呼出しで実行できるので,クライアントとサーバの間の通信回数を減らすことができる。

正解は、ウです。

問31 地域別に分かれている同じ構造の三つの商品表,"東京商品","名古屋商品","大阪商品"がある。次のSQL文と同等の結果が得られる関係代数式はどれか。ここで,三つの商品表の主キーは"商品番号"である。

SELECT * FROM 大阪商品
   WHERE 商品番号 NOT IN (SELECT 商品番号 FROM 東京商品)
UNION
SELECT * FROM 名古屋商品
   WHERE 商品番号 NOT IN (SELECT 商品番号 FROM 東京商品)

ア (大阪商品 ∩ 名古屋商品)−東京商品
イ (大阪商品 ∪ 名古屋商品)−東京商品
ウ 東京商品−(大阪商品 ∩ 名古屋商品)
エ 東京商品−(大阪商品 ∪ 名古屋商品)

正解は、イです。

H25春AP午前

問27 クライアントサーバシステムにおいて,クライアント側からストアドプロシージャを利用したときの利点として,適切なものはどれか。

ア クライアントとサーバの間の通信量を削減できる。
イ サーバ内でのデータベースファイルへのアクセス量を削減できる。
ウ サーバのメモリ使用量を削減できる。
エ データの格納領域を削減できる。

正解は、アです。

問30 A表は外部キーによってB表から参照されている。ここで,A表の行を削除するとき,それを参照しているB表の行を同時に全て削除することを指定するSQLの参照動作はどれか。

ア CASCADE
イ CONSTRAINT
ウ NO ACTION
エ REFERENCES


正解は、アです。

H23春AP午前

問30   "社員"表ど人事異動"表から社員ごとの勤務成績の平均を求める適切なSQL文はどれか。ここで,求める項目は,社員コード,社員名,勤務成績(平均)の3項目とする。
社員
社員コード 社員名 性別 生年月日 入社年月日
01553 太田 由美 女 1970-03-10 1990-04-01
S3781 佐藤 義男 男 1943-11-20 1975-06-11
08665 太田 由美 女 1978-10-13 1999-04-01
人事異動
社員コード 配属部門 配属年月日 担当勤務内容 勤務成績
01553 総務部 1990-04-01 広報(社内報) 69.0
01553 営業部 1998-07-01 顧客管理 72.0
S3781 資材部 1975-06-11 仕入在庫管理 70.0
S3781 経理部 1984-07-01 資金計画 81.0
S3781 企画部 1993-07-01 会社組織,分掌 95.0
08665 秘書室 1999-04-01 受付 70.0
ア SELECT 社員.社員コード,社員名,AV6(勤務成績)AS¨勤務成績(平均)・・FROM社員,人事異動
WHERE 社員.社員コード=人事異動.社員コード
GROUP BY勤務成績
イ SELECT 社員.社員コード,社員名,AVG(勤務成績)AS  "勤務成績(平均)・・FROM社員,人事異動
WHERE 社員.社員コード=人事異動.社員コード
GROUP BY社員.社員コード,社員.社員名
ウ SELECT 社員.社員コード,社員名,AVG(勤務成績)/COUNT(勤務成績)AS  "勤務成績(平均)"FROM社員,人事異動
WHERE 社員.社員コード=人事異動.社員コード
GROUP BY社員.社員コード,社員.社員名
工 SELECT 社員.社員コード,社員名,MAX(勤務成績)/COUNT(*)
AS  ¨勤務成績(平均)・・FROM社員,人事異動
WHERE 社員.社員コード=人事異動.社員コード
GROUP BY社員.社員コード,社員.社員名

■H24春AP午前
問26 販売価格が決められていない“商品"表に,次のSQL文を実行して販売価格を設定する。このとき,販売ランクがbの商品の販売価格の平均値は幾らか。
uPDATE商品SET販売価格=
CASE
WHEN販売ランク='a' THEN単価*0.9WHEN販売ランク=  'b' THEN単価-   500WHEN販売ランク=  'c・ THEN単価*0.7ELSE単価
END
商品番号 商品名 販売ランク 単価 販売価格
1001 U a 2,000 NULL
2002 V b 2,000 NULL
3003 W a 3,000 NULL
4004 X C 3,000 NULL
5005 Y b 4,000 NULL
6006 Z d 100 NULL
ア 1,675
イ 2,100
ウ 2,250
工 2,500

■H23秋AP
問30 更新可能なビューを作成するSQL文はどれか。ここで, SQL文中に現れる表は全て更新可能とする。
ア cREATEvエEW高額商品(商品番号,商品名,商品単価)
AS SELECT商品番号,商品名,商品単価FROM商品WHERE商品単価〉1000イ CREATE VIEW受注商品(商品番号)
AS SELECT DIST工NCT商品番号FROM受注
ウ CREATE  VIEW商品受注(商品番号,受注数量)
AS SELECT商品番号,SUM(受注数量)FRoM受注GROUP BY商品番号
工 CREATE  VIEW商品平均受注数量(平均受注数量)
AS SELECT AvG(受注数量)FRoM受注

■H22春AP

問33 表Aから実行結果Bを得るためのSQL文はどれか。
A
社員コード 名前 部署コード 給料
10010 伊藤幸子 101 200,000
10020 斉藤栄一 201 300,000
10030 鈴木裕一 101 250,000
10040 本田一弘 102 350,000
10050 山田五郎 102 300,000
10060 若山まり 201 250,000
実行結果B
部署コード 社員コード 名前
101 10010 伊藤幸子
101 10030 鈴木裕一
102 10040 本田一弘
102 10050 山田五郎
201 10020 斉藤栄一
201 10060 若山まり
ア SELECT部署コード,社員コード,名前FROM AGROUP BY社員コード
イ SELECT部署コード,社員コード,名前FROM AGROUP BY部署コード
ウ SELECT部署コード,社員コード,名前FROM AORDER BY社員コード,部署コード
エ SELECT部署コード,社員コード,名前FROM AORDER BY部署コード,社員コード

H28春AP午前

問27 関数従属を次のように表記するとき,属性a〜eで構成される関係を第3正規形にしたものはどれか。
20170906_1
20170906_2

正解は、エです。

H27秋AP午前

問28 関係R (A,B,C,D,E,F)において,次の関数従属が成立するとき,候補キーとなるのはどれか。

〔関数従属〕
A→B,A→F,B→C,C→D,{B,C}→E,{C,F}→A

ア B
イ {B,C}
ウ {B,F}
エ {B,D,E}

正解は、ウです。

H26秋AP午前

問26 関係R(A,B,C,D,E,F)において,関数従属A→B,C→D,C→E,{A,C}→Fが成立するとき,関係Rの候補キーはどれか。

ア A
イ C
ウ {A,C}
エ {A,C,E}

正解は、ウです。

問27 その月に受注した商品を,顧客ごとにまとめて月末に出荷する場合,受注クラスと出荷クラスとの間の関連のa,bに入る多重度の組合せはどれか。ここで,出荷のデータは実績に基づいて登録される。また,モデルの表記にはUMLを用いる。
20170906_3


正解は、ウです。

H26春AP午前

問26 UMLを用いて表した部門と社員の関係を表すデータモデルの説明のうち,適切なものはどれか。
20170906_4
ア 社員が1人も所属していない部門は登録できない。
イ 社員は複数の部門に所属することができる。
ウ どの部門にも所属しない社員は登録できない。
エ 一つの部門に複数の社員は所属できない。

正解は、ウです。

問27 次の表はどこまで正規化されたものか。
20170906_5
ア 第2正規形  イ 第3正規形  ウ 第4正規形  エ 非正規形

正解は、アです。

H25秋AP午前

問29 関係を第2正規形から第3正規形に変換する手順はどれか。

ア 候補キー以外の属性から,候補キーの一部の属性に対して関数従属性がある場合,その関係を分解する。
イ 候補キー以外の属性間に関数従属性がある場合,その関係を分解する。
ウ 候補キーの一部の属性から,候補キー以外の属性への関数従属性がある場合,その関係を分解する。
エ 一つの属性に複数の値が入っている場合,単一の値になるように分解する。

正解は、イです。

H25春AP午前

問28 “プログラマは全て社員であり,社員の約10%を占める。社員は社員番号と氏名をもち,職種がプログラマである場合は,使用できるプログラム言語を一つ以上もつ。”という状況を記録するデータベース設計案として,適切なものはどれか。ここで,実線の下線は主キーを,破線の下線は外部キーを表す。
20170906_6

正解は、エです。

応用情報技術者試験のシラバスでは、「データベースの論理設計」に関して、以下の記載があります。

データベースの論理設計
データの重複や矛盾が発生しないテーブル(表)設計の考え方,主キー,外部キーなどの概念,参照制約,一貫性制約などの制約を理解する。また,ユーザビューの機能と定義を理解する。

用語例 配置モード,親子集合順序,親子集合,索引,フィールド(項目),レコード,ファイル,NULL,一意性制約

過去問の例

H28春AP午前

問29 次の表において,“在庫” 表の製品番号に定義された参照制約によって拒否される可能性がある操作はどれか。ここで,実線の下線は主キーを,破線の下線は外部キーを表す。
20170906_2-1
ア “在庫” 表の行削除
イ “在庫” 表の表削除
ウ “在庫” 表への行追加
エ “製品” 表への行追加

正解は、ウです。

H27春AP午前

問28 “学生” 表が次のSQL文で定義されているとき,検査制約の違反となるSQL文はどれか。

CREATE TABLE 学生(学生番号CHAR(5)PRIMARY KEY,
          学生名CHAR(16),
          学部コードCHAR(4),
          住所CHAR(16),
          CHECK(学生番号LIKE 'K%'))
20170906_2-2
ア DELETE FROM 学生 WHERE 学生番号 = 'K1002'
イ INSERT INTO 学生 VALUES ('J2002','渡辺次郎','Mee6','東京都')
ウ SELECT * FROM 学生 WHERE 学生番号 = 'K1001'
エ UPDATE 学生 SET 学部コード = 'N001' WHERE 学生番号 LIKE 'K%'

正解は、イです。

H26春AP午前

問25 SQL文においてFOREIGN KEY と REFERENCES を用いて指定する制約はどれか。
ア キー制約
イ 検査制約
ウ 参照制約
エ 表明

正解は、ウです。

排他制御
複数の人がデータベースを使うと、整合性が保てない場合があります。そこで、排他制御が用意されています。この機能により、データの一貫性が保たれます。

トランザクション管理
 トランザクションとはデータベースの処理における、一連の動作のことです。トランザクションでは処理では、データの整合性を保つためにACIDと言われる4つの特性が求められます。
 なぜ整合性を取る必要があるのでしょうか。たとえば、Webにて株を100株売却した場合を考えてください。保有する株数を減らすと同時に、売却して得た代金を増やす処理が必要です。もし、株数を減らす処理したあとに、システム障害が発生し、売却した代金が増えなかったら困りますよね。また、複数人が同時に異なるデータを書き込んだ場合に、データの不整合が起きる可能性があります。
aa
応用情報技術者試験のシラバスでは、「(3)トランザクション管理」として、「データベースは複数の利用者が同時にアクセスするので,トランザクション処理にはACID特性が求められること,四つの特性の意味を理解する。」とあります。

ACIDとは、原子性、一貫性、独立性、耐久性の4つです。
※参考ですが、シラバスにはこれら4つの項目の記載や解説はなく、ACIDという言葉だけの記載です。

 では、ACID特性の4つの内容を確認しましょう。
A:原子性(atomicity)
トランザクションが終了したときの状態は,処理済みか未処理のどちらかしかないという性質
C:一貫性(Consistency)
同一データベースに対する同一処理は,何度実行しても結果は同じであるという性質
I:独立性(Isolation)
一つのトランザクションの処理結果は,他のトランザクション処理の影響を受けないという性質。
D:耐久性(Durability)
トランザクション完了後にハードウェア障害が発生しても,更新されたデータベースの内容は保証されるという性質

H25春AP午前(H23特別AP午前 問32と同じ)
問30 トランザクションの原子性(atomicity)の説明として,適切なものはどれか。
ア データの物理的格納場所やアプリケーションプログラムの実行場所を意識することなくトランザクション処理が行える。
イ トランザクションが終了したときの状態は,処理済みか未処理のどちらかしかない。
ウ トランザクション処理においてデータベースの一貫性が保てる。
エ 複数のトランザクションを同時に処理した場合でも,個々の処理結果は正しい。
正解は、イです。

インデックス
応用情報技術者試験のシラバスでは、「(4)データベースの性能向上」として、「データベースへのアクセス効率向上のために,インデックスを有効に活用する考え方を理解する。」とあります。

過去問(H27春AP)
問29“部品”表のメーカコード列に対し,B゛木インデックスを作成した。これによって,“部品”表の検索の性能改善が最も期待できる操作はどれか。ここで,部品及びメーカのデータ件数は十分に多く,メーカコードの値は均一に分散されているものとする。
  また,“部品”表のごく少数の行には,メーカコード列にNULLが設定されている。
  ここで,実線の下線は主キーを,破線の下線は外部キーを表す。




部品(部品コード,部品名,メーカコード)
メーカ(メーカコード,メーカ名,住所)
メーカコードの値が1001以外の部品を検索する。
メーカコードの値が1001でも4001でもない部品を検索する。
メーカコードの値が4001以上,4003以下の部品を検索する。
メーカコードの値がNULL以外の部品を検索する。
ああ


スポンサードリンク

このページのトップヘ