Post

Database 퀴즈

DataBase 퀴즈

출처: https://csbroker.io/problem?page=1 (카테고리 : 데이터베이스)


1. ACID 

  • RDBMS 트랜잭션의 원칙  
    • 원자성 (Atomacity) : 하나의 트랜잭션은 분할이 되지 않기 때문에 전부 수행되거나 전부 수행되지 않아야한다.
    • 일관성 (Consistency) : 트랜잭션이 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 유지해야 한다.
    • 격리성 (Isolation) : 서로 다른 트랜잭션끼리는 의존성이 존재하면 안된다. 즉 서로의 트랜잭션에 관여되지 않아야 한다.
    • 영구성 (Durability) : 한 번 적용된 트랜잭션의 내용들은 절대 유실되어서는 안된다

2. NoSQL의 특징

  • 스키마가 없기 때문에 유연하며 자유로운 데이터 구조를 가짐
  • 데이터 분산이 용이 => Scale-up과 Scale-out 둘 다 유연
  • 키 값 중복이 발생할 수 있으므로 키 값 설계가 중요
  • 종류 : Key-Value 방식, Document 방식, Graph 방식

3. RDBMS의 특징

  • Key를 통해서 연관된 정보들으 함께 조회하는데 특화되어 있음
  • ACID 트랜잭션을 보장
  • 데이터 무결성 유지를 위해 NoSQL보다는 속도가 느림
  • 종류 : Oracle, MySQL, PostgreSQL, MariaDB 등

4. NoSQL과 RDBMS의 차이

  • NoSQL은 구조를 정해두지 않음 => 따라서 형식이 자유롭다
  • NoSQL은 데이터베이스 확장이 필요하다면 데이터베이스를 추가하면 되므로 수평적 확장에 용이

5. Super Key(슈퍼키)란?

  • 릴레이션을 구성하는 모든 튜플에 대해 유일성(Unique)은 만족하지만, 최소성(Minimality)은 만족하지 못한다.
    • 유일성 (O), 최소성 (X)

6. Candidate Key(후보키)란?

  • 릴레이션을 구성하는 속성들 중에서 튜플을 유일하게 식별하기 위해 사용되는 속성들의 부분집합
  • 기본키(Primary Key)로 사용할 수 있는 속성 유일성과 최소성을 모두 만족시켜야 한다.
    • 유일성 (O), 최소성 (O)

7. Primary Key(기본키)란?

  • 후보키중 엔티티를 대표할 수 있는 키로써 각 행을 유일하게 구별할 수 있는 속성 보유 - 유일성, 최소성을 모두 만족하고 NULL값을 가져선 안된다.
    • 유일성 (O), 최소성 (O), NULL (X)

8. 릴레이션 특징

  • 튜플들의 삽입, 삭제 등의 작업으로 인해 릴레이션은 시간에 따라 변한다.
  • 한 릴레이션에 포함된 튜플들은 모두 상이하다.
  • 애트리뷰트는 논리적으로 쪼갤 수 없는 원자값으로 저장한다.

9. 인덱스와 Cardinality

  • 일반적으로 RDBMS는 Cardinality(카디널리티)와 Selectivity(선택도)를 고려하게 된다.
  • Cardinality : 특정 데이터 집합의 유니크(Unique)한 값의 갯수
  • Selectivity : 전체 레코드 중에서 조건절에 의해 선택될 것으로 예상되는 레코드의 비율(%)
    • Selectivity = Cardinality / 총 레코드 수 * 100
  • 이 때, Cardinality가 높고 Selectivity가 낮을수록 인덱스 사용에 더 용이하다

This post is licensed under CC BY 4.0 by the author.