落ち着きのないUIデザイナーの備忘録

UIデザイン/フロントエンド/Ruby on Railsなどの知識や技術の備忘録です。

Ruby on RailsにおけるRDBMSの仕様と基礎

そもそもRDBMSとは?

RDBMSは、リレーショナルデータベース管理システムの略で、

つまりは「リレーショナルデータベース」を管理するためのシステムです。
PostgreSQLMySQLなど

リレーショナルデータベースは、データをカラム(列)と、レコード(行)の中に入れて、テーブル(表)に並べるものです。(※個人的には、エクセルファイルを思い浮かべるとイメージしやすいです。 )
カラムとレコードの位置で、データの抽出などが効率的におこなえます。

またテーブルが複数存在する場合でも、あらかじめ割り振られたIDや主キーとなる項目を利用して、データ同士を関連付けることにより、テーブルを内部結合してひとつのテーブルであるかのように扱うこともできます。

このときRDBMSでは、データベースとのやり取りに、SQL言語が用いられます。 


データベースの正規化とは?

データが複数の箇所に散在したり、データが重複するという状況にならないよう、整合的にデータを取り扱えるようにデータベースを設計することを、データベースの正規化といいます。
正規化をおこなうことで、運用時のデータの追加・更新・削除などの作業をおこなう際に、データの不整合や喪失が起きるのを防ぐのと同時に、メンテナンス性を向上させることができます。


RailsにおけるRDBMSの使い方

database.ymlファイルに、ユーザ名とパスワードなどの情報を記載する。

PostgreSQLの場合の一例

上記の設定を行い、database.ymlとActiveRecordを介してRDBMSへのアクセスをおこないます。

データの参照、追加、更新、削除などの全ての作業は「SQL」にて行う。
しかしRailsでは、直接SQLを描かなくとも、ActiveRecordの機能によって、コードをSQLに翻訳し、RDBMS内で実行させることができます。

RubyRuby on RailsのコードからSQL文への翻訳の一例

RubyRuby on Rails SQL
rake db:create CREATE DATABASE ・・・
rake db:migrate CREATE TABLE ・・・
Blog.all SELECT * FROM blogs;
Blog.find(1) SELECT * FROM blogs WHERE id = 1;

 

・アソシエーションとは

あるテーブルのデータに紐づく別のテーブルのデータを取得したい時に、
それぞれのモデルとモデルを関連づける、アソシエーションをおこなうことで、実現することができます。

詳細については、下記のオフィシャルガイドに詳しく記載がありましたので、こちらをご参照ください。

 


railsguides.jp