데이터베이스의 원칙, 종류

귀찮Lee·2023년 2월 13일
0

DataBase / MySQL

목록 보기
1/16
post-thumbnail

원티드 프리온보딩 2월 "MySQL 잘 사용하기" 학습내용 1일차 - 1

◎ 데이터베이스란

  • 여러 사람들이 공유하고 사용할 목적으로 통합 관리되는 데이터들의 모임

◎ 데이터베이스의 원칙

  • 무결성 (Data Integrity)

    • 데이터가 전송, 저장, 처리되는 과정에서 변경되거나 손상되지 않는 것
    • 완전성, 정확성, 일관성을 유지함
    • 개체 무결성, 참조 무결성 ... (참고 자료)
  • 안정성 (Data Reliability)

    • 데이터를 보호할 수 있는 방법
    • 인증/인가되지 않은 사용자로부터 데이터를 보호함
    • 고장이 안나야 됨
  • 확장성 (Scalability)

    • 데이터 양, 사용자가 늘어날 때 대처가 가능하여야 함

◎ RDBMS(관계형 데이터베이스)

  • RDB(Relational Database)

    • 관계형 데이터 모델에 기초를 둔 데이타베이스
    • 데이터를 row와 column으로 이루어진 Table의 형태로 저장함
    • SQL(Structured Query Language)를 사용해서 데이터를 읽어오거나 조작함
    • 저장하는 내부 방식에 따라 row-oriented, column-oriented로 나눌 수 있다.
  • row-oriented

    • 각 데이터는 레코드 단위로 기록되며, 메모리 상 레코드끼리 수평적으로 저장
    • 장점
      • 데이터의 끝에 행을 추가하기만 하면 되기 때문에 저장 속도가 빠르다.
      • 행 단위 데이터를 불러오는 속도가 빠름
    • 단점
      • 데이터 간의 집합을 만드는 경우 속도 저하 현상이 발생
      • 불필요한 연산 시간을 초래하며, 간편한 입력에 비해 출력하는 과정이 필요 이상의 메모리 소모를 유발
    • 예시 : MySQL, postgreSQL, hbase

      text

  • column-oriented
    • 각 데이터는 필드 단위로 기록되며, 메모리 상 필드끼리 수평적으로 저장
    • 장점
      • 데이터 쿼리를 할 때 성능이 더 좋은 경우가 있다.
      • 데이터 집합을 만드는 경우 추가 메모리 소모 없이 필요한 결과를 출력할 수 있으며, 이에 따라 성능이 크게 향상
    • 단점
      • 데이터 저장시에 중간중간에 저장해야 하므로 효율이 떨어진다.
      • 행 단위 데이터를 불러오기 위해서 각 Disk별로 조회하기 때문에 효율이 떨어진다.
    • 예시 : cassandra, hbase, BigQuery

      text

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

  • key-value

    • key-value pair로 데이터를 저장함
    • key는 unique identifier로도 사용됨
    • 예시 : Redis, DynamoDB (참고 자료1, 참고 자료2)

      text

  • graph

    • 데이터를 graph의 형태로 저장
    • 각 항목이 node로 이루어져있고, node간의 관계는 edge를 사용해서 나타냄
      • edge에 가중치를 줄 수 있음
    • SNS등 서로 관계가 복잡한 상황에서 자주 사용됨
    • 예시 : Neo4j, OrientDB (링크드인 - 1촌, 2촌)

      text

  • document database

    • row, column과 같은 구조는 없고 자유로운 형태로 데이터를 저장함
      • 일반적으로 JSON 또는 XML 형태
    • 데이터베이스별로 데이터를 조작할 수 있는 언어가 따로 있음
    • 예시 : MongoDB, CassandraDB, Couchbase

      text

◎ RDBMS vs NoSQL

구분RDBMS (관계형 DB)NoSQL (비관계형 DB)
Data Modeling- 스키마에 맞춰서 관리하기 때문에 데이터 정합성 보장
- 관계를 맺고있는 데이터가 자주 변경되는 경우
- 자유롭게 데이터를 관리할 수 있다
- 데이터 구조를 정확히 알 수 없는 경우
- 데이터가 변경/확장될 수 있는 경우
Scalability- Scale Up- Scale Out
Query LanguageSQL(Structured Query Language)DB마다 문법이 다름
ConsistencySTRONGeventual consistency
- may take time to be consistent
flexibility상대적으로 떨어짐매우 유연함
profile
배운 것은 기록하자! / 오류 지적은 언제나 환영!

0개의 댓글