관리 메뉴

DevBlackCat

정보처리기사: 물리 데이터 베이스 모델링 본문

정보처리기사/데이터베이스 구축

정보처리기사: 물리 데이터 베이스 모델링

DevBlackCat 2024. 12. 6. 15:22
728x90

데이터 무결성

  • 데이터 정확성, 일관성, 유효성을 보장하는 기능

 

무결성 종류

① 개체 무결성(Entitiy Integrity)

  • 모든 릴레이션은 중복되지않는 고유한 값인 기본키를 가져야한다.
  • 기본키는 NULL을 가질수없다.

② 참조 무결성(Refetential Integrity)

  • 외래키는 NULL이거나 유효한 참조 릴레이션의 기본키와 일치해야한다.

제약조건

종류 설명
제한 (Restrict) 문제의 연산을 거부한다.
연쇄 (Cascade) 참조된 튜플 삭제 시, 참조하는 튜플도 함께 삭제한다.

 

③ 도메인 무결성(Domain Integrity)

  • 모든 속성값은 정의된 도메인에 속해야한다
  • ex)성별 컬럼에 남,녀 외에 의미없는 데이터가있으면 안됨

④ 고유 무결성 (Unique Integrity)

  • 릴레이션의 특정 속성 값은 서로 달라야 한다.

⑤ 키 무결성 (Key Integrity)

  • 각 릴레이션은 적어도 하나의 키를 가져야 한다.

⑥ 릴레이션 무결성 (Relational Integrity)

  • 삽입, 삭제, 갱신 등의 연산은 릴레이션의 무결성을 해치지 않도록 수행되어야 한다.
 

문제
참조 무결성을 유지하기 위하여 DROP문에서 부모 테이블의 항목 값을 삭제할 경우, 자동적으로 자식 테이블의 해당 레코드를 삭제하기 위한 옵션은?

 

CASCADE

키종류

키의종류 ★★(실기도 나옴)

  • 기본 키 (Primary Key)
    • 유일성 보장.
    • 각 레코드가 고유한 식별자를 가짐.
  • 후보,기본,대체 키
    • 유일성과 최소성을 만족.

최소성: 키는 최소한으로 해라

 

종류 설명
후보키 (Candidate Key) - 릴레이션에서 튜플을 유일하게 식별할 수 있는 속성들의 집합. - 반드시 하나 이상 존재해야 하며, 유일성과 최소성을 만족해야 한다.
기본키 (Primary Key) - 후보키 중에서 선택된 메인 키.
- 특정 튜플을 유일하게 식별할 수 있으며, NULL 값을 가질 수 없고, 중복된 값을 가질 수 없다.
대체키-보조키 (Alternate Key) - 둘 이상의 후보키가 있을 때, 기본키로 선택되지 않은 나머지 키.
슈퍼키 (Super Key) - 튜플을 유일하게 식별할 수 있는 속성들의 집합이지만, 최소성을 만족시키지 않는다.
외래키 (Foreign Key) - 다른 릴레이션의 기본키를 참조하는 속성.
- 릴레이션 간 참조 관계를 표현하는 데 사용되며, 참조 무결성 조건을 만족해야 한다.

 

 

반정규화  

  • 정규화 후 성능향상이나 편의를 위해 의도적으로 중복을 허용하거나 데이터를 재구성 하는 방법 (★ 실기나옴)

순서

 

1. 반정규화 대상 조사 

2. 다른방법으로 유도

3.반정규화 실행

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

분할 기준 ★

 

1. 범위 분할 (Range Partitioning)

  • Partition Key의 연속된 범위로 파티션을 정의.
  • 파티션 키 위주로 검색이 자주 실행될 경우 유용.
  • 예시: 월별, 분기별 등.

2. 목록 분할 (List Partitioning)

  • 특정 Partition에 저장될 Data에 대한 명시적 제어.
  • 많은 SQL에서 해당 Column의 조건이 많이 들어오는 경우 유용.
  • 예시:
    • [한국, 일본, 중국 → 아시아]
    • [노르웨이, 스웨덴, 핀란드 → 북유럽]

3. 해시 분할 (Hash Partitioning)

  • 파티션 키 값에 해시 함수를 적용하고, 거기서 반환된 값으로 파티션 매핑.
  • 데이터가 모든 파티션에 고르게 분산되도록 DBMS가 관리.
  • 병렬 처리 시 성능 효과 극대화.

4. 라운드 로빈 분할 (Round Robin Partitioning)

  • Data를 균일하게 분배해서 저장하는 방식.

5. 합성 분할 (Composite Partitioning)

  • 위의 기술들을 복합적으로 사용하는 방법.
  • 예시: 범위 분할 후 분할된 데이터를 해시 분할하는 방식 등.

 

클러스터 설계

  • 자주사용되는테이블의 데이터를 디스크상 동일한 위치에 저장하여 효율을 향상시키는 물리적 저장 방법
  • (자주 가는 가게가 서울 , 부산 인것보다 둘다 서울에 있으면 시간이 덜걸리듯이)

특징

  • 그룹화된 데이터는,디스크 I/O 최소화
  • 조인성능 향상
  • 데이터의 분포도가 넓을 경우 유리
  • 인덱스 생성시 성능향상

인덱스

  • 검색 속도 향상을 위한 저장공간 활용 구조

1. 클러스터 인덱스 (Clustered Index)

  • 테이블당 1개만 허용되며, 해당 컬럼을 기준으로 테이블이 물리적으로 정렬됨.
  • 데이터는 기본적으로 오름차순으로 정렬 진행.
  • 기본 키를 설정하면 자동으로 클러스터드 인덱스가 적용.
  • 인덱스 자체의 리프 페이지가 곧 데이터.
  • 데이터 입력, 수정, 삭제 시 항상 정렬 상태를 유지.
  • 비클러스터형 인덱스보다 검색 속도는 빠르지만, 데이터 입력, 수정, 삭제 시에는 느림.

2. 넌클러스터 인덱스 (Non-Clustered Index)

  • 테이블당 약 240개의 인덱스 생성 가능.
  • 레코드의 원본은 정렬되지 않고, 인덱스 페이지만 정렬.
  • 인덱스 자체의 리프 페이지는 데이터가 아니라 데이터 위치를 나타내는 포인터(RID).
  • 클러스터형보다 검색 속도는 느리지만, 데이터 입력, 수정, 삭제는 더 빠름.

3. 밀집 인덱스 (Dense Index)

  • 데이터 레코드 각각에 대해 하나의 인덱스가 만들어짐.

4. 희소 인덱스 (Sparse Index)

  • 레코드 그룹 또는 데이터 블록에 대해 하나의 인덱스가 만들어짐.

 

인덱스 구조 

  • 트리 기반 인덱스
  • 비트맵 인덱스
  • 함수 기반 인덱스
  • 비트맵 조인 인덱스
  • 도메인 인덱스

 

 인덱스 컬럼의 선정

  • 분포도가 좋은 컬럼을 선택 (10%~15%).
  • 자주 조합되어 사용되는 경우 결합 인덱스를 생성.
  • 가능한 수정이 빈번하지 않은 컬럼을 선정.
  • 한 컬럼이 여러 인덱스에 포함되지 않도록 설계.
  • 기본키 및 외부키가 되는 컬럼을 선정.

 

 

  • 기본테이블에 유도된 가상테이블
  • 실제 데이터를 저장하지않고 논리적으로만 존재
  • 사용자는 뷰를 조작가능

뷰(View)의 개념

  • 기본 테이블을 유도하여 기본 테이블과 유사한 형태와 조작을 가진다.
  • 물리적 구현 없는 가상 테이블.
  • 논리적 데이터 독립성 제공.
  • 관리 용이 및 명령문 간소화 (필요한 데이터만 처리).
  • 뷰를 통한 데이터 접근으로 안전 보호.
  • 데이터 조작(삽입, 삭제, 갱신)에 제한 존재.
  • 기본 테이블/뷰 삭제 시 관련 뷰도 자동 삭제.
  • 생성은 CREATE, 삭제는 DROP 명령으로 가능.

뷰의 장/단점

장점

  • 논리적 데이터 독립성.
  • 다양한 사용자 요구에 대한 동시 지원.
  • 간결한 데이터 관리.
  • 자동 보안 제공 (접근 제어).

단점

  • 독립적 인덱스 부재.
  • ALTER VIEW 사용 불가.
  • 뷰 조작(삽입, 삭제, 갱신 등)에 제약 존재.

백업

용어 설명
풀 이미지 백업 - 전체 데이터 백업
차등 백업  - 마지막 풀 이미지 백업 이후, 모든 변경사항을 백업
증분 백업-   - 마지막 풀 이미지 백업 이후, 점차적으로 변경된 사항 백업
실시간 백업 - 변경사항을 즉시 백업, 분리된 스토리지에 실시간 복사 (장비 두대)
합성 백업 - 기본백업 + 후속 증분 백업으로 전체 백업 구성/통함

 

 

풀 이미지 백업

차등 백업

증분 백업

 

차등백업은 최초 풀 이미지 백업이후 변경사항을 하나로 저장하지만

증분 백업은 각각 하루 별로 변경사항을 저장한다.

 

 

재난 복구 전략 시 성과 지표

용어 설명
RTO - 업무 중단 부터 복구 및 재가동이 목표
- 업무 중단을 얼마나 허용할지 시간 (시간)
RPO  - 재해 발생후 데이터 손실 범위
- 데이터 손실을 얼마나 감당할지 시점 (데이터)
MTD - 업무 중단의 최대 시간

 

RTO는 복구할수있는 목표시간이고, MTD는 장애를 허용하는 최대 시간으로 비슷하지만 기준이 조금 다름

그외 RP가 있는데 RP는 실제 업부 기능 복구 까지 걸리는 시간이다.

728x90