##はじめに
Railsチューリアルを進めている中で、リレーショナルデータベースとかSQLiteとかPostgreSQLとか全然分からなかったので調べてみました。データベースって一個じゃないんかい!自分のメモ用に記事を書いてみました。
##リレーショナルデータベース
リレーショナルデータベースとはデータを表形式(エクセルを想像してもらえるとわかりやすい)として管理するデータベース管理方式のこと。
TH | TH | TH |
---|---|---|
TD | TD | TD |
TD | TD | TD |
RDBと略されることが多いです(Relational DataBase)。
表の行(横)を「レコード」、表の列(縦)を「フィールド」と言います。表そのもののことを「テーブル」と呼びます。
複数のテーブルを関連付ける(くっつける)こともできます。
##RDBMS
RDBMSとは【Relational DataBase Management System】の略で、先述したリレーショナルデータベースを管理するための専用のソフトウェアのことを指します。
Railsで利用できるRDBMSは「MySQL」「PostgreSQL」「SQLite」。3つともオープンソースで誰でも無料で利用できます。
Railsをインストールしてデフォルトで使用されるRDBMSは「SQLite」のようです。
##PostgreSQLとSQLiteの違い
色々調べてみたがたくさん違いがあるようです。
全て列挙しても大変ですし、私のような初学者には何を言っているのかさっぱり分からないと検索して出てきたサイトの内容を見ながら思ったので、今回はRailsチュートリアルにおいて
「なぜdevelopment環境ではSQLite,production環境(本番環境)ではPostgreSQLを使用しているのか」について考えてみます(正しいかは定かではない笑)。
・SQLite
名前の「ライト」から想像できる方もいらっしゃるかと思いますが、SQLiteは軽量なデータベース(個人利用レベル)を扱うことを想定しているようです。導入するハードルが低い(ライブラリとして利用できる)ことも特徴として挙げられます。
・PostgreSQL
SQLiteに対して、比較的大きなデータを扱うのに長けています。実際にPostgreSQLを使用したことがないので自分では今のところこれぐらいしか分からない…。
一応調べたところ以下の特徴があるようです。
・SQLの標準規格に対する準拠度が高い
・マルチバイト対応(日本語コンテンツを処理しやすい)
・マルチCPUに対するスケーラビリティが高い(接続数が増加してもパフォーマンスが維持される)
##まとめ
「実際の本番環境では多数のユーザーのデータを扱うことを想定しているためRDBMSにPostgreSQLを使用している」のかな?
「RDBMSなんて一緒にした方がややこしくなくていいじゃん!」って僕みたいなど素人は思っちゃうんですけど、どうやら環境によって使い分けるのはよくある話のようです。
##最後に
Railsチュートリアルはデータベース関係の用語についてそんなに詳しく書かれていないので、僕みたいに分からなくて困っている方に少しでもお役に立てたら幸いです!かえってモヤモヤを増やしてしまったら申し訳ないです…。
こんな感じでRailsチュートリアルでわかりづらいなと個人的に思ったところを調べて記事にしているので、他の記事も機会があれば見て頂けると嬉しいです。