기본

ORM / SQL

초혼 2023. 2. 27. 22:30

ORM(Object Relational Mapping)

OOP에서 쓰이는 객체라는 개념을 구현한 클래스와 RDB에서 쓰이는 테이블을 자동으로 연결하는 것(mapping)

 

서로 호환되지 않기 때문에 불일치가 발생

-> ORM을 통해 객체 간의 관계를 바탕으로 SQL문을 자동으로 생성하여 해결

-> 따로 SQL문을 작성할 필요없이 객체를 통해 간접적으로 DB를 조작

 

RDB의 테이블을 객체화 시켜서 SQL문을 직접 작성하지 않고 조작할 수 있게 만들어 주는 것

 

장점

SQL문이 아닌 클래스의 메서드를 통해 DB 조작 가능

매우 편리, 가독성 증가, 부수적인 코드 감소

 

단점

복잡성이 커질 때 잘못 설계하게 되면 성능 저하시키고 일관성을 무너뜨릴 수 있다

속도를 위해 튜닝이 필요한 경우에는 결국 SQL문을 사용해야한다

 

 

SQL(Structed Query Language)

RDBMS를 제어하는 컴퓨터 언어

쿼리문은 정의(Definition), 조작(Manipulation), 제어(Control)로 분류된다

개발자 기준 중요도는 M > D > C

 

정의(Definition)

DB 오브젝트를 생성, 삭제, 변경

CREATE, DROP, ALTER...

 

조작(Manipulation)

DB를 조회, 삽입, 삭제, 변경

SELECT, INSERT, UPDATE...

 

제어(Control)

사용자 권한을 관리

GRANT, DENY, REVOKE...