ETC/ETC

[정보처리기사] 오답 개념정리

dev.pudding 2024. 2. 14. 09:27
728x90

관계대수

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

 

순수 관계 연산자 

  • Select( σ ) - 튜플의 부분집합 구하기
  • Project( π ) - 속성값 추출
  • Join( ▷◁)   -  두 개의 릴레이션을 하나로 합쳐서 새로운 릴레이션 만들기
  • Division( ÷ ) - X ) Y 인 릴레이션 R(X)와 S(Y)가 있을 때, R의 속성이 S의 속성값을 모두 가진 튜플에서 S가 가진 속성을 제외시킴 

병행제어 기법 종류 

  • Locking
  • Optimistic Validation - 어떠한 검증도 없이 수행한 후 , 종료시 검증을 수행 
  • Time Stamp Ordering
  • 다중버전 동시성제어(Multi Version Concurrency Control) - 트랜잭션의 타임스탬프와 접근하려는 데이터의 타임스탬프를 비교하여 직렬가능성이 보장되는 적절한 버전을 선택하여 접근하도록 하는 기법 

데이터베이스 설계순서 

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

개눈물...(개논물....)

 

수평분할(Horizontal Partitioning)

테이블을 행(Row) 단위로 나누는 것을 의미한다.

ex) 미국사는 고객이랑 한국사는 고객들이랑 분할

 

수평분할(row partitioning) OR 수직분할(vertical partitioning)

데이터 양이 많으면 row partioning, 컬럼 수가 많으면 vertical partitioning

분할 기법 

범위 분할(Range Partitioning)

  • 분할 키값이 범위내에 있는지 여부로 구분

목록 분할(List Partitioning)

  • 특정 컬럼의 특정 값을 기준으로 파티셔닝
  • Country라는 컬럼값이 China,Korea,Japan,Germany,Poland 중 하나의 행을 빼낼 때 유럽국가 파티션을 구축할 수 있다.
  • 특정 파티션에 저장될 데이터에 대한 명시적 제어가 가능하며 주로 이질적인 값이 많지 않고, 분포도가 비슷한걸 비교할때 씀

해시 분할(Hash Partitioning)

  • 해시 함수의 값에 따라 파티션에 포함될지 여부를 결정
  • 데이터의 관리보다는 성능 향상에 목적을 둔다
  • 예를 들어, 4개의 파티션으로 분할하는 경우 해시함수는 0-3의 정수를 돌려준다(균등한 분포도를 가질 수 있도록 조율)

합성분할(Composite Partitioning)

  • 상기 기술을 결합하는 것을 의미한다. 예를 들면 먼저 범위 분할을 하고, 다음에 해시 분할 같은 것을 생각한다. 

라운드 - 로빈 분할(Round Robin Partitioning)

  • 파티션의 행의 고른 분포를 원할 때 사용한다. 
  • 회전하면서 새로운 행이 파티션에 할당된다.
  • 하나의 중앙처리장치를 임의의 프로세스가 종료될 때까지 차지하는 것이 아니라, 여러 프로세스들이 중앙처리장치를 조금씩 돌아가며 할당받아 실행되는 방식으로, 리눅스를 포함한 대부분의 시스템에서 사용하는 방식이다. 

스키마

  • 한 개의 릴레이션의 논리적인 구조를 정의한 것으로 릴레이션의 이름과 릴레이션에 포함된 속성들의 집합을 의미 
  • 시간에 따라 불변인 특성을 갖는다
  • 특정 데이터 모델을 이용해서 만들어진다
  • 데이터의 구조적 특성을 의미하며, 인스턴스에 의해 규정된다

 

외부 스키마(External Schema)

  • 사용자나 응용 프로그래머가 각 개인의 입장에서 필요로 하는 DB의 논리적 구조를 정의한 것
  • 전체 DB의 한 논리적인 부분으로 볼 수 있으므로 '서브 스키마'라고 한다
  • 같은 데이터베이스에 대해서도 서로 다른 관점을 정의할 수 있도록 한다
  • 일반 사용자는 SQL을 통하여 DB를 쉽게 사용가능하다
  • 응용 프로그래머는 C언어,COBOL 등을 사용하여 DB에 접근한다

내부 스키마(Internal Schema)

  • 실제 DB에 저장될 레코드의 물리적인 구조를 정의하고 저장 데이터 항목의 표현 방법을 나타냄
  • 물리적인 저장장치의 입장에서 본 DB는 물리적인 저장장치와 밀접한 계층
  • 시스템 프로그래머나 시스템 설계자가 보는 관점의 스키마이다

개념 스키마(Conceptual Schema) 

  • DB의 전체적인 논리적 구조로서 모든 응용프로그램이나 사용자들이 필요로 하는 데이터를 종합한 조직 전체의 DB로 하나만 존재한다
  • 개체간의 관계와 제약 조건을 나타내고 DB의 접근권한, 보안 및 무결성 규칙에 관한 명세를 정의한다
  • 기관이나 조직체의 관점에서 데이터베이스를 정의
  • DBA에 의해 구성 

교착상태 발생조건

  • 상호배제 (Mutual Exclusion)
    한 번에 한 개의 프로세스만이 공유 자원을 사용할 수 있어야함 
  • 점유와 대기(Hold and Wait)
    프로세스가 최소한 하나의 자원을 보유하고 있는 상태에서 다른 자원을 기다릴 수 있어야함
  • 비선점(Non-preemption)
    다른 프로세스에 할당된 자원은 사용이 끝날 때까지 강제로 빼앗을 수 없어야함 
  • 순환대기(Circular Wait)
    공유자원과 공유자원을 사용하기 위해 대기하는 프로세스들이 원형으로 구성되어 자신에게 할당된 자원을 점유하면서 앞이나 뒤에 있는 프로세스의 자원을 요구해야함 

자료 흐름도 (Data Flow Diagram)

  • DFD는 시스템 구성요소인 프로세스와 프로세스 간 데이터 흐름을 표현하는 주요 도구
  • 자료 흐름 그래프 또는 bubble 차트라고 함
  • 구조적 분석 기법에 사용
  • 자료 흐름과 기능을 자세히 표현하기 위해 단계적으로 세분화

 

Process : 원 

Data Flow : 화살표

Data Store : 직선(단선/이중선)

Terminator(단말) : 사각형 

 

UI 유형

  • CLI
    • 정적인 텍스트기반 인터페이스
    • 명령어를 텍스트로 입력하여 조작하는 사용자 인터페이스
  • GUI(Graphical User Interface)
    • 그래픽 반응 기반 인터페이스
    • 그래픽 환경을 기반으로 한 마우스나 전자펜을 이용하는 사용자 인터페이스
  • NUI(Natural User Interface)
    • 사용자의 자연스러운 움직임을 인식하며 서로 주고받는 정보를 제공
    • 멀티 터치, 동작 인식
  • OUI(Organic User Interface)
    • 유기적 상호작용 기반 인터페이스
    • 현실에 존재하는 모든 사물이 입출력장치로 변화할 수 있는 사용자 인터페이스

객체(Object) VS 클래스(Class)

  • Object : 데이터와 데이터를 처리하는 메소드를 묶어 놓은 하나의 소프트웨어 모듈
  • Class공통된 속성과 연산(행위)을 갖는 객체의 집합으로, 객체의 일반적인 타입(Type)

인터페이스 구현 검증 도구 

  • xUnit 
    • Java(Junit), C++(Cppunit), Net(Nunit)과 같이 다양한 언어를 지원함
  • STAF
    • 서비스 호출 및 컴포넌트 재사용 등 다양한 환경을 지원하는 테스트 프레임워크
    • 테스트 대상 분산환경에 데몬을 사용
  • FitNesse 
    • 웹 기반 테스트케이스 설계 
  • NTAF
    • FitNesse의 장접인 협업과 STAF의 장점인 재사용 및 확장성을 통합한 NHN(NAVER)의 테스트 자동화 프레임워크
  • Selenium
  • watir 
    • Ruby 사용하는 테스트 프레임워크

검증 검사 기법 

  • 알파 검사
    • 개발자의 장소에서 사용자가 개발자 앞에서 행하는 기법
    • 통제된 환경에서 사용자와 개발자가 함께 확인하면서 수행 
  • 베타 검사
    • 선정된 최종 사용자가 여러명의 사용자 앞에서 행하는 테스트 기법으로, 개발자에 의해 제어되지 않은 상태에서 테스트가 행해지며, 발견된 오류과 사용상의 문제점을 기록하고 개발자에게 주기적으로 보고함

2단계 로킹 규약(2 Phase Locking Protocol)

  • 직렬 가능성을 보장할 수 있는 규약으로 모든 트랜잭션들이 lock과 unlock 연산을 다음과 같이 두 단계로 구분하여 실행해야함

확장단계(Growing Phase)

  • 트랜잭션은 새로운 lock 연산만 실행가능, unlock 연산 실행불가
  • Lock을 설정하는 단계

축소단계(Shrinking Phase)

  • 트랜잭션은 새로운 unlock 연산만 실행가능, unlock 연산을 실행하면 lock 연산 더 이상 실행 불가
  • Lock을 해제하는 단계

2단계 로킹 규약을 준수하면 직렬가능성을 보장할 수 있다. 

 

'ETC > ETC' 카테고리의 다른 글

이번주  (0) 2024.02.28
정처기 두음법칙  (0) 2024.02.23
[정보처리기사] 정처기 정리  (1) 2024.02.16
[정보처리기사] 오답 개념정리  (1) 2024.02.13
정처기 정리  (0) 2024.02.05