10월 18일 (월) ORM (Object-Relational Mapping)

Southbig·2021년 10월 18일
0

ORM (Object-Relational Mapping)

ORM을 사용하면 관계형 데이터베이스에 있는 엔티티, 레코드에 대하여 접근할 때, 마치 자바스크립트에 있는 객체 혹은 class를 다루듯이 취급할 수 있다

즉,

ORM은 관계형 데이터베이스와 자바스크립트 객체와의 통역사 역할을 한다

자바스크립트에서 class를 만들고 new키워드를 통해서 instance를 만드는 과정을 데이터베이스에서 엔티티 정의를 갖이고, 하나의 레코드를 만드는 것과 같다

엔티티 = table
레코드 = 행

자바스크립트에서 객체에서의 각 속성은, 데이터베이스에서는 필드(field)

객체지향에서 데이터를 다루는 방법과 관계형 데이터베이스에서 데이터를 다루는 방법이, 서로 접근방법이 다르다

관계형 데이터가 익숙하지 않고, 자바스크립트 코드가 익숙한 사람은 ORM을 이용하면, 관계형을 사고를 하지 않고, 자바스크립트 코드를 이용하여 관계형데이터베이스를 접근 할 수 있다

접근방법 자체를 프로그레밍 언어의 관점에서 맞출 수 있도록 도와주는 것이 ORM이다

SQL문이 전혀 없이 데이터베이스에 접근할 수 있다

Model

객체 지향 프로그래밍에서 객체는
1. 상태를 나타내는 프로퍼티와
2. 동작을 나타내는 메서드를
하나의 논리적인 단위로 묶은 복합적인 자료구조

Sequelize

  • a promise-based Node.js ORM
  • 지원 RDBMS
    • Postgres
    • MySQL
    • MariaDB
    • SQLite
    • Microsoft SQL Server

ORM 예시 코드

  • Association (연관짓다) // join table

  • Transaction // 은행업무
    하나하나의 쿼리의 조합을 하나의 작업 단위로 보고,
    중간에 문제가 생긴다면, rollback 혹은 commit을 해주는 것이 transaction이다

ex
1. 통장에서의 조회
2. 통장에서의 출급
3. 다른통장에서의 입금

profile
즐겁게 살자

0개의 댓글