[수미수의 개발 브로구]

[INTERVIEW] Back-end 기술이론 정리 - DB 편 본문

Interview

[INTERVIEW] Back-end 기술이론 정리 - DB 편

수미수 2023. 8. 9. 23:03
반응형

들어가기 전

  오늘은 Back-end 면접 기술이론 관련해서 DB 부분에 대해서 스터디 했던 내용을 공유 하고자 합니다.

Data Warehouse

- 의사 결정을 위해 전체 구성원에게서 데이터를 모아 관리하는 데이터베이스

- DW는 사용자의 의사 결정에 도움을 주기 위하여, 기간계 시스템의 데이터베이스에 축적된 데이터를 공통의 형식으로 변환해서 관리하는 데이터베이스이며, 효율적인 의사 결정 시스템을 위한 기초를 제공하는데 목적이 있다. 경영자의 의사 결정을 지원하는 데이터의 집합체로 주제 지향적, 통합적, 시계열적, 비휘발적의 특성을 지닌다.

RDBMS 와 DW 차이점

- DB는 자료를 저장하는 관점을 가지는 반면, DW는 효율적인 정보제공이라는 관점으로 자료의 집합체입니다.

오라클, MySQL 테이블 스페이스

-> Temp 테이블 스페이스, Alter 명령어 시 테이블 스페이스 

- 테이블 스페이스는 모든 데이터를 저장하고 있는 데이터 파일의 명칭이며, 실제 데이터를 저장하는 공간입니다. 이러한 테이블 스페이스의 종류는 시스템용 테이블 스페이스와 비스템용 테이블 스페이스로 구분할 수 있습니다. 

- 시스템 테이블 스페이스는 SYSTEM, SYSAUX가 있습니다.

- 비 시스템 테이블 스페이스는 Temp 테이블 스페이스, General Table 스페이스, Undo 테이블 스페이스가 있습니다. Temp 테이블 스페이스는, SQL로 정렬이 필요할 경우 사용되며, 인덱스 생성 시 사용합니다. Undo 테이블 스페이스는 Undo 세그먼트를 저장하는 공간입니다.

기본 테이블 스페이스, 임시 테이블 스페이스

RDBMS vs. NOSQL 

- RDBMS의경우 데이터의 일관성 중복 최소화등의 목적으로 스키마를 구성하며, 다양한 쿼리가 가능하며, 트랜잭션 등을 통해 안전성 확보 가능 하지만, 확장성의 한계, 대량의 데이터 입력 조회 성능 저하 및 샤딩 Replication을 구축하는 비용 많이 든다는 단점.

- NOSQL의 경우, 다큐먼트/Key-Value 형태로 저장하며, 스키마가 존재 하지 않는다. 확장성이 트랜잭션보다 중요할 때, 큰 규모의 데이터에 적합하며, 많은 서버로의 확장이 가능하고, 데이터를 쓰는데 최적화 되어 있다. 반면, 다양하고 복잡한 쿼리가 불가능하고, 데이터의 일관성을 보장하지 못한다.

샤딩

 - 서비스의 크기가 커지면, 많은 테이블이 존재하게 되고, 전체 DB가 하나의 DBMS에 들어가기 힘들어질 경우, 파티셔닝을 수행한다. 파티셔닝은 테이블을 분할 하는 기법은 크게 수평적 분할, 수직적 분할이 있다.

 - 샤딩은 많은 데이터가 있는 테이블을 수평적 분할을 이용하여 여러 서버에 나누어 저장하는 것을 의미, 샤딩을 위해서, 분산된 데이터베이스에서 데이터를 어떻게 읽을것인가, 어떻게 잘 분산할것인가가 중요함

- 요약하면 파티셔닝은 퍼포먼스, 가용성, 정비용이성등의 목적을 위해 논리적인 엔티티들을 다른 물리적인 엔티티들로 나누는것을 의미하는 일반적인 용어이다. 수평 파티셔닝 또는 샤딩은 스키마 복제 후 샤드키를 기준으로 데이터를 나누는것을 말한다. 수직 파티셔닝은 스키마를 나누고 데이터가 따라 옮겨가는것을 말한다.

파티셔닝

- 큰 테이블이나 인덱스를 관리하기 쉬운 단위로 분리하는 방법

- 장점: 가용성, 관리 용이성, 성능 하지만, 테이블간 조인이 발생한다.

- 버티컬 파티셔닝 : 테이블의 컬럼을 기준으로 나누어 파티셔닝 수행하며 정규화 과정과 비슷

- 수평적 파티셔닝 : 데이터의 개수를 기준으로 나누어 파티셔닝. 서버간의 연결과정이 많아짐, 데이터를 찾는 과정이 복잡, 무결성 문제

메모리 DB 역할 

- 데이터 스토리지의 메인 메모리에 설치되어 운영되는 방식의 데이터베이스 관리 시스템으로 REDIS가 대표적이며, 캐쉬용 또는 세션 저장요으로 사용되어, 빠른 검색을 제공

 

반응형

'Interview' 카테고리의 다른 글

[INTERVIEW] Back-end 기술이론 정리 - 네트워크 편  (0) 2023.08.09
[INTERVIEW] Back-end 기술 면접  (1) 2023.08.08