1. 데이터베이스가 왜 필요한가 ?
- IT서비스는 고객을 대상으로 하는 것이고 고객의 정보 (account, password 등등) 모든 정보들이 기록되어야하는데 필요한 것이 데이터베이스
2. 어디에 저장할까?
프로덕션 관계형 데이터 베이스 (MySQL, PostgreSQL)
- 빠른 처리속도가 중요
- 데이터를 구조화된 테이블들의 집합으로 구성하여 저장하고 관리
데이터 웨어하우스
- 회사 관련 데이터를 저장하고 분석함으로써 의사결정과 서비스 최적화에 사용
- 처리속도 보다는 구조화된 큰 데이터를 처리하는 것이 중요
- 사이트 방문 트래픽과 외부 데이터 (프로덕션 관계형) -> (추출) -> 2. 데이터팀 (데이터 웨어하우스) -> 3. Site Service 사용자의 경험을 개인화 하여 제품 서비스 개선
3. 다양한 데이터베이스의 종류
(1) 관계형 데이터베이스
- 구조화된 데이터를 저장하고 질의할 수 있도록 해주는 스토리지
- 프로덕션용 관계형 데이터베이스
-> 처리 속도가 중요하고 서비스에 필요한 정보를 저장
- 데이터 웨어하우스용 관계형 데이터베이스
-> 처리할 수 있는 데이터 크기가 중요, 데이터 분석 혹은 모델 빌딩등을위한 데이터 저장
(1.1) 테이블(테이블 스키마)의 구조
- 테이블은 레코들로 구성 (행)
- 레코드는 하나 이상의 필드(컬럼)로 구성 (열)
- 필드(컬럼)는 이름과 타입과 속성(Primary key)으로 구성됨
(2) 비관계형 데이터베이스 : 비구조화 데이터도 다룬다.
- 흔히 NoSQL 데이터베이스라고 부름
- 프로덕션용 관계형 데이터베이스를 보완하기위한 용도로 많이 사용
- key/Value Storage : Redis, Memcache ...
- Document Store : MongoDB
- Wide COlumn Storage : Cassandra, HBase, DynamoDB
- Search Engine : ElasticSearch
SQL(Structured Query Language)
(1) DDL : Data Definition Language
- 테이블 정의를 위한 언어
- 테이블의 포맷을 정의
- CREATE TABLE : Primary key 속성 지정 가능, 인덱스 지정 가능
- DROP TABLE : 테이블 삭제
(2) DML : Data Manipulation Language
- 테이블 데이터 조작/질의를 위한 언어
- DDL로 정의된 테이블에 레코드를 추가,수정, 삭제 혹은 읽어들이기 함
- SELECT : 질의 언어
(3) 데이터 모델 - Star schema

https://docs.microsoft.com/ko-kr/power-bi/guidance/star-schema
(4) 데이터 모델 - Denormalized schema
- NoSQL이나 데이터 웨어하우스에서 사용하는 방식
=> 단위 테이블로 나눠 저장하지 않음으로 별도의 조인이 필요 없는 형태
- 스토리지를 더 사용하지만 조인이 필요 없어 빠른 계산이 가능 => 스토리지 낭비