アフィリエイト広告を利用しています


スキル無しのシステムインストラクターから、システムエンジニアへの転身日記。
◇◆◇ 2013年取得資格
LPICレベル1
LPICレベル2
LPICレベル3 Core
LPICレベル3 Speciality 302
LPICレベル3 Speciality 303
LPICレベル3 Speciality 304

Cisco CCENT
Cisco CCNA

Java SE 7 Silver
Java SE 7 GOLD

OSS-DB Silver

◇◆◇ 2014年取得資格
HTML5 Professional レベル1

広告

この広告は30日以上更新がないブログに表示されております。
新規記事の投稿を行うことで、非表示にすることが可能です。
posted by fanblog

【OSS-DB試験対策】Silver 勉強進捗危うし…。

おはようございます。
予想はできていたことですが、ゲームに集中しすぎて勉強時間低下。
特に発売日の土曜日と日曜日は、一日中狩りまくってました。両指を痛めるほどwww

やはり、ゲームを一日の生活のリズムに加えるといろんなもののバランスが崩れますね。
ウェブ更新と、資格学習の時間が、がっつり持っていかれる。改めませんとね。

一週間ぶりくらいに、OSS-DBの参考書を開きました。
そう、勉強会以来です。正直、なめてました。
実際使ったことあるし、大丈夫でしょう!なんて思ってましたが、
まぁ、コマンド一つ一つが細かいこと・・・。資格試験てこういうものでしたね。
今週土曜日受験は、改めて来週火曜日に持ち越そうかと考えています。

ハイペース学習で、水曜日に1週できるかといったところで、木曜と金曜と土曜に仕上げ・・・
といけるか・・・といったところです。CCENTがそんな感じのスケジュールでしたが、
ちょっと、モチベーションが落ちている時期だけに危険かもしれない。

ちょっと、今週から追い上げてみて、様子見・・・といったところでしょうか。

独自のツールコマンドや、バックアップ&リストアでちょっと詰んでいます。
翔泳社の本だけで突破するのが不安で、黒本もやらなきゃいけない気もします。
だとすると、火曜受験がいいところだな。

今、Javaの試験範囲とは関係ない分野の学習が必要になっていて、
そっちにベクトルを持っていかれているのも事実。
やはり、期日が決まっている基本情報は、足かせになるなぁ・・・。
いろんな人が期日に苦しんでいますね。

気合で乗り越えなければなりませんね。

【OSS-DB試験対策】Silver 勉強会に参加してきたよ。

大人気企画!9月末までに資格取得を目指そう!LPIC&OSS-DB 勉強会

参加してきました。

10時〜12時 自習形式の勉強会。12時から懇親会。

100名座れるスペースほどでしたが、チューター、主催者合わせて15名ほどでした。
しかも、一番乗りで、10分前になってもだれも来ないからびっくり…w

チューターさんは、ほぼボランティアな感じで、指導スキルを高めるために参加されてるようです。
Linuxの経験の長い方や、現役講師の方が参加してくださいました。

黙々と2時間勉強させていただきました。
今日、電車で1章やって、自習時間で2章の正規化やりました。
正規化苦手なんですよね。シスアドなどでやっては来てるんですが、
いまいち、よくわからない。わかるんだけど、わからないw

てか、この辺、意識しなければいけないほどのデータベースを組んだことがない。

そして、懇親会の時間になり、10人ほどでお食事会。
さすがに、自分みたいにLPIC全部持ってます的な人は、いませんが、
Linux、データベースに限らず、いろいろ勉強されているようで、刺激になりました。

自分も無作為に資格を取っているようで、Webアプリケーション開発といった大きい目標に合わせて
資格を選定しています。決して無駄になりません。

あいにく名刺も持っておらず、一人の方とだけ連絡先を交換させていただきました。

しかし、全員男性。こんなことは滅多にないとのこと。すごいな。引きの悪さwww
女性がITの現場で、どういった仕事をして、どうやってキャリアを積んできたかとか、
とっても気になるんだよな。。。

まだ、一回学習の機会をいただけるので、試験前に一回参加してきます。
今日お会いした方、いろいろ情報をいただいてありがとうございました。

【OSS-DB試験対策】OSS-DB の勉強も始めました!

こちらも申し込みましたよ。受験チケット!
OSS-DB Silver!
DB系の試験は初めてです。ぶるぶる。

DBの知識としては、Oracleのインストール、アンインストールを100回くらいしたことあるのとwwww

ゼロから始めるデータベース操作をPostgreSQLで一通りやりました。

CD付 SQL ゼロからはじめるデータベース操作 (プログラミング学習シリーズ)

新品価格
¥1,974から
(2013/9/5 22:18時点)




結構、触ってるんですよね。でも、実務的に使ってないから、すぐ忘れちゃう。
これから思い出しながら頑張ります!試験用の対策書は、これを選びました!
OSS教科書 OSS-DB Silver

OSS教科書 OSS-DB Silver

新品価格
¥3,990から
(2013/9/5 22:21時点)




LPIC時にお世話になった翔泳社!
Javaの時は、発売が遅くて試験日に間に合わなかった翔泳社!

400ページほどのぺらい参考書です。
内容もパラパラ見てみたけど、たいして難しそうではない。
これなら、全部やれる気がするわ!ICND2は600Pほどあったから断念www
ただ、脳内で処理できるかが問題な試験だな。
正直、コマンドはうろ覚えだわ。固めていこう!!
ミック(DBの偉い人)の教えを今、解き放たん!!

ちなみに、LPI主催で、こんなイベントがあります。
http://www.lpi.or.jp/news/event/page/seminar20130807/

みんなで並んで勉強会!!
いい機会なんで、参加してみようかなと思っております。
資格マニアの人と話せるいい機会じゃないかな。
OSS-DBについて、いろいろ教えてもらえるかもしれないし!
LPICのことを聞かれても、私はド素人なふりしてそうですけどww

Javaと、基本情報と平行になりそうですが、ちょこちょこやっていきますよー。

【OSS-DB試験対策】Silver データ型の基本を押さえる 数値型 /文字列型 /日付型/制約

データ型の基礎。

すべての列に必ず指定するものとして、データ型がある。
そのデータ型は、数値型・文字列型・日付型がよくつかわれる。
その中でも代表的なものを例に挙げる。

◆ 数値型


INTEGER型…整数を入れる列に指定するデータ型。小数は不可。
     範囲は、-2147483648 から+2147483647の整数。

◆ 文字列型


CHAR型…固定長文字列。
    指定した文字列の長さが最大長に満たない場合は、半角スペースで埋める。
(例)CHAR(8)…'abc '

VARCHAR型…可変長文字列
     指定した文字列の長さが最大長に満たなくても、半角スペースで埋めない。
(例)VARCHAR(8)…'abc'

長い文章に対応した型もある。

◆ 日付型


DATE型…日付(年月日)を入れる列に指定するデータ型。
(例) DATE…'2013-08-05'

時間のみ指定するものなどもある。

◆ 制約


データ型の他に、列に入れるデータに制限や条件を追加する機能。

NOT NULL …無記入ではいけない。必ずデータが入っていることを示す。
PRIMARY KEY() …主キー制約の設定。()内に主キーに設定する値を指定する。


上記は、本当に一例。細かく分けると、結構ある。
上級者になったら、データベースのパフォーマンスを考えて
細かく考える必要があるんでしょう。

【OSS-DB試験対策】Silver データ操作言語の基本を押さえる INSERT / UPDATE / DELETE

データ操作言語の基本を押さえ、データの挿入・更新・削除を学ぶ。

◆INSERT



テーブルにデータを挿入する。

「INSERT INTO 表名 (列名[,…]) VALUES(値[,…])」
INSERT INTO goods(goods_id,goods_name,goods_class,purchase_price,sales_price,record_date)
VALUES(7,'すいか','果物',200,500,'2013-08-02');


結果の確認
SELECT * FROM goods;


goods_id | goods_name | goods_class | purchase_price | sales_price | record_date
----------+------------+-------------+----------------+-------------+-------------
1 | もも | 果物 | 30 | 100 | 2013-06-20
2 | なし | 果物 | 25 | 80 | 2013-06-20
3 | みかん | 果物 | 10 | 30 | 2013-06-27
4 | 牛肉 | 精肉 | 100 | 300 | 2013-07-10
5 | 豚肉 | 精肉 | 100 | 200 | 2013-07-15
6 | さば | 鮮魚 | 30 | 150 | 2013-08-01
7 | すいか | 果物 | 200 | 500 | 2013-08-02

列名を略して記載する方法もある
INSERT INTO goods VALUES(7,'すいか','果物',200,500,'2013-08-02');



◆UPDATE



データの更新をするにはUPDATE文を使います。

「UPDATE 表名 SET 列名 = 値 WHERE 条件式」
UPDATE goods SET sales_price=600 WHERE goods_id=7;


結果を見てみます
SELECT * FROM goods WHERE goods_id=7;


goods_id | goods_name | goods_class | purchase_price | sales_price | record_date
----------+------------+-------------+----------------+-------------+-------------
7 | すいか | 果物 | 200 | 600 | 2013-08-02

精肉のsales_priceを10上げます
UPDATE goods SET sales_price=sales_price+10 WHERE goods_class='精肉';


結果を見てみます
SELECT goods_name,sales_price FROM goods;


goods_name | sales_price
------------+-------------
もも | 100
なし | 80
みかん | 30
さば | 150
すいか | 600
牛肉 | 310
豚肉 | 210

◆DELETE



「DELETE FROM 表名 WHERE 条件式」
idを指定して「すいか」を削除します。
DELETE FROM goods WHERE goods_id=7;


結果を見てみます
SELECT goods_name,sales_price FROM goods;


goods_name | sales_price
------------+-------------
もも | 100
なし | 80
みかん | 30
さば | 150
牛肉 | 310
豚肉 | 210

すいかの行だけ消えました。
基礎の基礎だったら、ここまでの学習でSQLは使えるようになる。
ここから、少しずつ応用に入っていきますね。

【OSS-DB試験対策】Silver 検索の基本を押さえる  JOIN/別名表記/SQLの実行順序(処理の順番)

検索時に、テーブルの結合をする際に使うコマンド「JOIN」の
使い方を押さえながら、テーブル名に別名をつけるやり方、
コマンドの実行順序について学習。

◆JOIN 



結合する表一つ目
SELECT * FROM milkbrand;


brand_id | farm_id | brand_name
----------+---------+-------------------
1 | 1 | おいしか牛乳
2 | 1 | モグミルク
3 | 2 | 濃い牛乳
4 | 3 | NEWジャージー牛乳
5 | 3 | 俺の牛乳

結合する表二つ目
SELECT * FROM farm;


farm_id | farm_name
---------+--------------
1 | 牛田牧場
2 | 乳牛ファーム
3 | とれたて農場

「FROM 表1 JOIN 表2 ON 表1.列 = 表2.列」
SELECT milkbrand.brand_name,farm.farm_name FROM milkbrand JOIN farm ON
milkbrand.farm_id=farm.farm_id;


brand_name | farm_name
-------------------+--------------
おいしか牛乳 | 牛田牧場
モグミルク | 牛田牧場
濃い牛乳 | 乳牛ファーム
NEWジャージー牛乳 | とれたて農場
俺の牛乳 | とれたて農場

● 別名をつけることで短くできる。

別名を付けるときは、FROM,JOINで指定するテーブル名の次に指定する
SELECT m.brand_name,f.farm_name FROM milkbrand m JOIN farm f ON m.farm_id=f.farm_id;


brand_name | farm_name
-------------------+--------------
おいしか牛乳 | 牛田牧場
モグミルク | 牛田牧場
濃い牛乳 | 乳牛ファーム
NEWジャージー牛乳 | とれたて農場
俺の牛乳 | とれたて農場


● SQLの実行順序

最初は不思議に思ったものだが、DBは処理の順番が左から右ではない。

FROM→WHERE→GROUP BY→HAVING→SELECT→UNION→ORDER BY→DISTINCT

のように、FROMが一番最初に処理される。学習の初めの頃は気にならないが、
複雑な処理をするときには必要になる知識である。

【OSS-DB試験対策】Silver 検索の基本を押さえる SELECT / WHERE / ORDER BY

SQL操作で最も使うであろう、データベースの検索コマンドの基本を押さえる。

◆ SELECT



● SELECT 文の基本構文

SELECT [DISTINCT] * | SELECT 項目リスト
FROM 表名 [,…]
[WHERE 検索条件式]
[GROUP BY グループ化式]
[HAVING 検索条件式]
[ORDER BY 並べ替え式]

● SELECT 全件全項目検索

「SELECT * FROM 表」
SELECT * FROM goods;


● SELECT 項目リスト

SELECT goods_name,sales_price FROM goods;

goods_name | sales_price
------------+-------------
もも | 100
なし | 80
みかん | 30
牛肉 | 300
豚肉 | 200
さば | 150

WHERE



● 条件を指定して欲しいデータだけを取り出す

goods_idが3番の商品名を取り出す
SELECT goods_id,goods_name FROM goods WHERE goods_id=3;

goods_id | goods_name
----------+------------
3 | みかん

goods_idが3番以外の商品名を取り出す
SELECT goods_id,goods_name FROM goods WHERE goods_id=3;

goods_id | goods_name
----------+------------
1 | もも
2 | なし
4 | 牛肉
5 | 豚肉
6 | さば

sales_priceが200以上のものを取り出す
SELECT goods_id,goods_name,sales_price FROM goods WHERE sales_price>=200;

goods_id | goods_name | sales_price
----------+------------+-------------
4 | 牛肉 | 300
5 | 豚肉 | 200

◆ ORDER BY



● DESCが降順、ASC(または未記入)が昇順

「ORDER BY 列名 DESC」
SELECT goods_id.goods_name,sales_price FROM goods ORDER BY sales_price DESC;

goods_id | goods_name | sales_price
----------+------------+-------------
4 | 牛肉 | 300
5 | 豚肉 | 200
6 | さば | 150
1 | もも | 100
2 | なし | 80
3 | みかん | 30

「ORDER BY 列名 ASC(または未記入)」
shop=# SELECT goods_id,goods_name,sales_price FROM goods ORDER BY sales_price ASC;

goods_id | goods_name | sales_price
----------+------------+-------------
3 | みかん | 30
2 | なし | 80
1 | もも | 100
6 | さば | 150
5 | 豚肉 | 200
4 | 牛肉 | 300

【OSS-DB試験対策】Silver PostgreSQLをインストールしてからテーブルを作成する


テーブルを作成するまでの流れ



PostgreSQLをインストールしてから、実際にテーブルを作るまでの流れです。
しかし、ブログに貼り付けるとSQL結果がずれちゃうな・・・。
一応、CCSでMSPゴシックや、メイリオ指定しているんですがね・・・。
見るときは、…脳内変換してくださいねw


利用できるデータベースのリストを表示
psql -l


データベースにログイン(psql データベース名 ユーザー名)
psql postgresql dba


プロジェクトに使うデータベースを作成
create database shop;


作成したデータベースへ切り替えを行う
\c shop dba


テーブルを作成する
CREATE TABLE goods
(goods_id INTEGER NOT NULL,
goods_name VARCHAR(50) NOT NULL,
goods_class VARCHAR(25) NOT NULL,
sales_price INTEGER,
purchase_price INTEGER,
record_date DATE,
PRIMARY KEY (goods_id));


作成したテーブルの定義を確認する
SELECT * FROM goods;

Table "public.goods"
Column | Type | Modifiers
----------------+-----------------------+-----------
goods_id | integer | not null
goods_name | character varying(50) | not null
goods_class | character varying(25) | not null
sales_price | integer |
purchase_price | integer |
record_date | date |

テーブルに中身を登録していく
INSERT INTO goods VALUES (0001,'もも','果物',30,100,'2013-06-20');
INSERT INTO goods VALUES (0002,'なし','果物',25,80,'2013-06-20');
INSERT INTO goods VALUES (0003,'みかん','果物',10,30,'2013-06-27');
INSERT INTO goods VALUES (0004,'牛肉','精肉',100,300,'2013-07-10');
INSERT INTO goods VALUES (0005,'豚肉','精肉',100,200,'2013-07-15');
INSERT INTO goods VALUES (0006,'さば','鮮魚',30,150,'2013-08-01');


テーブルの中身を確認する
SELECT * FROM goods;


goods_id | goods_name | goods_class | sales_price | purchase_price | record_date
-------------+------------------+------------------+----------------+---------------------+-------------
  1 | もも | 果物 | 30 | 100 | 2013-06-20
2 | なし | 果物 | 25 | 80 | 2013-06-20
3 | みかん | 果物 | 10 | 30 | 2013-06-27
4 | 牛肉 | 精肉 | 100 | 300 | 2013-07-10
5 | 豚肉 | 精肉 | 100 | 200 | 2013-07-15
6 | さば | 鮮魚 | 30 | 150 | 2013-08-01

【OSS-DB試験対策】Silver PostgreSQLの基本を押さえる

PostgreSQLの基本を押さえる



● データベース利用の基本コマンド

・表の作成   … CREATE TABLE
・データの挿入… INSERT
・データの検索… SELECT
・データの更新… UPDATE
・データの削除… DELETE

● psqlツール

・データベースのリスト表示… psql -l
・データベースへの接続  … psql データベース名 ユーザー名(省略可)
・psqlのヘルプの表示   … データベースへの接続後、help

● メタコマンド
\(バックスラッシュ)で始まるコマンドをメタコマンドと呼ぶ。
データベースの接続を終了したり、ヘルプを表示したりするコマンドがある。

\h…SQLコマンドのヘルプを表示 <使用例> \h INSERT
\?…psqlコマンドのヘルプを表示
\g…またはセミコロンで閉じると、クエリを実行する
\q…データベースの接続を終了する。
\c…\c データベース名 ユーザー名 と続けて
   接続先のデータベースを切り替える。
\d…表の確認。登録されている表の一覧を表示する。
   \d table1 のように\dに続けて表名を入力すると
   該当する表の定義(カラム、型、修飾語)を確認することができる。

● いろいろな呼び方

…テーブル、リレーション
…カラム、フィールド、属性
…レコード、タプル、データ単位

● テキストファイルからの読み込み実行

psql -f ファイル名 [データベース名] [ユーザ名]

【OSS-DB試験対策】Silver PostgreSQLインストールしちゃいますか

さて、LPICも全制覇しましたし、違う資格の勉強しましょう。

Xenの構築、ホームページの作成、LPICレベル3の技術解説などの
課題を背負いながら、OSS-DBを受験しようと思います。

目標は長めにとって、今月末くらいまでですかね。
SQL自体は勉強が初めてではありません。
PostgreSQLを一度ソースインストールし、下記の本を一冊読んでます。

CD付 SQL ゼロからはじめるデータベース操作 (プログラミング学習シリーズ)

新品価格
¥1,974から
(2013/8/1 22:21時点)




どれだけ翔泳社好きなんだと・・・
この本は、OSS-DBのPostgreSQL以外のSQL言語でも使える本で、
言語ごとに特殊な記述が必要なときには、別で解説してくれます。
とーっても読みやすいです。

今の仕事に就く前は、Oracleを組み込んだソフトウェアを保守してましたが、
俺はSQL覚えられない。と思い込んだほど、SQL嫌いでしたが、すんなり読めました。
でも、相関サブクエリの概念がいまいち飲み込めないんだよな・・・

さて、雑談はさておきまして、CentOS6.3にPostgreSQLをインストールしていきます。
PostgreSQL自体は、ソースインストールしますが、
その他必要ファイルはyumでインストールしてしまいます。

作業前に



インストール&設定には、たびたびroot権が必要になるため、
suしてからvisudoコマンドで作業アカウントに対してsudoの権限を与えておく。
su
visudo

%user ALL=(ALL) ALL
↑作業者のアカウント

必要なファイルを用意



postgresql 9.2.4
wget http://ftp.postgresql.org/pub/source/v9.2.4/postgresql-9.2.4.tar.bz2


readline-devel 6.0.4
yum -y readline-devel


zlib-devel 1.2.3
yum -y zlib-devel


gcc 4.4.7
yum -y gcc

↑これがないと、configure: error: no acceptable C compiler found in $PATH


解凍&インストール



解凍して、作業ディレクトリへ
tar jxvf postgresql-9.2.4.tar.bz
cd postgresql-9.2.4


Postgresのインストールディレクトリを作成
(インストール先は任意)
sudo mkdir -m 775 /usr/local/pgsql


configureにてmakeファイルを生成 --prefixにてインストール先を指定
(インストール先は任意)
./configure --prefix=/usr/local/pgsql


ソースファイルのコンパイル。
成功すると「All of PostgreSQL successfully made. Ready to install.」

make


root権を持ってインストール。root権が無いとエラーになります
成功すると「PostgreSQL installation complete.」
sudo make install


ユーザー作成 & 所有権変更



現状、データベースの権限はrootにある事を確認。
sudo ls -la /usr/local/pgsql/

drw-r--r--. 6 root root 4096 7月 31 02:26 2013 .
drwxr-xr-x. 13 root root 4096 7月 31 02:13 2013 ..
drwxr-xr-x. 2 root root 4096 7月 31 02:26 2013 bin
drwxr-xr-x. 6 root root 4096 7月 31 02:26 2013 include
drwxr-xr-x. 3 root root 4096 7月 31 02:26 2013 lib
drwxr-xr-x. 6 root root 4096 7月 31 02:26 2013 share

データベース管理用のユーザーを作成(ユーザー名は任意)
sudo useradd dba
sudo passwd dba


/usr/local/pgsql配下のファイルのオーナー権をdbaに変更
sudo chown -R dba /usr/local/pgsql/
sudo chgrp -R dba /usr/local/pgsql


dbaにもsudoの権限を与えておく
su
visudo

%dba ALL=(ALL) ALL

PostgreSQLの起動



dbaユーザにスイッチしてから、ホームディレクトリへ移動
su dba
cd ~


.bashrcにてPATHにPostgreSQLの実行コマンドのディレクトリを登録しておく
(次回ログイン時に有効)
vi .bashrc

# User specific aliases and functions
export PATH=$PATH:/usr/local/pgsql/bin
export MANPATH=$MANPATH:/usr/local/pgsql/man
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/pgsql/lib
export PGDATA=/usr/local/pgsql/data

一度suしてdbaにて入り直すとPATHが通ったことが確認できる
echo $PATH


/usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/hiroki/bin:/usr/local/pgsql

データベース格納領域の初期化、オプションとして、文字コードを指定し、
ロケール(言語などによる処理)を無効化しています。
initdbコマンドを実行したユーザーがPostgreSQLのスーパーユーザーとして認識されます。
成功するとSuccess. You can now start the database server usingの文字列が返ってきます
initdb --encoding=UTF8 --no-locale


PostgresSQLのプロセスを起動させます
成功すると、server startedの文字列が返ってきます
pg_ctl -w start


もし、操作が終わりプロセスを停止する場合は、
pg_ctl stop

プロセスを終了します。


データベースに接続



「psql データベース名 ユーザー名」で接続します。
初めからあるデータベースは、「postgres」です。
psql postgres dba

[dba@localhost ~]$ psql postgres dba
psql (9.2.4)
Type "help" for help.

データベースから抜けるときはメタコマンドの「\q」コマンドで抜けます
\q


データベースに接続した状態であれば、新たなデータベースを作成できます
CREATE DATABASE test1;

CREATE DATABASE

次回ログイン時にtest1を指定して起動すれば、test1にテーブルを作成したりできます。


ここまでです。簡潔に細やかに記載しました。
2度目のインストールなので、ざっと1時間くらいですかね。
PostgreSQLは、結構すんなりソースインストールできる方だと思います。
initdbのあたりがちょっと特殊ですかね。

次回からはコマンドなどのお勉強。しばらくSQL続きます。
<< 前へ     >>次へ
×

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