[DBMS]
1. 개념 : 데이터베이스 관리시스템/ 실질적인 데이터베이스를 구현할수있는 것으로, 데이터를 조직화하여 효율적으로 관리함
2. SQL : 데이터베이스 관리 시스템에서 데이터를 조작하고 검색하기 위해 표준화된 언어
- 선언적 언어 : 명령어를 이용해서 원하는 결과를 명시하고 그 결과를 얻는 방식의 언어
- RDBMS에서 사용되며, 이를 통해 데이터의 구조와 관계를 정의하고 쿼리를 실행해 데이터를 관리할 수 있음
- 주요 SQL언어 : ANSI SQL, T-SQL, PL/SQL 등
- 주요 구현체 : Oracle Database, MySQL 등
[RDBMS, Relational Database Management System]
1. 개념 : 사전에 엄격하게 정의된 스키마가 있어, 행과 열로 구성된 테이블 기반으로 데이터의 관계를 관리하는 데이터베이스
- 스키마 : DB의 구조와 제약 조건에 관한 전반적인 명세를 정의한 메타데이터의 집합 / 개체의 특성을 나타내는 속성(Attribute)과, 속성들의 집합으로 이루어진 개체(Entity), 개체 사이에 존재하는 관계(Relation)에 대한 정의와 이들이 유지해야 할 제약 조건을 기술한 것
(1) 외부 스키마
- 개별 사용자들의 입장에서 데이터베이스의 논리적 구조를 정의한 것
- 사용자별로 서로 다른 관점을 정의할 수 있도록 허용하기 때문에, 여러개 존재 가능
(2) 개념 스키마
- 데이터베이스의 전체 조직에 대한 논리적인 구조로, 물리적인 구현은 고려하지 않음
- 하나만 존재
(3) 내부 스키마
- 물리적 저장장치의 관점
- 개념 스키마를 디스크 기억장치에 물리적으로 구현하기 위한 방법을 기술한 것
- 저장될 데이터 항목의 내부 레코드 형식, 물리적 순서 등을 나타냄

2. 특징
- 데이터베이스 중복 감소, 데이터 무결성 유지
- 테이블간의 관계를 직관적으로 파악 가능
3. 한계점
- 수직적 확장(서버의 하드웨어 성능향상만으로 처리능력을 늘림)으로 인해 비용면에서 감당하기 어려움
- 엄격히 정의된 스키마로 인해, 유연성이 부족하여 데이터 구조가 자주 바뀌는 경우 관리 어려움
[NoSQL]
1. 개념 : 특정 데이터 모델에 대해 특정 목적에 맞추어 구축되는 데이터베이스, SQL이 아니므로 Not Only SQL이라고 부른다 (의견 분분)
2. 특징
- 수평적 확장(필요할 때마다 서버를 추가하여 분산시킴으로써 성능 향상)으로 비용이 저렴
- 유연한 스키마를 가지고 있음 (데이터 모델을 쉽게 변경하고 새로운 필드를 추가할 수 있도록)
- 문서 지향 : 문서 자체가 스키마가 되어 JSON, xml등의 형태로 값을 문서로 저장
- 다양한 쿼리 언어를 사용 (일부는 쿼리 언어가 없는 경우도 있음)
3. 한계점
- 트랜잭션 지원 한계 : SQL에 비해 트랜잭션 지원이 떨어짐 (일관성 보장에 중요함)
- 쿼리문의 부재와 복잡한 쿼리문 : SQL쿼리문보다 더 복잡할 수 있으며 사용환경별로 일부는 쿼리 언어가 없을 수 있음
RDBMS | NoSQL | |
구조 | 레코드-테이블-데이터베이스 | 도큐먼트-컬렉션-데이터베이스 |
스키마 | 엄격 | 유연 |
데이터 저장방식 | 테이블 | 문서, 키-값, 그래프 등 |
쿼리언어 | SQL | 각 솔루션마다 상이함 |
확장성 | 수직적 | 수평적 |
활용 | 정합성이 요구되는 애플리케이션 | 대규모 분산 처리, 비정형 데이터 다룰 때 |
'부트캠프 > 백엔드 스터디' 카테고리의 다른 글
[DB] 트랜잭션, ACID (0) | 2024.01.29 |
---|---|
[DB] KEY (1) | 2024.01.29 |
[DB] index (0) | 2024.01.16 |
[DB] ORM (0) | 2024.01.15 |