むじんブログ ”3歩進んで2歩下がる”

37歳未経験からのエンジニア転職を目指す営業部長

学習のアウトプット(モデルの深掘り)

モデルの深掘り。

複数の用語が出てきて、それぞれの関係性を理解するのに手間取った。

 

 

 

モデルによるデータベースの操作は、

ActiveRecordというオブジェクトによって実現している。

ActiveRecordORMという技術に分類される。

 

RDB

リレーショナルデータベース

表形式でデータを管理するデータベース

 

RDBMS

リレーショナルデータベースマネジメントシステム

リレーショナルデータベースを管理するシステムMySQLなどがこれに当たる)

※カリキュラムでは、便宜上なのか「RDBMY SQLを使っている」と表現されていた。

 

【ORM】

RDBのデータを、オブジェクト指向プログラミング言語でオブジェクトとして

使用するために変換する技術。

Ruby on RailsActiveRecordもこれに当たる。

 

SQL

SQLエス・キュー・エル/シークェル)とはStructured Query Languageの略で、

RDBの操作を行うための言語ActiveRecordなどのORMのメソッドは、

SQLに変換されるためテーブルの操作が可能になる。

 

SQLはデータベースやテーブルに対してさまざまな命令を行うが、

その命令は大きく3つに分類される。

 

・データを定義するDDLData Definition Language

DBやテーブルを作成する・削除する


・データを操作するDMLData Manipulation Language

→データを探す・登録する・更新する


・データを制御するDCLData Control Language

→変更を確定する・取り消す

 

---------------------------------------------------------------------------------

【上記を自分の言葉でまとめると】

MY SQLで管理されたRDBをオブジェクトとして使用する為に、ORM技術であるActiveRecordを使っている。

このORMActiveRecord)のメソッドは、SQLという言語に変換されてテーブル操作を行なっている。

つまり、Ruby言語とSQL言語の間でORMActiveRecord)が変換を行なっているというイメージ?

 

SQLとは言語の1つで、データベースの操作を行うことを可能にするもの。

ちなみにSQLには様々な命令があるが、国際基準で文法が定められているので、

MySQL以外のリレーショナルデータベースを用いた場合でも

文法はあまり変わらず、知識は汎用的に活用できる。

 

---------------------------------------------------------------------------------

【find_by_sql

RailsSQL文を使用し、データを検索し取得する際に使用するメソッドのこと。
ActiveRecordメソッドのfindをSQL文で表現し直す際に用いた)