[CS/면접준비] 데이터베이스

bye9·2021년 3월 24일
0

CS

목록 보기
5/10

https://github.com/JaeYeopHan/Interview_Question_for_Beginner/tree/master/Database


인덱스(index)

  • 추가적인 쓰기 작업과 저장 공간을 활용하여 데이터베이스 테이블의 검색 속도를 향상시키기 위한 자료구조
  • 테이블의 모든 데이터를 검색하면 시간이 오래 걸리기 때문에 데이터와 데이터의 위치를 포함한 자료구조를 생성하여 빠르게 조회할 수 있도록 돕고 있다.

인덱스 자료구조

  • B+-Tree 인덱스 알고리즘
  • Hash 인덱스 알고리즘

정규화

  • 관계형 데이터베이스에서 불필요한 데이터를 제거하고 중복을 최소화하기 위해 데이터를 구조화하는 작업.
  • 삽입/삭제/갱신 시 발생할 수 있는 이상현상을 방지.

* 삽입 이상(insertion anomalies) 원하지 않는 자료가 삽입된다든지, 삽입하는데 자료가 부족해 삽입이 되지 않아 발생하는 문제점

* 삭제 이상(deletion anomalies) 하나의 자료만 삭제하고 싶지만, 그 자료가 포함된 튜플 전체가 삭제됨으로 원하지 않는 정보 손실이 발생하는 문제점

* 수정(갱신)이상(modification anomalies) 정확하지 않거나 일부의 튜플만 갱신되어 정보가 모호해지거나 일관성이 없어져 정확한 정보 파악이 되지 않는 문제점

정규형

  • 특정 조건을 만족하는 릴레이션의 스키마 형태를 말한다.

* 릴레이션: 테이블과 같은 의미로 데이터의 집합을 의미한다. 튜플과 어트리뷰트로 구성되어있다.

제 1정규형

  • 릴레이션에 속한 모든 속성의 도메인이 원자 값으로만 구성되어 있다.

제 2정규형

  • 제 1정규형에 속하면서 기본키가 아닌 모든 속성이 기본키에 완전 함수 종속이면 충족.

제 3정규형

  • 제 2정규형에 속하면서 기본키가 아닌 모든 속성이 기본키에 이행적 함수 종족이 되지 않으면 충족.

BCNF(보이스코드) 정규형

  • 제 3정규형에 속하면서 모든 결정자가 후보키이면 충족.

제 4정규형

  • BCNF 정규형에 속하면서 다중 값 종속성 제거.

제 5정규형

  • 제 4정규형에 속하면서 조인 종속성 제거.

1NF : 원자값 구성
2NF : 부분함수 종속 제거
3NF : 이행함수 종속 제거
BCNF : 결정자 함수 종속
4NF : 다치 종속성 제거
5NF : 조인 종속성 제거

참고
https://yaboong.github.io/database/2018/03/09/database-normalization-1/


트랜잭션(Transaction)

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

트랜잭션의 특성(ACID)

  • 원자성(Atomicity)
    트랜잭션의 연산은 데이터베이스에 모두 반영되든지 아니면 전혀 반영되지 않아야 한다.

  • 일관성(Consistency)
    트랜잭션 수행 전과 트랜잭션 수행 완료 후의 상태와 동일하게 데이터의 일관성을 보장해야 한다.

  • 고립성(Isolation)
    수행중인 트랜잭션은 완전히 완료될 때까지 다른 트랜잭션에서 수행 결과를 참조할 수 없다.

  • 지속성(Durability)
    트랜잭션이 정상적으로 종료된 다음에는 영구적으로 데이터베이스에 작업의 결과가 저장되어야 한다.

트랜잭션의 연산

  • Commit연산
    트랜잭션의 작업이 성공적으로 수행되고 데이터베이스가 일관된 상태에 있을 때 트랜잭션이 행한 갱신 연산이 완료된 것을 알려주는 연산

  • Rollback연산
    하나의 트랜잭션 처리가 비정상적으로 종료되어 트랜잭션의 원자성이 깨진경우, 트랜잭션이 수행한 결과를 원래의 상태로 원상 복귀시키는 연산

0개의 댓글