코딩 기록들
RDBMS / NOSQL 본문
들어가기전,
- Database : 여러 사람에 의해 공유되어 사용될 목적으로 통합하여 관리하는 데이터의 집합
- DBMS : data base management system : 사용자와 db 사이에서 사용자의 요청 해석해 db에 저장된 정보를 관리할수있도록 해주는 소프트웨어
- SQL : structed query language : 관계형 db 관리 시스템에 저장된 데이터 관리 위해 설계된 프로그래밍언어
- 스키마 : db 구성하는 개체, 속성, 관계및 제약조건등에관해 전반적으로 정의한 메타데이터의 집합
RDBMS
- R (relation) + DBMS = 관계형 데이터베이스 관리 시스템
- 모든 데이터를 엑셀의 형식과 유사한 2차원테이블 형식으로 표현, '속성, 값' 을 이용해 데이터를 정의, 저장, 관리함
- 각각의 '속성, 값' 을 가진 테이블은 서로 관계를 맺으며 존재하고, 이런 데이터를 활용하기위해 사용자는 SQL언어 사용
- 이러한 관계를 나타내기 위해 외래키(foreign key)를 사용한 테이블 간 join이 가능하다는것이 가장 큰 특징임
- 장점 : 데이터를 column 과 row 형태로 저장 -> 데이터 분류, 정렬, 탐색 속도가 비교적 빠름, 작업의 완전성을 보장함
- 단점 : 반드시 스키마규격에 맞춰 데이터를 다뤄야하며, 데이터 처리에대한 부하 발생시 처리가 어려움
성능향상을 위해서는 scale-up만을 지원 : 비용이 기하급수적으로 늘어날수있음
NoSQL
- not only sql = 관계형 데이터베이스와는 반대되는 방식을 사용
- 데이터-테이블간의 관계 정의하지않음 -> 정해진 스키마 없기때문에 더욱 자유롭게 데이터 저장 가능
- 빅데이터의 등장으로 인해 데이터와 트래픽이 기하급수적으로 증가함에따라 RDBS의 단점인 성능을 향상시키기위해 등장
- 데이터의 일관성은 포기 but 비용고려 -> scale-out 을 목표로 등장 (데이터에 분산하여 저장하는것)
- key값만 가지고 데이터 입출력 수행할수 있음
- 장점 : 테이블에 스키마가 정해져있지않아 데이터저장이 비교적 자유로움, 많은양의 데이터를 저장,처리 할수있음
- 단점 : 키값에대한 입,출력만 지원 / data update 느림 / 스키마가 안정해져있기때문에 데이터규격화 x
* 다양한 형태의 저장기술을 지원함
- key-value database
- document database
- wide column database
- graph database
참고
'면접준비하기' 카테고리의 다른 글
IP주소(1) - ARP, 홉바이홉 통신 (0) | 2023.09.14 |
---|---|
데드락(교착상태)이란? (0) | 2023.09.14 |
Loss Surface 란? (0) | 2023.03.01 |
스레드 & 프로세스 (0) | 2023.02.28 |
TCP / UDP (0) | 2023.02.27 |