[정보처리기사 실기] 3. 데이터 입출력 구현

HaYeong Jang·2021년 6월 28일
0

정보처리기사

목록 보기
3/7
post-thumbnail

01 논리 데이터 저장소 확인

1. 데이터 모델 ⭐️⭐️⭐️

데이터 모델: 현실 세계의 정보를 인간과 컴퓨터가 이해할 수 있도록 추상화하여 표현한 모델

데이터 모델 절차

  1. 개념적 데이터 모델: 개념적 구조를 도출, DB 종류와 관계 없음
  2. 논리적 데이터 모델: DBMS에 맞는 스키마 설계, 트랜잭션 인터페이스 설계
  3. 물리적 데이터 모델: DBMS의 특성 및 성능 고려하여 물리적인 스키마 만듦, 객체 생성

2. 논리 데이터 모델 검증 ⭐️⭐️⭐️

논리적 데이터 모델링: 업무의 모습을 모델링 표기법으로 형상화하여 사람이 이해하기 쉽게 표현하는 프로세스

논리적 데이터 모델링 종류

  • 관계 데이터 모델
  • 계층 데이터 모델
  • 네트워크 데이터 모델

관계형 데이터 모델: 데이터를 2차원 테이블 형태로 구성한 모델

관계 데이터 모델 구성요소

  • 릴레이션(Relation): 테이블
  • 튜플(Tuple): 행
  • 속성(Attribute): 열
  • 카디널리티(Cardinality): 튜플(Row)의 수
  • 차수(Degree): 애트리뷰트(Column)의 수
  • 스키마(Schema): 데이터베이스의 구조, 제약조건 등의 정보를 담고 있는 기본적인 구조
  • 인스턴스(Instance): 실제 저장된 데이터의 집합

관계 대수: 관계형 데이터베이스에서 원하는 정보와 그 정보를 어떻게 유도하는가를 기술하는 ‘절차적 정형 언어’

관계 대수 연산자 종류

  • 일반 집합 연산자
    • 합집합(Union)
    • 교집합(Intersection)
    • 차집합(Difference)
    • 카티션 프로덕트(Cartesian product)
  • 순수 관계 연산자
    • 셀렉트(Select)
    • 프로덕트(Product)
    • 조인(Join)
    • 디비전(Division)

관계 해석: 튜플 관계 해석, 도메인 관계 해석을 하는 ‘비절차적 언어’

논리 데이터 모델링 속성

  • 개체(Entity)
  • 속성(Attributes)
  • 관계(Relationship)

개체-관계(E-R) 모델: 현실 세계에 존재하는 데이터와 그들 간의 관계를 사람이 이해할 수 있는 형태로 명확하게 표현하기 위해서 가장 널리 사용되고 있는 모델

정규화: 관계형 데이터 모델에서 데이터의 중복성을 제거하여 이상 현상 방지, 데이터의 일관성과 정확성을 유지하기 위해 무손실 분해

이상 현상: 데이터의 중복성으로 인해 릴레이션 조작 시 발생하는 비합리적 현상

  • 삽입 이상
  • 삭제 이상
  • 갱신 이상

데이터베이스 정규화 단계

  • 1NF: 도메인이 원자값
  • 2NF: 부분 함수 종속 제거
  • 3NF: 이행 함수 종속 제거
  • 보이스-코드 정규형(BCNF): 결정자 후보키가 아닌 함수 종속 제거
  • 4NF: 다치(다중값) 종속 제거
  • 5NF: 조인 종속 제거

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

반 정규화 기법

  • 테이블
    • 병합
    • 분할: 수평/수직 분할
    • 중복 테이블 추가: 집계/진행/특정 부분 테이블 추가
  • 컬럼
    • 컬럼 중복화
  • 관계
    • 중복 관계 추가


02 물리 데이터 저장소 설계

1. 물리 데이터 모델 설계 ⭐️⭐️⭐️

물리 데이터 모델링 변환 절차

  1. 개체를 테이블로 변환
  2. 속성을 컬럼으로 변환
  3. UID를 기본키로 변환
  4. 관계를 외래키로 변환
  5. 컬럼 유형과 길이 정의
  6. 반 정규화 수행

2. 물리 데이터 저장소 구성 ⭐️

참조 무결성 제약조건: 두개의 릴레이션이 기본키, 외래키를 통해 참조 관계를 형성할 경우, 참조하는 외래키의 값은 항상 참조되는 릴레이션에 기본키로 존재해야 한다.

  • 제한(Restricted): RESTRICT
  • 연쇄(Cascade): CASCADE
  • 널 값(Nullify): SET NULL

인덱스: 검색 연산의 최적화를 위해 데이터베이스 내 열에 대한 정보를 구성한 데이터 구조

인덱스 컬럼 선정

  • 분포도가 좋은 컬럼(10~15%) -> 단독적
  • 자주 조합 -> 결합 인덱스

뷰 속성

  • REPLACE: 존재하는 경우 재생성
  • FORCE: 존재 여부 관계없이 생성
  • NOFORCE: 기본 테이블이 존재할 때 생성
  • WITH CHECK OPTION: 조건을 만족하는 행만 변경
  • WITH READ ONLY: 데이터 조작어 작업 불가

클러스터: 대상이 되는 범위의 요소를 몇 개 모은 단위체

클러스터 적용 기준

  • 분포도가 넓을 수록 유리
  • 액세스 기법 X, 액세스 효율 향상을 위한 물리적 저장 방법 O

파티션 종류

  • 레인지 파티셔닝: 연속적인 숫자, 날짜 기준
  • 해시 파티셔닝: 파티션 키의 해시 함수
  • 리스트 파티셔닝: 데이터에 대한 명시적 제어가 가능
  • 컴포지트 파티셔닝: 2개 이상의 파티셔닝을 결합

파티션의 장점

  • 성능 향상: 액세스 범위 줄여 성능 향상
  • 가용성 향상: 전체 데이터의 훼손 가능성 감소
  • 백업 가능: 분할 영역 독립적 백업, 복구 가능
  • 경합 가능: 디스크 스트라이핑으로 입출력 성능 향상


03 데이터베이스 기초 활용하기

1. 데이터베이스 종류 ⭐️⭐️⭐️

데이터베이스: 통합하여 관리되는 데이터의 집합

데이터베이스 특성

  • 실시간 접근성
  • 계속적인 변화
  • 동시 공용
  • 내용 참조

데이터베이스 종류

  • 파일 시스템: 파일에 이름을 부여하고 저장이나 검색을 위하여 논리적으로 그것들을 어디에 위치시켜야 하는지 등을 정의한 뒤 관리하는 데이터 관리 방리 방식

    • ISAM(Indexed Sequential Access Method)
    • VSAM(Virtual Storage Access Method)
  • 관계형 데이터베이스 관리시스템(RDBMS): 관계형 모델을 기반으로 하는 가장 보편화된 데이터베이스 관리 시스템

  • 계층형 데이터베이스 관리시스템(HDBMS): 데이터를 상하 종속적인 관계로 계층화하여 관리하는 데이터베이스

  • 네트워크 데이터베이스 관리시스템(NDBMS): 데이터의 구조를 네트워크상의 망상 형태로 표현

DBMS: 데이터 관리의 복잡성을 해결하는 동시에 데이터 추가, 변경, 검색, 삭제 및 백업, 복구, 보안 등의 기능을 지원하는 소프트웨어

DBMS 유형

  • 키-값(key-value) DBMS
  • 컬럼 기반 데이터 저장(Column Family Data Store) DBMS
  • 문서 저장(Document Store) DBMS
  • 그래프(Graph) DBMS

DBMS 특징

  • 데이터 무결성: 서로 다른 데이터가 저장되는 것을 허용하지 않는 성질
  • 데이터 일관성: 삽입, 삭제, 갱신, 생성 후에도 저장된 데이터가 변함없이 일정
  • 데이터 회복성: 장애가 발생하였을 시 특정 상태로 복구되어야 하는 성질
  • 데이터 보안성: 보호되어야 하는 성질
  • 데이터 효율성: 요구조건을 만족시켜야 하는 성질

빅데이터: 주어진 비용, 시간 내에 처리 가능한 데이터 범위를 넘어서는 수십 페타바이트(PB) 크기의 비정형 데이터

빅데이터의 특성

  • 데이터의 양
  • 데이터의 다양성
  • 데이터의 속도

NoSQL: 데이터 저장에 고정된 테이블 스키마가 필요하지 않고 조인 연산을 사용할 수 없으며, 수평적으로 확장이 가능한 DBMS

NoSQL의 특성 (BASE)

  • Basically Available
  • Soft-State
  • Eventually Consistency

NoSQL의 유형

  • Key-value Store
  • Column Family Data Store
  • Document Store
  • Graph Store

데이터 마이닝: 대규모로 저장된 데이터 안에서 체계적이고 자동적으로 통계적 규칙이나 패턴을 찾아내는 기술

데이터 마이닝 절차

  1. 목적 설정
  2. 데이터 준비
  3. 가공
  4. 마이닝 기법 적용
  5. 정보 검증

데이터 마이닝 주요 기법

  • 분류 규칙 (Classification)
  • 연관 규칙 (Association)
  • 연속 규칙 (Sequence)
  • 데이터 군집화 (Clustering)
profile
기억하기 위해 기록하는 개발로그👣

0개의 댓글