본문 바로가기
CS/DB

DBMS, RDBMS

by 개도필 2024. 3. 8.

데이터베이스의 정의와, 특징을 알았는데 이런 데이터베이스는 ‘어떻게 운영’이 될까?

바로 DBMS로 DB의 특징을 지켜가며 DB를 운영할 수 있다!

DBMS (DataBase Management System)

DBMS란?

뜻 그대로 데이터베이스를 관리하는 시스템이다.

  • DBMS는 저장된 데이터를 보다 체계적으로 관리하고 이용할 수 있게 해주는 소프트웨어이다.
  • DBMS는 데이터베이스를 관리하는 소프트웨어로 종류로는 대표적으로 MySQL, 오라클, SQL서버, Postgresql등이 있다.

 

DBMS의 종류

  • 관계형 DBMS (RDBMS)
    데이터를 테이블 형태로 구성하고, 각 테이블 간의 관계를 정의하는 데이터베이스
    대표적으로 Oracle, Mysql, Postgresql 등이 있다.
    가장 많이 사용하는 DBMS종류!

https://www.integrate.io/ko/blog/complete-guide-to-database-schema-design-guide-ko/

  • NoSQL DBMS
    NoSQL(Not Only SQL)은 관계형 데이터베이스와는 다른 모델을 기반으로 하는 데이터베이스를 의미
    NoSQL은 스키마가 유연하고, 대량의 분산 데이터 처리 및 성능 향상이 요구되는 환경에서 주로 사용, 다양한 형태의 데이터를 담을 수 있다.
    MongoDB, Cassandra, Couchbas등이 있음

https://www.geeksforgeeks.org/types-of-nosql-databases/

  • 인 메모리 DBMS
    인 메모리 데이터베이스는 데이터를 메모리에 저장하여 빠른 읽기 및 쓰기 성능을 제공하는 데이터베이스
    디스크 기반의 데이터베이스보다 빠른 응답 시간을 제공하며, 대규모 트랜잭션 처리와 분석 작업에 적합
    Redis등이 유명!

 

DBMS의 특징

  • 데이터 무결성 (Data Integrity):
    데이터베이스 시스템은 부적절한 자료의 입력을 방지하여 데이터의 정확성과 일관성을 유지할 수 있다.
    예를 들어, 기본키(primary key)를 통해 각 행을 고유하게 식별하고, 중복된 값을 허용하지 않아 데이터의 무결성을 보장한다.
  • 데이터 일관성 (Data Consistency):
    데이터베이스는 삽입, 삭제, 갱신, 생성 등의 작업이 발생한 후에도 데이터가 모순이 없이 일정한 규칙을 따르도록 관리된다.
    데이터 간의 관계와 제약조건을 정의하여 데이터 일관성을 유지한다.


  • 데이터 회복성 (Data Recoverability):
    데이터베이스는 시스템이나 저장 매체에 장애가 발생했을 때, 특정 상태로 복구될 수 있도록 하는 기능을 가지고 있다.
    이를 통해 데이터 손실을 최소화하고 시스템의 안정성을 유지


  • 데이터 보안성 (Data Security):
    데이터베이스는 불법적인 노출과 변경으로부터 데이터를 보호하는데 주력한다.
    사용자 권한 및 암호화 기술을 통해 무단 접근을 방지하고 데이터의 기밀성을 보장한다.

  • 데이터 효율성 (Data Efficiency):
    데이터베이스는 응답시간, 저장 공간 활용 등이 최적화되도록 설계되어 있다.
    인덱스, 쿼리 최적화, 트랜잭션 관리 등의 기술을 사용하여 데이터에 효율적으로 접근하고 관리한다.
    이는 시스템의 성능을 향상시키고 사용자 경험을 개선하는 데 기여할 수 있다.

 

! 참고 !

데이터 베이스의 ‘중복’을 방지하는 여러가지 방법

데이터베이스에서 데이터 중복을 방지하고 관리하는 여러 가지 방법이 있다. 데이터 중복은 데이터 일관성을 해치고 효율성을 저하시킬 수 있기 때문에, 데이터베이스는 중복을 최소화하고 효과적으로 관리하기 위해 다음과 같은 기능을 제공한다.

  1. 정규화 (Normalization):
    데이터베이스 설계 시에 정규화를 통해 중복된 데이터를 최소화합니다.
    정규화는 테이블을 작은 단위로 나누어 의존성을 관리하고 중복을 줄이는 프로세스입니다.
    1차 정규형, 2차 정규형, 3차 정규형 등의 정규화 단계를 통해 중복을 최소화하고 데이터 일관성을 향상시킵니다.
  2. 기본키와 외래키 활용:
    기본키와 외래키를 사용하여 테이블 간의 관계를 정의합니다.
    이를 통해 관련된 정보를 별도의 테이블에 저장하고 필요할 때마다 조인을 통해 필요한 정보를 가져옵니다.
    이로써 중복된 데이터를 피하면서도 데이터 간의 관계를 유지할 수 있습니다.

 

 

RDBMS에 대해서 더 알아보자.

RDBMS란?

  • 관계형 데이터베이스를 관리하는 소프트웨어.
  • RDBMS의 테이블은 서로 연관되어 있어 일반 DBMS보다 효율적으로 데이터를 저장, 구성 및 관리할 수 있다.

RDBMS의 특징

  1. 데이터를 ‘테이블’의 형태로 관리한다!
    각 테이블은 행, 열로 이루어져있다.
  2. 관계 정의
    여러 테이블간의 관계를 정의하고 유지한다.
    관계는 기본키와 외래키를 통해 구현되며, 데이터의 일관성을 유지하는데 기여한다.
  3. SQL사용
    RDBMS는 SQL을 사용하여 데이터를 조작한다.
    SQL을 통해 데이터검색, 삽입, 갱신, 삭제등이 이루어진다.
  4. 트랜잭션 지원
    DBMS는 트랜잭션을 지원하여, 여러 데이터 조작작업을 하나의 논리적인 작업 단위로 묶어 원자성, 일관성, 고립성, 지속성 (ACID) 을 보장한다!


참고 ACID

  1. 원자성 (Atomicity):
    트랜잭션의 모든 연산이 성공하거나 실패하전체 트랜잭션이 성공하거나 실패해야 함을 의미합니다.
    트랜잭션 내의 작업이 하나라도 실패하면 모든 작업은 취소되고, 모든 작업이 성공하면 트랜잭션이 완료됩니다.

  2. 일관성 (Consistency):
    트랜잭션이 실행되기 전과 후에 데이터베이스는 항상 일관된 상태를 유지해야 합니다.
    일관성은 트랜잭션이 데이터베이스를 변환시키더라도 일관된 규칙에 따라 변환되어야 함을 의미합니다.
    일관성은 데이터베이스의 무결성이 항상 유지되어야 함을 강조합니다.
    일관된 상태 : DB에 정의된 규칙이나 제약 조건을 의미 ( 예 : 외래키 제약조건, 기본키 제약조건 등 )

  3. 고립성 (Isolation):
    여러 트랜잭션이 동시에 실행될 때, 각 트랜잭션은 서로에게 영향을 미치지 않고 독립적으로 실행되는 것처럼 보장되어야 합니다.
    고립성은 한 트랜잭션이 수행 중일 때, 다른 트랜잭션에 의해 그 내용이 접근되지 않아야 함을 의미합니다.

  4. 지속성 (Durability):
    트랜잭션이 성공적으로 완료되면 그 결과는 영구적으로 저장되어야 합니다.
    시스템이 고장나거나 다시 시작되어도 트랜잭션이 성공적으로 완료된 후의 상태는 지속되어야 합니다. 지속성은 데이터베이스 시스템이 트랜잭션의 결과를 영구적으로 저장하는 데 중점을 둡니다.

 

RDBMS의 단점

  1. 확장성 제한
    대규모 데이터와 사용자를 다루기 위해 시스템을 확장하기가 어렵다.
    수직적 확장만 가능하며, 수평적 확장은 제한적이다.
    수평적 확장 : 여러 대의 데이터베이스 서버를 클러스터로 구성하여 트래픽을 분산.
    수직적 확장 : 단일 데이터베이스 서버에 메모리를 추가하여 성능 향상을 하는 것
    => 데이터베이스의 부하를 여러 서버에 분산시켜 전체적인 성능을 향상시키는 것

  2. 복잡성
    대규모 프로젝트에서는 테이블 간의 복잡한 관계와 JOIN 연산 등으로 인해 데이터베이스 설계와 쿼리 작성이 복잡해질 수 있다.

  3. 비용
    상용 RDBMS 제품은 비용이 높을 수 있다.
    라이선스, 하드웨어, 유지보수 등의 비용이 발생할 수 있다.

  4. 대용량 데이터 처리 속도
    대용량의 데이터 처리에 있어 NoSQL 데이터베이스보다 느릴 수 있다.
    특히 JOIN 연산 등이 복잡한 쿼리에 영향을 줄 수 있다.

    NoSQL보다 느린 이유
    스키마의 유연성
    NoSQL 데이터베이스는 스키마가 유연하게 정의되어 있습니다. 이는 데이터 모델이 변경되거나 새로운 필드가 추가되어도 기존 데이터에 영향을 미치지 않는다. 
    반면에 RDBMS는 고정된 스키마를 가지고 있어, 스키마 변경이나 새로운 필드 추가가 번거로울 수 있다. 

  5. 고정된 스키마
    데이터베이스를 구축할 때 스키마를 미리 정의해야 하며, 이는 데이터의 구조를 변경하기 어렵게 만든다. 
    즉, 스키마의 수정이나 변경이 번거로울 수 있다.

 

 

'CS > DB' 카테고리의 다른 글

데이터베이스 기초 (스키마, 릴레이션, 키, 무결성)  (1) 2024.03.08
파일시스템, 데이터베이스  (0) 2024.03.08

댓글