[면접준비] 아침 면접 준비 - 정규화, 무결성 (24/04/18)

2024. 4. 22. 09:40공부/면접 준비

정규화

  • 정규화는 데이터베이스 무결성 제약 조건에 따라 종속성이 적절하게 적용되는 방식으로 데이터를 테이블로 구성하여 중복성을 줄이고 데이터 무결성을 향상시키기 위해 데이터베이스 설계에 사용되는 체계적인 접근 방식이다.
  • 정규화의 주요 목적
    • 중복 데이터 제거: 
      • 여기에는 저장 공간을 낭비할 뿐만 아니라 데이터 처리 중에 불일치를 초래할 수 있는 중복 데이터를 방지하는 것이 포함됩니다.
    • 데이터 종속성을 보장하려면: 
      • 이는 모든 데이터가 논리적으로 저장되도록 하여 데이터베이스의 논리적 일관성을 유지하는 데 도움이 됩니다.
        데이터를 보호하려면: 
  • 정규화는 중복성을 최소화하고 데이터 종속성을 보장함으로써 삽입, 삭제 및 업데이트 작업 중에 데이터 무결성 손실과 이상 현상으로부터 데이터를 보호하는 데 도움이 됩니다.
    정규화에는 일반적으로 데이터베이스를 두 개 이상의 테이블로 나누고 테이블 간의 관계를 정의하는 작업이 포함됩니다. 목표는 필드의 추가, 삭제 및 수정이 단 하나의 테이블에서 이루어진 다음 정의된 관계를 통해 데이터베이스의 나머지 부분에 전파될 수 있도록 데이터를 격리하는 것입니다.

1. 데이터의 무결성

데이터의 무결성은 데이터의 정확성, 일관성, 유효성이 유지되는 것을 말한다. 데이터의 무결성을 유지하는 것은 데이터베이스 관리시스템 (DBMS)의 중요한 기능이며, 주로 데이터에 적용되는 연산에 제한을 두어 데이터의 무결성을 유지한다. 데이터베이스에서 말하는 무결성에는 다음과 같은 4가지 종류가 있다.

 

1) 개체 무결성 (Entity integrity)

모든 테이블이 기본 키 (primary key)로 선택된 필드 (column)를 가져야 한다. 기본 키로 선택된 필드는 고유한 값을 가져야 하며, 빈 값은 허용하지 않는다.

 

2) 참조 무결성 (Referential integrity)

관계형 데이터베이스 모델에서 참조 무결성은 참조 관계에 있는 두 테이블의 데이터가 항상 일관된 값을 갖도록 유지되는 것을 말한다. 아래의 [그림 1]은 관계형 데이터베이스 모델에서 참조 무결성이 깨지는 경우를 나타낸다. 이 예시에서는 department 테이블을 참조하는 student 테이블을 보여주고 있다. 이러한 참조 관계에서 만약 department 테이블에서 id 값이 310인 레코드가 삭제되면 student 테이블의 3번째 레코드는 더 이상 존재하지 않는 데이터를 참조하게 된다.

 

3) 도메인 무결성 (Domain integrity)

도메인 무결성은 테이블에 존재하는 필드의 무결성을 보장하기 위한 것으로 필드의 타입, NULL값의 허용 등에 대한 사항을 정의하고, 올바른 데이터의 입력 되었는지를 확인하는 것이다. 예를 들어, 주민등록번호 필드에 알파벳이 입력되는 경우는 도메인 무결성이 깨지는 경우라고 볼 수 있다. DBMS의 기본값 설정, NOT NULL 옵션 등의 제약 사항으로 도메인 무결성을 보장할 수 있다.

 

4) 무결성 규칙 (Integrity rule)

데이터베이스에서 무결성 규칙은 데이터의 무결성을 지키기 위한 모든 제약 사항들을 말한다. 비즈니스 규칙 (business rule)은 데이터베이스를 이용하는 각각의 유저에 따라 서로 다르게 적용되지만, 무결성 규칙은 데이터베이스 전체에 공통적으로 적용되는 규칙이다.