데이터베이스 시스템

어겐어갠·2022년 3월 28일
0

데이터베이스

기록장치 <- 모든 서비스는 데이터를 만들어내고 그것들을 저장해야한다. 그 기록장치를 데이터베이스라 부른다.

관계형 데이터베이스

데이터는 정해진 데이터 스키마에 따라 테이블에 저장된다.
데이터는 관계를 통해 여러 테이블에 분산된다.

1.프로덕션 관계형 데이터베이스(Relational database management system, RDBMS)

  • 데이터를 관계로서, 테이블의 형식(행과 열)으로 표현한다.
  • 빠른 처리속도가 중요하다.
  • 다루는 프로그래밍 언어를 SQL이라 한다.
  • 온라인 트랜잭션 처리(Online transaction processing, OLTP)
  • 대표적으로 MySQL, PostgreSQL
  1. 데이터 웨어하우스 관계형 데이터베이스 (data warehouse)
  • 온라인 분석 처리(Online Analytical Processing, OLAP)
  • 처리 데이터의 크기가 중요하다.
  • 한곳에서 데이터 처리 -> join을 안함
  • 대표적으로 BigQuery, Snowflak함

장점

  • 명확하게 정의된 스키마, 데이터 무결성 보장
  • 관계는 각 데이터를 중복없이 한번만 저장
  • 구조화된 데이터 다루는데 최적화

단점

  • 수정하기 힘듬
  • 조인문이 많은 복잡한 쿼리가 만들어질 수 있음
  • 대체로 수직적 확장만 가능함(nested structure,no nested json)
  • 반대로 비구조화 데이터를 다루는건 어려움

비관계형 데이터베이스

스키마도 없고, 관계도 없다

  • NoSQL

장점

  • 스키마가 없어서 유연함.
  • 데이터 읽어오는 속도 빨라짐
  • 수직 및 수평 확장이 가능해서 애플리케이션이 발생시키는 모든 읽기/쓰기 요청 처리 가능

단점

  • 유연성으로 인해 데이터 구조 결정을 미루게 될 수 있음
  • 데이터 중복을 계속 업데이트 해야 함. 또한 수정시 모든 컬렉션에서 수행.

2티어->3티어 시스템 구성 변화

DDL, DML
1. DDL(Data Definition Language), 데이터정의어

  • 데이터베이스(스키마)를 정의하는 언어
  • CREATE, ALTER, DROP, RENAME 등
  1. DML(Data Manipulation Language), 데이터 조작어
  • 데이터베이스의 테이블에 들어 있는 데이터에 변형을 가하는 종류(데이터 삽입, 수정, 삭제)의 명령어
  • SELECT, INSERT, UPDATE 등

대표적인 스키마 2가지

  1. Star Schema
  • 데이터를 논리적 단위로 나누고 저장
  • 스토리자 낭비가 적고 업데이트가 쉬움
  • 조인을 자주해야함 -> 속도저하
  • 주로 프로덕선 DB에 사용
  1. Denormalized Schema
  • 주로 NoSQL, 데이터 웨어하우스
  • 단위테이블로 나누지 않으므로 join이 필요없음 -> 빠른 계산 가능
profile
음그래

0개의 댓글