データベースのおべんきょ。
本日のキーワード
・データベース(DB)
・RDB(リレーショナルデータベース)
・SQL
・MySQL
・クエリー言語
先週の二日間はJavaを離れてDBつまりデータベースの事に関して学んでいました。主にMySQLのソフトをインストールし、クエリー言語を用いて目的のデータの取り出し、テーブル作成、変更、削除等の繰り返し練習をやっていました♪DBの概念と仕組みや操作方法を理解した上で、つい先日までやっていたservetとの連携を出来るようにするためです。
DBについて学んだ期間はそんなに長くはないですが、自主学習や1対1の講義で学習したことをさらっとまとめておこうと思います。
●データベースとは?
→Date(情報)の Base(基地)
データベースは大まかに一般的なクライアントサーバ型とファイル共有型の2種類に分けられる。前者の代表的なソフトはOracle、SQLServer。後者はJetなど。
データベースって大量のデータを管理・保管してるものという曖昧なイメージ...たとえばどんな所で役立っているか身近な例で取り上げると、
1.預金残高を間違いなく記憶してくれている銀行口座
2.電話番号案内サービスでオペレーターが即座に番号を調べてお知らせしてくれる
のはデータベースのおかげ!
こう考えると日常生活において意外とデータベースのお世話になっているもんだなぁ。。。
データベースの中でも今一番効率的で機能的なものがRDB(リレーショナルデータベース)
●RDBとは?
→・各データを2次元の表として表現
・複数の表のデータを関連付ける
あとデータベースで重要なキーとなる存在が「トランザクション」「ACID」
●トランザクションとは?
→処理の一単位。それ以上細かく分けられない最小単位。たとえば銀行口座の入出金。ATMの画面で引き落としの確認ボタンを押してから、送金が完了するまでに「送金中」が存在する。送金前、送金中、送金後は一連の処理であり切り離せない為、1トランザクションとカウントされる。
●「ACID」とは?
トランザクションの処理の4つの特性の頭文字をとったもの。
「A」:Atomicity(原子性)一連の処理は、全体として実行されるか、実行されないか、どちらかであることが保証されることを指す。
「C」:Consistency(一貫性)処理結果がある条件や整合性を保つことが保証されるという意味である。
「I」:Isolation(独立性)その処理について、結果だけが他から見ることができ、実行中の途中状態が他へ影響することが無いということである。
「D」:Durability(永続性)その処理が完了したという結果を受けた段階で、結果は失われることの無い永続的なものとしてデータベースに記録されている、ということを指している。
●RDBのテーブルの考え方
キー + 全体のデータ(情報+外部キー)で成り立つ。
●SQL
RDBMSは問い合わせ言語(クエリー言語)を用いて目的のデータを取り出す。問い合わせ言語はSQLという言語が標準。
おなじみのJavaとかCっていうのはプログラミング言語。プログラミング言語ってフローチャートを思い浮かべながら処理の手順をパソコンに書き込み指令をだしていたよね?だけどDBにおいてはこの条件に合うデータをくださいというように、「問い合わせ」を記述する!(HowじゃなくてWhatね!)
だからプログラミング言語だとある程度決まった構文のなかにどのように処理を記述しパソコンに指令を出すか悩ましかったけど、クエリー言語はいたってシンプルなので学習しやすい(*・ω・*)
お勉強は以上。
クエリー言語でのテーブル作成・レコード追加・列の合計値取得・グループ化とかまで載せようと思ったけど、体調が万全ではないので今回はここらへんで自粛させていただきます><(自分が苦戦したところ載せたかったなぁ)
最後に適当な解説と適当な締めくくりになっちゃってごめんなさい。。。
それではみなさんも体調にはお気を付けくださいませ!
おやすみなさい(ρω*)ノ~