[정보처리기사 실기] 3장 데이터 입출력 구현 - 논리 데이터 저장소 확인

2022. 4. 18. 14:51정보처리기사/실기

728x90
반응형

데이터 모델

데이터 모델 개념

- 인간과 컴퓨터가 이해할 수 있는 추상화 모델

 

표시 요소

  • 연산 : 저장된 실 데이터 처리 작업, 조작 위한 관계 연산 - SELECT, PROJECT, JOIN, DIVISION
  • 구조 :  개체 타입과 개체 간 관계, 데이터 구조 및 정적 성질 표현
  • 제약 조건 : 논리적인 제약 조건, 무결성 유지 위한 보편적 방법, 제약을 의미 - 개체 무결성, 참조 무결성 등

데이터 모델 절차

  • 요구사항 분석 : 범위 파악 외부 환경과 상호 작용을 분석해 데이터 요구 분석
  • 개념적 설계 : 개념적 데이터 모델 : 트랜잭션 모델링 단계, 추상적, 개념적 표현, 모델링 뷰, 애트리뷰트 고려 -> 개체 관계 다이어그램
  • 논리적 설계 : 논리적 데이터 모델 : 인터페이스 설계 단계, 논리적 스키마 설계, 형상화해 사람이 쉽게 이해, 정규화 수행, 논리 구조로 매핑, 스키마의 평가 및 정제, (관계, 계층, 네트워크, 객체 지향, 객체-관계 데이터 모델) 중 하나 맞게 설계, 테이블을 설계
  • 물리적 설계 : 물리적 데이터 모델 : 특성 및 성능 고려, 저장 구조로 변환하는 모델, 테이블, 인덱스, 뷰, 파티션 객체 생성, 응답 시간, 저장공간, 트랜잭션 처리 고려 설계, 반 정규화 수행, 레코드 집중 분석 및 설계, 저장 레코드 양식 설계, 접근 경로 설계

논리 데이터 모델 검증

논리 데이터 모델링 개념

- 개념 모델로부터 업무의 데이터 규칙을 구체적으로 표현

 

논리 데이터 모델링 종류

  • 관계 데이터 모델 : 2차원 테이블 구조, 기본키와 외래키 관계 표현, 1:1 1:N N:M관계
  • 계층 데이터 모델 : 트리 구조, 상하관계 존재, 1:N 관계
  • 네트워크 데이터 모델 : 그래프 형태, CODASYL DBTG 모델, 상하 레코드 사이 다대다 관계

관계 데이터 모델

(1) 관계 데이터 모델 : 행과 열로 구성된 2차원 테이블 형태 : 수학자 E. F. Codd 박사가 제안

 

(1) - 1 구성요소

  • 릴레이션 : 테이블
  • 튜플 : 행, 가로, 카디널리티 : 튜플의 수
  • 속성 : 열, 세로, 차수 : 애트리뷰트의 수
  • 스키마 : 구조, 제약 조건 정보 담은 기본 구조
  • 인스턴스 : 정의된 스키마에 따라 생성 테이블에 실제 저장된 데이터 집합

(2) 관계 데이터 모델 표현

- 기본키와 외래키 1:1 1:다 다:다 관계

 

(3) 관계 대수 : 원하는 정보와 어떻게 유도하는가 기술하는 절차적 정형 언어

 

(3) - 1 종류 

  • 일반 집합 연산자 : 합집합, 교집합, 차집합, 카티션 프로덕트
  • 순수 관계 연산자
    • SELECT : 튜플 반환
    • PROJECT : 속성 반환
    • JOIN : 연결
    • DIVISION : 한 튜플과 연관 있는 튜플 반환

(4) 관계 해석 : 튜플 관계 해석과 도메인 관계 해석을 하는 비절차적 언어

 

(4) - 1 특징 : 프레디킷 해석에 기반한 언어 비절차적 언어

 

논리 데이터 모델링 속성

  • 개체 : 관리할 대상이 되는 개체
    • 사물 또는 사건으로 정의, 피터 챈 모델에는 사각형으로, 까마귀발 모델에는 표로 표시
  • 속성 : 관리할 구체적 항목
    • 요소 또는 성질, 피터 챈 모델에는 타원형, 까마귀발 모데레는 표 내부 표시
    • 속성명은 단수형, 개체명을 사용하지 않는다, NULL or NOT NULL 고려
  • 관계 : 대응 관계
    • 두 개체 간의 관계 정의, 피터 챈 모델은 마름모
    • 까마귀발 모델은 실선을 사용하나 1:1 1:다 다대다 만큼 가지 친다.

 

E-R 모델

- 데이터와 그들 간의 관계를 사람이 이해할 수 있는 형태로 명확하게 표현 가장 널리 사용되는 모델

 

기호

  • 개체 : 사가형
  • 관계 : 마름모
  • 속성 : 타원
  • 다중 값 속성 : 이중타원
  • 관계 속성 연결 : 선

정규화

(1) 개념 : 중복성 제거해 이상 현상 방지, 일관성과 정확성 유지하기 위해 무손실 분해하는 과정

 

(2) 이상현상 : 데이터 중복성으로 인한 릴레이션 조작할 때 발생하는 비할리적 현상, 삽삭생

  • 삽입 이상 : 불필요한 세부 정보 입력해야 하는 경우
  • 삭제 이상 : 다른 정보가 삭제되는 경우
  • 갱신 이상 : 수정되어 중복된 값이 모순을 일으키는 경우

(3) 정규화 단계 : 도부이결다조 -> 각 단계 갈수록 전 단계는 통과해야함

  • 1NF : 원자값(도메인) 구성
  • 2NF : 부분 함수 종속 제거 (완전 함수적 종속 관계)
  • 3NF : 이행 함수 종속 제거
  • BCNF : 결정자 후보 키가 아닌 함수 종속 제거
  • 4NF : 다중 종속 제거
  • 5NF : 조인 종속 제거

반 정규화

(1) 개념 : 정규화된 엔티티, 속성, 관계에 대한 성능 향상과 개발 운영의 단순화를 위해 중복, 통합, 분리 등 수행하는 데이터 모델링 기법

- 비 정규화 또는 역 정규화라 한다.

 

(2) 특징 

- 반 정규화 위해 일관성과 무결성을 우선으로 할지 성능과 단수롸에 우선으로 둘지 비교 후 조정이 중요하다

  • 장점 : 성능 향상과 관리의 효율성 증가
  • 단점 : 일관성 및 정합성 저하, 비용이 별도로 발생해 성능에 악영향

(3) 반 정규화 기법

  • 테이블
    • 테이블 병합 : 조인 횟수 줄여 성능 향상, 슈퍼 타입, 서브 타입 테이블 통해 성능 향상
    • 테이블 분할 : 수직 수평 방식 파티셔닝
      • 수평 분할 : 레코드를 기준으로 활용
      • 수직 분할 : 칼럼의 개수가 증가하는 경우 활용, 갱신 위주의 속성 분할, 자주 조회되는 속성 분할, 크기가 큰 분할, 보안을 적용해야 하는 속성 분할
    • 중복 테이블 추가 : 집계 함수 사용해 실기간 통계 효과적인 수행을 위해 별도의 통계 테이블 두거나 중복 테이블 추가
      • 집계 테이블 추가 : 트리거 설정해 오버헤드에 유의
      • 진행 테이블 추가 : 유지와 활용도를 높이기 위해 기본키 적절히 설정
      • 특정 부분만을 포함하는 테이블 추가 : 데이터가 많은 테이블의 특정 부분만을 사용하는 경우 해당 부분만으로 새로운 테이블 생성
  • 칼럼
    • 칼럼 중복화 : 조인 성능 향상을 위한 중복 허용
  • 관계
    • 중복 관계 추가 : 데이터 처리 위한 여러 경로를 거쳐 조인이 가능하지만, 발생할 수 있는 성능 저하를 예방하기 위해 추가적 관계 맺는 법

 

 

 

728x90
반응형