본문 바로가기
정보처리기사

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

by 아마도개발자 2024. 3. 17.

데이터 모델

(1) 데이터 모델

  • 개념
    • 현실 세계의 정보를 인간과 컴퓨터가 이해할 수 있도록 추상화하여 표현한 모델
  • 데이터 모델 표시요소
    • 연산: 데이터베이스에 저장된 실제 데이터를 처리하는 작업에 대한 명세
    • 구조: 데이터베이스에 논리적으로 표현될 대상으로서의 개체 타입과 개체 타입 간의 관계
    • 제약 조건: 데이터베이스에 저장될 수 있는 실제 데이터의 논리적인 제약 조건

(2) 데이터 모델 절차

1. 요구조건 분석
    - 도출된 요구사항 간 상충을 해결하고, 외부 환경과의 상호 작용을 요구 분석
2. 개념적 설계
    - 사용자의 요구에 대한 트랜잭션을 모델링 하는 단계
    - 현실 세계에 대한 인식을 추상적, 개념적으로 표현하여 개념적 구조를 도출하는 데이터 모델
    - 개체관계 다이어그램
3. 논리적 데이터 모델
    - 트랜잭션의 인터페이스를 설계하는 단계
    - DBMS에 맞는 논리적 스키마를 설계하는 단계
    - 정규화를 수행, 스키마의 평가 및 정제, 테이블을 설계하는 단계
4. 물리적 설계
    - 논리 데이터 모델을 특정 DBMS의 특성 및 성능을 고려하여 물리적 스키마로 만드는 단계
    - 반 정규화 수행

논리 데이터 모델 검증

(1) 논리 데이터 모델링 개념

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

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

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

(3) 관계 데이터 모델

  • 데이터를 행과 열로 구성된 2차원 테이블 형태로 구성한 모델
  • E.F.Codd 박사가 제안한 모델
  • 구성요소
    • 릴레이션: 행과 열로 구성된 테이블
    • 튜플: 릴레이션의 행에 해당되는 요소
    • 속성: 릴레이션의 열에 해당되는 요소
    • 카디널리티: 튜플의 수
    • 차수: 속성의 수
    • 스키마: 데이터베이스의 구조, 제약 조건 등의 정보를 담고 있는 기본적인 구조
    • 인스턴스: 정의된 스키마에 따라 생성된 테이블에 실제 저장된 데이터의 집합

(4) 관계 대수 및 관계 해석

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

일반 집합 연산자

연산자 기호 표현 의미
합집합 R ∪ S 릴레이션 R과 S의 합집합을 반환
교집합 R ∩ S 릴레이션 R과 S의 교집합을 반환
차집합 - R - S 릴레이션 R과 S의 차집합을 반환
카티션 프로덕트 x R x S R x S릴레이션 R의 각 투플과 릴레이션 S의 각 투플을 모두 연결하여 만들어진 새로운 투플 반환

 

순수 관계 연산자

연산자 기호 표현 설명
셀렉트 σ σ조건(R) 릴레이션 R에서 조건을 만족하는 투플들을 반환
프로젝트 π π속성리스트(R) 릴레이션 R에서 주어진 속성들의 값으로만 구성된 투플들을 반환
조인 R ⋈ S 공통 속성을 이용해 릴레이션 R과 S의 투플들을 연결하여 만들어진 새로운 투플들을 반환
디비전 ÷ R ÷ S 릴레이션 S의 모든 투플과 관련이 있는 릴레이션 R의 투플들을 반환
  • 관계 해석
    • 개념: 튜플 관계 해석과 도메인 관계 해석을 하는 비절차적 언어
  • 관계 대수와 관계 해석 비교
구분 관계 대수 관계 해석
특징 절차적 언어 비절차적 언어
목적 어떻게 유도하는가 무엇을 얻을 것인가
종류 순수관계 연산자, 일반집합 연산자 튜플 관계 해석, 도메인 관계 해석

(4) 논리적 데이터 모델링 속성

  • 종류
    • 개체: 관리할 대상이 되는 실체
    • 속성: 관리할 정보의 구체적 항목
    • 관계: 개체 간의 대응 관계

(5) 개체-관계(E-R) 모델

  • 개념
    • 현실 세계에 존재하는 데이터와 그들 간의 관계를 사람이 이해할 수 있는 형태로 명확하게 표현하기 위해서 가장 널리 사용되고 있는 모델
    • 개체, 속성, 관계로 기술한 모델

(6) 정규화

  • 개념: 관계형 데이터 모델에서 데이터의 중복성을 제거하여 이상 현상을 방지하고, 데이터의 일관성과 정확성을 유지하기 위해 무손실 분해하는 과정
  • 이상현상: 데이터의 중복성으로 인해 릴레이션을 조작할 때 발생하는 비합리적 현상(삽입 이상, 삭제 이상, 갱신 이상)
  • 정규화의 단계
단계 조건
1정규형 원자값으로 구성
2정규형 부분 함수 종속 제거(완전 함수적 종속 관계)
3정규형 이행함수 종속 제거
보이스-코드 정규형 결정자 후보 키가 아닌 함수 종속 제거
4정규형 다치 종속제거
5정규형 조인 종속 제거
  • 함수 종속
    • 개념: 릴레이션에서 속성의 의미와 속성 간 상호 관계로부터 발생하는 제약 조건
    • 결정자/종속자: X -> Y의 관계일 때 X는 결정자, Y는 종속자
  • 함수 종속 종류
종류 설명
부분 함수 종속 릴레이션에서 기본 키가 복합 키일 경우 기본 키를 구성하는 속성 중 일부에게 종속된 경우
완전 함수 종속 릴레이션에서 X->Y 관계가 있을 때, Y는 X의 전체 속성에 대해 종속하고, 부분 집합 속성에 종속하지 않는 경우
이행 함수 종속 릴레이션에서 X->Y, Y->Z 종속 관계까 있을 때, X->Z가 성립되는 경우

(7) 반 정규화

  • 개념: 반 정규화는 정규화된 엔터티, 속성, 관계에 대해 성능향상과 개발 운영 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링 기법
  • 장점: 성능 향상과 관리의 효율성 증가
  • 단점: 데이터의 일관성 및 정합성 저하
  • 기법: 테이블 병합, 테이블 분할, 중복 테이블 추가, 컬럼 중복화, 중복관계 추가

물리 데이터 저장소 설계

(1) 물리 데이터 모델링 개념

논리 모델을 적용하고자 하는 기술에 맞도록 상세화 해가는 과정

(2) 데이터베이스 무결성

  • 개념
    • 데이터 무결성은 데이터베이스에 저장된 데이터 값과 그것이 표현하는 현실 세계의 실제 값이 일치하는 성질
    • DBMS의 중요 기능이며, 데이터에 적용되는 여산에 제한을 두어 데이터의 무결성을 유지
  • 종류
종류 설명 기법
개체 무결성 한 엔터티에서 같은 기본키를 가질 수 없거나, 기본 키의 속성이 null을 허용할 수 없는 제약조건 - 기본 키
- 유니크 인덱스
참조 무결성 외래 키가 참조하는 다른 개체의 기본 키에 해당하는 값이 기본 키값이나 null이 되어야 하는 제약 조건 - 외래 키
속성 무결성 속성의 값은 기본값, NULL여부, 도메인이 지정된 규칙을 준수 해야 하는 제약 조건 - 체크
- NULL / NOT NULL
- 기본 값
사용자 정의 무결성 사용자의 의미적 요구사항 준수해야 하는 제약 조건 - 트리거
- 사용자 정의 데이터 타입
키 무결성 한 릴레이션에 같은키 값을 가진 튜플들을 허용할 수 없는 제약 조건 - 유니크

(3) 키

  • 개념: 데이텅베이스에 조건을 만족하는 튜플을 찾거나 순서대로 정렬할 때 다른 튜플들과 구별할 수 있는 기준이 되는 속성
  • 특성
    • 유일성: 식별자에 의해 엔터티 타입 내에 모든 엔터티들이 유일하게 구분
    • 최소성: 최소한의 속성으로 식별자 구성
  • 종류
    • 기본 키: 테이블의 각 튜플들을 고유하게 식별하는 컬럼
    • 대체 키: 후보 키 중에서 기본 키로 선택되지 않은 키
    • 후보 키: 테이블에서 각 튜플을 구별하는 데 기준이 되는 컬럼(기본키와 대체 키를 합친 키)
    • 슈퍼 키: 릴레이션을 구성하는 모든 튜플에 대해 유일성은 만족하지만, 최소성은 만족하지 못하는 키
    • 외래 키: 테이블 간의 참조 데이터 무결성을 위한 제약 조건, 한 릴레이션의 컬럼이 다른 릴레이션의 기본 키로 이용되는 키

(4) 인덱스 설계

  • 개념: 검색 연산의 최적화를 위해 데이터베이스 내 열에 대한 정보를 구성한 데이터구조
  • 선정
    • 분포도가 좋은 컬럼은 단독적으로 생성
    • 자주 좝되어 사용되는 컬럼은 결합 인덱스로 생성
    • 가능한 한 수정이 빈번하지않은 컬럼을 선정

(5) 파티셔닝

  • 개념: 테이블 또는 인덱스 데이터를 파티션 단위로 나누어 저장하는 기법
  • 유형
    • 레인저 파티셔닝
      • 연속적인 숫자나 날짜를 기준으로 파티셔닝
      • 손쉬운 관리 기법, 관리 시간의 단축 가능
    • 해시 파티셔닝
      • 파티션 키의 해시 함수 값에 의한 파티셔닝 기법
      • 균등한 데이터 분할이 가능하고 질의 성능이 향상 가능
    • 리스트 파티셔닝
      • 특정 파티션에 저장 될 데이터에 대한 명시적 제어가 가능
      • 분포도가 비슷하고 데이터가 많은 SQL에서 컬럼의 조건이 많이 들어오는 경우 유용
    • 컴포지트 파티셔닝
      • 레인지 파티셔닝, 해시 파티셔닝, 리스트 파티셔닝 중 2개 이상의 파티셔닝을 결합하는 파티셔닝
      • 큰 파티션에 대한 I/O 요청을 여러 파티션으로 분산
    • 라운드 로빈
      • 라운드로빈으로 회전하면서 새로운 행을 파티션에 할당하는 기법
      • 파티션에 행의 고른 분포를 원할 때
  • 장점: 성능 향상, 가용성 향상, 백업 가능, 경합 감소

데이터베이스 종류

(1) 데이터베이스

  • 개념
    • 다수의 인원, 시스템, 프로그램이 사용할 목적으로 통합하여 관리되는 데이터의 집합
    • 자료의 중복성 제거, 무결성 확보, 일관성 유지, 유용성 보장이 중요
    • 데이터 베이스는 통합된 데이터, 저장된 데이터, 운영 데이터, 공용 데이터이다.
  • 특성
    • 실시간 접근성: 쿼리에 대하여 실시간 응답이 가능해야 함
    • 계속적인 변화: 새로운 데이터의 삽입, 삭제, 갱신으로 항상 최신의 데이터 유지
    • 동시 공용: 다수의 사용자가 동시에 같은 내용의 데이터를 이용할 수 있어야 함
    • 내용 참조: 데이터베이스의 데이터를 참조할 때 데이터 레코드의 주소나 위치에 의해서가 아니라, 사용자가 요구하는 데이터 내용으로 데이터를 탐색

(2) DBMS

  • 개념
    • 데이터 관리의 복잡성을 해결하는 동시에 데이터 추가, 변경, 검색, 삭제 및 백업, 복구, 보안 등의 기능을 지원하는 소프트웨어
    • 저장되는 정보는 텍스트, 이미지, 음악 파일, 지도 데이터 등 매우 다양
  • 유형
유형 설명
키-값 DBMS - 키 기반 GET/PUT/DELETE 제공, 메모리 기반에서 성능 우선 시스템 및 빅데이터 처리 가능 DBMS
- Unique한 키에 하나의 값을 가지고 있는 형태
컬럼 기반 데이터 저장 - Key 안에 (column, value)조합으로 된 여러개의 필드를 갖는 DBMS
- 테이블 기반, 조인 미지원, 컬럼 기반으로 구글의 Bigtable기반 구현
- HBase, Cassandra
문서 저장 DBMS - 값의 데이터 타입으로 문서라는 타입을 사용
- 문서는 XML, JSON과 같이 구조화된 데이터 타입으로, 복잡한 계층 구조 표현 가능
- MongoDB, Couchbase
그래프 DBMS - 시멘틱 웹과 온톨로지 분야에서 활용하는 그래프로 데이터로 표현 DBMS
- 노드와 엣지로 특징되는 요소 특화
  • 특징
    • 데이터 무결성: 부적절한 자료가 입력되어 동일한 내용에 대하여 서로 다른 데이터가 저장되는 것을 허용하지 않는 성질
    • 데이터 일관성: 삽입, 삭제, 갱신, 생성 후에도 저장된 데이터가 변함없이 일정
    • 데이터 회복성: 장애가 발생했을 시 특정 상태로 복구되어야 하는 성질
    • 데이터 보안성: 불법적인 노출, 변경, 손실로부터 보호되어야 하는 성질
    • 데이터 효율성: 응답 시간, 저장 공간 활용 등이 최적화되어 사용자, 소프트웨어, 시스템 등의 요구 조건을 만족시켜야하는 성질

(3) 데이터베이스 기술 트렌드

  • 빅데이터: 시스템, 서비스, 조직 등에서 주어진 비용, 시간 내에 처리 가능한 데이터 범위를 넘어서는 수십 페타바이트 크기의 비정형 데이터
  • 특성 : 양(Volume), 다양성(Variety), 속도(Velocity)
  • NoSQL: 고정된 스키마가 필요하지 않고 조인 연산을 사용할 수 없으며 수평적으로 확장이 가능한 DBMS
    • 특성: Basically Available, Soft-State, Eventually Consistency
    • 유형: Key-Value Store, Column Family Data STore, Document Store, Graph Store
  • 데이터 마이닝
    • 개념: 대규모로 저장된 데이터 안에서 체계적이고자동적으로 통계적 규칙이나 패턴을 찾아내는 기술
    • 주요 기법: 분류 규칙, 연관 규칙, 연속 규칙, 데이터 군집화