본문 바로가기
부트캠프/백엔드 스터디

[DB] RDBMS/NoSQL

by 상똥 2024. 1. 15.

[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