• DB Basic ‐ DB란 무엇인가?
  • SQL (Structured Query Language)
  • 관계형 데이터 베이스
  • NoSQL(Not Only SQL)
  • 데이터베이스 관련 용어
  • MongoDB

DB Basic ‐ DB란 무엇인가?

  • Data란? 저장할 수 있는 값의 집합. 컴퓨터가 저장해야 Data가 의미가 있다/
  • Database 저장소
  • DBMS 데이터베이스를 관리하는 프로그램
  • Information 데이터로부터 추출할 수 있어야 의미있는 정보
  • Knowledge 인포메이션에서 한 단계 위.

SQL (Structured Query Language)

  • 선언적 언어 cf. 절차적 언어
  • 구조화된 물어보는 언어
  • 시퀄이라는 말로 쓴다. IBM에서부터 불렸다. (버클리에선 SQL)
  • RDMBS 제어에 사용됨

관계형 데이터 베이스

  • 오라클 : 비용이 비싸다.
  • MySQL : 오라클이 매입

NoSQL(Not Only SQL)

  • Not Only SQL
  • 관계형 데이터베이스가 아닌 나머지
  • 그래프 디비, 도큐먼트 디비, KV Store
  • MongoDB(쉽고 무료), Redis, DyanmoDB, neo4j, Casandra, HBASE, …

데이터베이스 관련 용어

1. CAP 이론 : 3가지를 동시에 일어낼수 없다. 3개중에 하나를 희생. 클라우드는 Consistency 포기.

  • Consistency(일관성)
    서버가 일관성이 있다. 모든 사용자가 데이터를 접근했을 때 같은 데이터를 줄 때.. 일관성.(삽입, 수정, 삭제) - 일관성이 조금 없는건 - Availability(가용성)
    장애가 적다.(다운타운이 적다.) -> 예를 들면 1년. 525600분 * 0.0001 = 52.56분.
  • Partition Tolerence(분할내성)
    서버중에 1대가 죽어도 아무런 지장이 없게…(서버는 최소3대가 기본이다. 홀수대로…)

CAP 의 Consistency 포기한게 구글doc.

2. ACID : 대표적인 관계형 데이터 베이스 - 면접때 자주 나옴. ACID는

  • 은행은 무조건 오라클, MySQL.
  • Atomicity(원자성)
    중간에 일어나는 일이 없다. 동시에 일어난다. 실패하면 초기화.
  • Consistency(일관성)
    언제나 일관성 있는 데이터베이스 상태로 유지
  • Isolation(고립성)
    여러명이 접속하면 내부적으로 직렬식으로 처리.
  • Durability(내구도)
    시스템 문제, DB 일관성 체크 등을 하더라도 유지되어야 함을 의미

3. 확장성

  • 수평확장
    수평확장이 좋다. 서버를 여러대로 늘리는 것이 좋다. 여러명 사용자를 견딜 수 있다. => 관계형 데이터
  • 수직확장
    수직확장는 CPU, 메모리, SSD 등 좋은거 교체. => NoSQL 수직확장이 잘 된다. 관계형 데이터는 안된다.

관계형 DB VS NoSQL

  • 돈과 관련된 것을 오라클 사용(관계형 DB), 넷플릭스(NoSQL 사용.)
  • Transaction: 전자상거래. => 관계형 DB:지원 VS NoSQL:일부 지원

Graph DB

  • Neo4j
    • 복잡한 관계 처리 지원
    • 친구 추천 알고리즘, SNS등에 적합 - 미투데이에 사용.

Document DB

MongoDB

  • json: 사람도 읽을 수 있다는 것이 장점. 컴퓨터가 쉽게 저장. 예전에는 XML. 그 전에 바이널리 통신.
  • 아무거나 막 저장
  • 비교적 빠르고 사용이 간단하다.

    [json] (http://www.json.org/json-ko.html) 기반 레코드 저장

  • 단점
    • join(조인)에 부적합 -> join는 테이블과 테이블를 합침. 합치면 어렵고 성능에 이슈 발생
      이전 버전의 경우 쓰기 성능에 문제가 있음

Key-Value DB

  • Redis, Mem‐cached
    • 엄청 빠르다
    • 단순 데이터 처리
    • 캐시 / 대이터 분산용

      맥북 서버에서 사용자 40만명 처리가 가능.

Cloud DB

  • AWS DyanmoDB
    • KV Store + Document Store
    • 설치가 필요없음
    • 고성능, 고가용성, 내구도
    • 저렴하지 않은 비용
    • 저장하고 불러오는 것만 한다. 구축하지 않는다.

ETC

  • Hadoop Eco System : 아파치의 오픈 소스. 대용량 DB를 많이 사용한다.
  • Cassandra : 아파치 분산 데이터 베이스
  • Elastic Search: 검색 엔진. 자연어 처리. 비주얼 라이징