2006年08月24日

シスアド講座 第81回 データベースの定義

データベースの定義は、書籍で解説があると思いますが、
簡単に書いておきますね。


データベースの構造

 表をテーブルといいます。
 列をフィールドといいます。
 行をレコードといいます。

ある表から特定の列を取り出すことを射影といいます。
ある表から特定の行を取り出すことを選択といいます。


本当に簡単な説明になってしまいました。
もし、わかりづらい方は、
かなり前に作ったページですが、
よければ確認をしてください。

http://pcnavi.loops.jp/sysad/5database1.htm
posted by heronaka at 21:43| Comment(0) | TrackBack(0) | 第5章 データベース | このブログの読者になる | 更新情報をチェックする

シスアド講座 第82回 正規化

正規化は説明を見ていても、難しい場合が多いので、簡単なポイントだけを説明します。

今回、ご紹介する方法は、ほんとんどの問題であてはまりますが、詳しく見ていくと、このやり方で対応できないものもあります。

また、最近は正規化の問題は、ほとんど出題されていませんので、難しいなと感じた方は、とばしておいてください。

正規化とは、データベースで使うテーブルのデータを、データベースに適した形式に変換していくことを言います。

以前によく出題されたのは、第1正規化から第3正規化までの3段階です。


第1正規化

1行に複数データが入っている行を1行1データになるようにする。

第2正規化

ある項目(No・コード・COなど数字がほとんど)(ここではNoとする)によって一意に決まる項目を別の表に分ける。その時に、新しく作った表のNoが主キーとなり、分ける前の表からは、No以外の分けた項目を除く(1回目の分割)

第3正規化

第2正規化で分けた表で、さらにある項目で一意に決まるものがあれば分ける。(2回目の分割)
また、計算によって求めることができる項目を除く


簡単にまとめると

1行に1データにするのが第1正規化

1回目の表分割が第2正規化

2回目の表分割と計算によって求められる項目を除くのが第3正規化


データベースでは、重複したデータを、できる限りなくしていきます。

例えば、売上データの表があって、その中に、同じ顧客名や、同じ商品名が何回も出てこないようにするために、"顧客表""商品表"などを別に作り、主キーとして「顧客表」に"顧客NO"、"商品表"に"商品NO"などのコードナンバーをつけて記録します。

売上表には、"顧客NO"や"商品NO"などを記録して、必要な時に参照できるような構造にします。

このようにデータベースに適した構造に変換していく作業を正規化といいます。

途中で、主キーということばが出てきましたが、主キーについては、午後問題で頻出のところです。

次回は、この主キーについてのポイントを、ご紹介します。
posted by heronaka at 22:12| Comment(0) | TrackBack(0) | 第5章 データベース | このブログの読者になる | 更新情報をチェックする

シスアド講座 第83回 主キーと外部キー

まずは、主キーと外部キーについての、基本的な定義です。


主キー

1つまたは複数の項目の組み合わせで、同じものが1つしかない(重複しない)キーを作る。


外部キー

他の表の主キーと結ぶためのキー
(こちらは同じものが複数存在してもOK)




ER図との関連でも、よく出題されます。

ER図とは、次のような図です。

     主キー側の表 → 外部キー側の表

ER図では、矢印の無いほうが主キー、矢印のある方が外部キーとなります。



2つの表を、ことばで表すときに、

主キー側を"1"、
外部キー側を"多"

と表します。



これは、確実に覚えておいてくださいね。

少し前は、午後問題で一番よく出題されるところでした。

これを知っているだけで、解ける問題も多かったです。

最近は少し、掘り下げた問題が多いですが・・・

でも、これが基本ですからね!!



また問題によっては多対多の表関係が出ます。

矢印で表すと、こんな感じです。

     講師表 ←→ 受講者表

しかし、データベースではこのような構造をとれないので、
必ず、2つの表を関連させる中間テーブルというものが入ります。

そして、中間テーブルとの関連が1対多の関係となります。

例えば、先ほどの例で行くと、中間テーブルとして、受講表が入り、次のようになります。

     講師表 → 受講表 ← 受講者表  



のような関係です。この場合、講師と受講者が多対多の関係にあるとします。

しかし、間に受講表が入ることにより、1対多の関係となります。

問題文中には、この中間テーブルが表記されていないケースも多く、その時は、ここを読み取れるかが、問題を解く上でのキーポイントとなります。
posted by heronaka at 22:39| Comment(0) | TrackBack(0) | 第5章 データベース | このブログの読者になる | 更新情報をチェックする

2006年08月25日

シスアド講座 第84回 SQLの必勝テクニック

今日は、データベースの続きとしてSQLの必勝テクニックをご紹介をさせていただきます。

SQLは、まず基本の形をしっかりと覚えることです。

設問の中には、この基本形だけで解けるものが必ずあります。

過去問には、設問と語群だけですべて解ける問題もありますよ。

基本形とは次のようなものです。

SELECT (表名).列名 (表名).列名・・・
FROM 表名

WHERE 条件
(表と表の関連付けはここにANDでつなぐ)

GROUPBY (表名).列名 (表名).列名・・・
HAVING 条件(GROUPBYの条件)

ORDERBY (表名).列名 (表名).列名・・

皆さんほとんどご存知だと思いますが、この基本形にあてはめるだけで、解ける問題もあります。

あとは、関数は列名のところにくる

BETWEEN AND
IN
EXISTS

などの特徴をつかめば、かなりの問題が解けます。
データベースとかSQLと聞くだけで、苦手意識をもたれる方も多いですが、パターンをしっかりと押さえれば、これほど点数が取れる分野もありません。皆さん、頑張って得意分野にしてくださいね(^_^)v

posted by heronaka at 22:38| Comment(0) | TrackBack(0) | 第5章 データベース | このブログの読者になる | 更新情報をチェックする

シスアド講座 第85回 SQLの必勝テクニック実践例

前回、ご紹介させていただきましたSQLの基本的形ですが、どう覚えて、どう使えば良いかわからないというご意見をいただきました。

そこで、練習問題を使ってポイントのアドバイスです。

次の問題は、午後問題の設問の一部です。

ここでご紹介するところまでに、長い説明文がありますが、次の部分だけで答が出ますので、チャレンジしてみてください。

SELECT 商品マスタ表.商品番号,商品マスタ表.名称,商品マスタ表.商品分類,[ a ]AS数量

FROM 売上表,明細表,商品マスタ表

WHERE 売上表.売上番号=明細表.売上番号 AND 明細表.商品番号=商品マスタ表.商品番号

AND 売上表.日付[ b ]'2000-04-01'[ c ]'2000-04-30'

[ d ]商品マスタ表.商品番号,商品マスタ表.名称,商品マスタ表.商品分類

[ e ][ a ]DESC



aに関する解答群

ア COUNT(明細表.数量)
イ SUM(売上表.売上総額)
ウ SUM(明細表.数量)


b,cに関する解答群

ア AND イ BETWEEN
ウ FROM エ IN オ TO


d,eに関する解答群

ア GROUP BY
イ ORDER BY
ウ SORT BY























どうでしょうか?

解答は、aがウ、bがイ、cがア、dがア、eがイとなります。

aはASというのは、列名を置き換える命令になります。それがわかれば、数量の合計であることがわかります。

b,cはBETWEEN ANDの形を覚えていれば大丈夫ですよね。

d,eは、eの後ろにDESCがあるので、ORDER BYとわかれば、dは基本形から考えて、GROUP BYだとわかります。

この問題のように設問内の、すべてを、問題本文を見ずに解ける過去問題もあります。

大半の問題が、少なくとも3分の1から、2分の1は、形を覚えることに、よって解けますので、過去問題のSQLを基本形を意識して、チャレンジしてみてくださいね(^_^)v
posted by heronaka at 23:23| Comment(0) | TrackBack(0) | 第5章 データベース | このブログの読者になる | 更新情報をチェックする
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。