[정보처리기사] 2장 - 데이터 입출력 구현

devheyrin·2022년 7월 7일
0

정보처리기사

목록 보기
2/10

31. 데이터 전환


데이터 전환

  • 운영 중인 기존 정보 시스템이 축적되어 있는 데이터를 추출하여 새로 개발할 정보 시스템에서 운영할 수 있도록 변환한 후, 적재하는 일련의 과정
  • ETL, 즉 추출, 변환, 적재 과정이라고 한다.
  • 데이터 이행, 데이터 이관이라고도 한다.

데이터 전환 계획서

  • 데이터 전환이 필요한 대상을 분석하여 데이터 전환 작업에 필요한 모든 계획을 기록하는 문서이다.
  • 주요 항목
    • 개요
    • 대상 및 범위
    • 환경 구성
    • 조직 및 역할
    • 일정
    • 방안
    • 정비 방안
    • 비상 계획
    • 데이터 복구 대책

문제

  1. 데이터 전환
  2. 데이터 전환 계획서

32. 데이터 검증


데이터 검증

  • 원천 시스템의 데이터를 목적 시스템의 데이터로 전환하는 과정이 정상적으로 수행되었는지 여부를 확인하는 과정
  • 검증방법과 검증 단계에 따라 분류 가능

검증 방법에 따른 분류

  • 로그 검증 : 데이터 전환 과정에서 작성하는 추출, 전환, 적재 로그를 검증
  • 기본 항목 검증 : 로그 검증 외에 별도로 요청된 항목에 대해 검증
  • 응용 프로그램 검증 : 응용프로그램을 통한 데이터 전환의 정합성 검증
  • 응용 데이터 검증 : 사전에 정의된 업무 규칙을 기준으로 데이터 전환의 정합성 검증
  • 값 검증 : 숫자 항목의 합계 검증, 코드 데이터의 범위 검증, 속성 변경에 따른 값 검증 수행

검증 단계에 따른 분류

  • 추출 : 원천 시스템 데이터에 대한 정확성 확인
  • 전환 : 매핑 정의서에 정의된 내용이 정확히 반영되었는지 확인, 매핑 정의서 오류 여부 확인
  • DB 적재 : SAM 파일을 적재하는 과정에서 발생할 수 있는 오류나 데이터 누락 여부 등 확인
  • DB 적재 후 : 적재 완료 후 정합성 확인
  • 전환 완료 후 : 데이터 전환 완료 후 추가 검증 과정을 통해 데이터 전환의 정합성 검증

문제

  1. 데이터 검증
  2. 기본 항목 검증, 응용 데이터 검증

33. 오류 데이터 측정 및 정제


오류 데이터 측정 및 정제

  • 고품질의 데이터를 운영 및 관리하기 위해 수행
  • 데이터 품질 분석 → 오류 데이터 측정 → 오류 데이터 정제 순으로 진행
  • 데이터 품질 분석 : 오류 데이터를 찾기 위해 원천 및 목적 시스템 데이터의 정합성 여부를 확인하는 작업
  • 오류 데이터 측정 : 데이터 품질 분석을 기반으로 정상 데이터와 오류 데이터의 수를 측정하여 오류 관리 목록을 작성
  • 오류 데이터 정제 : 오류 관리 목록의 각 항목을 분석하여 원천 데이터를 정제하거나 전환 프로그램을 수정

오류 상태

  • Open : 오류가 보고만 되고 분석되지 않은 상태
  • Assigned : 오류의 영향 분석 및 수정을 위해 개발자에게 오류를 전달한 상태
  • Fixed : 개발자가 오류를 수정한 상태
  • Closed : 수정된 오류에 대해 테스트를 다시 했을 때 오류가 발견되지 않은 상태
  • Defferred : 오류 수정을 연기한 상태
  • Classified : 보고된 오류를 관련자들이 확인했을 때 오류가 아니라고 확인된 상태

데이터 정제 요청서

  • 원천 데이터의 정제와 전환 프로그램의 수정을 위해 요청사항 및 조치사항 등 데이터 정제와 관련된 전반적인 내용을 문서로 작성한 것
  • 오류 관리 목록을 기반으로 데이터 정제 요건 목록을 작성하고 이 목록의 항목별로 데이터 정제요청서를 작성한다.

데이터 정제 보고서

  • 데이터 정제 요청서를 통해 정제된 원천 데이터가 정상적으로 정제되었는지 확인한 결과를 문서로 작성한 것
  • 정제 요청 데이터와 정제된 데이터 항목을 눈으로 직접 비교하여 확인한다.

문제

  1. 데이터 품질 분석 → 오류 데이터 측정 → 오류 데이터 정제
  2. Open, Fixed, Deferred

34. 데이터베이스 개요 ⭐


데이터저장소

  • 데이터들을 논리적인 구조로 조직화하거나, 물리적인 공간에 구축한 것을 의미
  • 논리 데이터저장소 : 데이터 및 데이터 간의 연관성, 제약조건을 식별하여 논리적인 구조로 조직화한 것
  • 물리 데이터저장소 : 논리 데이터저장소를 소프트웨어가 운용될 환경의 물리적 특성을 고려하여 실제 저장장치에 저장한 것

데이터베이스

  • 여러 사람에 의해 공동으로 사용될 데이터를 중복을 배제하여 통합하고, 쉽게 접근하여 처리될 수 있도록 저장장치에 저장하여 항상 사용할 수 있도록 운영하는 운영 데이터이다.
  • 데이터베이스는 다음과 같이 구분하여 정의할 수 있다.
    • 통합된 데이터 : 자료의 중복을 배제한 데이터의 모임
    • 저장된 데이터 : 컴퓨터가 접근할 수 있는 저장 매체에 저장된 자료
    • 운영 데이터 : 조직의 고유한 업무를 수행하는 데 반드시 필요한 자료
    • 공용 데이터 : 여러 응용 시스템들이 공동으로 소유하고 유지하는 자료

DBMS ⭐

  • 사용자의 요구에 따라 정보를 생성해주고, 데이터베이스를 관리해주는 소프트웨어
  • 기존의 파일 시스템이 갖는 데이터의 종속성과 중복성의 문제를 해결하기 위해 제안된 시스템
  • DBMS의 필수 기능 3가지
    • 정의 기능 : 데이터의 형과 구조에 대한 정의, 이용 방식, 제약 조건 등을 명시하는 기능
    • 조작 기능 : 데이터 검색, 갱신, 삽입, 삭제 등을 위해 인터페이스 수단을 제공하는 기능
    • 제어 기능 : 데이터의 무결성, 보안, 권한 검사, 병행 제어를 제공하는 기능

데이터의 독립성

  • 논리적 독립성 : 응용 프로그램과 데이터베이스를 독립시킴으로써, 데이터의 논리적 구조를 변경시키더라도 응용 프로그램은 영향받지 않는다.
  • 물리적 독립성 : 응용 프로그램과 보조기억장치 같은 물리적 장치를 독립시킴으로써 디스크를 추가/변경하더라도 응용 프로그램은 영향받지 않는다.

스키마

  • 데이터베이스의 구조와 제약조건에 관한 전반적인 명세를 기술한 것
  • 외부 스키마
    • 사용자나 응용 프로그래머가 각 개인의 입장에서 필요로 하는 데이터베이스의 논리적 구조를 정의한 것
  • 개념 스키마
    • 데이터베이스의 전체적인 논리적 구조
    • 모든 응용 프로그램이나 사용자들이 필요로 하는 데이터를 종합한 조직 전체의 데이터베이스로, 하나만 존재한다.
  • 내부 스키마
    • 물리적 저장장치의 입장에서 본 데이터베이스 구조
    • 실제로 저장될 레코드의 형식, 저장 데이터 항목의 표현 방법, 내부 레코드의 물리적 순서 등을 나타낸다.

문제

  1. 데이터베이스의 구조와 제약조건에 관한 전반적인 명세를 기술한 것
  2. 내부 스키마
  3. 논리적 독립성
  4. 제어 기능

35. 데이터베이스 설계 ⭐


데이터베이스 설계

  • 사용자의 요구를 분석하여 그것들을 컴퓨터에 저장할 수 있는 데이터베이스의 구조에 맞게 변형한 후 DBMS로 데이터베이스를 구현하여 일반 사용자들이 사용하게 하는 것

데이터베이스 설계 시 고려사항

  • 무결성 : 삽입, 삭제, 갱신 등의 연산 후에도 데이터베이스에 저장된 데이터가 정해진 제약 조건을 항상 만족해야 함
  • 일관성 : 데이터베이스에 저장된 데이터들 사이나 특정 질의에 대한 응답이 처음부터 끝까지 변함없이 일정해야 함
  • 회복 : 시스템에 장애가 발생했을 때 장애 발생 직전의 상태로 복구할 수 있어야 함
  • 보안 : 불법적인 데이터의 노출 또는 변경이나 손실로부터 보호할 수 있어야 함
  • 효율성 : 응답시간의 단축, 시스템의 생산성, 저장 공간의 최적화 등이 가능해야 함
  • 데이터베이스 확장 : 데이터베이스 운영에 영향을 주지 않으면서 지속적으로 데이터를 추가할 수 있어야 함

데이터베이스 설계 순서 ⭐ 개논물

  1. 요구 조건 분석 : 요구 명세서 작성
  2. 개념적 설계 : 개념 스키마, 트랜잭션 모델링, E-R 모델
  3. 논리적 설계 : 목표 DBMS에 맞는 논리 스키마 설계, 트랜잭션 인터페이스 설계
  4. 물리적 설계 : 목표 DBMS에 맞는 물리적 구조의 데이터로 변환
  5. 구현 : 목표 DBMS의 DDL로 데이터베이스 생성, 트랜잭션 작성

요구 조건 분석

  • 데이터베이스를 사용할 사람들로부터 필요한 용도를 파악하는 것
  • 사용자에 따른 수행 업무와 필요한 데이터의 종류, 용도, 처리 형태, 흐름, 제약 조건 등을 수집
  • 수집된 정보를 바탕으로 요구 조건 명세 작성

개념적 설계

  • 현실 세계에 대한 인식을 추상적 개념으로 표현하는 과정
  • 개념 스키마 모델링과 트랜잭션 모델링을 병행하여 수행한다.
  • 요구 조건 명세를 DBMS에 독립적인 E-R 다이어그램으로 작성한다.
  • DBMS에 독립적인 개념 스키마를 설계한다.

논리적 설계

  • 현실 세계에서 발생하는 자료를 컴퓨터가 이해하고 처리할 수 있는 물리적 저장장치에 저장할 수 있도록 변환하기 위해 특정 DBMS가 지원하는 논리적 자료 구조로 변환시키는 과정
  • 개념 스키마를 평가 및 정제하고 DBMS에 따라 서로 다른 논리적 스키마를 설계하는 단계
  • 트랜잭션의 인터페이스 설계

물리적 설계

  • 논리적 구조로 표현된 데이터를 물리적 구조의 데이터로 변환하는 과정
  • 데이터베이스 파일의 저장 구조 및 액세스 경로 결정
  • 저장 레코드의 형식, 순서, 접근 경로, 조회 집중 레코드 등의 정보를 사용해 데이터가 컴퓨터에 저장되는 방법을 묘사

데이터베이스 구현

  • 논리적 설계와 물리적 설계에서 도출된 데이터베이스 스키마를 파일로 셍성하는 과정
  • 사용하려는 특정 DBMS의 DDL 을 이용해 데이터베이스 스키마를 기술한 후 컴파일하여 빈 데이터베이스 파일을 생성
  • 응용 프로그램을 위한 트랜잭션 작성
  • 데이터베이스 접근을 위한 응용 프로그램 작성

문제

  1. 개 → 논 → 물
  2. 논리적
  3. 물리적

36. 데이터 모델의 개념


  • 현실 세계의 정보들을 컴퓨터에 표현하기 위해 단순화, 추상화해 체계적으로 표현한 개념적 모형
  • 구성 요소 : 개체, 속성, 관계
  • 종류 : 개념적 데이터 모델, 논리적 데이터 모델, 물리적 데이터 모델
  • 표시할 요소 : 구조, 연산, 제약 조건

개념적 데이터 모델

  • 현실 세계에 대한 인간의 이해를 돕기 위해 현실 세계에 대한 인식을 추상적 개념으로 표현하는 과정

논리적 데이터 모델

  • 개념적 구조를 컴퓨터가 이해하고 처리할 수 있는 컴퓨터 세계의 환경에 맞도록 변환하는 과정

표시할 요소

  • 구조 : 논리적으로 표현된 개체 타입들 간의 관계로서 데이터 구조 및 정적 성질 표현
  • 연산 : 데이터베이스에 저장된 실제 데이터를 처리하는 작업에 대한 명세로서 데이터베이스를 조작하는 기본 도구
  • 제약 조건 : 데이터베이스에 저장될 수 있는 실제 데이터의 논리적인 제약 조건

37. 데이터 모델의 구성 요소


개체

  • 데이터베이스에 표현하려는 것으로, 사람이 생각하는 개념이나 정보단위같은 현실 세계의 대상체

속성

  • 데이터베이스를 구성하는 가장 작은 논리적 단위

속성에 따른 분류

  • 기본 속성
  • 설계 속성
  • 파생 속성

속성의 개체 구성 방식에 따른 분류

  • 기본키 속성
  • 외래키 속성
  • 일반 속성

관계

  • 개체와 개체 사이의 논리적인 연결
  • 개체 간의 관계와 속성 간의 관계

관계의 형태

  • 일대일
  • 일대다
  • 다대다

관계의 종류

  • 종속 관계
  • 중복 관계
  • 재귀 관계
  • 배타 관계

38. 식별자


식별자

  • 하나의 개체 내에서 각각의 인스턴스를 유일하게 구분할 수 있는 구분자

식별자의 분류

  • 대표성 여부
  • 스스로 생성 여부
  • 단일 속성 여부
  • 대체 여부

후보 식별자

  • 개체에서 각 인스턴스를 유일하게 식별할 수 있는 속성 또는 속성 집합

주 식별자의 특징

  • 유일성
  • 최소성
  • 불변성
  • 존재성

39. E-R(개체-관계) 모델 ⭐


E-R 다이어그램

  • 사각형 : 개체 타입
  • 마름모 : 관계 타입
  • 타원형 : 속성
  • 이중 타원 : 다중값 속성
  • 밑줄 타원 : 기본키 속성
  • 복수 타원 : 복합 속성
  • 관계 : 개체 간 관계에 대한 대응수를 선 위에 기술
  • 선, 링크 : 개체 타입과 속성을 연결

40. 관계형 데이터베이스의 구조 / 관계형 데이터 모델 ⭐


관계형 데이터베이스

  • 2차원적인 표를 이용해서 데이터 상호 관계를 정의하는 데이터베이스

릴레이션 구조

  • 데이터들을 표의 형태로 표현한 것으로, 구조를 나타내는 릴레이션 스키마와 실제 값들인 릴레이션 인스턴스로 구성

튜플

  • 릴레이션을 구성하는 각각의 행

속성

  • 데이터베이스를 구성하는 가장 작은 논리적 단위

도메인

  • 하나의 애트리뷰트가 취할 수 있는 같은 타입의 원자값들의 집합

릴레이션의 특징

  • 릴레이션에 포함된 튜플은 모두 상이하다.
  • 한 릴레이션에 포함된 튜플 사이에는 순서가 없다.
  • 삽입, 삭제 등의 작업으로 인해 릴레이션은 시간에 따라 변한다.
  • 속성들 간의 순서는 중요하지 않다.
  • 속성의 명칭은 유일해야 하지만, 속성을 구성하는 값은 같을 수 있다.
  • 튜플을 유일하게 식별하기 위해 속성들의 부분집합을 키로 설정한다.
  • 속성의 값은 논리적으로 더 이상 쪼갤 수 없는 원자값만을 저장한다.

관계형 데이터 모델

  • 2차원적인 표를 이용해 데이터 상호 관계를 정의하는 DB 구조를 말한다.

41. 관계형 데이터베이스의 제약 조건 - key ⭐


데이터베이스에서 조건에 만족하는 튜플을 찾거나 순서데로 정렬할 때 기준이 되는 속성

후보키

  • 속성들 중에서 튜플을 유일하게 식별하기 위해 사용되는 속성들의 부분집합

기본키

  • 후보키 중에서 특별히 선정된 주키

대체키

  • 후보키가 둘 이상일 때 기본키를 제외한 나머지 후보키

슈퍼키

  • 한 릴레이션 내에 있는 속성들의 집합으로 구성된 키

외래키

  • 다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합

42. 관계형 데이터베이스의 제약 조건 - 무결성 ⭐


무결성

  • 데이터베이스에 저장된 데이터 값과 그것이 표현하는 현실 세계의 실제값이 일치하는 정확성

무결성의 종류

  • 개체 무결성
  • 참조 무결성
  • 도메인 무결성
  • 사용자 정의 무결성
  • NULL 무결성
  • 고유 무결성
  • 키 무결성
  • 관계 무결성

데이터 무결성 강화

  • 애플리케이션, 데이터베이스 트리거, 제약 조건을 이용해 강화할 수 있다.

43. 관계대수 및 관계해석 ⭐


  • 관계형 데이터베이스에서 원하는 정보와 그 정보를 검색하기 위해 어떻게 유도하는가를 기술하는 절차적인 언어

순수 관계 연산자

  • select
  • project
  • join
  • division

일반 집합 연산자

  • 수학적 집합 이론에서 사용하는 연산자
  • 합집합
  • 교집합
  • 차집합
  • 교차곱

관계해석

  • 관계 데이터의 연산을 표현하는 방법

44. 이상 / 함수적 종속


이상

  • 테이블에서 일부 속성들의 종속으로 인해 데이터의 중복이 발생하고, 이 중복으로 인해 테이블 조작 시 문제가 발생하는 현상
  • 삽입 이상, 삭제 이상, 갱신 이상

함수적 종속

  • 어떤 테이블 R의 속성 집합의 부분집합인 X와 Y가 있을 때, X의 값 각각에 대해 시간에 관계없이 항상 속성 Y의 값이 오직 하나만 연관되어 있을 때 Y는 X에 함수적 종속 또는 X가 Y를 함수적으로 결정한다고 하고, X → Y로 표기한다.

45. 정규화


  • 테이블의 속성들이 상호 종속적인 관계를 갖는 특성을 이용해 테이블을 무손실 분해하는 과정

정규화 과정

  1. 제1 정규형 : 테이블에 속한 모든 속성의 도메인이 원자 값만으로 되어있는 정규형. 즉 테이블의 모든 속성 값이 원자값만으로 되어 있는 정규형
  2. 제2 정규형 : 기본키가 아닌 속성이 기본키에 대하여 완전 함수적 종속을 만족하는 정규형
  3. 제3정규형 : 기본키가 아닌 모든 속성이 기본키에 대해 이행적 함수적 종속을 만족하지 않는 정규형
  4. BCNF : 테이블 R에서 모든 결정자가 후보키인 정규형
  5. 제4정규형 : 테이블 R에 다중 값 종속이 존재할 경우 테이블의 모든 속성이 함수적 종속 관계를 만족하는 정규형
  6. 제5정규형 : 모든 조인 종속이 테이블의 후보키를 통해서만 성립되는 정규형

46. 반정규화 ⭐


반정규화

  • 정규화된 데이터 모델을 의도적으로 통합, 중복, 분리하여 정규화 원칙을 위배하는 행위

테이블 통합

  • 두 개의 테이블이 조인되어 사용되는 경우가 많을 경우 성능 향상을 위해 아예 하나의 테이블로 만들어 사용하는 것

테이블 분할

  • 테이블을 수직 또는 수평으로 분리하는 것

중복 테이블 추가

  • 작업의 효율성을 향상시키기 위해 테이블 추가
  • 집계 테이블 추가
  • 진행 테이블 추가
  • 특정 부분만을 포함하는 테이블 추가

중복 속성 추가

  • 조인해서 데이터를 처리할 때 데이터를 조회하는 경로를 단축하기 위해 자주 사용하는 속성을 하나 더 추가

47. 시스템 카탈로그


시스템 카탈로그

  • 다양한 객체에 관한 정보를 포함하는 시스템 데이터베이스

메타 데이터

  • 시스템 카탈로그에 저장된 정보

데이터 디렉터리

  • 데이터 사전에 수록된 데이터에 접근하는 데 필요한 정보를 관리 유지하는 시스템

48. 데이터베이스 저장 공간 설계


  • 테이블
    • 데이터베이스의 가장 기본적인 객체
    • 로우, 컬럼으로 구성되어 있음
    • 데이터베이스의 모든 데이터는 테이블에 저장됨
  • 컬럼
    • 테이블의 열을 구성하는 요소
    • 데이터 타입, 길이 등으로 정의됨
  • 테이블스페이스
    • 테이블이 저장되는 논리적인 영역
    • 한 개의 테이블스페이스에 한 개 이상의 테이블을 저장할 수 있음

테이블 종류

  • 일반 테이블
    • 대부분의 DBMS에서 표준 테이블로 사용되는 테이블 형태
  • 클러스터드 인덱스 테이블
    • 기본키나 인덱스키의 순서에 따라 데이터가 저장되는 테이블
    • 일반적인 인덱스를 사용하는 테이블에 비해 접근 경로가 단축됨
  • 파티셔닝 테이블
    • 대용량의 테이블을 작은 논리적 단위인 파티션으로 나눈 테이블
  • 외부 테이블
    • 데이터베이스에서 일반 테이블처럼 이용할 수 있는 외부 파일
    • 데이터베이스 내에 객체로 존재
  • 임시 테이블
    • 트랜잭션이나 세션별로 데이터를 저장하고 처리할 수 있는 테이블
    • 임시 테이블에 저장된 데이터는 트랜잭션이 종료되면 삭제된다.

49. 트랜잭션 분석 / CRUD 분석 ⭐


트랜잭션

  • 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위
  • 한꺼번에 모두 수행되어야 할 일련의 연산
  • 병행 제어 및 회복 작업 시 처리되는 작업의 논리적 단위로 사용된다.
  • 사용자가 시스템에 대한 서비스 요구 시 시스템이 응답하기 위한 상태 변환 과정의 작업 단위로 사용된다.

트랜잭션

  • Atomicity, 원자성 트랜잭션의 연산은 데이터베이스에 모두 반영되도록 완료되든지 아니면 전혀 반영되지 않도록 복구되어야 한다.
  • Consistency, 일관성 트랜잭션이 그 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 변환함
  • Isolation, 독립성, 격리성, 순차성 둘 이상의 트랜잭션이 동시에 병행 실행되는 경우 어느 하나의 트랜잭션 실행중에 다른 트랜잭션의 연산이 끼어들 수 없음
  • Durability, 영속성, 지속성 성공적으로 완료된 트랜잭션의 결과는 시스템이 고장나더라도 영구적으로 반영되어야 함

CRUD 분석

  • 프로세스와 테이블 간에 CRUD 매트릭스를 만들어서 트랜잭션을 분석하는 것
  • 많은 트랜잭션이 몰리는 테이블을 파악할 수 있으므로 디스크 구성 시 유용한 자료로 활용할 수 있다.
  • CRUD 매트릭스
    • 2차원 형태의 표로서, 행에는 프로세스를, 열에는 테이블을, 행과 열이 만나는 위치에는 프로세스가 테이블에 발생시키는 변화를 표시하여 프로세스와 데이터 간의 관계를 분석하는 분석표이다.
    • CRUD 매트릭스를 통해 트랜잭션이 테이블에 수행하는 작업을 검증한다.
    • 각 셀에는 Create, Read, Update, Delete의 앞 글자가 들어가며, 복수의 변화를 줄 때는 C > D > U > R의 우선순위를 적용해 한 가지만 적지만, 활용 목적에 따라 모두 기록할 수 있다.
    • CRUD 중 어느 것도 적히지 않은 행이나 열, C나 R이 없는 열을 확인하여 불필요하거나 누락된 테이블 또는 프로세스를 찾는다.

트랜잭션 분석

  • 테이블에 발생하는 트랜잭션의 양을 분석하여 테이블에 저장되는 데이터의 양을 유추하고 이를 근거로 DB의 용량 산정 및 구조의 최적화를 목적으로 한다.
  • 업무 개발 담당자가 수행한다.
  • 프로세스가 과도하게 접근하는 테이블을 확인할 수 있으며, 이러한 집중 접근 테이블을 여러 디스크에 분산 배치함으로써 디스크 입출력 향상을 통한 성능 향상을 가져올 수 있다.
  • 트랜잭션 분석서
    • 단위 프로세스와 CRUD 매트릭스를 이용하여 작성한다.
    • 구성 요소 : 단위 프로세스, CRUD 연산, 테이블명, 컬럼명, 테이블 참조 횟수, 트랜잭션 수, 발생 주기 등

50. 인덱스


인덱스

  • 데이터 레코드를 빠르게 접근하기 위해 <키 값, 포인터> 쌍으로 구성되는 데이터 구조이다.
  • 인덱스는 레코드가 저장된 물리적 구조에 접근하는 방법을 제공한다.
  • 인덱스를 통해서 파일의 레코드에 빠르게 액세스할 수 있다.
  • 레코드의 삽입과 삭제가 수시로 일어나는 경우에는 인덱스의 개수를 최소로 하는 것이 효율적이다.

인덱스의 종류

  • 트리 기반 인덱스
  • 비트맵 인덱스
  • 함수 기반 인덱스
  • 비트맵 조인 인덱스
  • 도메인 인덱스

클러스터드 / 넌클러스터드 인덱스

  • 클러스터드 인덱스
    • 인덱스 키의 순서에 따라 데이터가 정렬되어 저장되는 방식
  • 넌클러스터드 인덱스
    • 인덱스의 키 값만 정려로디어 있고 실제 데이터는 정렬되지 않는 방식

51. 뷰 / 클러스터


  • 하나 이상의 기본 테이블로부터 유도된 이름을 가지는 가상 테이블
  • 뷰를 정의할 때는 CREATE문, 제거할 때는 DROP 문을 사용한다.

뷰의 장단점

  • 장점
    • 논리적 데이터 독립성을 제공함
    • 동일 데이터에 대해 동시에 여러 사용자의 상이한 응용이나 요구를 지원해 줌
    • 사용자의 데이터 관리를 간단하게 해줌
    • 접근 제어를 통한 자동 보안이 제공됨
  • 단점
    • 독립적인 인덱스를 가질 수 없음
    • 뷰로 정의를 변경할 수 없음
    • 뷰로 구성된 내용에 대한 삽입, 삭제, 갱신 연산에 제약이 따름

클러스터

  • 데이터 저장 시 데이터 액세스 효율을 향상시키기 위해 동일한 성격의 데이터를 동일한 데이터 블록에 저장하는 물리적 저장 방법
  • 처리 범위가 넓은 경우에는 단일 테이블 클러스터링을, 조인이 많이 발생하는 경우에는 다중 테이블 클러스터링을 사용한다.

52. 파티션


  • 대용량의 테이블이나 인덱스를 작은 논리적 단위인 파티션으로 나누는 것

장단점

  • 장점

파티션의 종류

  • 범위 분할 : 일별, 월별, 분기별 등 지정한 열의 값을 기준으로 분할
  • 해시 분할 : 해시 함수를 적용한 결과 값에 따라 데이터를 분할. 데이터를 고르게 분산할 때 유용
  • 조합 분할 : 범위분할로 분할한 다음 해시 함수를 적용하여 다시 분할하는 방식

53. 분산 데이터베이스 설계 ⭐


분산 데이터베이스의 목표(투명성)

  • 위치 투명성 : 액세스하려는 데이터베이스의 실제 위치를 알 필요 없이 단지 데이터베이스의 논리적인 명칭만으로 액세스할 수 있다.
  • 중복 투명성 : 동일 데이터가 여러 곳에 중복되어 있더라도 사용자는 마치 하나의 데이터만 존재하는 것처럼 사용하고, 시스템은 자동으로 여러 자료에 대한 작업을 수행한다.
  • 병행 투명성 : 분산 데이터베이스와 관련된 다수의 트랜잭션들이 동시에 실현되더라도 그 트랜잭션의 결과는 영향을 받지 않는다.
  • 장애 투명성 : 트랜잭션, DBMS, 네트워크, 컴퓨터 장애에도 불구하고 트랜잭션을 정확하게 처리한다.

54. 데이터베이스 이중화 / 서버 클러스터링


데이터베이스 이중화의 분류

  • Eager 기법 : 트랜잭션 수행 중 데이터 변경이 발생하면 이중화된 모든 데이터베이스에 즉시 전달하여 변경 내용이 즉시 적용되도록 하는 기법
  • Lazy 기법 : 트랜잭션의 수행이 종료되면 변경 사실을 새로운 트랜잭션에 작성하여 각 데이터베이스에 전달되는 기법. 데이터베이스마다 새로운 트랜잭션이 수행되는 것으로 간주됨

클러스터링

  • 고가용성 클러스터링 : 하나의 서버에 장애가 발생하면 다른 노드(서버)가 받아 처리하여 서비스 중단을 방지하는 방식. 일반적으로 언급되는 클러스터링이 고가용성 클러스터링
  • 병렬 처리 클러스터링 : 전체 처리율을 높이기 위해 하나의 작업을 여러 개의 서버에서 분산하여 처리하는 방식

RTO / RPO

  • RTO : 목표 복구 시간. 비상사태 또는 업무 중단 시점으로부터 복구되어 가동될 때까지의 소요 시간을 의미
  • RPO : 목표 복구 시점. 비상사태 또는 업무 중단 시점으로부터 데이터를 복구할 수 있는 기준점을 의미

55. 데이터베이스 보안


접근통제 3요소

  • 접근통제 정책 : 어떤 주체가 언제, 어디서, 어떤 객체에게, 어떤 행위에 대한 허용 여부를 정의하는 것으로, 신분 기반 정책, 규칙 기반 정책, 역할 기반 정책이 있다.
  • 접근통제 매커니즘 : 정의된 접근통제 정책을 구현하는 기술적인 방법으로, 접근통제 목록, 능력 리스트, 보안 등급, 패스워드, 암호화 등이 있다.
  • 접근통제 보안모델 : 보안 정책을 구현하기 위한 정형화된 모델로, 기밀성 모델, 무결성 모델, 접근통제 모델이 있다.

접근통제 기술

  • 임의 접근통제 (DAC)
    • 데이터에 접근하는 사용자의 신원에 따라 접근 권한 부여
    • 데이터 소유자가 접근통제 권한을 지정하고 제어
    • 객체를 생성한 사용자가 생성된 객체에 대한 모든 권한을 부여받고, 부여된 권한을 다른 사용자에게 허가할 수도 있음
  • 강제 접근통제 ( MAC )
    • 주체와 객체의 등급을 비교하여 접근 권한을 부여하는 방식
    • 시스템이 접근통제 권한을 지정
    • 데이터베이스 객체별로 보안 등급 부여 가능
    • 사용자별로 인가 등급 부여 가능
  • 역할 기반 접근통제 (RBAC)
    • 사용자의 역할에 따라 접근 권한을 부여하는 방식
    • 중앙관리자가 접근통제 권한을 지정
    • 임의 접근통제와 강제 접근통제의 단점을 보완
    • 다중 프로그래밍 환경에 최적화된 방식

접근통제 보안 모델

  • 기밀성 모델
    • 군사적인 목적으로 개발된 최초의 수학적 모델
    • 기밀성 보장이 최우선
    • 군대 시스템 등 특수 환경에서 주로 사용됨
  • 무결성 모델
    • 기밀성 모델에서 발생하는 불법적인 정보 변경을 방지하기 위해 무결성을 기반으로 개발된 모델
  • 접근통제 모델
    • 접근통제 매커니즘을 보안 모델로 발전시킨 것
    • 대표적으로 접근통제 행렬이 있음
    • 접근통제 행렬 : 임의적인 접근통제를 관리하기 위한 보안 모델로, 행은 주체, 열은 객체 즉 행과 열로 주체와 객체의 권한 유형을 나타냄

56. 데이터베이스 백업


로그 파일

  • 로그 파일은 데이터베이스의 처리 내용이나 이용 상황 등 상태 변화를 시간의 흐름에 따라 모두 기록한 파일이다.
  • 로그 파일을 기반으로 데이터베이스를 과거 상태로 복귀시키거나 현재 상태로 재생시켜 데이터베이스 상태를 일관성 있게 유지할 수 있다.

UNDO / REDO

  • 데이터베이스 버퍼의 내용을 동기/비동기적으로 갱신한 경우의 복구 알고리즘
  • 데이터베이스 기록 전에 트랜잭션이 완료될 수 있으므로 완료된 트랜잭션이 데이터베이스에 기록되지 못했다면 다시 실행해야 한다.

57. 스토리지


스토리지의 종류 세 가지

  • DAS, NAS, SAN

DAS

  • 하드디스크와 같은 데이터 저장장치를 호스트 버스 어댑터에 직접 연결하는 방식
  • 저장장치와 호스트 기기 사이에 네트워크 디바이스 없이 직접 연결하는 방식으로 구성

58. 논리 데이터 모델의 변환


엔티티 테이블 변환 규칙

  • 엔티티 → 테이블
  • 속성 → 컬럼
  • 주 식별자 → 기본키
  • 외부 식별자 → 외래키
  • 관계 → 관계

59. 물리 데이터 모델 품질 검토


물리 데이터 모델 품질 기준

  • 정확성 : 데이터 모델이 요구사항이나 업무 규칙, 표기법에 따라 정확하게 표현되었음
  • 완전성 : 데이터 모델이 데이터 모델의 구성 요소를 누락 없이 정의하고 요구사항이나 업무 영역을 누락 없이 반영하였음
  • 준거성 : 데이터 모델이 데이터 표준, 표준화 규칙, 법적 요건 등을 정확하게 준수하였음
  • 최신성 : 데이터 모델이 최근의 이슈나 현행 시스템을 반영하고 있음
  • 일관성 : 데이터 모델이 표현상의 일관성을 유지하고 있음
  • 활용성 : 작성된 모델과 설명을 사용자가 충분히 이해할 수 있고, 업무 변화에 따른 데이터 구조의 변경이 최소화될 수 있도록 설계되었음

60. 자료 구조


배열

  • 크기와 형이 동일한 자료들이 순서대로 나열된 자료의 집합

방향 / 무방향 그래프의 최대 간선 수

  • 방향 그래프의 최대 간선 수 : n * ( n - 1 )
  • 무방향 그래프에서 최대 간선 수 : n * (n - 1) / 2

선형 리스트

  • 연속 리스트
    • 배열과 같이 연속되는 기억장소에 저장되는 자료 구조
    • 기억장소를 연속적으로 배정받기 때문에 중간에 데이터를 삽입하기 위해서는 연속된 빈 공간이 있어야 하며, 삽입 삭제 시 자료의 이동이 필요
  • 연결 리스트
    • 자료들을 반드시 연속적으로 배열시키지는 않고 임의의 기억공간에 기억시키되, 자료 항목의 순서에 따라 노드의 포인터 부분을 이용하여 서로 연결시킨 자료 구조
    • 노드의 삽입 삭제 작업이 용이하지만, 연결을 위해 포인터를 사용하기 때문에 기억 공간의 이용 효율과 접근 속도가 좋지 않다.

61. 트리 ⭐


  • 근 노드 : 트리의 맨 위에 있는 노드
  • 디그리 : 각 노드에서 뻗어나온 가지의 수
  • 단말 노드 : 자식이 하나도 없는 노드, 즉 Degree가 0인 노드
  • 비단말 노드 : 자식이 하나라도 있는 노드, 즉 Degree가 0이 아닌 노드
  • 조상 노드 : 임의의 노드에서 근 노드에 이르는 경로상에 있는 노드들
  • 자식 노드 : 어떤 노드에 연결된 다음 레벨의 노드들
  • 부모 노드 : 어떤 노드에 연결된 이전 레벨의 노드들
  • 형제 노드 : 동일한 부모를 갖는 노드들
  • 트리의 디그리 : 노드들의 디그리 중에서 가장 많은 수

62. 이진 트리 ⭐


Prefix로 바꾸기

  • 연산 우선순위에 따라 괄호로 묶는다
  • 연산자를 해당 괄호의 앞으로 옮긴다
  • 괄호를 제거한다

Postfix로 바꾸기

  • 연산 우선순위에 따라 괄호로 묶는다
  • 연산자를 해당 괄호의 뒤로 옮긴다
  • 괄호를 제거한다

63. 정렬 ⭐


선택 정렬

n개의 레코드 중에서 최소값을 찾아 첫 번째 레코드 위치에 놓고, 나머지 n-1개 중에서 다시 최소값을 찾아 두 번째 레코드 위치에 놓는 방식을 반복

삽입 정렬

이미 순서화된 파일에 새로운 하나의 레코드를 순서에 맞게 삽입시켜 정렬하는 방식

퀵 정렬

키를 기준으로 작은 값은 왼쪽, 큰 값은 오른쪽 서브 파일에 분해시키는 과정을 반복하는 정렬 방식

버블 정렬

인접한 두 개의 레코드 키 값을 비교하여 크기에 따라 레코드 위치를 서로 교환하는 정렬 방식. On**2

profile
개발자 헤이린 🔜 프로덕트 매니저로 나아가는 중!

0개의 댓글