프로덕션 관계형 데이터베이스 (RDBMS)
- (MySQL, PostgreSQL) 대표적 (마이시쿠얼~~)
- OLTP ( OnLine Transaction Processing)
- 빠른 속도에 집중, 서비스에 필요한 정보 저장
- 빠른 처리속도가 중요!
- 구조화된 데이터를 저장하고 질의할 수 있도록 해주는 스토리지
- 2단계로 구성됌
- 가장 밑단에는 테이블들이 존재 (엑설의 시트)
- 테이블들은 데이터베이스라는 폴더 밑으로 구성 (엑셀의 파일)
데이터 웨어하우스
- 회사 관련 데이터를 저장하고 분석함으로써 의사 결정과 서비스 최적화에 사용
- Redshift, BigQuery, Snakeflake, Hive
- OLAP (OnLine Analytical Processing)
- 처리 데이터 크기에 집중
- 처리속도 보다는 구조화된 큰 데이터를 처리하는 것이 중요
비관계형 데이터베이스
- NoSQL 데이터베이스라고 부름
- 프로덕션용 관계형 데이터베이스를 보완하기 위한 용도로 많이 사용
다른 직군
- 데브옵스 (DevOps) : 주로 벡엔드에 집중을 두고 서비스의 운영을 책임지는 팀
- 풀스택 : 벡/ 프론트 둘다
- 데이터직군
- 데이터 엔지니어 : 데이터 웨어하우스와 관련일을 담당
- 데이터 분석가 : 데이터 웨어하우스를 기반으로 다양한 지표설정과 분석 수행
- 데이터 과학자 : 수집된 과거 데이터를 기반으로 미래를 예측한 모델링
시스템 구성의 변화
2 tier
- 보통 데스크탑 응용프로그램에서 사용되는 아키텍쳐
- 클라이언트와 서버 두 개의 티어로 구성
- 클라이언트는 사용자가 사용하는 UI가 됌
- 서버단이 데이터베이스가 됌
3tier
- 웹 서비스에서 많이 사용되는 아키텍쳐
- 프리젠테이션 티어 (Presentation Tier) : 프론트엔드
- 애플리케이션 티어 (Application Tier): 벡엔드
- 데이터 티어 (Data Tier): 벡엔드
- Spring Boot
- 기본적으로 3 tier 구조라고 볼 수 있음
- Spring Boot는 벡엔드 프레임워크 중의 하나
관계형 데이터베이스의 중요성
- 이 데이터베이스를 잘 다룬 것이 좋은 개발자가 되기 위해 필요
- 벡엔드 개발자로써 중요한 부분
- 데이터 모델을 잘 만들고 그걸 프론트 개발자와 공유/협업
- 속도 개선을 위한 쿼리 성능 모니터링하고, 필요시 성능 개선 수행(DBA)
SQL의 단점
- 구조화된 데이터를 다루는데 최적화가 되어있음
- 정규표현식을 통해 비구조화된 데이터를 어느 정도 다루는 것은 가능하나 제약이 심함
- 많은 관계형 데이터베이스들이 플랫한 구조만 지원함 (no nested like JSON)
- 비구조화된 데이터를 다루는데 Spark, Hadoop과 같은 분산 컴퓨팅 환경이 필요해짐
- 즉 SQL만으로는 비구조화 데이터를 처리하지 못함
Star schema
- Production DB용 관계형 데이터베이스에서는 보통 스타 스키마를 사용해 데이터를 저장
- 데이터를 논리적인 단위로 나눠 저장하고 필요시 조인
- 스토리지의 낭비가 덜하고 업데이트가 쉬움
Denormalized schema
- NoSQL이나 데이터 웨어하우스에서 사용하는 방식
- 단위 테이블로 나눠 저장하지 않음으로 별도의 조인이 필요 없는 형태
- 스토리지를 더 사용하지만 조인이 필요 업식에 빠른 계산이가능
'Database' 카테고리의 다른 글
[Database] 이런저런 내용 (0) | 2024.08.06 |
---|---|
[Database] 서브쿼리 vs JOIN (0) | 2024.07.30 |
[Database] 트랜잭션 / 뷰 (0) | 2024.07.26 |
[Database] 종류 (0) | 2024.07.23 |
[데이터베이스 선택 가이드] (0) | 2024.06.20 |