CS 지식/데이터베이스

[데이터베이스] 면접 질문 대비

지나가던 개발자 2023. 3. 30. 14:33
반응형

💡  정규화에 대해 설명해주세요.

더보기

정규화는 데이터 무결성을 유지하기 위해 잘 정의 된 방식으로 테이블을 분할하여 데이터베이스에서 중복 데이터를 제거하는 프로세스입니다.


💡 비정규화에 대해 설명해주세요.

더보기

비정규화는 복잡한 쿼리 속도를 높이고 성능을 향상시키기 위해 테이블에 중복 데이터를 추가하는 프로세스입니다.


💡 정규화의 장점과 단점을 설명하세요.

더보기

장점

데이터베이스 변경 시 이상 현상을 제거하며 데이터베이스 구조 확장시 재디자인을 최소화 할 수 있습니다.

 

단점

릴레이션 분해로 인하여 릴레이션간의 연산이 많아집니다. 이로 인해 응답 시간이 느려질 수 있습니다.


💡 정규화를 하는 이유?

더보기
  • 중복을 배제하여 삽입, 삭제, 갱신 이상의 발생을 방지하기 위해서
  • 각 릴레이션에 중복된 종속성을 여러개의 릴레이션에 분할하기 위해서
  • 어떠한 릴레이션이라도 데이터베이스 내에서 표현 가능하게 하기 위해서
  • 데이터 삽입 시 릴레이션을 재구성할 필요성 감소
  • 효과적인 검색 알고리즘 생성 가능

💡  이상현상이란 무엇입니까?

더보기

정규화를 거치지 않은 데이터베이스에서 발생할 수 있는 현상으로 데이터들이 불필요하게 중복되어 릴레이션(테이블) 조작에 예기치 못한 문제가 발생하는 것을 의미합니다.

애트리뷰트(속성)들의 종속관계를 하나의 릴레이션에 표현하기 때문에 발생합니다.


💡  이상현상의 종류를 설명해주세요.

더보기
  • 삽입 이상(Insertion Anomaly)
    • 데이터 삽입 시 의도와 다른 값들도 삽입됨
  • 삭제 이상(Delete Anomaly)
    • 데이터 삭제 시 의도와 다른 값들도 연쇄 삭제됨
  • 갱신 이상(Update Anomaly)
    • 속성값 갱신 시 일부 튜플만 갱신되어 모순 발생

 

반응형