정보처리기사 시험준비 (20일차)

모코코개발자·2024년 3월 23일
post-thumbnail

2장 데이터 입출력 구현

무결성

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

  • 개체무결성 : 테이블의 기본키를 구성하는 어떤 속성도 NULL값이나 중복값을 가질 수 없다.

  • 도메인 무결성
    : 릴레이션 내의 튜플들이 각 속성의 도메인에 지정된 값만을 가져야한다.

  • 참조무결성
    : 외래키 값은 NULL값이나 참조 릴레이션의 기본키 값과 동일해야한다. 참조할 수 없는 외래키 값을 가질 수 없다.

  • 사용자 정의 무결성
    : 속성값들이 사용자가 정의한 제약조건에 만족해야함

  • 키 무결성
    : 하나의 릴레이선에는 적어도 하나의 키가 존재해야한다는 규정

  • 관계 무결성
    : 릴레이션에 어느 한 튜플의 삽입 가능 여부 또는 관계에 대한 적절성 여부를 지정한 규정

관계대수 vs 관계해석

관계대수

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

  • 순수 관계 연산자 : select, project, join, division
  • 일반 집합 연산자 : 합집합, 교집합, 차집합, 교차곱 (차수는 더하고, 카디널리티는 곱하면 값이 나옴)

관계해석

: 관계 데이터의 연산을 표현하는 방법.
: 코드가 제안. 술어해석에 기반을 두고있음. 비절차적 특성을 지님

이상 (중요)

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

  • 삽입 이상 : 테이블에 데이터를 삽입할 때 의도와는 상관없이 원하지 않는 값들로 인해 삽입할 수 없게 되는 현상

  • 삭제 이상 : 테이블에서 한 튜플을 삭제할 때 의도와는 상관없는 값들도 함께 삭제되는 현상

  • 갱신 이상 : 테이블에서 튜플에 있는 속성값을 갱신할 때 일부 튜플의 정보만 갱신되어 정보에 불일치성이 생기는 현상

정규화

: 하나의 종속성이 하나의 릴레이션에 표현될 수 있도록 분해하는 과정

비정규릴레이션 -> 1정규형 -> 2정규형 -> 3정규형 -> BCNF -> 4정규형 -> 5정규형

'두부이걸다줘' 도부이결다조

도메인이 원자값 : 1정규형
부분적 함수 종속 제거 : 2정규형
이행적 함수 종속 제거 : 3정규형
결정자이면서 후보키가 아닌 것을 제거 : BCNF
다치종속 제거, 조인종속성 이용 : 5정규형

  • 함수적 종속
    ex) 학번과 이름

  • 이행적 함수 종속
    X로 Y를 알수 있고 Y로 Z를 알수 있고 X로 Z를 알 수 있음.
    X->Y, Y->Z, X->Z

  • 부분 함수적 종속

반정규화

: 정규화를 의도적으로 위배하는 행위

: 시스템의 성능향상, 개발 및 운영의 편의성 등을 위해 정규화 된 데이터 모델을 통합, 중복, 분리하는 과정. 성능이 향상되고 효율성은 증가하지만 데이터의 일관성 및 정합성이 저하될 수 있다.

  • 테이블 통합 : 조인되는 경우가 많아서 하나의 테이블로 합쳐 사용하는 것, 1:1, 1:N
  • 테이블 분할 : 테이블을 수직 또는 수평으로 분할
  • 중복 테이블 추가 : 집계테이블 추가, 진행 테이블 추가, 특정 부분만을 포함하는 테이블 추가
  • 중복 속성 추가 : 자주 사용하는 속성을 하나 더 추가하는 것

트랜잭션

: 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산들을 의미

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

: 사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위해 하나이상의 기본 테이블로 부터 유도된 이름을 가지는 가상 테이블

파티션

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

  • 범위 분할 : 지정한 열의 값을 기준으로 분할
  • 해시 분할 : 해시함수를 적용한 결과값에 따라 데이터를 분할
  • 조합 분할 : 범위분할로 분할한 다음에 해시함수를 적용해서 다시 분할하는 방식

데이터베이스 이중화

: 시스템 오류로 인한 데이터베이스 서비스 중단이나 물리적 손상 발생시 이를 복구하기 위해 동일한 데이터나 데이터베이스를 복제하여 관리하는 것

분류

  • Eager 기법 : 트랜잭션 수행 중 데이터 변경이 발생하면 이중화된 모든 데이터베이스에 즉시 전달하여 변경내용이 즉시 적용되는 기법

  • Lazy 기법 : 트랜잭션 수행이 종료되면 변경사실을 새로운 트랜잭션에 작성하여 각 데이터베이스에 전달하는 기법

구성방법

  • 활동 - 대기 방법 : 대기하고 있다가 장애발생시 대신 수행
  • 활동 - 활동 방법 : 두개가 서로다른 서비스를 제공하다가 한쪽에 문제가 발생하면 나머지 DB가 서비스 제공

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

데이터베이스 보안

  • 접근통제 : 데이터가 저장된 객체와 이를 사용하려는 주체 사이의 정보 흐름을 제한하는 것

접근통제 3요소

  • 접근통제 정책 : 누가 언제 어디서 어떤 객체에게 어떤 행위에 대한 허용여부를 정의하는 것
  • 접근통제 메커니즘 : 정의된 접근통제 정책을 구현하는 기술적인 방법
  • 접근통제 보안모델 : 보안 정책을 구현하기 위한 정형화된 모델

접근통제 기술

  • 임의 접근 통제(DAC) : 데이터에 접근하는 사용자의 신원에 따라 접근 권한을 부여하는 방식
  • 강제 접근 통제(MAC) : 주체와 객체의 등급을 비교해 접근 권한을 부여하는 방식
  • 역할 기반 접근 통제(RBAC) : 사용자 역할에 따라 접근 권한을 부여하는 방식

로그파일

: 데이터베이스의 처리내용이나 이용 상황 등 상태변화를 시간의 흐름에 따라 모두 기록한 파일

  • UNDO : 로그에 보관한 정보를 이용하여 가장 최근에 변경된 내용부터 거슬러 올라가면서 트랜잭션 작업을 취소하여 원래의 데이터베이스로 복구함

  • REDO : 가장 최근의 정상적인 데이터베이스로 회복시킨 후 트랜잭션을 재실행 시킴

스토리지

: 단일 디스크로는 처리할 수 없는 대용량의 데이터를 저장하기 위해 서버와 저장장치를 연결하는 기술

  • DAS : 서버와 저장장치를 전용 케이블로 직접 연결하는 방식
  • NAS : 서버와 저장장치를 네트워크를 통해서 연결하는 방식. 다른서버에서도 스토리지에 접근할 수 있다.
  • SAN : DAS의 빠른 처리와 NAS의 파일공유 장점을 혼합한 방식. 서버와 저장장치를 연결하는 전용 네트워크를 별도로 구성하는 방식

자료구조

선형구조

  • 배열, 스택, 큐, 데크, 선형리스트(연속리스트, 연결리스트)

비선형구조

  • 트리, 그래프

그래프의 최대 간선 수

방향 그래프 : n(n-1)
무방향 그래프 : n(n-1) / 2
(n은 정점의 수)

트리의 운행법 (preorder, inorder, postorder) (중요)

  • preorder : 루트 -> LEFT -> RIGHT
  • inorder : L -> 루트 -> R
  • postorder : L -> R -> 루트

수식의 표기법

  • 전위표기법 : 연산자 -> L -> R
  • 중위표기법 : L -> 연산자 -> R
  • 후위표기법 : L -> R -> 연산자

3456+ Postfix (후위 표기법 전환 과정)
1. 스택에 3 삽입
2. 4 삽입
3. 연산 -> 12
4. 5 삽입
5. 6 삽입
6.
연산 -> 30
7. + 연산 -> 12 + 30 = 42

정렬

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

1 회전) 8 5 6 2 4
2 회전) 5 8 6 2 4
3 회전) 5 6 8 2 4
4 회전) 2 5 4 8 4
5 회전) 2 4 5 6 8

  • 선택 정렬 : 최소값을 찾아 첫번째 레코드 위치에 놓고, 나머지 중에서 다시 최소값을 찾아 두번째 레코드 위치에 놓는 방식

1 회전) 8 5 6 2 4
2 회전) 2 5 6 8 4
3 회전) 2 4 6 8 5
4 회전) 2 4 5 8 6
5 회전) 2 4 5 6 8

  • 버블 정렬 : 주어진 파일에서 인접한 두개의 레코드를 비교하여 그 크기에 따라 레코드 위치를 서로 교환하는 정렬

8 5 6 2 4

1 회전) 5 8 6 2 4 -> 5 6 8 2 4 -> 5 6 2 8 4 -> 5 6 2 4 8
2 회전) 5 6 2 4 8 -> 5 2 6 4 8 -> 5 2 4 6 8
3 회전) 5 2 4 6 8 -> 2 5 4 6 8 -> 2 4 5 6 8

3장 통합 구현

통합 구현

: 사용자의 요구사항에 맞춰 송수신 모듈과 중계모듈간의 연계를 구현하는 것을 의미

XML (중요)

: 특수한 목적을 갖는 마크업 언어를 만드는데 사용되는 다목적 마크업 언어

  • 특수한 목적?
    : 웹 브라우저간 HTML문법이 호환되지 않는 문제, SGML의 복잡함을 해결하기 위해서 개발

SOAP

: 컴퓨터 네트워크 상에서 HTTP, HTTPS, SMTP 등을 이용하여 XML을 교환하기 위한 통신 규약

  • 웹서비스에서 사용되는 메시지의 형식과 처리방법을 지정
  • 기본적으로 HTTP 기반에서 동작하기 때문에 프록시와 방화벽의 영향없이 통신 가능
  • 최근에는 무거운 구조의 SOAP대신 RESTful 프로토콜을 사용

WSDL

: 웹서비스와 관련된 서식이나 프로토콜 등을 표준적인 방법으로 기술하고 게시하기 위한 언어

UDDI

: 기업이나 단체, 개인이 자신들의 서비스 내용을 인터넷상에 등록할 수 있게하는 XML기반의 등록처

profile
모코코개발자

0개의 댓글