TIL - 데이터 베이스

HyeBin, Park·2022년 3월 28일
0

TIL

목록 보기
6/12
post-thumbnail

1. 데이터베이스가 왜 필요한가 ?

  • IT서비스는 고객을 대상으로 하는 것이고 고객의 정보 (account, password 등등) 모든 정보들이 기록되어야하는데 필요한 것이 데이터베이스

2. 어디에 저장할까?

프로덕션 관계형 데이터 베이스 (MySQL, PostgreSQL)

  • 빠른 처리속도가 중요
  • 데이터를 구조화된 테이블들의 집합으로 구성하여 저장하고 관리

데이터 웨어하우스

  • 회사 관련 데이터를 저장하고 분석함으로써 의사결정과 서비스 최적화에 사용
  • 처리속도 보다는 구조화된 큰 데이터를 처리하는 것이 중요
  1. 사이트 방문 트래픽과 외부 데이터 (프로덕션 관계형) -> (추출) -> 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
  • Pruduction DB용 관계형 데이터베이스에서 사용

  • 데이터를 논리적 단위로 나워 저장하고 필요시 조인

  • 스토리지 낭비가 덜하고 업데이트가 쉬움

(4) 데이터 모델 - Denormalized schema

  • NoSQL이나 데이터 웨어하우스에서 사용하는 방식
    => 단위 테이블로 나눠 저장하지 않음으로 별도의 조인이 필요 없는 형태
  • 스토리지를 더 사용하지만 조인이 필요 없어 빠른 계산이 가능 => 스토리지 낭비

0개의 댓글