데이터베이스
데이터베이스는 구조화된 데이터의 조직화된 모음.
데이터베이스의 특징
- 데이터베이스는 일반적으로 DBMS에 의해 제어되며, 관계형 데이터베이스에서는 RDBMS가 사용된다.
- DBMS의 예시: MySQL, Oracle, ...
- 일반적인 유형의 데이터베이스는 데이터 처리 및 데이터 쿼리를 효율적으로 수행하기 위해 테이블의 형태로 데이터를 저장한다.
- 대부분의 데이터 베이스는 데이터 조작에 SQL(Structured Query Language)을 사용한다.
SQL(Structured Query Language)
SQL은 데이터를 쿼리, 조작 및 정의하고 제어를 제공하기 위해 거의 모든 관계형 데이터베이스에서 사용하는 프로그래밍 언어이다.
데이터베이스의 종류
계층형 데이터베이스
폴더와 파일 등의 계층 구조로 데이터를 저장하는 방식
- 데이터의 관계를 트리 구조로 정의, 부모-자식 형태 => 1:N 만 가능
- 종류: IBM의 IMS, Windows Registry, ...
- 장점
- 데이터 접근 속도 빠름
- 데이터 사용량 예측이 쉬움
- 단점
- 상하 종속적인 관계로 초기 세팅 후 변경이 어렵고, 복잡한 쿼리가 힘들다.
관계형 데이터베이스
행과 열을 가지는 테이블 형식으로 데이터를 저장하는 데이터베이스
- SQL을 이용하여 관리 및 접근
- 종류: Oracle, DB2, SQL Server, Mysql, ...
- 장점:
- 높은 범용성과 성능
- 데이터 무결성 보장
- 명확한 스키마와 테이블간의 관계 정의
- 검색 속도가 빠름
- 데이터 중복을 줄임
- 단점:
- 수직 확장을 통해 성능을 향상시키며, 수평확장은 샤딩등의 추가적인 기술이 필요하다.
NoSQL
NoSQL은 저장 방식이 유연하며, 문서형, 키-값, 열 지향, 그래프 등의 여러 유형이 있다.
- 스키마가 없고, 관계도 없다.
- 정확한 데이터 요구 사항을 알 수 없거나 관계를 맺는 데이터가 자주 변경될 때 사용된다.
RDB와 NoSQL의 차이점
- NoSQL은 비정형 데이터(메시지 텍스트, 음성, 이미지 등)을 다룰 수 있다.
- NoSQL은 수평 확장이 가능하며 분산형 컴퓨팅(클라우드 환경)에 적합하다.
- 예시: MongoDB, Redis, ...
- 장점:
- 스키마가 없어 데이터 추가가 유연하다.
- 속도가 빠르다.
- 단점:
면접 답변
데이터 베이스는 구조화된 데이터를 저장하고 관리하는 시스템입니다.
일반적으로 데이터베이스는 DBMS에 의해 제어되며, 관계형 데이터베이스에서는 RDBMS가 주로 사용됩니다.
관계형 데이터베이스는 테이블 형태로 데이터를 저장하고 SQL을 통해 데이터를 조작합니다.
반면 NoSQL은 Key-Value, 문서, 그래프 등의 다양한 형태로 데이터가 저장되어 스키마 없이 유연한 확장이 가능합니다.
RDB는 데이터 무결성과 정규화를 보장하는 반면, NoSQL은 수평확장에 용이하고 대량의 비정형 데이터를 처리하는데 적합합니다.
(*정규화: 데이터를 논리적으로 분리하여 중복을 줄이고, 데이터 무결성을 유지하는 과정