데이터베이스 & 관계형 데이터베이스에 대해 알아보자!
- 스탠포드의 좋은 데이터 베이스 강의를 찾아 추가한다. Link
데이터베이스란?
데이터베이스의 본질
-
CRUD
- Create
- Read
- Update
- Delete
데이터베이스의 종류
- 관계형 DB (Relational DB)
-
SQL
(Structured Query Language) Schema
- e.g.) MySQL
-
- 비관계형 DB
-
NoSQL
(Not only SQL) -
Unstructured
,Schema Less
- Scale horizontally e.g.) messenger에서 내가 주고받은 채팅만 빠르게 추출
- e.g.) mongoDB (document store), Redis (key-value store)
-
관계형 데이터베이스
관계형 데이터베이스의 특징
- 장점
- DB는 권한 기능이 있어서 보안에 유리
- 데이터가 많을 때 유지보수가 쉬움
- 다른 id지만 같은 value를 갖는 attribute 구분 가능
- 중복 값은 제거하고 효율적으로 저장할 수 있다.
- e.g.) 여러 테이블에서 id-address-email이 계속 나온다면, profile을 담은 테이블을 만들고 다른 테이블에는 id만 저장해서 대조해서 찾으면 된다.
- 단점
- 테이블을 여러 개로 봐야하기 때문에 직관적이지 못함
- 데이터는 분산 저장하되, read시에는
JOIN
command를 사용해 함께 열람
- 데이터는 분산 저장하되, read시에는
- 테이블을 여러 개로 봐야하기 때문에 직관적이지 못함
관계형 데이터베이스의 구조
-
table
: row, column으로 이루어진 표 형태의 데이터 -
database (schema)
: 동질한 여러 데이터의 집합 -
database server
: 여러 데이터베이스의 집합
인터넷과 데이터베이스의 관계
- 최근에는 클라우드에 데이터베이스를 저장
관계형 데이터베이스 SQL datatype
- Numeric
- int, bigint, float 등
- id column에는 integer만 올 수 있음
- String
- CHAR(SIZE)
- VARCHAR(SIZE)
- 255 chars
- e.g.) VARCHAR(100): size 100까지만의 문자만 저장
- TEXT(SIZE)
- 16,777,215 chars
- LONGTEXT(SIZE)
- Date/Time
- Date, Time, Datetime