정보처리기사

정보처리기사(실기) - 데이터 저장소

내이름효주 2024. 4. 7. 14:20
  1. 데이터 모델: 현실 세계의 정보를 인간과 컴퓨터가 이해할 수 있도록 추상화하여 표현한 모델
    • 데이터 모델 절차: 개념적, 논리적, 물리적
      •   개념적 설계(개념적 데이터 모델): 사용자의 요구에 대한 트랜잭션을 모델링하는 단계
        - 현실세계에 대한 인식을 추상적, 개념적으로 표현하여 개념적 구조 도출
        - DB 종류와 관련없음!
        - 주요 산출물: 개체-관계 다이어그램
      •   논리적 설계(논리적 데이터 모델): 트랜잭션의 인터페이스를 설계하는 단계
        - DBMS에 맞는 논리적 스키마 설계
        - 업무의 모습을 모델링 표기법으로 형상화하여 사람이 이해하기 쉽게 표현
        - 관계형 데이터베이스에서는 테이블을 설계하는 단계
        - 논리적 설계 단계에서 정규화 수행, 논리적 데이터베이스 구조로 매핑, 스키마 평가 및 정제
        • 1) 관계 데이터 모델 - 논리적 구조가 2차원 테이블 형태로 구성된 모델
                                                     기본키와 외래키로 관계 표현
                                                     1:1, 1:N, N:M 관계를 자유롭게 표현
          •   구성요소: 릴레이션(행과 열로 구성된 테이블), 튜플(행), 속성(열), 카티널리티(튜플의 수), 차수(속성의 수), (릴레이션)스키마(열 정보), (릴레이션)인스턴스(데이터 집합)
          •   관계대수: 관계형 데이터베이스에서 원하는 정보와 그 정보를 어떻게 유도하는가를 기술하는 절차적 정형 언어 - 일반 집합 연산자(합집합, 교집합, 차집합, 카티션 프로덕트), 순수 관계 연산자(셀렉트 σ ➡ 튜플, 프로젝트π ➡ 속성, 조인▷◁ ➡ 튜플, 디비전 ÷ ➡ 튜플)
          •   관계해석: 튜플 관계 해석과 도메인 관계 해석을 하는 비절차적인 언어(무엇을 얻을지에 대한)     
        • 2) 계층 데이터 모델 - 논리적 구조가 트리형태로 구성된 모델
                                                     상하관계가 존재(부모-자식)
                                                     1:N 관계만 허용
        • 3) 네트워크 데이터 모델 - 논리적 구조가 그래프 형태로 구성된 모델
                                                           상위와 하위 레코드 사이에 다대다(N:M) 관계를 만족 
        •   속성
          • 개체(□): 데이터베이스에 표현하려는 사물 또는 사건
          • 속성(○) : 개체가 가지고 있는 요소 또는 성질
          • 관계(◇) : 두 개체 관의 관계를 정의
        •   정규화 ➡ 이상 현상: 데이터 종속성으로 인해 릴레이션을 조작할 때 발생하는 비합리적 현상(삽입, 삭제, 갱신 이상)
                     - 함수 종속: 릴레이션에서 속성의 의미와 속성 간 상호 관계로부터 발생하는 제약조건
                                          X → Y 관계일 때 X는 결정자, Y는 종속자
                                          1) 부분 함수 종속(Partial Functional Dependency) : 기본키가 복합키일 경우 기본                                         키를 구성하는 속성 중 일부에게 종속된 경우
                                          2) 완전 함수 종속(Full Functional Dependency) : X → Y 일 때 Y는 X의 전체 속성에                                      대해 종속, 부분 집합 속성에 종속하지 않는 경우
                                          3) 이행 함수 종속(Transitive Functional Dependency): X → Y, Y → Z 종속관계가                                          있을 때 X → Z가 성립되는 경우
                     - 정규화: 관계형 데이터 모델에서 데이터의 중복성을 제거하여 이상 현상을 방지하고 데이터의                             일관성과 정확성을 유지하기 위해 무손실 분해하는 과정
        •   반정규화(역정규화): 정규화된 엔터티, 속성, 관계에 대해 성능 향상과 개발 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는데이터 모델링 기법
          - 장점: 성능 향상과 관리의 효율성 증가
          - 단점: 데이터의 일관성 및 정합성 저하, 유지를 위한 비용이 별도로 든다
          - 테이블 병합, 분할, 중복 테이블 추가, 컬럼 중복화, 중복관계 추가
      •    물리적 설계(물리적 데이터 모델): 논리 데이터 모델을 사용하고자 하는 각 DBMS의 특설을 고려하여 데이터 베이스 저장 구조로 변환하는 모델
        - 테이블, 인덱스, 뷰, 파티션 등 객체를 생성
        - 응답시간, 저장 공간의 효율화, 트랜잭션 처리를 고려하여 설계
        - 성능 측면에서 반정규화 수행
        •   데이터 무결성: 데이터베이스에 저장된 데이터 값과 그것이 표현하는 현실세계의 실제 값이 일치하는 성질
          1) 개체 무결성: 한 엔터티에서 같은 기본키를 가질 수 없거나 기본키의 속성이 null을 허용할 수 없는 제약조건
          2) 참조 무결성: 외래키가 참조하는 다른 개체의 기본키에 해당하는 값이 기본키거나 null이어야 하는 조건
          3) 속성 무결성, 사용자 정의 무결성, 키 무결성
        •   키: 조건을 만족하는 튜플을 찾거나 순서대로 정렬할 때 다른 튜플들과 구별할 수 있는 기준이 되는 속성
          1) 유일성: 식별자에 의해 엔터티 내에 모든 튜플들을 유일하게 구분하는 특성
          2) 최소성: 최소한의 속성으로 식별자를 구성하는 특성
          - 종류: 기본키, 대체키, 후보키(유일성, 최소성) , 슈퍼키(유일성), 외래키
        •   인덱스: 검색 연산의 최적화를위해 데이터베이스 내 열에 대한 정보를 구성한 데이터 구조 
        •   파티셔닝: 테이블 또는 인덱스 데이터를 파티션 단위로 나누어 저장하는 기법
          1) 레인지 파티셔닝: 연속적인 숫자나 날짜를 기준으로 하는 파티셔닝
          2) 해시 파티셔닝: 범위가 없는 데이터에 적합 
          3) 리스트 파티셔닝: 특정 파티셔닝에 저장될 데이터에 대한 명시적 제어가 가능한 기법, 컬럼의 조건이 많은 경우
          4) 컴포지트 파티셔닝: 레인지, 해시, 리스트 중 2개 이상의 파티셔닝 결합
          5) 라운드로빈