99클럽 TIL
99클럽 코테 스터디 21일차 DB ORM
차가리
2024. 6. 9. 16:09
728x90
- DB
- Index
Index 작동 원리- Index 종류
B-Tree 인덱스Hash IndexesBitmap IndexGIST(Generalized Search Tree)R-TreeFull Text IndexSpatial IndexTrie(Prefix Tree) IndexCovering Index
- Index
영속성트랜잭션- ORM
ACIDN+1 문제DB 정규화Data Replicationsharding 전략CAP 이론
이란?
Object-Relational Mapping
- 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑해주는 것.
- 객체 모델과 관계형 모델 간에 불일치가 존재하기 때문에 ORM 을 통해 객체 간의 관계를 바탕으로 SQL 을 자동으로 생성하여 불일치를 해결해줌.
- DB Data <- Mapping -> Object field
- 객체를 통해 간접적으로 데이터베이스 데이터를 다룸.
- Persistant API 라고도 불림
- JPA,Hiberante
ORM 작동 원리
- 데이터베이스 테이블과 객체의 매핑
- ORM 은 데이터베이스의 테이블을 클래스로 매핑함.
- 테이블의 각 행(row) 는 클래스의 인스턴스로, 테이블의 열(column)은 인스턴스의 속성(attribute) 로 대응됨.
- session 관리
- ORM 은 데이터베이스 연결과 트랜잭션을 관리하는 세션을 제공함. 개발자는 세션을 통해 데이터베이스에 대한 작업을 시작하고, 작업이 끝나면 커밋하거나 롤백할 수 있음.
- 쿼리 생성
- 객체의 메소드를 호출하는 것만으로 ORM 은 적절한 SQL 쿼리를 생성하고 실행함. 이 과정은 대부분 자동으로 이루어지므로, 개발자는 복잡한 데이터베이스 쿼리를 신경 쓸 필요가 없음.
- 결과 매핑
- SQL 쿼리의 실행 결과는 다시 객체로 매핑되어 반환됨. 이렇게 함으로써, 개발자는 일관된 방식으로 데이터를 처리할 수 있음.
- ORM 은 데이터베이스의 테이블을 클래스로 매핑함.
장단점
장점
- 개발 효율성
- 데이터베이스 스키마가 변경될 때 SQL 을 직접 수정하는 대신, 모델 코드만 갱신하면 되므로 빠르고 쉽게 데이터베이스 관련 작업을 처리할 수 있음.
- 유지보수
- 객체 지향적 접근 방식은 코드의 가독성을 높이고 유지보수를 쉽게 만듬.
- 기술적 격리
- 데이터베이스 시스템의 변경이나 SQL 구문의 특수성에 의존하지 않고, 일관된 코드 작성이 가능함.
단점
- 성능 이슈
- ORM 을 사용함으로써 생성되는 SQL 은 때때로 최적화되지 않을 수 있음. 특히 복잡한 쿼리를 필요로 하는 큰 데이터에는 직접 작성한 SQL 이 더 효율적일 수 있음.
- 복잡한 쿼리 제한
- ORM 은 대부분의 표준 쿼리를 잘 처리하지만, 매우 복잡하거나 특정 데이터베이스에 특화된 최적화가 필요한 쿼리는 처리하기 어려울 수 있음.
728x90