大田区から発信するゆるゆる日記

主にITエンジニアに関する備忘録日記。たまに趣味も。何か不備があればコメント頂けると幸いです。Twitterアカウント https://twitter.com/ryuzan03

データベース

爆速学習のデータベース編です。

 

※下記の内容に不備がありましたら、コメント頂けると幸いです。また、下記の内容をご使用頂ける場合は自己責任でお願いします。

【目次】

 

データベースとは?

様々な情報(データ)を格納し、その情報を活用する機能がついているソフトウェアです。

 

活用する機能とは、「追加」「検索」「抽出」などのことです。

 

Railsでは運用環境毎(開発・テスト・本番)に一つのデータベースを持っています。

現在広く使われているデータベースは、リレーショナル型のデータベースです。

そして、そのリレーショナルデータベースを管理するシステムがRDBMSといいます。

 

RDBMSの代表的な製品

Oracle

Access

PostgreSQL

MySQL

MariaDB

 

MySQL

世界で最も多く使われているオープンソースRDBMSです。

 

世界で1,000万以上のサーバにインストールされています。

 

実は、商用RDBMSで世界No.1のOracleMySQLは、同じOracle社の製品です。

元は別会社で開発されたRDBMEでしたが、Oracle社の買収によって、同じ会社の管理下に置かれることになりました。

 

また、Googleで採用されているMariaDBは、MySQLの開発者が開発しました。

MariaDBには独自の機能はあるものの、MySQLと互換性があり、基本的な操作方法も変わりません。

 

特徴

・動作が速い

オープンソース

・多くのOSで動作する

・多くのプログラミング言語で対応している

 

使用例

Yahoo!

Twitter

YouTube

Facebook

 

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」にする。

 

今後に向けて

データベースにはかなりいじめられてきたので、時間をかけずにまとめることができました。

 

残りはサーバだけです。

 

そして、開発してきた内容を棚卸しして、自分の言葉で説明できるようになれば、目標達成です。