728x90
ORM?
Object Relational Mapping, 객체-관계 매핑
- 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑(연결)해주는 것을 말한다.
- 객체 간의 관계를 바탕으로 SQL을 자동 생성해서 sql 쿼리문 없이도 데이터베이스의 데이터들을 다룰 수 있다.
ORM의 장점
- 객체 지향적인 코드로 인해 더 직관적이고 비즈니스 로직에 더 집중할 수 있게 도와준다.
- 재사용 및 유지보수의 편리성이 증가한다.
- 특정 DB에 한정 되지 않기 때문에 나중에 어떤 DB로든 쉽게 migration 가능하다
ORM의 단점
- 완벽하게 ORM으로만 서비스를 구현하기가 어렵다.
- 프로시저가 많은 시스템에선 ORM의 객체 지향적인 장점을 활용하기 어렵다
NoSQL?
- Not Only SQL이라고도 표현되며 SQL 또는 관계형 DB만을 사용하지 않고 여러유형의 DB를 사용하는 확장된 DB를 말한다.
- 기본적으로 SQL과 반대되는 접근방식을 따르고 비관계형 데이터베이스라고 불리며 스키마가 없다.
- NoSQL에서는 테이블(table)을 컬렉션(Collection)으로, 레코드(record)를 문서(documents)라고 부른다
- 데이터의 일관성이 보장되어야 하거나 여러번의 조인 연산이 필요한 데이터라면 NoSQL을 사용하는 것 보다 RDBMS를 사용하는 것이 좋을 것이다. NoSQL은 RDBMS를 대체하기 위한 데이터베이스가 아니라 상호 보완할 수 있는 데이터베이스이며, 따라서 목적에 맞게 사용하는 것이 중요하다.
- 예를 들어 구매 내역이나 게임의 로그 같은 데이터들은 매 초마다 엄청난 양이 생성되지만 한번 저장되고 난 뒤에는 수정될 일이 거의 없다. 거기다 생성되는 데이터의 양도 많기 때문에 장비의 성능에도 상당한 영향을 미칠 것이다. NoSQL은 이러한 데이터들을 효율적으로 저장할 수 있다. 여러 대의 장비에 빠른 속도로 저장이 가능하며, 데이터의 양이 누적되더라도 얼마든지 수평적 확장이 가능하기 때문이다.
- 실제로 페이스북이나 트위터 같은 SNS에서는 게시글들을 저장하는 데 NoSQL 데이터베이스를 사용하고 있다.
출처 : https://shoark7.github.io/programming/knowledge/what-is-NoSQL
728x90
'study > TIL🐥' 카테고리의 다른 글
MySQL의 마스코트는 왜 돌고래인가? (0) | 2020.12.28 |
---|---|
파일시스템과 데이터베이스 (0) | 2020.12.28 |
DAO란? (0) | 2020.12.27 |
데이터웨어하우스(DW)란? (0) | 2020.12.27 |
인텔리제이의 장점 (0) | 2020.12.26 |