- 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분.
- Consistency(일관성)
-
- Partition Tolerence(분할내성)
- 서버중에 1대가 죽어도 아무런 지장이 없게…(서버는 최소3대가 기본이다. 홀수대로…)
- Partition Tolerence(분할내성)
CAP 의
Consistency
포기한게구글doc
.
2. ACID : 대표적인 관계형 데이터 베이스 - 면접때 자주 나옴. ACID는
- 은행은 무조건 오라클, MySQL.
-
- Atomicity(원자성)
- 중간에 일어나는 일이 없다. 동시에 일어난다. 실패하면 초기화.
- Atomicity(원자성)
-
- Consistency(일관성)
- 언제나 일관성 있는 데이터베이스 상태로 유지
- Consistency(일관성)
-
- Isolation(고립성)
- 여러명이 접속하면 내부적으로 직렬식으로 처리.
- Isolation(고립성)
-
- Durability(내구도)
- 시스템 문제, DB 일관성 체크 등을 하더라도 유지되어야 함을 의미
- Durability(내구도)
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는 테이블과 테이블를 합침. 합치면 어렵고 성능에 이슈 발생
이전 버전의 경우 쓰기 성능에 문제가 있음
- join(조인)에 부적합 -> join는 테이블과 테이블를 합침. 합치면 어렵고 성능에 이슈 발생
Key-Value DB
- Redis, Mem‐cached
- 엄청 빠르다
- 단순 데이터 처리
- 캐시 / 대이터 분산용
맥북 서버에서 사용자 40만명 처리가 가능.
- 엄청 빠르다
Cloud DB
- AWS DyanmoDB
- KV Store + Document Store
- 설치가 필요없음
- 고성능, 고가용성, 내구도
- 저렴하지 않은 비용
- 저장하고 불러오는 것만 한다. 구축하지 않는다.
- KV Store + Document Store
ETC
- Hadoop Eco System : 아파치의 오픈 소스. 대용량 DB를 많이 사용한다.
- Cassandra : 아파치 분산 데이터 베이스
- Elastic Search: 검색 엔진. 자연어 처리. 비주얼 라이징