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

전현준·2024년 4월 9일
0

정보처리기사 실기

목록 보기
4/12
post-thumbnail

🛢 3-1. 데이터 저장소

1. 데이터 모델

1. 데이터 모델 개념

  • 구조 : 논리적으로 표현될 대상으로 개체 타입과 타입 간의 관계
  • 연산 : 데이터베이스에 저장된 실제 데이터를 처리하는 작업에 대한 명세
  • 제약 조건 : 실제 데이터의 논리적인 제약 조건, 무결성 유지를 위한 DB의 보편적 방법

2. 데이터 모델 절차

  • 요구사항 분석 : 도출된 요구사항 간 상충을 해결하고 데이터에 대한 요구 분석
  • 개념적 설계 (개념적 데이터 모델) : 사용자 요구에 대한 트랜젝션을 모델링 하는 단계 ****
    • 개체 - 관계 다이어그램
  • 논리적 설계 (논리적 데이터 모델) : 트랜젝션의 인터페이스 설계, 논리적 스키마를 설계하는 단계
    • RDBMS에서는 테이블을 설계하는 단계. 정규화 진행
  • 물리적 설계 (물리적 데이터 모델) : 논리 데이터 모델을 물리 데이터 모델로 변환
    • 성능 측면에서 반 정규화 수행

2. 논리 데이터 모델

1. 논리 데이터 모델링 개념

  • 업무의 모습을 모델링 표기법으로 형상화하여 사람이 이해하기 쉽게 표현하는 프로세스
  • 개념 모델로 부터 업무 데이터 및 규칙을 구체적으로 표현한 모델

2. 논리적 데이터 모델링 종류

  • 관계 데이터 모델
    • 기본키와 참조하는 외래키
    • 1:N, 1:1, N:M

  • 계층 데이터 모델 : 트리 구조 , 상하관계 존재
    • 1:N 관계만 허용
  • 네트워크 데이터 모델 : 그래프 형태로 구성
    • 상위와 하위 레코드 사이에 N:M 구조 만족

3. 관계 데이터 모델

  • 관계 데이터 모델의 구성요소

    • 릴레이션 : Row와 Column으로 구성된 테이블
    • 튜플 : 릴레이션의 행에 해당되는 요소
    • 속성 : 릴레이션의 열에 해당되는 요소
    • 카디널리티 : 튜플의 개수
    • 차수 : 애트리뷰트의 수
    • 스키마 : 데이터베이스의 구조, 제약 조건 등의 정보를 담고 있는 기본적인 구조
    • 인스턴스 : 정의된 스키마에 따라 생성된 테이블에 실제 저장된 데이터의 집합
  • 관계 대수

    • 합집합, 교집합, 차집합
    • 카티션 프로덕트 : R X S : R과 S에 속한 모든 튜플을 연결해 만들어진 새로운 튜플로 구성
  • 순수 관계 연산자

    • σ(셀렉트)
    • π(프로젝트) : 릴레이션에서 주어진 속성들의 값으로만 구성된 튜플 반환
    • ⋈(조인) : R ⋈ S : 공통 속성을 통해서 R과 S의 튜플들을 연결해 만들어진 튜플
    • ÷(디비전) : R **÷** S : 릴레이션 S의 모든 튜플과 관련 있는 R의 튜플 반환
  • 관계 해석

    • 튜플 관계 해석과 도메인 관계 해석을 하는 비절차적 언어
    • 원하는 정보가 무엇이라는 것만 선언

4. 논리 데이터 모델링 속성

  • 개체 : 데이터 베이스에 표현하려는 사물, 사건 (사각형으로 표시)
  • 속성 : 개체가 가지고 있는 요소 또는 성질 (타원으로 표시)
  • 관계 : 두 개체간의 관계를 정의, 관계는 마름모로 표시
    • 1 : 1 / 1 : N / N : M

5. 개체 관계 (ER) 모델

  • 요구사항으로 부터 얻어낸 정보들을 개체, 속성, 관계로 기술한 모델

6. 정규화

  • 이상 현상 : 릴레이션 조작시 발생하는 비합리적인 현상

    • 삽입 이상 : 해당 정보의 불필요한 세부정보를 입력해야하는 경우
    • 삭제 이상 : 정보 삭제시 원치 않는 다른 정보가 같이 삭제되는 경우
    • 갱신 이상 : 중복 데이터 중에서, 특정 부분만 수정되어 중복된 값이 모순을 일으키는 경우
  • 함수 종속

    • 릴레이션에서 속성의 의미와 속성 간 상호 관계로부터 발생하는 제약조건

    • 결정자 / 종속자 : X → Y 일때, X는 결정자, Y는 종속자

    • 함수 종속 종류

      • 부분 함수 종속 : 기본키가 복합키일 경우, 기본키를 구성하는 속성 중 일부에게 종속

        (이름, 성별)이 기본키 라고 했을 때,

        (이름, 성별)주소 / (이름, 성별)지역번호 관계가 성립함

        ✨ 그러나 (이름)주소 관계도 성립함

      • 완전 함수 종속 : X → Y 관계 일때, Y는 X의 전체 속성에 대해 종속하고, 부분 집합 속성에 종속하지 않음

      • 이행 함수 종속 : X → Y, Y → Z 관계 일 때, X → Z가 성립하는 경우

  • 정규화의 개념

    • (1정규형) 1차 정규화 : 원자값으로 구성, 하나의 값으로 구성하기

    • (2정규형) 2차 정규화 : 부분 함수 종속 제거.

      • (고객명, 서비스 이름) → 서비스 이용 기간 / (서비스 이용) → 서비스 가격
      • 부분 함수 종속되어 있음. 테이블을 분리해야함
    • (3정규형) 3차 정규화 : 이행 함수 종속 제거

      • (A → B), (B → C) 이면 (A → C)인 이행 함수의 종속을 제거해야함
    • 보이스-코드 정규형 : 결정자 함수 종속 제거

      • 모든 결정자가 후보 키인 정규화 과정
    • (4정규형) 4차 정규화

      • 다치 종속 제거, 특정 속성 값에 따라 선택적인 속성을 분리
    • (5정규형) 5차 정규화

      • 조인 종속을 제거하는 과정.
      • 조인을 했을 때, 원하는 튜플이 나오기 위해 정규화를 진행

7. 반 정규화

  • 성능 향상과 개발 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링 기법

    • 장점 : 성능 향상관리의 효율성이 증가
    • 단점 : 데이터 일관성 및 정합성 저하 / 유지를 위한 비용 발생
  • 반 정규화 기법

    • 테이블 병합 : 1 : 1, 1 : N을 통합하여 조인 횟수를 줄여 성능 향상
    • 테이블 분할 : 테이블을 수직 또는 수평으로 분할
    • 중복 테이블 추가 : 다량의 데이터에 대한 집계 (sum, group by)를 위한 테이블 추가
    • 컬럼 중복화 : 조인 성능 향상을 위한 중복 허용
    • 중복 관계 추가 : 성능 저하를 예방하기 위해 추가적 관계를 맺음

3. 물리 데이터 모델

1. 데이터 무결성

  • 데이터 무결성은 DB에 저장된 값현실의 값이 일치하는 성질

  • 무결성은 권한이 있는 사용자로부터 데이터베이스를 보호한다.

  • 데이터 무결성 종류

    • 개체 무결성 : 한 엔터티에서 같은 PK를 가질 수 없거나, PK는 NULL이 되지 못함
    • 참조 무결성 : 외래키가 참조하는 다른 개체의 기본키가 기본키 값이나 NULL이어야함
      • 제한 : 참조 무결성을 위배하는 연산을 거절
      • 연쇄 : 튜플을 삭제할 때, 참조하고 있는 다른 튜플도 삭제함
      • 널 값 : 튜플을 삭제할 때, 참고하고 있는 다른 튜플에 대한 값을 Null로 바꿈
    • 속성 무결성 : DEFAULT, Nullable, Data Type, length를 지켜야하는 제약 조건
    • 사용자 정의 무결성 : 의미적 요구사항을 준수해야함
    • 키 무결성 : 한 릴레이션에 같은 키 값을 가진 튜플을 허용할 수 없음

2. 키

  • 키는 DB에서 조건을 만족하는 튜플을 찾거나, 정렬할 때 기준이 되는 속성
  • 키 특성
    • 유일성 / 최소성
  • 키 종류
    • 기본 키
    • 대체 키 : 후보 키 중에서 기본 키로 선책되지 않은 키
    • 후보 키 : 기본키와 대체키들
    • 슈퍼 키 : 유일성은 만족하지만, 최소성은 만족하지 못하는 키
    • 외래 키 : 다른 릴레이션의 기본키로, 참조할 때 사용

3. 인덱스

  • 검색 연산 최적화를 위한 열에 대한 정보를 구성
  • 인덱스를 통해 필요한 정보에 대해 신속한 조회 가능

4. 파티셔닝

  • 테이블 또는 인덱스 데이터를 파티션으로 나누어 저장하는 기법
  • 파티션 유형
    • 레인지 파티셔닝 : 연속적인 숫자나 날짜를 기준으로 파티셔닝
    • 해시 파티셔닝 : 파티션 키의 해시 함수 값에 의한 파티셔닝, 균등한 데이터 분할 가능
    • 리스트 파티셔닝 : 저장될 데이터에 대한 명시적 제어가 가능한 파티셔닝
    • 컴포지트 파티셔닝 : 앞서 나온 파티셔닝을 2개 이상 결합하는 기법
    • RoundRobin : 회전하면서, 새로운 행을 파티션에 할당하는 기법

🛢 3-2. 데이터베이스 기초 활용

1. 데이터베이스 종류

1. 데이터베이스

  • 개념 : 다수의 인원, 시스템 또는 프로그램이 사용할 목적으로 통합된, 데이터의 집합

  • 중복성 제거, 무결성 확보, 일관성 유지, 유용성 보장

  • 정의

    • 통합된 데이터 : 자료의 중복을 배제한 데이터의 모임
    • 저장된 데이터 : 저장 매체에 저장된 데이터
    • 운영 데이터 : 조직의 업무를 수행하는 데 필요한 데이터
    • 공용 데이터 : 여러 APP, 시스템이 공동으로 사용하는 데이터
  • 데이터베이스 특성

    • 실시간 접근성 : 쿼리에 대해 실시간 응답이 가능하게 해야함
    • 계속적인 변화 : 항상 최신의 데이터를 유지해야함
    • 동시공용 : 다수의 사용자가 동시에 같은 내용의 데이터 공유 가능
    • 내용 참조 : 사용자가 요구하는 내용으로 데이터를 찾아야함
  • DBMS : 데이터 추가, 변경, 검색, 삭제 및 백업, 복구, 보안의 기능을 지원하는 소프트웨어

2. 데이터베이스 저장 기술

  • 데이터 웨어하우스

    • 사용자 의사결정에 도움을 주기 위해, DBMS에 축적된 데이터를 공통 형식으로 변환, 관리
    • 특징
      • 주제 지향적 : 기능이나 업무가 아닌 주제 중심적으로 구성되는 특징
      • 통합적 : 데이터 일관성유지, 하나로 통합
      • 시 계열적 : 시간에 따른 변경 항상 반영
      • 비 휘발적 : 적재가 완료되면 읽기 전용 형태로 스냅 샷 형태로 존재
  • 데이터 마트 : 특정 주제, 부서 중심으로 구축된 소규모 단위 주제의 데이터 웨어하우스

    • 빅데이터 특성
      • 데이터 양 (Volume) : 페타바이트 수준의 대규모 데이터
      • 데이터 다양성 (Variety) : 정형, 비정형, 반정형 다양한 데이터
      • 데이터 속도 (Velocity) : 빠른 속도

3. 하둡

  • 오픈 소스를 기반으로 한 분산 컴퓨팅 플랫폼

  • 가상화된 대형 스토리지 형성, 거대한 데이터 세트를 병렬로 처리할 수 있는 자바 기반

  • 주요 기술

    • ETL : 원본 데이터를 추출하고, 변환하여 적재하는 작업 기술
    • 플럼 : 많은 양의 로그 데이터를 효율적으로 운영하기 위해, 이벤트와 에이전트 활용
    • 스쿱 : 커넥터를 활용하여 관계형 DB에서 HDFS로 데이터 수집
    • 스크래파이 : 파이썬 기반 비정형 데이터 수집
    • HDFS : 대용한 데이터 집합을 처리하는 하둡 분산 파일 시스템
    • 맵 리듀스 : 구글에서 대용량 처리를 위해 2004년에 발표한 SW Framework
  • NoSQL

    • 특성
      • Basically Avaliable : 데이터는 접근 가능해야함. 가용성 중시
      • Soft-State : 노드의 상태가 외부에서 전송된 정보를 통해 결정됨
      • Eventually Consistency : 일관성 중시
    • 유형
      • Key-Value : (Redis / DynamoDB)
      • Column Family Data Store : Key 안에 (Column, Value) 조합으로 된 여러개 필드
      • Document Store : XML, JSON, YAML (MongoDB)
      • Graph Store : 시멘틱 웹과 온톨로지 분야에서 활용되는 그래프로 데이터 표현하는 DB

4. 데이터 마이닝

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

  • 의미 있는 패턴 파악 / 예측하여 의사결정에 활용

  • 주요 기법

    • 분류 규칙 : 특성을 찾아내어 분류모형을 만듦
    • 연관 규칙 : 데이터 간에 종속관계를 찾아내는 기법
    • 연속 규칙 : 연관 규칙에 시간 관련 정보가 포함된 형태의 기법
    • 데이터 군집화 : 유사한 특성을 몇 개의 소그룹으로 분할
  • 데이터 관련 용어

    • 텍스트 마이닝 : 텍스트에서 패턴 또는 관계 추출
    • 웹 마이닝 : 에서 얻는 방대한 양의 정보로부터 유용한 정보 찾아내기
    • 다크 데이터 : 저장은 되어있지만, 분석에는 활용하지 않는 데이터
    • 메타 데이터 : 데이터를 정의하고 설명해주는 데이터
    • 디지털 아카이빙 : 디지털 객체를 장기간 관리하여 이후의 이용을 보장
    • 마이 데이터 : 정보 주체가 기관으로 부터 정보를 받아, 능동적으로 본인 정보 관리
profile
백엔드 개발자 전현준입니다.

0개의 댓글

관련 채용 정보