230916 TIL #192 정처기 실기 - #4 데이터 입출력 구현 - 2

김춘복·2023년 9월 16일
0

TIL : Today I Learned

목록 보기
192/575

Today I Learned

n모 기업 코테를 봤는데 푼 문제는 잘 풀었지만 못 푼 문제는 아직 갈피를 못잡고 있다. 코테 난이도를 좀 더 올려서 문제를 많이 풀어봐야 겠다. 오늘은 코테를 다 보고 정처기 공부를 계속 했다.


데이터 입출력 구현 2

관계 해석 - A

관계 데이터의 연산을 표현하는 방법.
코드(E. F. Codd)가 수학의 술어해석에 기반을 두고 제안.
원하는 정보가 무엇이라는 것만 계산수식을 사용해 정의한다.
튜플 관계 해석과 도메인 관계 해석으로 구분된다.

이상(Anomaly) - A

데이터들이 불필요하게 중복되어 릴레이션 조작시 발생하는 곤란한 현상

  • 삽입 이상(Insertion Anomaly) : 테이블에 데이터를 삽입할 때 의도와 다른 값도 삽입되는 현상

  • 삭제 이상(Deletion Anomaly) : 테이블에서 튜플을 삭제할 때, 의도와 상관없는 값도 같이 연쇄 삭제되는 현상

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

함수적 종속(Functional Dependency) - A

테이블 R. X와 Y는 R의 속성집합의 부분집합일 때. 속성 X의 값 각각이 항상 속성 Y의 오직 한 값만 연관되어 있을 때, Y는 X에 함수적 종속 or X가 Y를 함수적으로 결정 X -> Y로 표현한다.

  • 완전 함수적 종속(Full ~) : Y가 X에 대해 함수적 종속이면서 X의 어떠한 부분집합 Z에도 함수적 종속이 아닐때 완전 함수적 종속이라 한다.

  • 부분 함수적 종속(Partional ~) : Y가 X에 함수적 종속이면서 임의의 부분집합 Z에도 함수적 종속일때 부분 함수적 종속이라 한다.

  • 이행적 함수적 종속(Transitive ~) : X->Y이고 Y->Z일때 X->Z를 만족하는 관계


정규화(Nomalization) - A

테이블의 속성들이 상호종속적 관계를 갖는 특성을 이용해 테이블을 무손실 분해하는 과정.
가능한 중복을 제거해 이상(Anomaly)의 발생 가능성을 줄이는게 목적.
정규형은 1NF -> 2NF -> 3NF -> BCNF -> 4NF -> 5NF로 갈수록 정규화 정도가 높아진다.

제 1 정규형(1NF)

모든 속성의 도메인이 원자 값(Atomic Value)만으로 되어 있는 테이블

제 2 정규형(2NF)

제 1 정규형을 만족하면서, 기본키가 아닌 모든 속성이 기본키에 대해 완전 함수적 종속을 만족하는 정규형

  • 부분 함수적 종속을 제거하는 과정

제 3 정규형(3NF)

제 2 정규형을 만족하면서, 기본키가 아닌 모든 속성이 기본키에 대해 이행적 함수적 종속을 만족하지 않는 정규형

  • X->Y && Y->Z 일 때, X->Z가 되는 이행적 함수적 종속을 제거한다.

Boyce-Codd 정규형(BCNF)

제 3 정규형을 만족하면서, 모든 결정자가 후보키인 정규형.

  • 일반적으로 제 3 정규형에 후보키가 중첩되어 나타나는 경우에 적용

제 4 정규형(4NF)

BCNF를 만족하면서 다치 종속이 없는 정규형.

  • 다치종속 : A->B일때 하나의 A 값에 여러개의 B값이 존재하면 다치종속. A->>B로 표현.

제 5 정규형(5NF)

제 4 정규형을 만족하면서 조인 종속이 없는 정규형.

  • 조인 종속 : 하나의 릴레이션을 여러 개의 릴레이션으로 무손실 분해 했다가 다시 조인했을 때 원래의 릴레이션이 되면 조인 종속.

반정규화(Denormalization) - A

성능과 편의성을 위해 정규화를 거친 데이터 모델을 의도적으로 통합, 중복, 분리해 정규화 원칙을 위배하는 행위. 성능과 관리효율성은 증가하지만 데이터 일관성과 정합성이 저하될 수 있다.
과한 반정규화는 오히려 성능을 저해한다.


중복 테이블 추가

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

시스템 카탈로그

시스템에 관련있는 다양한 객체에 대한 정보를 포함하는 시스템 데이터베이스
카탈로그가 생성되면 데이터 사전에 저장된다. 시스템 카탈로그에는 메타 데이터가 저장된다.
사용자를 포함해 모든 데이터 객체에 대한 정의와 명세 정보를 유지 관리하는 시스템 테이블.

CRUD 분석

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

인덱스

색인. 데이터 레코드를 빠르게 접근하기 위해 <키값, 포인터> 쌍으로 구성되는 데이터 구조.
레코드가 저장된 물리적 구조에 접근하는 방법을 제공한다.
인덱스를 통해 파일의 레코드에 빠르게 엑세스할 수 있다.

트랜잭션

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

트랜잭션의 특성 - A

  • 원자성(Atomicity) : 트랜잭션의 연산은 모두 커밋되어 반영되거나 모두 롤백되어야 한다.
  • 일관성(Consistency) : 트랜잭션의 실행이 완료되고 난 뒤에도 DB는 일관성을 유지해야 한다.
  • 독립성(Isolation) : 트랜잭션이 동시에 실행되면 한 트랜잭션이 다른 트랜잭션 중간에 끼어들 수 없다.
  • 지속성(Durability) : 성공한 트랜잭션의 결과는 시스템이 고장나더라도 영구적으로 반영되어야 한다.
profile
Backend Dev / Data Engineer

0개의 댓글