클라이언트/ 서버/ 엔지니어 " 게임 개발자"를 향한 매일의 공부일지

데이터 입출력 구현 15 - 기출문제 다시 풀기 2 : 세션 38~42 본문

자격증 공부/정보처리기사 실기

데이터 입출력 구현 15 - 기출문제 다시 풀기 2 : 세션 38~42

huenuri 2024. 9. 26. 23:41

이어서 기출문제 틀린 문제를 정리해본다.


 

 

 

 

기출문제 다시 풀기 2

 

세션 38 - 이상 / 함수적 종속

 

 

이상이란 테이블에서 일부 속성들의 종속으로 인해 데이터의 중복이 발생하고, 이 중복으로 인해 테이블 조작시 문제가 발생하는 현상을 의미한다. 이상에는 3가지 종류가 있다.

  1. 삽입 이상 : 테이블에 데이터를 삽입할 때 의도와는 상관없이 원하지 않은 값들로 인해 삽입할 수 없게 되는 현상이다.
  2. 삭제 이상 : 테이블에서 한 튜플을 삭제할 때 의도와는 상관없는 값들도 함께 삭제되는, 즉 연쇄 삭제가 발생하는 현상이다.
  3. 갱신 이상 : 테이블에서 튜플에 있는 속성 값을 갱신할 때 일부 튜플의 정보만 갱신되어 정보에 불일치성이 생기는 현상이다.

 

 

 

X → Y의 관계를 갖는 속성 X와 Y에서 X를 결정자라 하고, Y를 종속자라고 한다. 그러니 답은 결정자, 종속자이다.


 

 

 

 

세션 39 - 정규화

 

 

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

 

 

 

 

4번 문제의 답은 정규화이다. 가장 핵심적인 단어인 무손실 분해를 쓰지 않고 설명했기에 정규화임을 알지 못했다. 정규화의 목적은 가능한 한 중복을 제거하여 삽입, 삭제, 갱신 이상의 발생 가능성을 줄이는 것이다.


 

 

 

 

세션 40 - 반정규화

 

 

반정규화는 정규화된 데이터 모델을 의도적으로 통합, 중복, 분리하여 정규화 원칙을 위배하는 행위이다. 반정규화를 수행하면 시스템의 성능이 향상되고 관리 효율성은 증가하지만 데이터의 일관성 및 정합성이 저하될 수 있다.

반정규화의 방법은 테이블 통합, 테이블 분할, 중복 테이블 추가, 중복 속성 추가가 있다. 이중에서 중복 테이블을 추가하는 것에 3가지 종류를 설명하면 다음과 같다.

  1. 집계 테이블의 추가 : 집계 데이터를 위한 테이블을 생성하고, 각 원본 테이블에 트리거를 설정하여 사용하는 것
  2. 진행 테이블의 추가 : 이력 관리 등의 목적으로 추가하는 테이블
  3. 특정 부분만을 포함하는 테이블의 추가 : 데이터가 많은 테이블의 특정 부분만을 사용하는 경우 해당 부분만으로 새로운 테이블을 생성

 

 

 

 

세션 41 - 시스템 카달로그

 

 

시스템 카달로그는 시스템 그 자체에 관련이 있는 다양한 객체에 관한 정보를 포함하는 시스템 데이터베이스이다. 시스템 카탈로그 내의 각 테이블은 사용자를 포함하여 DBMS에서 지원하는 모든 데이터 객체에 대한 정의나 명세에 관한 정보를 유지 관리하는 시스템 테이블이다.

메타 데이터는 시스템 카달로그에 저장된 정보를 의미한다. 데이터 디렉토리가 아니라 디렉터리이다. 이 개념을 아직 잘 모르는 것 같아 틀린 답안으로 체크했다. 데이터 사전에 수록된 데이터에 접근하는데 필요한 정보를 관리 유지하는 시스템이다.


 

 

 

세션 42 - 트랜잭션 분석 / CRUD 분석

 

 

트랜잭션에 대해 아직 잘 모르니 개념을 정리해보자. 트랜잭션은 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산들을 의미한다. 특성을 4가지가 있다.

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

4번은 CRUD 분석인데 프로세스와 테이블 간에 CRUD 매트릭스를 만들어서 트랜잭션을 분석하는 것이다. 데이터베이스에 영향을 주는 생성, 읽기, 갱신, 삭제 연산으로 트랜잭션을 분석한다.

 


 

 

 

 

학습을 마치고

공부가 하기 싫을 때는 내가 좋아하는 일을 함께 하면 회복이 될 때가 있다. 이 둘 사이에서 늘 갈등을 한다. 개발과 프로그래밍을 더 좋아해야 하는데 그것이 두번째라서 언제나 고민이었다.

하지만 아직은 여기서 취해야 할 것이 분명 있는 것이다. 그때까지는 잠시 유예하기로 했다.