엘리허 2021. 10. 3. 23:58

ORM 객체관계맵핑

(Object Relational Mapping) 

객체와 관계형 데이터베이스 데이터를 자동으로 연결해주는 것!

 

ORM을 사용하는 이유 

파일 내 객체를 저장하면, 데이터베이스에 입력된다는 것이고 

데이터베이스에 저장을 한다는 의미는 객체와 그와 연결된 객체들을 데이터베이스의 테이블에 저장한다는 것을 의미한다.

즉, 테이블에 객체가 가지고 있던 정보를 입력하고,

이 테이블들을 join과 같은 SQL질의어를 통해 관계 설정을 해주게 된다.

여기에서 문제는 이 테이블과 객체간의 이질성이 발생하게 된다는 것이다.

 

장점

-객체지향적인 코드로 인해 더 직관적이고 비지니스 로직에 더 집중 할수 있게 도와준다

- 재사용 및 유지보수의 편리성이 증가한다

-DBMS에 대한 종속성이 줄어든다 ( 대부분 ORM 솔루션은 DB에 종속적이지 않다)

-종속적이지 않다는 것은 구현 방법 뿐만 아니라, 많은 솔루션에서 자료형 타입까지 유효하다.

 

단점

-완벽한 ORM으로만 서비스를 구현하기 어렵다

-프로시저가 많은 시스템에선 ORM객체 지향적인 장점을 활용하기 어렵다

 

 

NoSQL

이 말의 의미를 풀어보면, 단순히 기존 관계형 DBMS가 갖고 있는 특성 뿐 아니라, 다른 특성들을 부가적으로 지원한다는 것을 의미

특징:

기존의 관계형 데이터베이스보다 더 융통성 있는 데이터 모델을 사용하고,

데이터의 저장 및 검색을 위한 특화된 메커니즘을 제공

이를 통해 NoSQL 데이터 베이스는 단순 거색 및 추가 작업에 있어서 매우 최적화된 키 값 저장 기법을 사용하여,

응답속도나, 처리 효율 등에 있어서 매우 뛰어난 성능을 나타냄

 

 

SQL과 차이점

관계형 모델을 사용하지 않으며, 테이블간의 조인 기능 없음

직접 프로그래밍을 하는 등의 비 SQL 인터페이스를 통한 데이터 액세스

대부분 여러대의 데이터 베이스 서버를 묶어서 하나의 데이터 베이스를 구성

관계형 데이터 베이스에서는 지원하는 Data처리 완결성 미보장

데이터의 스키마 속성들을 다양하게 수용 및 동적 정의

데이터 베이스의 중단 없는 서비스와 자동복구 지원 기능

다수가 open Source로 제공

확장성 가용성 높은 성능