본문 바로가기

개인 스터디/정리

[정보처리기사 실기] 5. 데이터 저장소

 

1. 데이터 모델

  • 데이터 모델 : 현실세계의 정보를 이해할 수있도록 추상화하여 표현한 모델
  • 데이터 모델 요소
    • 구조 : 개체 타입과 개체 타입 간의 관계  
    • 연산 : 데이터베이스를 조작하는 요소
    • 제약 조건 : 실제 데이터의 논리적인 제약 조건
  • 데이터 모델 절차
    1. 요구조건 분석 : 외부 환경과의 상호 작용 분석을 통해 데이터에 대한 요구 분석
    2. 개념적 설계 : 트랜잭션을 모델링하는 단계. 개체-관계 다이어그램(ERD) 산출물
    3. 논리적 설계 : 트랜재견의 인터페이스 및 DBMS에 맞는 논리적 스키마 설계. 정규화 수행
    4. 물리적 설계 : 각 DBMS의 특성을 고려하여 데이터베이스 저장 구조로 변환하는 모델. 반 정규화 수행

 

2. 논리 데이터 모델

  • 논리 데이터 모델 : 업무의 모습을 모델링 표기법으로 형상화하여 사람이 이해하기 쉽게 표현하는 프로세스
  • 논리적 데이터 모델링 종류
    • 관계 데이터 모델 : 논리적 구조가 2차원 테이블 형태로 구성. PK와 FK로 관계 표현
    • 계층 데이터 모델. 트리 형태로 구성. 상하 관계 존재, 1:N 관계만 허용
    • 네트워크 데이터 모델 : 그래프 형태로 구성. 상위와 하위 레코드 사이 N:M 관계 만족
  • 관계 데이터 모델
    • 구성
      • 릴레이션(Relation) : 행과 열로 궝된 테이블
      • 튜플(Tuple) : 행(Row)
      • 속성(Attribute) : 열(Column)
      • 카디널리티(Cardinality) : 튜플의 수
      • 차수(Degree) : 속성의 수
      • 스키마(Schema) : 데이터베이스의 구조, 제약조건 등의 정보를 담고 있는 기본적인 구조
      • 인스턴스(Instance) : 실제 저장된 데이터의 집합
      • 식별자(Identifier) : 관계형 데이터베이스에서 각각을 구분할 수 있는 개념
      • 도메인(Domain) : 하나의 속성이 취할 수 있는 같은 타입의 원자값들의 집합
    • 관계 대수 : 관계형 데이터베이스에서 원하는 정보와 정보 유도 기술 절차적 정형 언어
      • 일반 집합 연산자 : 수학적 개념을 릴레이션에 적용
        • 합집합(∪), 교집합(∩), 차집합(-), 카티션 프로덕트(x)
      • 순수 관계 연산자
        • 셀렉트(σ) : 조건을 만족하는 튜플 반환
        • 프로젝트(π) : 조건을 만족하는 속성 반환
        • 조인(⋈) : 공통 속성을 연결해 만들어진 튜플 반환
        • 디비전(÷) : 특정 튜플과 관련 있는 모든 튜플 반환
    • 관계 해석 : 튜플 관계 해석과 도메인 관계 해석을 하는 비절차적 언어
  • 개체-관계(E-R) 모델 : 현실 세계에 존재하는 데이터와 관계를 사람이 이해할 수 있는 형태로 표현하기 위한 모델
  • 이상 현상 : 데이터의 중복성으로 발생하는 현상
  • 이상 현상 종류
    • 삽입 이상 : 데이터 삽입 시 원하지 않은 값들도 함께 삽입
    • 삭제 이상 : 튜플 삭제 시 원하지 않은 값들도 함께 삭제
    • 갱신 이상 : 튜플 속성값 갱신 시 일부 튜플의 정보만 갱신
  • 함수 종속 : 속성의 의미와 속성 간 상호 관계로부터 발생한느 제약 조건
  • 결정자-종속자 : X(결정자) -> Y(종속자)
  • 함수 종속 종류
    • 부분 함수 종속 : 기본 키가 복합 키인 경우 기본 키를 구성하는 속성 중 일부에게 종속
    • 완전 함수 종속 : X->Y 관계에서 Y는 X의 전체 속성에 대해 종속하고, 부분 집합 속성에 종속하지 않는 경우
    • 이행 함수 종속 : X->Y, Y->Z 종속 관계에서 X->Z 가 성립되는 경우
  • 정규화(Normalization) : 데이터 중복성을 제거하여 이상 현상 방지
  • 정규화 단계
    1. 1정규형(1NF) : 원자값으로 구성
    2. 2정규형(2NF) : 부분 함수 종속 제거(완전 함수적 종속 관계) -> 복합 키가 있을 때, 키의 일부에만 종속된 데이터 분리
    3. 3정규형(3NF)  : 이행 함수 종속 제거 -> 속성에 종속적인 속성 분리
    4. 보이스-코드 정규형(BCNF) : 결정자가 후보키가 아닌 함수 종속 제거
    5. 4정규형(4NF) : 다치 종속성 제거
    6. 5정규형 : 조인 종속성 제거
  • 반 정규화 : 성능 향상과 개발 운영의 단순화를 위해 중복, 통합, 분리 등을 ㅜ행
  • 반 정규화 기법
    • 테이블 병합 : 1:1, 1:M 관계를 통합하여 조인 횟수를 줄여 성능 향상
    • 테이블 분할 : 테이블을 수직 또는 수평으로 분할
    • 중복 테이블 추가 : 집계/진행/특정 부분만을 포함하는 테이블 추가
    • 컬럼 중복화 : 조인 성능 향상을 위한 중복 허용
    • 중복 관계 추가 : 성능 저하를 예방하기 위해 추가적인 관계를 맺는 방법

 

3. 물리 데이터 모델

  • 데이터베이스 무결성 : 데이터베이스에 저장된 값과 그것이 표현하는 현실 세계의 실제 값이 일치하는 성질
  • 데이터베이스 무결성 종류
    • 개체 무결성 : 한 엔터티에서 같은 PK를 가질 수 없거나, PK의 속성이 NULL을 허용할 수 없는 제약조건
    • 참조 무결성 : 외래키가 참조하는 다른 개체의 기본키의 값이 기본키 값이나 NULL이어야 하는 제약조건
    • 속성 무결성 : 속성의 값은 지정된 규칙을 준수해야 하는 제약조건
    • 사용자 무결성 : 사용자의 의미적 요구사항(트리거, 데이터 타입)을 준수해야 하는 제약조건
    • 키 무결성 : 한 릴레이션에 같은 키 값을 가진 튜플들을 허용할 수 없는 제약조건
  • 키(Key) : 데이터베이스에서 다른 튜플들과 구별할 수 있는 기준이 되는 속성
  • 키 특성
    • 유일성 : 식별자에 의해 엔터티 내에 모든 튜플들을 유일하게 구분하는 특성
    • 최소성 : 최소한의 속성으로 식별자를 구분하는 특성
  • 키 종류
    • 기본키 : 테이블의 각 튜플들을 고유하게 식별하는 컬럼
    • 대체키 : 후보키 중에서 기본키로 선택되지 않은 키
    • 후보키 : 기본키와 대체키를 합친 키
    • 슈퍼키 : 유일성은 만족하지만, 최소성은 만족하지 못하는 키
    • 외래키 : 다른 릴레이션의 기본키로 이용되는 키
  • 인덱스 : 검색 연산의 최적화를 위해 열에 대한 정보를 구성한 데이터 구조
  • 파티셔닝 : 테이블 또는 인덱스 데이터를 파티션(Partition) 단위로 나누어 저장하는 기법
  • 파티셔닝 유형
    • Range Partitioning : 연속적인 숫자나 날짜를 기준으로 하는 파티셔닝 기법
    • Hash Partitioning : 파티션 키의 해시 함수 값에 의한 파티셔닝 기법. 균등한 데이터 분할 가능
    • List Partitioning : 데이터에 대한 명시적 제어가 가능한 파티셔닝 기법. 분포도가 비슷하고 조건이 많은 경우 유용.
    • Composite Partitioing : 2개 이상의 파티셔닝 기법을 결합하는 파티셔닝 기법
    • Round-Robin : 라운드 로빈으로 회전하면서 새로운 행을 파티션에 할당하는 기법

 

 


#회고

 

금결원 시험보는데 마침 정처기랑 내용이 겹쳐서 다행...

다른 기출문제 보는데 서술형으로 하면 너무 어렵다.