데이터베이스의 발전과 기본 개념

  • DBMS의 등장: 과거에는 데이터베이스(DB)가 없어 정보처리가 어려웠습니다. 데이터를 한 군데에 모아 중복을 제거하는 데이터베이스 관리 시스템(DBMS)이 등장했습니다.

  • 핵심 동작 원리: DBMS는 데이터를 저장할 때는 자르고(정규화), 읽을 때는 합칩니다(JOIN). 데이터를 '자르는 것'이 정규화의 핵심 개념입니다.

  • DBMS의 종류: 과거에는 계층형, 네트워크형 DBMS가 있었으며, 이후 객체 지향형, 그리고 현재 주로 사용하는 관계형 DBMS(RDBMS)로 발전했습니다.

  • 테이블 관계: RDBMS에서 먼저 생성된 테이블은 부모 테이블, 나중에 생성되어 부모를 참조하는 테이블은 자식 테이블이 됩니다. 자식은 부모가 있어야만 생성될 수 있습니다.

  • 데이터 접근: 데이터베이스는 직접 사용하기보다 관리 시스템(DBMS)을 통해 간접적으로 사용해야 합니다. 이때 데이터를 수정하고 관리하기 위한 명령어를 쿼리 언어(Query Language), 즉 SQL이라고 합니다.

데이터 정규화 (Data Normalization)

제1정규형 (1NF) - 원자값 확보

  • 목표: 원자값(더 이상 쪼갤 수 없는 단일 값)이 아닌 도메인을 분해하는 것입니다.
    1. 각 속성에 들어갈 값은 원자값(단일 값)이어야 합니다 (반복 그룹 존재 X).
    2. 모든 행은 식별자로 완전하게 구분되어야 합니다.
  • 구현 방법 및 장단점

    구분자 사용: 간단하지만, 데이터 수정 및 삭제가 불편합니다.
    컬럼 확장: 원칙적이지만, 컬럼이 너무 많아지면 복잡도가 증가합니다.
    자식 테이블 생성(자식화): JOIN 시 이해하기 쉽고 개수에 제약이 없지만, 처리해야 할 테이블이 늘어납니다.

제2정규형 (2NF) - 부분 함수 종속 제거

  • 목표 : 부분적 함수 종속을 제거하는 것입니다.

    이 정규화는 복합 키(여러 컬럼을 합친 키)를 가진 테이블에 적용됩니다. 테이블의 일반 속성이 복합 키의 일부가 아닌, 키 전체에 종속되어야 2NF를 만족합니다.

제3정규형 (3NF) - 이행적 함수 종속 제거

  • 목표: 이행적(전이적) 함수 종속을 없애는 것입니다.
    A → B 이고 B → C 일 때 A → C가 성립하는 관계, 즉 일반 속성이 다른 일반 속성에 종속되는 관계를 제거합니다.

BCNF (Boyce-Codd Normal Form)
모든 결정자(Determinant)가 후보 키(Candidate Key)여야 한다는 더 엄격한 규칙을 적용합니다.

  • 결정자: 다른 속성의 값을 결정하는 속성 (X → Y에서 X).
  • 후보 키: 각 행을 유일하게 식별할 수 있는 기본 키 후보.

제4정규형 (4NF)

  • 목표: 다치 종속(Multi-valued Dependency)을 제거하는 것입니다.
728x90