学習のアウトプット(モデルの深掘り)
モデルの深掘り。
複数の用語が出てきて、それぞれの関係性を理解するのに手間取った。
モデルによるデータベースの操作は、
ActiveRecordというオブジェクトによって実現している。
ActiveRecordはORMという技術に分類される。
【RDB】
リレーショナルデータベース
→表形式でデータを管理するデータベース
【RDBMS】
リレーショナルデータベースマネジメントシステム
→リレーショナルデータベースを管理するシステム(MySQLなどがこれに当たる)
※カリキュラムでは、便宜上なのか「RDBはMY SQLを使っている」と表現されていた。
【ORM】
RDBのデータを、オブジェクト指向プログラミング言語でオブジェクトとして
使用するために変換する技術。
Ruby on RailsのActiveRecordもこれに当たる。
【SQL】
SQL(エス・キュー・エル/シークェル)とはStructured Query Languageの略で、
RDBの操作を行うための言語。ActiveRecordなどのORMのメソッドは、
SQLに変換されるためテーブルの操作が可能になる。
SQLはデータベースやテーブルに対してさまざまな命令を行うが、
その命令は大きく3つに分類される。
・データを定義するDDL(Data Definition Language)
→DBやテーブルを作成する・削除する
・データを操作するDML(Data Manipulation Language)
→データを探す・登録する・更新する
・データを制御するDCL(Data Control Language)
→変更を確定する・取り消す
---------------------------------------------------------------------------------
【上記を自分の言葉でまとめると】
☆MY SQLで管理されたRDBをオブジェクトとして使用する為に、ORM技術であるActiveRecordを使っている。
このORM(ActiveRecord)のメソッドは、SQLという言語に変換されてテーブル操作を行なっている。
→つまり、Ruby言語とSQL言語の間でORM(ActiveRecord)が変換を行なっているというイメージ?
SQLとは言語の1つで、データベースの操作を行うことを可能にするもの。
ちなみにSQLには様々な命令があるが、国際基準で文法が定められているので、
MySQL以外のリレーショナルデータベースを用いた場合でも
文法はあまり変わらず、知識は汎用的に活用できる。
---------------------------------------------------------------------------------
【find_by_sql】
RailsでSQL文を使用し、データを検索し取得する際に使用するメソッドのこと。
(ActiveRecordメソッドのfindをSQL文で表現し直す際に用いた)