데이터베이스 정규화

데이터베이스 정규화는 설계와 관련이 있습니다. 설계에 따라 데이터가 어떻게 저장될지 그 구조를 결정하기 때문입니다.

  • Data redundancy
  • Data integrity
  • Anomaly

Data redundancy (중복성)

실제 데이터의 동일한 복사본이나, 부분적인 복사본을 뜻합니다.
데이터를 복구할 때 수월합니다.

단점

  • 일관된 자료 처리의 어려움
  • 저장 공간 낭비
  • 데이터 효율성 감소

Data integrity (무결성)

데이터 정규화는 무결성을 강화하는 목적이 강합니다.
데이터의 수명 주기 동안 정확성과 일관성을 유지하는 것을 뜻합니다.
입력된 데이터가 오렴되지 않고, 입력된 그대로 데이터를 사용할 수 있습니다.

Anomaly (현상)

기대한 데이터와 다른, 이상 현상을 뜻합니다.

  • 갱신 이상(update anomaly)
  • 삽입 이상(insertion anomaly)
  • 삭제 이상(deletion anomaly)

Update anomaly (갱신 이상)

갱신 이상은 여러 행(레코드)에 걸쳐 동일한 데이터가 있을 때, 어떤 행을 갱신해야 하는지 논리적인 일관성이 없는 경우 발생합니다.

동일한 ID가 존재할 때, 이런 문제가 발생합니다.

Insertion anomaly (삽입 이상)

데이터를 삽입하지 못하는 경우를 가리킵니다.

Row에 맞지 않는 데이터가 있을 경우 삽입 이상이 발생할 수 있습니다.

Deletion Anomaly (삭제 이상)

삭제 이상은 데이터 특정 부분을 지울 때 의도치 않게 다른 부분도 함께 지우는 이상 현상입니다. 특정 레코드를 삭제하려 했으나, 테이블 내 특정 col을 삭제하면서 데이터 전체가 삭제되는 현상입니다.


SQL 종류

SQL에는 데이터를 조회하고 테이블을 만드는 등 다양한 문법이 있습니다. 쿼리문을 어떻게 작성하느냐에 따라 기능이나 작업이 달라집니다.

SQL 문법의 종류

  • Data Definition Language (DDL)
  • Data Manipulation Language (DML)
  • Data Control Language (DCL)
  • Data Query Language (DQL)
  • Transaction Control Language (TCL)

Data Definition Language (DDL)

데이터를 정의할 때 사용하는 언어입니다. 테이블을 만들 때 사용하는 CREATE나 테이블을 제거할 때 사용되는 DROP 등이 DDL에 해당합니다.

Data Manipulation Language (DML)

데이터베이스에 데이터를 저장할 때 사용하는 언어입니다. INSERT처럼 새로운 레코드를 추가할 때 사용되는 문법을 포함해 데이터를 삭제하는 DELETE, 변경하는 UPDATE가 포함됩니다.

Data Control Language (DCL)

데이터베이스 접근 권한과 관련된 문법입니다. 어느 유저가 데이터베이스에 접근할 수 있는지 권한을 설정합니다. 권한을 주는 GRANT나 권한을 가져가는 REVOKE가 포함됩니다.

Data Query Language (DQL)

정해진 스키마 내에서 쿼리할 수 있는 언어입니다. SELECT가 해당됩니다.

Transaction Control Language (TCL)

DML을 거진 데이터의 변경 사항을 수정할 수 있습니다. COMMIT 처럼 DML이 작업한 내용을 데이터베이스에 커밋하거나, ROLLBACK 처럼 커밋했던 내용을 지우는 문법이 있습니다.

profile
메일은 매일 확인하고 있습니다. 궁금하신 부분이나 틀린 부분에 대한 지적사항이 있으시다면 언제든 편하게 연락 부탁드려요 :)

0개의 댓글