ORM 객체관계맵핑
(Object Relational Mapping)
객체와 관계형 데이터베이스 데이터를 자동으로 연결해주는 것!
ORM을 사용하는 이유
파일 내 객체를 저장하면, 데이터베이스에 입력된다는 것이고
데이터베이스에 저장을 한다는 의미는 객체와 그와 연결된 객체들을 데이터베이스의 테이블에 저장한다는 것을 의미한다.
즉, 테이블에 객체가 가지고 있던 정보를 입력하고,
이 테이블들을 join과 같은 SQL질의어를 통해 관계 설정을 해주게 된다.
여기에서 문제는 이 테이블과 객체간의 이질성이 발생하게 된다는 것이다.
장점
-객체지향적인 코드로 인해 더 직관적이고 비지니스 로직에 더 집중 할수 있게 도와준다
- 재사용 및 유지보수의 편리성이 증가한다
-DBMS에 대한 종속성이 줄어든다 ( 대부분 ORM 솔루션은 DB에 종속적이지 않다)
-종속적이지 않다는 것은 구현 방법 뿐만 아니라, 많은 솔루션에서 자료형 타입까지 유효하다.
단점
-완벽한 ORM으로만 서비스를 구현하기 어렵다
-프로시저가 많은 시스템에선 ORM객체 지향적인 장점을 활용하기 어렵다
NoSQL
이 말의 의미를 풀어보면, 단순히 기존 관계형 DBMS가 갖고 있는 특성 뿐 아니라, 다른 특성들을 부가적으로 지원한다는 것을 의미
특징:
기존의 관계형 데이터베이스보다 더 융통성 있는 데이터 모델을 사용하고,
데이터의 저장 및 검색을 위한 특화된 메커니즘을 제공
이를 통해 NoSQL 데이터 베이스는 단순 거색 및 추가 작업에 있어서 매우 최적화된 키 값 저장 기법을 사용하여,
응답속도나, 처리 효율 등에 있어서 매우 뛰어난 성능을 나타냄
SQL과 차이점
관계형 모델을 사용하지 않으며, 테이블간의 조인 기능 없음
직접 프로그래밍을 하는 등의 비 SQL 인터페이스를 통한 데이터 액세스
대부분 여러대의 데이터 베이스 서버를 묶어서 하나의 데이터 베이스를 구성
관계형 데이터 베이스에서는 지원하는 Data처리 완결성 미보장
데이터의 스키마 속성들을 다양하게 수용 및 동적 정의
데이터 베이스의 중단 없는 서비스와 자동복구 지원 기능
다수가 open Source로 제공
확장성 가용성 높은 성능