ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 다양한 데이터베이스 특징
    공부하기/데이터베이스 2023. 2. 18. 21:01

    데이터베이스의 원칙

    1. data integrity(무결성) : 정확성, 일관성, 유지성이 유지되는 것
      1. 개체 무결성 : 모든 테이블은 기본키(pk)를 가져야하며 null값과 중복을 허용하지 않는다.
      2. 참조 무결성
        1. 참조 관계에 있는 두 테이블의 데이터가 항상 일관된 값을 유지해야 한다.
        2. 외래키 값은 null이거나 참조하고 있는 테이블의 기본키 값과 같아야 한다.
      3.  도메인 무결성 : 테이블에 존재하는 컬럼의 데이터 타입이 알맞게 저장되어야 한다.
      4.  고유 무결성 : 테이블 컬럼의 값은 고유해야 한다.
      5. 키 무결성 : 하나의 테이블에는 적어도 하나의 키가 존재해야 한다.
    2. data reliability (안전성) : row, column 구조 변경 시 최소화해야 한다.
    3. scalability (확장성) : 요구사항의 변경등으로 컬럼 추가 또는 테이블 참조를 대비해서 설계를 해야한다.

    데이터 베이스 종류

    • relational
      • 특징
        • 데이터를 테이블 형태로 구성한다
        • 각 테이블은 여러 개의 열과 행으로 구성된다.
        • 각 행은 유일한 식별자를 갖는다
        • 테이블 간에 관계를 설정할 수 있다.
        • 데이터를 구조화하고 관리하는데 매우 유용
      • 종류
        • Mysql
        • Oracle
        • Postgresql
    • key-value
      • 특징
        • 키를 고유한 식별자로 사용하는 키-값 쌍의 집합으로 데이터를 저장
        • 단순한 객체에서 복잡한 집합체에 이르기까지 무엇이든 키와 값이 될 수 있다
        • 파티셔닝이 가능하고 다른 유형의 데이터베이스로는 불가능한 범위까지 수평 확장을 가능
        • 캐시와 같이 일시적인 데이터를 저장하는데 사용된다
      • 종류
        • AWS DynamoDB
        • Redis
    • graph
      • 특징
        • 데이터를 노드와 간선으로 이루어진 그래프 형태로 저장
        • 모든 작업을 그래프와 그래프 이론을 통해 동작한다는 것
        • 인덱스를 이용하지 않아도 연결된 노드를 찾는 것이 빠르다는 것
        • nosql과 마찬가지로 스키마가 없는 구조
      • 종류
        • Neo4j
    • document (nosql)
      • 특징
        • 데이터간의 관계를 정의하지 않는다.
        • 데이터를 JSON, BSON, XML과 같은 문서 형식으로 저장
        • 빅데이터, 로그 데이터 및 사용자 데이터와 같은 비정형 데이터를 저장하고 분석하는데 적합
        • 스키마가 없는 데이터를 여러 컬렉션과 노드에 저잘할 수 있다
      • 종류
        • MongoDB

    RDBMS, NoSQL 비교

    RDBMS : 데이터 구조가 명확하며 변경 될 여지가 없으며 명확한 스키마가 중요한 경우 사용

    NoSql : 정확한 데이터 구조를 알 수 없고 데이터가 변경/확장이 될 수 있는 경우에 사용

     

    • 데이터 모델 차이
      • RDBMS : 데이터는 정형화된 테이블에 행과 열로 저장
      • NoSQL: 다양한 데이터 모델을 사용할 수 있고 document, key-value, graph등의 형태로 데이터를 저장
    • 확장성
      • RDBMS :
        • 수직적 확장( scale-up )은 가능하지만 수평적 확장이 어려울 수 있다.
        • 서버 자체의 성능 한계로 확장설이 제한된다.
      • NoSQL :
        • 수평적 확장이 가능하기 때문에 노드를 추가하면 확장설이 높아진다.
    • 일관성
      • RDBMS : ACID 트랜잭션을 지원하여 일관성이 높다
      • NoSQL : BASE(Basically Available, Soft-state, Eventually consistent) 원칙을 따르기 때문에, 일관성은 상대적으로 낮을 수 있다
    • 성능
      • RDBMS : 복잡한 JOIN 연산이 많은 쿼리에서 성능이 떨어질 수 있다.
      • NoSQL : 데이터가 분산되어 있어서 JOIN 연산이 필요하지 않기 때문에 성능이 더 빠를 수 있다.

     

     

    '공부하기 > 데이터베이스' 카테고리의 다른 글

    MySql Isolation Level(격리수준)  (0) 2023.02.19
    MySql Database Lock  (0) 2023.02.19
    MySQL UNION 요약  (0) 2023.02.10
    MySQL CTE 요약  (0) 2023.02.10
    MySQL EXISTS 요약  (0) 2023.02.10
Designed by Tistory.