Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Expand
titleORM의 DDL 논쟁

위 코드를 살펴보면, ORM이  DDL까지 할수 있습니다. DB 초기설정시 중요한 역활을 할수 있지며 마이그레이션에서도 중요한 역활을 부여할수가 있습니다. 

권한및 역활에따라 다음과 같은 용어로 분류가 되며 ORM은 아래 3가지를 OOP방식으로 모두 일괄적인 방법으로 할수있는 장점이 있습니다.

  • DDL(Data Definitison Language)의 테이블 객체의 생성(Create),변경(Alert),삭제(Drop)을 포함하여 Index설정등을 할수 있음
  • DML(Data Manipulation Language) : 스키마객체의 데이터를 Insert/Update/Select등을 할수 있는 명령어(표준화되어있어서 거의 공통)
  • DCL(Data Control Language) : Commit,RollBack,SavePoint등을 할수 있는 명령어(DB종속적인 경우가 많음)

위 장점이 있음에도 불구하고 ORM이 가지는 오해는 , DBA가 가지고 있는 DDL에 관한 권한때문입니다.

ORM은 어플리케이션 코드에 관계맵핑을 명확하게 하는것이 주목적이며, 그로인해 DDL까지 가능한것은 부가적인 기능으로 볼수 있습니다.

운영중 엔티티가 변경되고 어플리케이션도 적절하게 반영되어야하는 마이그레이션 문제는 ORM과 상관없이 엄격하고,디테일한 정책이 적용되어야하는 문제이며

DDL에 관한 기존 정책을 유지하면서 ORM 사용이 가능합니다.


다음은 DDL을 이용하지 않고, ORM을 사용하는 전략입니다.

https://docs.microsoft.com/ko-kr/ef/core/get-started/aspnetcore/existing-db

...