データベース
爆速学習のデータベース編です。
※下記の内容に不備がありましたら、コメント頂けると幸いです。また、下記の内容をご使用頂ける場合は自己責任でお願いします。
【目次】
データベースとは?
様々な情報(データ)を格納し、その情報を活用する機能がついているソフトウェアです。
活用する機能とは、「追加」「検索」「抽出」などのことです。
Railsでは運用環境毎(開発・テスト・本番)に一つのデータベースを持っています。
現在広く使われているデータベースは、リレーショナル型のデータベースです。
そして、そのリレーショナルデータベースを管理するシステムがRDBMSといいます。
RDBMSの代表的な製品
MySQL
世界で1,000万以上のサーバにインストールされています。
実は、商用RDBMSで世界No.1のOracleとMySQLは、同じOracle社の製品です。
元は別会社で開発されたRDBMEでしたが、Oracle社の買収によって、同じ会社の管理下に置かれることになりました。
また、Googleで採用されているMariaDBは、MySQLの開発者が開発しました。
MariaDBには独自の機能はあるものの、MySQLと互換性があり、基本的な操作方法も変わりません。
特徴
・動作が速い
・多くのOSで動作する
・多くのプログラミング言語で対応している
使用例
Railsにおけるデータベース
既に何度か出ていますが、Railsではデータベースを運用環境毎(開発・テスト・本番)に使い分けています。
こうすることで、他の環境で行なったデータベースの操作の影響を受けることがなく、事故を防ぐことができます。
データベースの設定は「database.yml」で行います。
本番環境では、AWS EC2やHeroku内にデータベースサーバを作成したりします。
Active Record
アプリのオブジェクトモデルとデータベースのリレーショナルモデルとの構造的なギャップ(インピーダンスミスマッチ)を解消するためのライブラリ。
Railsではこの「Active Record」がデフォルトで設定されています。
詳しくはこちら
運用環境
開発環境(development):
通常(ローカル)、開発をする際に使用する環境。
本番環境(production):
アプリを実際にリリースする際に使用する環境。
テスト環境(test):
アプリの動作をテストする際に使用する環境。
用語
リレーショナルデータベース:
1つのテーブルに全てのデータを入れるのではなく、データを「それぞれ関係を持った(共通項がある)」複数のテーブルに分けて管理し、必要なテーブルの必要な部分だけ集めて利用できるデータベースのこと。
1つのデータをいくつかの項目の集まり(テーブル)で表しています。
1つのデータをレコード、項目をカラムと呼びます。
SQL:
Structured Query Languageの略。
データベースに命令をするための言語。
大きく分けると、「DML(データ操作言語)」「DDL(データ定義言語)」の2つに分けられる。
DML:
・SELECT文
・UPDATE文
・INSERT文
・DELETE文
など
DDL:
・CREATE文
・DROP文
・ALTER文
など
クエリ(Query):
データベースに対しての命令を文字として表したもの。
Sequel Pro(シークエル・プロ):
データベースの中身を分かりやすく視覚化して表示するアプリ。
Macで使用できる。
YAML(ヤムル):
構造をインデントや記号で表現するファイル。
ファイル名の拡張子は「.yml」にする。
今後に向けて
データベースにはかなりいじめられてきたので、時間をかけずにまとめることができました。
残りはサーバだけです。
そして、開発してきた内容を棚卸しして、自分の言葉で説明できるようになれば、目標達成です。