• 스탠포드의 좋은 데이터 베이스 강의를 찾아 추가한다. Link

데이터베이스란?

데이터베이스의 본질

db_basic

  • CRUD
    • Create
    • Read
    • Update
    • Delete


데이터베이스의 종류
  1. 관계형 DB (Relational DB)
    • SQL (Structured Query Language)
    • Schema
    • e.g.) MySQL
  2. 비관계형 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를 사용해 함께 열람


관계형 데이터베이스의 구조

db_basic

  • table: row, column으로 이루어진 표 형태의 데이터
  • database (schema): 동질한 여러 데이터의 집합
  • database server: 여러 데이터베이스의 집합


인터넷과 데이터베이스의 관계

db_client_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