정보처리기사

[정보처리기사] 실기 - 데이터 입출력

2023. 4. 14. 23:41
목차
  1. 데이터 전환
  2. 데이터 검증
  3. 오류 데이터 측정 및 정제
  4. 데이터베이스
  5. DBMS
  6. 스키마
  7. 데이터베이스 설계 순서
  8. 개념적 설계
  9. 논리적 설계
  10. 물리적 설계
  11. 데이터 모델
  12. 개체
  13. 관계
  14. E-R 모델
  15. 관계형 데이터베이스의 릴레이션 구조
  16. 후보키
  17. 기본키
  18. 대체키
  19. 슈퍼키
  20. 외래키
  21. 무결성
  22. 관계 대수
  23. 순수 관계 연산자
  24. 일반 집합 연산자
  25. 관계 해석
  26. 이상
  27. 함수적 종속
  28. 완전 함수적 종속
  29. 부분 함수적 종속
  30. 정규화
  31. 정규화 과정 정리
  32. 반정규화
  33. 중복 테이블 추가
  34. 시스템 카탈로그
  35. 트랜잭션
  36. 트랜잭션 특성
  37. CRUD 분석
  38. 인덱스
  39. 클러스터드/넌클러스터드 인덱스
  40. 뷰
  41. 파티션
  42. 파티션 종류
  43. 분산 데이터베이스의 목표
  44. RTO/RPO
  45. 암호화
  46. 임의 접근 통제 (DAC)
  47. 강제 접근 통제 (MAC)
  48. 역할 기반 접근 통제 (RBAC)
  49. 스토리지 (Storage)
  50. DAS 
  51. NAS
  52. SAN
  53. 자료 구조
  54. 배열
  55. 스택
  56. 큐
  57. 그래프
  58. 방향/무방향 그래프 최대 간선 수
  59. 트리
  60. 트리 관련 용어
  61. Preorder 
  62. Inorder
  63. Postorder
  64. Infix , Prefix, Postfix
  65. 삽입 정렬 
  66. 선택 정렬
  67. 버블 정렬
  68. 퀵 정렬
  69. 힙 정렬
  70. 합병 정렬

데이터 전환

  • 운영 중인 데이터를 추출하여 변환한 후 적재하는 과정
  • Data Migration 이라고도 함

 

데이터 검증

  • 원천 시스템의 데이터를 목적 시스템의 데이터로 전환하는 과정이 정상적으로 수행되었는지 여부 확인 과정

 

오류 데이터 측정 및 정제

  • 고품질 데이터를 운영 및 관리하기 위해 수행
  • 데이터 품질 분석 --> 오류 데이터 측정 --> 오류 데이터 정제

 

데이터베이스

  • 공동 사용 데이터를 중복 배제 후 통합하고 저장장치에 저장하여 항상 사용할 수 있도록 운영하는 운영 데이터
  • 통합 데이터 (Integrated Data) : 자료 중복 배제한 데이터 모임
  • 저장된 데이터(Stored Data) : 컴퓨터가 접근할 수 있는 저장 매체에 저장된 자료
  • 운영 데이터(Operational Data) : 조직의 고유한 업무를 수행하는데 반드시 필요한 자료
  • 공용 데이터(Shared Data) : 여러 응용 시스템들이 공동으로 소유하고 유지하는 자료

 

DBMS

  • 사용자 요구에 따라 정보를 생성해주고, 데이터베이스를 관리해주는 소프트웨어
  • 필수 3가지 기능 (정의, 조작 , 제어 기능)

 

스키마

  • 데이터베이스의 구조와 제약조건에 전반적인 명세 기술
  • 외부 스키마 : 데이터베이스의 논리적 구조 정의
  • 개념 스키마 : 하나만 존재
  • 내부 스키마 : 물리적 저장장치의 입장에서 본 데이터베이스 구조

 

데이터베이스 설계 순서

  • 요구 조건 분석 (명세서 작성)
  • 개념적 설계 (개념 스키마, 트랜잭션 모델링, E-R 모델)
  • 논리적 설계 (논리 스키마 , 트랜잭션 인터페이스 설계)
  • 물리적 설계 (물리적 구조의 데이터로 변환)
  • 구현 (DDL로 데이터 베이스 생성, 트랜잭션 작성)

 

개념적 설계

  • 현실 세계에 대한 인식을 추상적 개념으로 표현하는 과정

 

논리적 설계

  • 현실 세계에서 발생하는 자료를 특정 DBMS가 지원하는 논리적 자료 구조로 변환 시키는 과정

 

물리적 설계

  • 논리적 설계에서 논리적 구조로 표현된 데이터를 물리적 구조의 데이터로 변환하는 과정

 

데이터 모델

  • 현실 세계의 정보들을 체계적으로 표현한 개념적 모형
요소 내용
구조 논리적 표현된 개체 타입들 간의 관계
연산 데이터베이스를 조작하는 기본 도구
제약 조건 실제 데이터의 논리적 제약 조건

 

개체

  • 개념이나 정보 단위 같은 현실 세계의 대상

 

관계

  • 개체와 개체 사이의 논리적인 연결을 의미한다.
  • 일 대 일 (1:1)
  • 일 대 다 (1:N)
  • 다 대 다 (N:M)

 

E-R 모델

  • 현실 세계의 무질서한 데이터를 개념적인 논리 데이터로 표현하기 위한 방법
  • 사각형 : 개체 타입
  • 마름모 : 관계 타입
  • 타원 : 속성
  • 이중 타원 : 다중값 속성
  • 밑줄 타원 : 기본키 속성
  • 복수 타원 : 복합 속성
  • 관계 : 1:1, 1:N, N:M 
  • 선 링크 : 개체 타입과 속성을 연결

 

관계형 데이터베이스의 릴레이션 구조

  • 튜플 : 릴레이션 구성하는 각각의 행 ( 튜플의 수 = 카디널리티)
  • 속성 : 데이터베이스 구성하는 가장 작은 논리적 단위 ( 속성의 수 = 디그리 , 차수 )
  • 도메인 : 하나의 애트리뷰트가 취할 수 있는 같은 타입의 원자값들의 집합

 

후보키

  • 속성들 중 튜플을 유일하게 식별하기 위해 사용되는 속성들의 부분집합
  • 유일성, 최소성 만족

 

기본키

  • 후보키 중 특별히 선정된 주키
  • NULL, 중복 불가

 

대체키

  • 후보키 중 기본키를 제외한 나머지 키들 (= 보조키라고도 함)

 

슈퍼키

  • 속성들의 집합으로 구성된 키
  • 유일성은 만족 , 최소성은 불만족

 

외래키

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

 

무결성

  • 데이터베이스에 저장된 데이터 값과 현실 세계의 실제값이 일치하는 정확성을 의미
  • 개체 무결성 : 기본 테이블의 기본키를 구성하는 어떤 속성도 NULL이나 중복값 못가짐
  • 참조 무결성 : 외래키 값은 Null이거나 참조 릴레이션의 기본키 값과 동일해야 한다.

 

관계 대수

  • 원하는 정보와 그 정보를 검색하기 위해 어떻게 유도하는가를 기술하는 절차적 언어

 

순수 관계 연산자

  • Select : 선택 조건 만족하는 부분집합 구하기
  • Project : 제시된 속성 값만 추출해 새로운 릴레이션 만들기
  • Join : 합치기
  • Division : 제외한 속성만 구하는 연산

 

일반 집합 연산자

  • 합집합 (UNION)
  • 교집합 (INTERSECTION)
  • 차집합 (DIFFERENCE)
  • 교차곱 (CARTESIAN PRODUCT)

 

관계 해석

  • 관계 데이터의 연산을 표현하는 방법
  • E. F. Codd 가 제안
  • 비절차적 특성을 지니며 질의어로 표현

 

이상

  • 데이터들이 불필요하게 중복되어 릴레이션 조작 시 예기치 않게 발생하는 곤란한 현상
  • 삽입 이상(Insertion Anomaly) : 원하지 않는 값들로 인해 삽입 불가한 현상
  • 삭제 이상(Deletion Anomaly) : 의도와는 상관없는 값들도 함께 삭제되는 현상
  • 갱신 이상(Update Anomaly) : 갱신 시 일뷰 튜플 정보만 갱신되어 정보의 불일치성이 생기는 현상

 

함수적 종속

  • 속성 X의 값 각각에 대해 항상 속성 Y의 값이 하나만 연관되어 있을 때 Y는 X에 함수적 종속이라고 함 (X -> Y 표현)

 

완전 함수적 종속

  • 속성 Y가 X 전체에 대해 종속이면서, X의 어떠한 진부분집합Z에도 함수적 종속이 아닐 때 완전 함수적 종속이라고 함

 

부분 함수적 종속

  • Y가 X전체에 함수적 종속이면서 X의 진부분 집합에 대해 함수적 종속일 때 부분 함수적 종속이라고 함

 

정규화

  • 테이블의 속성들이 상호 종속적인 관계를 갖는 특성을 이용해 테이블을 무손실 분해하는 과정
  • 중복을 제거하여 삽입 삭제 갱신 이상의 발생 가능성을 줄이기 위한 것

 

정규화 과정 정리

  • 비정규 릴레이션 
  • (도메인이 원자 값)
  • 1NF
  • (부분적 함수 종속 제거)
  • 2NF
  • (이행적 함수 종속 제거)
  • 3NF
  • (결정자 이면서 후보키 아닌것 제거)
  • BCNF
  • (다치 종속 제거)
  • 4NF
  • (조인 종속성 이용)
  • 5NF 

--> 도부이결다조

 

반정규화

  • 정규화된 데이터 모델을 의도적으로 통합, 중복, 분리하여 정규화 원칙을 위배하는 행위
  • 성능 향상, 관리 효율성은 증가하지만 데이터 일관성 및 정합성이 저하될 수 있음
  • 과도하면 오히려 성능 저하

 

중복 테이블 추가

  • 중복 테이블 추가는 작업의 효율성을 향상 시키기 위해 테이블을 추가하는 것이다.
집계 테이블 추가 집계 데이터를 위한 테이블을 생성하고, 각 원본 테이블에 트리거를 설정하여 사용하는 것
진행 테이블 추가 이력 관리 등의 목적으로 추가하는 테이블
특정 부분만을 포함하는 테이블 추가 데이터가 많은 테이블의 특정 부분만을 사용하는 경우 해당 부분만으로 새로운 테이블 생성

 

시스템 카탈로그

  • 다양한 객체에 관한 정보를 포함하는 시스템 데이터베이스
  • 카탈로그 생성 --> 데이터 사전에 저장 
  • 좁은 의미로 카탈로그를 데이터 사전이라고도 한다.

 

트랜잭션

  • 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산

 

트랜잭션 특성

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

 

CRUD 분석

  • 프로세스와 테이블 간 CRUD 매트릭스를 만들어 트랜잭션을 분석하는 것

 

인덱스

  • 데이터 레코드를 빠르게 접근하기 위해 <키 값, 포인터> 쌍으로 구성되는 데이터 구조
  • 레코드가 저장된 물리적 구조에 접근하는 방법 제공
  • 빠르게 액세스 가능

 

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

  • 클러스터드 : 인덱스 키 순서에 따라 데이터가 정렬되어 저장되는 방식 (데이터 빠르게 찾기 가능)
  • 넌클러스터드 : 인덱스 키 값만 정렬 ,데이터는 정렬 XX (데이터 삽입, 삭제 발생시 데이터 재정렬 해야함)

 

뷰

  • 하나 이상의 기본 테이블로부터 유도된 가상 테이블
  • 정의 : CREATE , 삭제 : DROP

 

파티션

  • 대용량의 테이블이나 인덱스를 작은 논리적 단위인 파티션으로 나누는 것
  • 데이터 처리는 테이블 단위, 데이터 저장은 파티션별로 수행

 

파티션 종류

범위 분할 (Range Partitoning) 지정한 열의 값을 기준으로 분할
해시 분할 (Hash Partitioning) - 해시 함수 적용 결과 값에 따라 데이터 분할
- 데이터 고르게 분산할 때 유용
- 고객번호, 주민번호 등과 같이 데이터가 고른 컬럼에 효과적
조합 분할 (Composite Partitioning) 범위 분할로 분할하고 해시 함수 적용해 다시 분할

 

분산 데이터베이스의 목표

위치 투명성 (Location Transparency) 실제 위치 알 필요 X, 논리적 명칭으로 액세스 O
중복 투명성 (Replication Transparency) 중복되어 있어도, 하나의 데이터만 존재하는 것처럼 사용
병행 투명성 (Concurrency Transparency) 다수 트랜잭션 동시 실현 --> 트랜잭션 결과는 영향을 받지 X
장애 투명성 (Failure Transparency) 장애에도 불구하고 트랜잭션을 정확하게 처리함)

 

RTO/RPO

  • RTO : 목표 복구 시간 , 업무 중단 시점으로부터 복구되어 가동될 때까지의 소요시간을 의미
  • RPO : 목표 복구 시점 , 업무 중단 시점으로부터 복구할 수 있는 기준점을 의미

 

암호화

  • 암호화(Encryption) : 평문을 암호문으로 바꾸는 과정
  • 복호화(Decryption) : 암호문을 평문으로 바꾸는 과정
  • 암호화 기법 : 개인키 암호 방식, 공개키 암호 방식

 

임의 접근 통제 (DAC)

  • 데이터에 접근하는 사용자의 신원에 따라 접근 권한을 부여하는 방식
  • 데이터 소유자가 접근 통제 권한을 지정 및 제어

 

강제 접근 통제 (MAC)

  • 주체와 객체의 등급을 비교하여 접근 권한을 부여하는 방식
  • 시스템이 접근 통제 권한을 지정 및 제어

 

역할 기반 접근 통제 (RBAC)

  • 사용자 역할에 따라 접근 권한을 부여하는 방식
  • 중앙관리자가 접근 통제 권한을 지정

 

스토리지 (Storage)

  • 대용량 데이터를 저장하기 위해 서버와 저장장치를 연결하는 기술
  • DAS , NAS , SAN

 

DAS 

  • 서버와 저장장치를 전용 케이블로 직접 연결(Direct) 하는 방식
  • ex) 외장하드 연결
  • 다른 서버에서 접근이 불가하고 파일 공유 X

 

NAS

  • 서버와 저장장치를 네트워크를 통해 연결하는 방식
  • 다른 서버에서도 스토리지 접근 O , 파일 공유 O

 

SAN

  • 서버와 저장장치를 연결하는 전용 네트워크를 별도로 구성하는 방식
  • 광 채널 스위치를 이용, 처리 속도가 빠름
  • 파일 공유 O

 

자료 구조

  • 자료를 저장하는 방법과 자료간의 관계, 처리 방법 등을 연구 분석하는 것
  • 선형 구조 : 배열 , 선형 리스트, 스택 , 큐 , 데크
  • 비선형 구조 : 트리, 그래프

 

배열

  • 크기와 형이 동일한 자료들이 순서대로 나열된 자료의 집합
  • 반복적인 데이터 처리 작업에 적합한 구조
  • 정적인 자료 구조, 기억장소의 추가가 어려움

 

스택

  • 후입선출 (LIFO)
  • 저장 공간 없는데 데이터 삽입 --> 오버플로우
  • 삭제 데이터 없는데 데이터 삭제 --> 언더플로우

 

큐

  • 선입선출 (FIFO)
  • 시작 표시 프런트, 끝 표시 리어 (rear)

 

그래프

  • 정점과 , 간선으로 이루어지는 자료구조
  • 방향, 무방향 그래프

 

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

  • 방향 : n(n-1)
  • 무방향 : n(n-1)/2

 

트리

  • 정점과 선분을 이용해 사이클을 이루지 않도록 구성한 그래프의 특수 형태
  • 노드와 , 링크 존재

 

트리 관련 용어

  • 노드 : 트리 기본 요소 
  • 근노드 : Root 노드
  • 디그리 (차수) : 노드에서 뻗어나온 가지 수
  • 단말 노드 : 자식 없는 노드
  • Level : Level 이 L이면, 자식은 L+1
  • 깊이 : Tree에서 노드가 가질 수 있는 최대 레벨
  • 숲 : 여러개 트리가 모여 있는 것
  • 트리의 디그리 : 가장 높은 디그리 

 

Preorder 

  • Root -> Left -> Right

 

Inorder

  • Left -> Root -> Right

 

Postorder

  • Left -> Right -> Root

 

Infix , Prefix, Postfix

  • infix : A+B
  • prefix : +AB
  • postfix : AB+

 

삽입 정렬 

  • 두번째 값부터 앞의 값들과 비교하며 정렬하는 방법 (순서에 맞게 삽입)
  • 시간 복잡도 O(n^2)

 

선택 정렬

  • 첫번째 값부터 뒤의 모든 값들과 비교하며 정렬하는 방식
  • 시간 복잡도 O(n^2)

 

버블 정렬

  • 인접한 레코드 키 값을 비교하여 교환하는 정렬 방식 
  • 시간 복잡도 O(n^2)

 

퀵 정렬

  • 키를 기준으로 작은 값 왼쪽, 큰 값 오른쪽
  • 평균 시간 복잡도 O(nlogn)
  • 최악 수행 시간 복잡도 O(n^2)

 

힙 정렬

  • 전이진 트리를 이용한 정렬 방식
  • 시간 복잡도 O(nlogn)

 

합병 정렬

  • 이미 정렬되어 있는 두 개 파일을 한 개의 파일로 합병하는 정렬 방식
  • 시간 복잡도 O(nlogn)
  1. 데이터 전환
  2. 데이터 검증
  3. 오류 데이터 측정 및 정제
  4. 데이터베이스
  5. DBMS
  6. 스키마
  7. 데이터베이스 설계 순서
  8. 개념적 설계
  9. 논리적 설계
  10. 물리적 설계
  11. 데이터 모델
  12. 개체
  13. 관계
  14. E-R 모델
  15. 관계형 데이터베이스의 릴레이션 구조
  16. 후보키
  17. 기본키
  18. 대체키
  19. 슈퍼키
  20. 외래키
  21. 무결성
  22. 관계 대수
  23. 순수 관계 연산자
  24. 일반 집합 연산자
  25. 관계 해석
  26. 이상
  27. 함수적 종속
  28. 완전 함수적 종속
  29. 부분 함수적 종속
  30. 정규화
  31. 정규화 과정 정리
  32. 반정규화
  33. 중복 테이블 추가
  34. 시스템 카탈로그
  35. 트랜잭션
  36. 트랜잭션 특성
  37. CRUD 분석
  38. 인덱스
  39. 클러스터드/넌클러스터드 인덱스
  40. 뷰
  41. 파티션
  42. 파티션 종류
  43. 분산 데이터베이스의 목표
  44. RTO/RPO
  45. 암호화
  46. 임의 접근 통제 (DAC)
  47. 강제 접근 통제 (MAC)
  48. 역할 기반 접근 통제 (RBAC)
  49. 스토리지 (Storage)
  50. DAS 
  51. NAS
  52. SAN
  53. 자료 구조
  54. 배열
  55. 스택
  56. 큐
  57. 그래프
  58. 방향/무방향 그래프 최대 간선 수
  59. 트리
  60. 트리 관련 용어
  61. Preorder 
  62. Inorder
  63. Postorder
  64. Infix , Prefix, Postfix
  65. 삽입 정렬 
  66. 선택 정렬
  67. 버블 정렬
  68. 퀵 정렬
  69. 힙 정렬
  70. 합병 정렬
'정보처리기사' 카테고리의 다른 글
  • [정보처리기사] 실기 - 인터페이스 구현
  • [정보처리기사] 실기 - 서버 프로그램 구현
  • [정보처리기사] 실기 - 통합 구현
  • [정보처리기사] 실기 - 요구사항 확인
엥재
엥재
Development Blog
엥재
Zerozae
엥재
전체
오늘
어제
  • 분류 전체보기
    • ABAP
    • 데브코스
      • TIL
    • AWS
    • Error
    • 정보처리기사
    • SQLD
    • CS
      • HTTP
      • DataBase
      • OS
    • 기타
      • 가상 면접 사례로 배우는 대규모 시스템 설계 기초
    • Programming
      • 기타
      • Spring
      • Java

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • di
  • 데브코스
  • 스프링 빈
  • IoC컨테이너
  • 싱글톤 컨테이너
  • 빈 생명주기
  • 의존관계 주입
  • 프로그래머스
  • 스프링
  • 데몬스레드
  • 함수형 인터페이스
  • 퍼사드 패턴
  • 상태 제어
  • http 상태코드
  • 스프링 컨테이너
  • 빈 스코프
  • 퍼사드
  • 상태코드
  • 의존관계
  • 캐시가능
  • DI컨테이너
  • 자바 Thread
  • 어댑터 패턴
  • 요구사항 확인
  • 교착 상태
  • 디자인 패턴
  • 백엔드 데브코스
  • 컴포넌트 스캔
  • HTTP 메서드
  • HTTP

최근 댓글

최근 글

hELLO · Designed By 정상우.
엥재
[정보처리기사] 실기 - 데이터 입출력
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.