관계형 & 비관계형

김채영·2024년 9월 15일

데이터베이스

  • 데이터를 체계적으로 저장하고 관리하는 시스템
  • 대량의 데이터를 효율적으로 처리하고, 빠르고 쉽게 필요한 정보를 찾고 사용할 수 있도록 설계된 구조
  • 관계형, 비관계형, 분산형

DBMS

  • 데이터베이스 관리 시스템
  • 데이터를 저장, 관리, 검색, 업데이트, 삭제하는 작업(CRUD)을 수행하는 소프트웨어

관계형 데이터베이스

  • 테이블 형식으로 저장하고 관리하는 데이터베이스 시스템
  • 행과 열로 구성되며, 각각의 행은 개별 데이터 항목을 나타내고, 열은 그 데이터 항목의 속성이나 필드를 나타냄
  • MySQL, OracleDB, PostgreSQL...

특징

  • 데이터 관계 표현 : 서로 다른 테이블 간의 관계를 정의하여 테이블 간 데이터를 연결하고 참조 가능
  • SQL : 데이터를 조회, 삽입, 업데이트, 삭제 작업을 수행
  • 정규화 : 중복 데이터를 최소화하고, 데이터 무결성을 유지하기 위해 정규화 과정을 거치며 테이블을 더 작은 테이블로 나누며, 테이블 간의 관계를 명확하게 정의

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

  • 테이블 형식이 아닌 다양한 데이터 모델을 사용하여 데이터를 저장하고 관리하는 데이터 베이스
  • 대규모의 데이터를 빠르게 처리하고, 유연한 데이터 구조를 허용
  • MongoDB, CouchDB, Redis, DynamoDB...

특징

  • 유연한 데이터 구조 : 데이터 스키마를 미리 정의할 필요가 없으며, 데이터 구조가 변경될 수 있으며, 이로 인해 비정형과 반정형 데이터 처리에 적합

    비정형 데이터 : 고정된 구조나 형식이 없는 데이터로, 체계적으로 정리되지 않거나 특정 스키마가 없는 데이터를 의미
    반정형 데이터 : 어느 정도의 구조를 갖추고 있지만, 고정된 스키마가 없는 데이터로, 내부에 특정한 구조(태그, key-value)를 포함하고 있지만 엄격하지 않으며 유연성이 있음

  • 수평적 확장성 : 데이터를 여러 서버에 분산하여 저장할 수 있으며, 대용량 데이터를 처리할 때 관계형 데이터베이스보다 유연하게 확장이 가능

  • 관계의 유연성 : 관계형 데이터베이스보다 테이블 간의 명시적인 관계가 필요하지 않으며, 다양한 데이터 모델을 사용하여 데이터 저장

단점

  • 데이터 일관성 문제
  • 관계 표현의 복잡성
profile
백엔드 개발⭐

0개의 댓글