-
데이터 베이스CS 지식/데이터베이스 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 사용
- 등등
- 디스크 I/O의 성능은 디스크 헤더의 위치 이동 없이 얼마나 많은 데이터를 한번에 기록하는가에 달려있다.
반응형'CS 지식 > 데이터베이스' 카테고리의 다른 글
NoSQL (0) 2021.01.14 트랜잭션(Transaction) (0) 2021.01.14 정규화 (0) 2021.01.14 인덱스(Index) (0) 2021.01.14 스키마 3계층 ( 외부 스키마, 개념 스키마, 내부 스키마) (0) 2020.08.17