こんばんは!IT未経験からセキュリティデフエンジニアになる!itoshinです。
今日からデータベースに触れる、SQLの操作に入りました。
まず、データベースってなに?
データベース(DB)とは
- 『コンピュータに蓄積されたデータの集合』のこと
- 無造作に集められたものではなく、”目的”を持って蓄積したデータ群
- しばしば文脈によって、広義的に、狭義的に解釈されることがある
- 1.データを蓄積する箱 2.DBMS(データベース管理システム)を含めたもの 3.前述の2とこれにアクセスする検索アプリを含めたもの
DBMS(DataBase Management System)とは
- データベースの妥当性や整合性のチェック
- 複数のユーザが使用する場合の権限管理
- 複数のユーザがデータを変更しようとした場合に起こり得る矛盾の回避
- 『データベースを正しく運用、データを安全に保管するためのソフトウェア』
今回私が学習開始したMySQLもDBMSの一種です。
データベースの種類はどんなものがあるか
- 主流となっているリレーションデータベース(RDB)
- データがツリー構造でアクセスが簡単な階層型データベース
- 階層型データベースの発展型のネットワーク型データベース
- XML形式のデータを格納でき、タグ形式でデータを表現できるネイティブXMLデータベース
- 名前の通りデータをキー項目/値のセットで管理するKey-Value型データベース
主流のRDBと、クラウドで利用されることが多いKey-Value型データベースは押さえておきたい
ここからは主流のRDBについて触れていく
###RDB(リレーショナルデータベース)とは
- Excelのワークシートのような表形式でデータを格納する。これをテーブルという
- テーブルに格納されている各データをレコードという
- レコードに含まれるそれぞれの項目をフィールド、またはカラム(列)という
- 関連するレコードごとに、異なるテーブルに分割して情報を管理できる
- 複数のテーブル内のそれぞれのレコードを識別(関連付け)するためのキー(主キーと外部キー)がある
- 主キーと、それに関連する他のテーブルに用意された参照用のキーが外部キー
RDBの種類
- 現在最も利用されてる商用DBの『Oracle』
- Windows環境でシェアが高い『Microsoft SQL Server』
- パフォーマンスの高さが評価される『MySQL』
- MySQLから派生したDBでLinuxでの標準採用が増加『MariaDB』
- 国内での人気が高いオープンソースDB『SQLite』
- Microsoft Officeに含まれる個人用途のDB『Microsoft Access』
MySQLはOracle社に買収された過去がありながらもサービスを潰されなかったというのだから、それだけの価値を見出されたのかもしれませんね。
買収されたMySQLを尻目に派生させてMariaDBが生まれた歴史も面白い!
以降は私が学ぶMySQLについてアウトプットしていきますよ!
MySQLの構造
- 無償のDBMS。複数のデータベースを配置できる
- データベースの中身はテーブル、DB用の索引機能であるインデックス、レコードの見せ方を表現するビューで構成される
- 初期装備されているデータベースが4つ(infomation_schema, mysql, performance_schema, sys)。これらはMySQLの動作に関わるため削除やレコードの保存先にしてはならない!
- データベースを操作するためのツールが6つ(mysql, mysqladmin, mysqldump, mysqlimport, mysqlcheck, mysqlshow)。
- よく使うのがmysql(mysqlクライアント)。入力コマンドをMySQLに伝え、結果を人間に分かりやすく表示してくれるツール
- mysqladminはデータベースの作成/削除をはじめ、管理系操作を司るツール
- mysqldumpはデータベースの内容をテキストファイルとして出力するツール
- mysqlimportはテキストファイルをデータベースにインポートするツール
- mysqlcheckはデータベースの検査や修復、最適化を行うツール
- mysqlshowはデータベース、テーブル、カラムの情報を取得するツール
ここまでで記事制作1時間50分
そろそろ眠いのと、この後はターミナル(パワーシェル)でのコマンド操作なので、説明(見せ方)を工夫したいな。
よって今日はここまで。おやすみなさい!