Database

jongeun·2023년 1월 10일
0
post-custom-banner

Database와 DBMS의 차이점


  • DB(데이터베이스)는 data를 얻기위해 효율적으로 저장된 집합체이고, 이러한 DB를 쉽게 만들고 관리하는 여러가지 프로그램들이 모여서 하나의 시스템으로 갖춰진 프로그램을 DBMS(데이터베이스관리시스템)이라 부른다.(흔히말하는 oracle, mysql, sqlserver 가 DBMS)
  • DB 그 자체로는 어떤 작업을 할 수 없는 정보이기 때문에 DBMS라는 소프트웨어 프로그램이 필요하다.

1) DBMS의 장점

  • 데이터 중복을 최소화할 수 있으며,데이터의 일관성(data consistency) 유지 및
  • 유효성을 검사함으로써 데이터 무결성(data integrity) 유지
  • 또 여러 프로그램에서의 데이터의 공용 DBMS의 필수적인 데이터 제어 기능을 통한 표준화가 있습니다.

2) DBMS의 유형

  • DBMS의 유형은 계층형(Hierarchical), 망형(Network), 관계형(Relational), 객체지향형(Object-Oriented), 객체관계형(Object-Relational) 등으로 분류

3) 데이터 일관성과 데이터 무결성

  • 데이터 무결성은 데이터의 정확성, 일관성, 유효성이 유지되는 것을 의미합니다. 여기서 정확성이란 중복이나 누락이 없는 상태를 뜻하고, 일관성은 원인과 결과의 의미가 연속적으로 보장되어 변하지 않는 상태를 뜻
  • 데이터베이스에 저장 된 데이터 값과 그것이 표현하는 실제 값이 일치하는 정확성을 의미

4) 데이터의 독립성

  • DBMS의 궁극적인 목적으로 응용프로그램이 데이터에 종속되지 않는 것을 의미하는데, 논리적 독립성과 물리적 독립성으로 분류할 수 있다.

  • 논리적 독립성

    • 개념 스키마가 변경되더라도 외부 스키마에 영향을 주지 않음
    • 외부 스키마가 변경되더라도 개념 스키마에 영향을 주지 않음
    • 사용자 특성에 맞게 변경이 가능하다.
    • 통합적인 구조 변경이 가능하다.
    • 데이터독립성 개념과 각 영역|작성자 BABA
  • 물리적 독립성

    • 개념 스키마가 변경되더라도 내부 스키마에 영향을 주지 않음
    • 내부 스키마가 변경되더라도 개념 스키마에 영향을 주지 않음
    • 물리적 구조에 영향 없이 개념적 구조 변경이 가능하다.
    • 개념적 구조에 영향 없이 물리적인 구조 변경이 가능하다.
  • 외부스키마

    • DB의 개인 사용자나 응용 프로그래머가 접근하는 DB의 정의
    • View 단계 여러 개의 사용자 관점으로 구성. 즉 개인적인 사용자 단계로서 개개 사용자가 보는 DB 스키마.
    • 사용자 관점. 접근하는 특성에 따른 스키마 구성
  • 개념 스키마

    • 하나의 개념적 스키마로 구성.
    • 모든 응용시스템들이나 사용자들이 필요로 하는 데이터를 통합
    • 조직 전체의 DB를 기술한 것으로 DB에 저장되는 데이터와 그들간의 관계를 표현하는 스키마.
  • 내부 스키마

    • 데이터가 물리적 장치에 실질적으로 저장되는 방법을 표현하는 스키마
    • DB가 물리적으로 저장된 형식
    • 물리적 저장구조

5) DBMS의 동시성 제어 기법이란?

  • 동시에 실행되는 여러 개의 트랜잭션이 작업을 성공적으로 마칠 수 있도록 트랜잭션의 실행 순서를 제어하는 기법이다.
  • 다중 사용자 환경을 지원하는 데이터 베이스 시스템에서 여러 트랜잭션들이 성공적으로 동시에 실행될 수 있도록 지원하는 기능
  • 다중 사용자 환경을 지원하는 DB system의 경우 필수적으로 지원해야 하는 기능으로 병행제어라고도 한다.
  • 트랜잭션의 직렬화 수행 보장

6) 트랜잭션의 정의와 ACID정의

  • 트랜잭션이란 여러 개의 작업을 하나로 묶은 실행 유닛
  • 각 트랜잭션은 하나의 특정 작업으로 시작을 해서 묶여 있는 모든 작업들을 다 완료해야 정상적으로 종료한다.
    만약 하나의 트랜잭션에 속해있는 여러 작업 중에서 단 하나의 작업이라도 실패하면, 이 트랜잭션에 속한 모든 작업을 실패한 것으로 판단한다.
  • 데이터베이스 트랜잭션은 ACID라는 특성을 가지고 있다. ACID는 데이터베이스 내에서 일어나는 하나의 트랜잭션(transaction)의 안전성을 보장하기 위해 필요한 성질

    ACID는 주식거래, 금융업에서 중점적으로 사용된다.
    => 주식거래, 금융업에서는 관계형 데이터베이스를 이용한다.
    관계형 데이터베이스를 사용하면 데이터베이스와 상호 작용하는 방식을 정확하게 규정할 수 있기 때문에,
    데이터베이스에서 데이터를 처리할 때 발생할 수 있는 예외적인 상황을 줄이고, 데이터베이스의 무결성을 보호할 수 있다.

    1. Atomicity (원자성) - 원자성이란 시스템에서 한 트랜잭션의 연산들이 모두 성공하거나, 반대로 전부 실패되는 성질을 말한다.
    2. Consistency (일관성) - 일관성은 하나의 트랜잭션 이전과 이후, 데이터베이스의 상태는 이전과 같이 유효해야 한다.
    3. Isolation (격리성, 고립성) - 격리성은 모든 트랜잭션은 다른 트랜잭션으로부터 독립되어야 한다는 뜻이다.
    4. Durability (지속성) - 지속성은 하나의 트랜잭션이 성공적으로 수행되었다면, 해당 트랜잭션에 대한 로그가 남아야하는 성질을 말한다.

7) ACID 와 BASE 의 차이를 비교

  • ACID 모델은 일관된 시스템을 제공
  • BASE 모델은 고가용성을 제공
  • BASE모델은 ACID와 대조적으로 가용성과 성능을 중시하는 특성을 가진 분산 시스템의 특성이다.
  1. Basically Avaliable (기본적인 가용성)
    -가용성을 중시, Optimistic Locking 및 큐 사용
    -다수의 실패에도 가용성을 보장, 다수의 스토리지에 복사본 저장(고립성과 반대)
    -부분적인 고장은 있을 수 있으나, 나머지는 사용이 가능하다.
  2. Soft State (소프트 상태)
    -노드의 상태는 외부에서 전송 된 정보를 통해 결정됨
    -분산 노드간 업데이트는 데이터가 노드에 도달한 시점에 갱신
    -저장소는 쓰기 일관성이 있을 필요가 없으며 서로 다른 복제본이 항상 상호 일관성이 있을 필요도 없다.
  3. Eventually Consistent (최종 일관성)
    -저장소는 나중에 어떤 시점에서 일관성을 나타낸다. BASE 속성은 ACID가 보장하는 것보다 훨씬 느슨하지만 두 일관성 모델 간에 직접적인 일대일 매핑이 없다.
    -일시적으로 비일관적인 상태가 되어도 최적으로는 일관성이 있는 상태가 되는 성질
속성BASEACID
적용분야NOSQLRDBMS
범위시스템 전체에 대한 특성(트랜젝션 불가)트랜잭션에 한정(트랜젝션 가능)
일관성측면약한 일관성강한 일관성
중점사항Availability‘Commit’에 집중
시스템측면성능에 초점엄격한 데이터관리
효율성쿼리디자인이 중요테이블 디자인이 중요
규격여부정해진 규격없음정해진 규격
조인여부조인 불가능조인 가능
분산처리분산처리 쉬움분산처리 어려움

profile
기록으로 성장하는 개발자 되기
post-custom-banner

0개의 댓글