데이터베이스 구축 - DB 물리 속성 설계/ 무결성/ 키
#DB 물리 속성 설계
파티셔닝
파티션보다 작은 논리적인 단위 나눔
성능 저하 방지 및 관리를 상대적으로 보다 용이하게 하고자 하는 기법
■ 특징
- 전체 데이터 훼손 가능성이 줄고, 데이터 가용성이 향상됨
- 작은 단위로 관리하여 편리함
- 부하를 각각 파티션들로 분산시켜 성능을 향상시킴
- 수평분할에 활용되는 분할 기법
■ 범위 유형
- 범위 분할: 분할 키값이 범위 내에 있는지 여부로 구분하는 기법 (숫자)
- 해시 분할: 해시 함수의 값에 따라 파티션에 포함할지 여부를 결정하는 기법
- 목록 분할: 값 목록에 파티션을 할당하고 분할 키 값을 목록을 통해 선택하는 기법 (문자열)
- 조합 분할: 범위 분할, 해시 분할, 목록 분할 중 2개 이상의 파티셔닝을 결합하는 기법
- 라운드 로빈: 라운드 로빈으로 회전하면서 새로운 행을 파티션에 할당하는 기법
클러스터링 (Clustering)
- 지정된 컬럼 값의 순서대로 데이터 행을 저장하는 방법
- 하나 이상의 테이블을 같은 클러스터 내에 저장할 수 있음
- 검색 효율은 높여주나 입력/수정/삭제 시 부하가 증가할 수 있음
- 분포도가 넓을수록 유리하고, 분포도가 넓은 테이블의 클러스터링은 저장 공간의 절약이 가능
■ 유형
- 단일 클러스팅: 하나의 테이블만 생성
- 다중 클러스터링: 두개 이상의 테이블을 함께 저장
■ 클러스터링 설계하면 좋은 경우
- 대량의 범위를 자주 액세스하는 경우
- 인덱스를 사용한 처리 부담이 되는 넓은 분포도
- 여러개의 테이블이 자주 조인을 일으킬 때
- 반복 컬럼이 정규화에 의해 어쩔 수 없이 분할된 경우
- UNION, DISTINCT, ORDER BY, GROUP BY가 빈번한 컬럼
- 수정이 자주 발생하지 않는 컬럼
데이터베이스 백업
데이터가 손상되거나 손실될 경우 피해를 최소화하기 위해 현재의 데이터를 저장하는 기법
- 전체 백업: 데이터 전체에 대해 백업하는 방식
- 차등 백업: 전체 백업 후 변경된 모든 데이터를 백업하는 방식
- 증분 백업: 정해진 시간을 기준으로 이후에 변경된 파일만 백업하는 방식
- 트랜잭션 로그 백업: 실제 데이터 파일의 내용을 백업하는 것이 아니라 로그 파일에 기록된 로그를 백업하는 방식
#데이터베이스 무결성 (Database Integrity)
데이터베이스에 저장된 데이터 값과 그것이 표현하는 현실 세계의 실제 값이 일치하는 성질
데이터베이스 무결성을 유지하는 것은 데이터베이스 관리 시스템의 중요한 기능, 주로 데이터에 적용되는 연산에 제한을 두어 데이터의 무결성을 유지함
권한이 있는 사용자로부터 데이터베이스를 보호함
데이터베이스 무결성 종류
■ 개체 무결성
같은 기본 키를 가질 수 없거나 기본이 속성이 NULL을 가질 수 없는 제약조건
■ 참조 무결성
외래키가 참조하는 다른 개체의 기본 키에 해당하는 값이 기본 키값이거나 NULL이어야 하는 제약조건
■ 속성 무결성
사용자의 의미적 요구사항을 준수해야하는 제약조건
■ 사용자 무결성
의미적 요구사항을 준수해야 하는 제약조건
■ 키 무결성
한 릴레이션에 같은 키 값을 가진 튜플들을 허용할 수 없는 제약조건
#키
데이터베이스에서 조건을 만족하는 튜플을 찾거나 순서대로 정렬할 때 다른 튜플들과 구별할 수 있는 기준이 되는 속성
■ 키 특성
- 유일성
- 최소성
기본 키 종류
■ 기본 키 (Primary Key)
테이블의 각 튜플들을 고유하게 식별하는 키
■ 대체 키 (Alernate Key)
후보 키 중에 기본키로 선택되지 않은 키
■ 후보 키 (Candidate Key)
각 튜플들을 구별하는데 기준이 되는 키
기본키와 대체키를 합친 키
■ 슈퍼 키 (Super Key)
모든 튜플에 대해 유일성을 만족하지만 최소성은 만족하지 못하는 키
■ 외래 키 (Foreign Key)
참조 데이터 무결성을 위한 제약 조건
This post is licensed under CC BY 4.0 by the author.