DATABASE

KDG·2021년 1월 14일
0
  • 데이터를 저장 및 보존 하는 시스템

  • 데이터를 장기 기간동안 저장 및 보존 하기 위해 데이터베이스를 사용

관계형 데이터베이스(RDBMS, Relational DataBase Management System)

  • 관계형 데이터란 데이터를 서로 상호관련성을 가진 형태로 표현한 데이터를 말한다.
  • 각각의 테이블들은 서로 상호관련성을 가지고 서로 연결될 수 있다.
  • 데이터들을 저장하기 전에 어디에 어떻게 저장할것인지를 정의 해야한다.
  • 테이블끼리 연결에는 3가지 종류가 있다.
    • one to one(일대일)
    • one to many(일대다)
    • many to many(다대다)
  • 데이터베이스 관리 시스템 제품으로는 오라클, MS-SQL, MySQL, SQLite, Informix, DB2등이 있다.

왜 테이블들을 연결하는가?

하나의 테이블에 모든 정보를 다 넣으면 동일한 정보들이 불필요하게 중복되어 저장

  • 더 많은 디스크를 사용하게 됨
  • 잘못된 데이터가 저장 될 가능성이 높아짐

NoSQL 데이터베이스(비관계형 데이터베이스)

  • 데이터들을 저장하기 전에 정의 할 필요가 없다.
  • 대표적으로 MongoDB, redis, CouchDB, HBase등이 있다.

SQL(RDBMS) VS NoSQL

SQL

  • 장점:
    • 관계형 데이터베이스는 데이터를 더 효율적으로 그리고 체계적으로 저장할 수 있고 관리 할 수 있다.
    • 미리 저장하는 데이터들의 구조(테이블 스키마)를 정의 함으로 데이터의 완전성이 보장된다.
    • 트랜잭션(transaction)
  • 단점:
    • 테이블을 미리 정의해야 함으로 테이블 구조 변화 등에 덜 유연한다.
    • 확장성이 쉽지 않다.
      • 역시 테이블 구조가 미리 정의 되어 있다보니 단순히 서버를 늘리는것 만으로 확장하기가 쉽지 않고 서버의 성능 자체도 높여야 한다.
      • 서버를 늘려서 분산 저장 하는것도 쉽지 않다.
      • Scale up (서버의 성능을 높이는것)으로 확장성이 됨.
  • 정형화된 데이터들 그리고 데이터의 완전성이 중요한 데이터들을 저장하는데 유리하다.
    • 예) 전자상거래 정보. 은행 계좌 정보, 거래 정보 등등.

NoSQL

  • 장점:
    • 데이터 구조를 미리 정의하지 않아도 됨으로 저장하는 데이터의 구조 변화에 유연하다.
    • 확장하기가 비교적 쉽다. 그냥 서버 수를 늘리면 됨(scale out)
    • 확장하기가 쉽고 데이터의 구조도 유연하다 보니 방대한 양의 데이터를 저장하는데 유리하다.
  • 단점:
    • 데이터의 완전성이 덜 보장된다.
    • 트랜잭션이 안되거나 비교적 불안정하다.
  • 주로 비정형화 데이터 그리고 완전성이 상대적으로 덜 유리한 데이터를 저장하는데 유리하다.
    • 예) 로그 데이터

0개의 댓글