とまと あんらいぷ…

エンジニアの活動記録とかつぶやきとか

GitHub
スポンサードリンク

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

スポンサードリンク

基本情報処理試験のためのデータベース概念習得

基本情報処理の試験を受けて
SQLに関しては常に100点だったので
私の持っているデータベースへの理解について
とてもファンキーに乱暴にお伝えします。
本職のくせに実務の点数が悪いのはスルーしてくださいね。

基本情報処理試験結果

固定観念を捨て去る


このブログには「SQL 勉強」とかいうキーワードで
飛び込んでくる人が多いようです。
当然のごとくデータベースの概念がふわふわしてる方が多いでしょう。

SQL、クエリの学習方法でおすすめのサイト紹介(SQL攻略 - 実行すれば理解できる!) でも書いてますが
一般的なプログラム言語とはやや毛色が違うため
なかなかとっつきにくいものだと思います。

通常のプログラミングは
命令1行につき、「1処理」を行うように記述するのに対して
データベースの操作は「集合」を操作するように実行します。
(後述のイメージ参照)

文化が違うために、通常のプログラミングを勉強し始めた方は
既に「プログラムとはこういうもの」という固定観念ができあがっているため
混乱するのだと思います。

例えば・・・
データ集合の一部を変更するようなプログラムをイメージしてみましょう。
データの集合として、10.20,30,40,50 というひとくくりのデータのまとまりがあるとします。

一般的なプログラム言語では、複数のデータを処理する場合
プログラムコードで、1行ずつ命令します。

---プログラムコード---
// 10~50の配列
int[] arr = { 10, 20, 30, 40, 50};

// 20と40を0に更新する
arr[1] = 0;
arr[3] = 0;

//結果 arr { 10, 0, 30, 0, 50};
----------------------
イメージ
一般的なプログラミング言語
「データ」を1行ずつ処理する。
20140501_01_database.png

対してデータベースの操作は「ひとまとめ」で処理します。

20140501_02_database.png

この概念の違いを理解しないと、固定観念によって混乱してしまいます。


データベースのイメージを掴もう


データベースといっても、今はxmlデータベースとかリレーショナル・データベースとか
種類はあります。
今回は基本情報処理で出題される
リレーショナルデータベースシステム(RMBS)-関係データベースの概念をまとめてしまいます。

ぶっちゃけた話、データベースはExcel(エクセル)です。
本当は違いますけど、基本情報処理試験に合格するためや、
仕事を始める前のとっかかりとしては
Excelだと思ってよいです。うん。間違いない。

だってさウィキペディアにも
データは表に似た構造で管理され~

って書いてるもん。
表でしょ? Excelなんですよ。
20140501_03_database.png

基本情報処理の勉強をしていると
「選択」「射影」「結合」とかよくわからない言葉がでてきます。
もうね、いちいち小難しい漢字を当てはめちゃった感が出まくりなんですよ。

こんな言葉は試験が終わったら使いません。(使ったこと無い)
ですが、試験で出てくるので仕方なく覚えるしか無いので
覚えるしか無いですね・・・

というわけで、Excelに例えましょう。

・選択:行の選択
SELECT [*](全部の意味) FROM [表の名前]
20140501_04_database.png

・射影:列の選択
列の選択⇒SELECT [列の名前] FROM [表の名前]
20140501_05_database.png

ね、簡単でしょ。

・結合:
結合については、Excelで、別の表をコピペしたりするでしょ?それです。
他の表と、元の表をガッチャンコ。
それが、結合です。何の捻りもありませんね。

結合はコピペ
INNER JOIN
20140501_06_database.png

それぞれデータベース用語に置き換えると

・選択:行の選択⇒SELECT [*](全部の意味) FROM [表の名前]
・射影:列の選択⇒SELECT [列の名前] FROM [表の名前]
・結合:INNER JOIN だったり LEFT JOIN だったり・・・基本情報処理ではLEFTかINNERを覚えておけばOK!

です。
はい、これだけ覚えたら基本情報処理の
データベースに関連する免疫がつきます。

あとは小手先の技、、というか出題が圧倒的に多い
GROUP BY とやらを覚えたら6割ぐらいは取れるんじゃないですかね。多分。

GROUP BYはSUMです


表ができたら、集計したくなりますよね。
え?ならない。
でも問題には出るんですよ。

で、GROUP BYとはなんぞやというと
SUMです。
集計してね!

ExcelでSUMと書くところを、
SELECT SUM(金額) FROM [表の名前]

ってやれば、集計できます。
20140501_07_database.png

GROUP BYを書き忘れました(笑)
すべての商品の金額の合計が出てますね。

GROUP BYですが、例えば商品ごとの売り上げを集計したい場合に使います。

SELECT 商品コード, SUM(金額) FROM [表の名前] GROUP BY 商品コード
20140501_08_database.png

商品ごとの売り上げ、つまり商品コード毎なので
GROUP BYに[商品コード]を指定します。

SELECT 商品コード, SUM(金額) FROM [表の名前] GROUP BY 商品コード

SELECTのところに、まとめたいもの。
合計したいものはGROUP BYに書かずに、SUMって書きます。

商品名も出したい場合は、「,」でつなげて商品名を追加します。

SELECT 商品コード, 商品名 SUM(金額) FROM [表の名前] GROUP BY 商品コード, 商品名

20140501_09_database.png

どやっ

とにかくデータベースは表って覚えておけばいいんだ


さて、データの集合に対する操作は、Excelによく似ています。
データベース特有の指示する命令語と、
その意味さえ抑えておけばデータベースの問題はほぼ取れます。
頑張ってください!

概念の希望コメントをいただければ、暇な時に作るのでコメントしてね。(多分)

▼この記事を読んだ方は、こんな記事も読んでいます。▼

スポンサードリンク

テーマ:プログラミング - ジャンル:コンピュータ

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://dalmore.blog7.fc2.com/tb.php/111-273903a8
この記事にトラックバックする(FC2ブログユーザー)

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。