[ CS / DataBase ] DataBase

황승환·2022년 1월 19일
0

CS

목록 보기
11/60

DataBase

DataBase 사용 이유

데이터베이스가 등장하기 이전에는 모든 데이터를 파일 시스템으로 관리하였다. 파일 시스템은 데이터를 파일 단위로 저장하고 처리하기 때문에 데이터의 변경이나 삽입, 삭제와 같은 과정에서 데이터 종속성, 중복성, 무결성 침해와 같은 문제가 발생하기 쉽다. 데이터 베이스는 데이터 베이스 자체에서 이러한 문제가 발생하기 전에 실행을 거부하는 등의 액션으로 데이터를 보호한다.

DataBase 특징

독립성

  • 물리적 독립성:
    데이터베이스 사이즈를 늘리거나 성능 향상을 위해 데이터 파일을 늘리거나 새롭게 추가하더라도 관련된 응용 프로그램을 수정할 필요가 없다. 파일 시스템의 경우에는 응용 프로그램과 연동되어 있어 이 과정이 복잡하다.
  • 논리적 독립성:
    데이터베이스는 논리적인 구조로 다양한 응용 프로그램의 논리적 요구를 만족시켜줄 수 있다.

무결성

여러 경로를 통해 잘못된 데이터가 발생하는 경우를 방지하는 기능으로 데이터의 유효성 검사를 통해 데이터 무결성을 구현한다. 보통 무결성은 외래키를 설정한 이후에 깨지는 경우가 발생하고, 이 경우 무결성을 지키기 위한 제약 조건을 정해줄 수 있고, 그 제약 조건들은 다음과 같다.

  • NO ACTION
    부모 테이블의 행에 대한 삭제 또는 업데이트 동작을 롤백한다.
    (롤백, Roll Back: 실행 전으로 되돌려 놓는 것)
  • CASCADE
    부모 테이블에서 해당 행이 업데이트 되거나 삭제될 때 참조 테이블에서도 해당 행이 업데이트 또는 삭제된다. 데이터가 손실될 수 있는 위험이 있다.
  • SET NULL
    부모 테이블에서 행을 업데이트하거나 삭제하면 해당 외래 키를 구성하는 모든 값이 NULL로 설정된다.
  • SET DEFAULT
    부모 테이블에서 해당 행을 업데이트 하거나 삭제하면 외래 키를 구성하는 모든 값이 기본값(지정한 값)으로 설정된다.
  • RESTRICT
    자식테이블에 데이터가 남아있는 경우 부모 테이블의 데이터는 수정 혹은 삭제가 불가능하다.

보안성

권한을 부여받은 사용자만이 데이터베이스나 데이터베이스 내의 자원에 접근할 수 있도록 계정 관리, 접근 권한 설정하여 모든 데이터에 대한 보안을 구현한다.

일관성

연관된 정보를 논리적인 구조로 관리하여 어떤 하나의 데이터만 변경하였을 경우 발생할 수 있는 데이터의 불일치성을 배제할 수 있다.

중복 최소화

데이터베이스는 여러 데이터를 통합 관리하여 데이터의 중복을 최소화한다.

DataBase 성능

데이터베이스의 성능은 디스크 I/O의 양에 따라 결정된다. 디스크 I/O는 디스크 드라이브의 플레터를 돌려 읽어야 할 데이터가 저장된 위치로 디스크 헤더를 이동 시킨 후 데이터를 읽는 것이다. 이를 효율적으로 처리하기 위해서는 디스크 헤더의 이동이 최소화되어야 한다. 이 때문에 순차적 I/O가 랜덤 I/O보다 빠르다. 그러나 현실에서는 대부분이 랜덤 I/O이다. 이 랜덤 I/O들을 순차적 I/O로 바꾸는 것이 데이터베이스 쿼리 튜닝이다.

profile
꾸준함을 꿈꾸는 SW 전공 학부생의 개발 일기

0개의 댓글