자격증/정보처리기사 실기

[데이터입출력구현] 1. 논리 데이터 저장소 확인

염두리안 2023. 9. 5. 17:49
728x90
반응형

두근두근 데이터베이스


키워드
데이터모델 / 개념적, 논리적, 물리적 데이터 모델 / 관계대수 / 정규화 / 반정규화 / 이상현상 / 함수종속

데이터 모델 (★★★)

  • 개념 - 현실 세계의 정보를 인간과 컴퓨터가 이해할 수 있도록 추상화해 표현한 모델 / 표시해야 할 요소는 논리적 데이터 구조, 연산, 제약 조건
    • 연산) DB에 저장된 실제 데이터를 처리하는 작업에 대한 명세 / 릴레이션을 조작하기 위한 관계 연산을 나타냄(SELECT, PROJECT, JOIN, DIVISION)
    • 구조) DB에 논리적으로 표현될 대상으로서의 개체 타입과 개체 타입 간의 관계 / 데이터 구조 및 정적 성질을 표현하는 요소
    • 제약 조건) DB에 저장될 수 있는 실제 데이터의 논리적인 제약 조건 / 데이터 무결성 유지를 위한 DB의 보편적 방법 / 릴레이션의 특정 칼럼에 설정하는 제약을 의미(개체/참조 무결성 등)
  • 데이터 모델 절차
    • 요구사항 분석) 도출된 요구사항 간 상충을 해결하고 범위를 파악해 외부 환경과의 상호 작용을 분석을 통해 데이터에 대한 요구 분석
    • 개념적 데이터 모델) 사용자 요구에 대한 트랜잭션을 모델링 하는 단계 / 현실 세계에 대한 인식을 추상적/개념적으로 표현해 개념적 구조 도출하는 데이터 모델
      • 트랜잭션 모델링, View 통합방법, Attribute 합성 고려 / 이 모델은 DB 종류와 관계 X / 주요 산출물 - 개체관계 다이어그램
    • 논리적 데이터 모델) 트랜잭션의 인터페이스 설계하는 단계 / DBMS에 맞는 논리적 스키마 설계 단계 / 업무의 모습을 모델링 표기법으로 형상화해 사람이 이해하기 쉽게 표현한 데이터 모델
      • 정규화 수행 / 논리적 DB구조로 매핑 / 스키마 평가, 정제 / 관계 or 계층 데이터 or 네트워크 or 객체지향 or 객체-관계 중 하나 모델에 맞게 설계 / 테이블을 설계하는 단
    • 물리적 데이터 모델) 논리적 데이터 모델을 특정 DBMS 특성, 성능을 고려해 물리적인 스키마를 만드는 단계 / 논리 데이터 모델을 사용하고자 하는 각 DBMS의 특성을 고려해 DB 저장 구조(물리데이터모델)로 변환하는 모델
      • 테이블, 인덱스, 뷰, 파티션 등 객체 생성 / 응답시간, 저장 공간의 효율화, 트랜잭션 처리 고려해 설계 / 성능 측면에서 반정규화 수행 / 레코드 집중의 분석 및 설계 / 저장 레코드 양식 설계 / 접근 경로 설계

논리 데이터 모델 검증 (★★★)

  • 개념 - 업무의 모습을 모델링 표기법으로 형상화해 사람이 이해하기 쉽게 표현하는 프로세스 / 개념 모델로부터 업무 영역의 업무 데이터 및 규칙을 구체적으로 표현한 모델
  • 종류
    • 관계 데이터 모델) 2차원 테이블 형태 / 기본키와 외래키로 관계 표현 / 1:1, 1:N, N:M 관계를 자유롭게 표현
    • 계층 데이터 모델) 트리 형태로 구성된 모델 / 상하관계 존재(부모-자식) / 1:N 만 허용
    • 네트워크 데이터 모델) 그래프 형태로 구성된 모델 / CODASYL DBTG 모델이라고 불림 / 상위 하위 레코드 사이에 다대다 관계 만족하는 구조

  • 관계 데이터 모델) 행/열로 구성된 2차원 테이블 형태
    • 구성) 릴레이션(테이블) / 튜플(행) / 속성(열) / 카디널리티(튜플수) / 차수(어트리뷰트 수) / 스키마(DB의 구조, 제약 조건 등 정보를 담고 있는 기본적인 구조) / 인스턴스(정의된 스키마에 따라 생성된 테이블에 저장된 데이터의 집합)
    • 관계대수) 절차적 정형 언어
      • 일반 집합 연산자) 합집합(Union, ∪) / 교집합(Intersection, ∩) / 차집합(Difference, -) / 카티션 프로덕트(CARTESIAN Product, X)
      • 순수 관계 연산자) 셀렉트(Select, σ) / 프로젝트(Project, π) / 조인(Join, ⋈) / 디비젼(Division, ÷)
    • 관계해석) 튜플 관계 해석과 도메인 관계 해석을 하는 비절차적 언어 / 튜플 관계 해석, 도메인 관계 해석
  • 논리 데이터 모델링 속성) 개체(Entity) / 속성(Attributes) / 관계(Relationship)
  • 개체-관계(E-R) 모델) 가장 널리 사용
    • 기호
구성 기호
개체 집합
관계 집합
속성
다중값 속성
개체 집합-관계 집합 연결 - (실선)
개체 집합-속성 연결 - (실선)
관계 집합-속성 연결 --- (점선)
  • 정규화) 관계형 데이터 모델에서 데이터의 중복성을 제거해 이상 현상을 방지하고, 데이터 일관성&정확성 유지하기 위해 무손실 분해하는 과정
    • 이상 현상) 데이터 중복성으로 인해 릴레이션 조작 시 발생하는 비합리적 현상
      • 삽입 이상) 정보 저장 시 해당 정보의 불필요한 세부정보를 입력해야 하는 경우
      • 삭제 이상) 삭제 시 원치 않는 다른 정보가 같이 삭제
      • 갱신 이상) 중복 데이터 중, 특정 부분만 수정되어 중복된 값이 모순을 일으키는 경우
    • 정규화 단계 (자세한 설명은 141~146 보기 >_0)
      • 1정규형(1NF) : 원자값으로 구성
      • 2정규형(2NF) : 부분 함수 종속 제거(완전 함수적 종속 단계)
      • 3정규형(3NF) : 이행함수 종속 제거
      • 보이스-코드 정규형(BCNF) : 결정자 후보 키가 아닌 함수 종속 제거
      • 4정규형(4NF) : 다치(다중 값) 종속 제거
      • 5정규형(5NF) : 조인 종속 제거
    • 함수 종속) 릴레이션에서 속성의 의미와 속성 간 상호 관계로부터 발생하는 제약조건 / X → Y 일 때, X는 결정자 Y는 종속자
      • 부분 함수 종속) 릴레이션에서 기본 키가 복합 키일 경우 기본 키를 구성하는 속성 중 일부에게 종속된 경우
      • 완전 함수 종속) 릴레이션에서 X → Y 관계가 있을 때, Y는 X의 전체 속성에 대해종속하고, 부분 집합 속성에 종속하지 않는 경우
      • 이행 함수 종속) 릴레이션에서 X→Y, Y→Z 종속 관계가 있을 때, X → Z 가 성립하는 경우
    • 반 정규화) 정규화된 엔티티, 속성, 관계에 대해 성능 향상과 개발 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링 기법... 비정규화, 역정규화라고도 함
      • 장) 성능 향상, 관리 효율성 증가
      • 단) 데이터 일관성/정합성 저하, 유지 비용 별도 발생해 성능에 나쁜 영향 줄 수 있음
      • => 데이터의 일관성/무결성을 우선으로 할지, DB 성능/단순화에 우선순위를 둘 것인지 비교해서 조정하는 게 중요
      • 기법
구분 수행방법 설명
테이블 테이블 병합 1:1, 1:M 관계를 통합해 조인 횟수를 줄여 성능 향상
테이블 분할 테이블을 수직/수평으로 분할하는 것을 파티셔닝이라 함.
중복 테이블 추가 대량 데이터에 대한 집계함수를 사용해 실시간 통계정보를 계산하는 경우에 효과적인 수행을 위해 별도의 통계 테이블을 두거나 중복 테이블 추가
컬럼 컬럼 중복화 조인 성능 향상을 위한 중복 허용
관계 중복관계 추가 데이터 처리 위한 여러 경로를 거쳐 조인 가능하지만. 이때 발생할 수 있는 성능 저하를 예방하기 위해 추가적 관계를 맺는 방법
  • 테이블분할
    • 수평 분할) 테이블 분할에 레코드 기준으로 활용
    • 수직 분할) 하나의 테이블이 가지는 컬럼의 개수가 증가하는 경우 활용 / 갱신 위주의 속성 분할, 자주 조회되는 속성 분할, 크기가 큰 속성 분할, 보안 적용해야할 때
  • 중복 테이블 추가
    • 집계 테이블 추가) 집계 데이터 위한 테이블 생성, 각 원본 테이블에 트리거를 설정해 사용하는 것... 트리거의 오버헤드에 유의 필요
    • 진행 테이블 추가) 이력 관리 등의 목적으로 추가하는 테이블... 적절한 데이터양의 유지와 활용도 높이기 위해 기본키 적절히 설정
    • 특정 부분만을 포함하는 테이블 추가) 데이터가 많은 테이블의 특정 부분만을 사용하는 경우 해당 부분만으로 새로운 테이블 생성
728x90
반응형