CS 지식/데이터베이스

데이터 베이스

Zin0_0 2021. 1. 14. 15:18
반응형

데이터 베이스

  • 특징

    • 데이터 독립성
      • 외부단계(논리적 데이터 독립성) - 개념적 단계(물리적 독립성)-내부적 단계
        • 이 단계는 외부스키마, 내부스키마, 개념스키마로 설명 가능
      • 물리적 독립성
        • 내부 스키마가 변경되어도 외부/개념 스키마에는 영향이 없도록(응용 프로그램을 수정할 필요 없도록) 지원
      • 논리적 독립성
        • 개념 스키마가 변경되어도 외부 스키마에는 영향이 없도록 지원
    • 데이터 무결성
      • 데이터베이스에 저장된 값들에 대해 여러 제한을 통해 데이터에 대한 신뢰를 보장해서 일관성을 유지하는 것(유효성 검사 ~> 잘못된 데이터가 발생하는 것 방지)
      • 영역 무결성
        • 한 컬럼에 대해 NULL 허용 여부와 타당한 데이터 값을 지정
        • 자료형, 규칙과 제약, 값 범위 등을 제한
      • 참조 무결성
        • 기본 키와 참조 키 간의 관계가 항상 유지됨을 보장
        • 참조되는 테이블의 행은 참조하는 키가 존재하는 한 삭제될 수 없고, 기본키도 변경될 수 없음
      • 개체 무결성
        • 테이블에 있는 모든 행들이 유일한 식별자를 가질 것을 요구
    • 데이터 보안성
      • 인가된 사용자만 DB나 자원에 접근할 수 있도록 계정 관리 or 접근 권한 설정
    • 데이터 일관성
      • 연관된 정보를 논리적인 구조로 관리함으로써 특정 데이터만 변경할 때, 발생할 수 있는 데이터 불일치성을 배제할 수 있음
    • 데이터 중복 최소화
      • 데이터를 통합해서 관리 ~> 파일 시스템의 단점 중 하나인 데이터 중복문제를 해결
  • 장점

    • 데이터 중복 최소화, 데이터 공유, 일관성과 무결성과 보안성 유지, 최신 데이터 유지 등
  • 단점

    • 비용 부담
    • 데이터 백업과 복구의 어려움
    • DB 전문가가 필요(러닝커브가 높다)
  • 성능

    • 디스크 I/O의 성능은 디스크 헤더의 위치 이동 없이 얼마나 많은 데이터를 한번에 기록하는가에 달려있다.
      • 따라서 순차 I/O가 랜덤 I/O보다 빠른데, 현실은 대부분 랜덤 I/O
      • 랜덤 I/O를 순차 I/O로 바꿔서 실행하기 위해 쿼리 튜닝이 나왔다.
    • 쿼리 튜닝
      • 가급적 WHERE 조건에 인덱스 컬럼을 모두 사용 (FULL Scan 방지)
      • 가급적 동등 연산자(=)를 활용
        • IS NULL, NOT IN, LIKE 등 회피
      • 인덱스 컬럼은 변형해서 사용 X
      • OR 보다는 AND를 활용해라
      • 그룹핑 쿼리 시, HAVING보다는 WHERE 절에서 데이터를 필터링
      • DISTINCT는 가급적 사용 X
      • IN, NOT IN 대신 EXISTS와 NOT EXISTS 사용
      • 등등
반응형