개발일기
데이터베이스 유형 본문
1 관계형 데이터베이스
- 동일한 구조(릴레이션)의 관점에서 모든 데이터를 논리적으로 구성
- 선언적인 질의어를 통한 데이터 접근을 제공
- 응용 프로그램들은 데이터베이스 내의 레코드들의 어떠한 순서와도 무관하게 작성됨
- 사용자는 원하는 데이터만 명시하고, 어떻게 이 데이터를 찾을 것인가는 명시할 필요가 없음
- 관게 데이터 모델은 지금까지 제안된 데이터 모델들 중에서 가장 개념이 단순한 데이터 모델
특징
- 바탕이 되는 데이터 구조로서 간단한 테이블(릴레이션)을 사용
- 중첩된 복잡한 구조가 없음
- 집합 위주로 데이터를 처리
- 숙련되지 않은 사용자도 쉽게 이해할 수 있음
- 표준 데이터베이스 응용에 대해 좋은 성능을 보임
2 비관계형 데이터베이스
- NoSQL 이라고도 부르며, not Only SQL(SQL 뿐만이 아닌 이라는 뜻)의 줄임말 이라고 함
- SQL뿐만 아니라 다른 여러 장점을 가지고 있음
- 기존의 간계형 데이터베이스의 한계를 뛰어넘기 위해 만들어진 새로운 형태의 데이터베이스라서, 관계형 데이터베이스보다 더 융통성 있는 데이터 모델을 사용하며,데이터의 저장 및 검색에 특화된 메커니즘을 제공
- NoSQL은 분산 환경에서의 데이터 처리를 더욱 빠르게 하기 위해 개발
특징
- 거대한 Map으로서 key-value 형식을 지원함
- 관계형 db와 달리 PK,FK,JOIN등 관계를 정의하지 않음
- 스키마에 대한 정의가 없음
장점
- 대용량 데이터 처리를 하는데 효율적임
- 읽기 작업보다 쓰기 작업이 더 빠르고 관계형 데이터베이스에 비해 쓰기와 읽기 성능이 빠름
- 데이터 모델링이 유연함
- 뛰어난 확장성으로 검색에 유리함
- 최적화된 키 값 저장 기법을 사용하여 응답속도나 처리효율 등에서 성능이 뛰어남
- 복잡한 데이터 구조를 표현할 수 있음
단점
- 쿼리 처리시 데이터를 파싱 후 연산을 해야해서 큰 크기의 document를 다룰 때는 성능이 저하됨
3 SQL vs NoSQL
SQL 사용이 적합한 경우
- 데이터베이스의 ACID 성질을 준수해야 하는 경우
- 소프트웨어에 사용되는 데이터가 구조적이고 일관적인 경우
NoSQL 사용이 적합한 경우
- 데이터의 구조가 거의 또는 전혀 없는 대용량의 데이터를 저장하는 경우
- 클라우드 컴퓨팅 및 저장공간을 최대한 활용하는 경우
- 빠르게 서비스를 구축하는 과정에서 데이터 구조를 자주 업데이트 하는 경우
'cs' 카테고리의 다른 글
파라미터(Parameter)와 아규먼트(Argument)의 차이 (0) | 2024.06.20 |
---|---|
자료구조란 무엇일까?(스택, 큐) (1) | 2024.06.19 |
컴퓨터와 데이터베이스 (0) | 2023.08.28 |
캐시와 메모리 할당 (0) | 2023.08.21 |
제어장치(CU)의 핵심 기능 스케줄링 (0) | 2023.08.18 |