1. 이상
- 중복된 데이터 때문에 데이터에 의도하지 않은 현상이 발생되면 이를 이상현상이라고 한다.
- 이상 현상에는 삽입 이상, 갱신 이상, 삭제 이상이 존재한다.
- 삽입이상
- 릴레이션에서 새로운 인스턴스를 삽입할 때 발생하는 데이터 이상 현상이다.
- 인스턴스 삽입 시 기존의 상품이라도 상품번호, 상품명, 단가를 모두 추가해 주어야 한다. -> 불필요한 정보를 함께 저장해야 한다 -> 중복
- 주문이 아닌 상품을 추가하기 위한 인스턴스 추가일 경우 주문번호나 주문 수량이라는 불필요한 속성의 값도 추가하여야 한다.
- 갱신이상
- 릴레이션에서 속성의 값을 업데이트할 때 발생하는 데이터 이상 현상이다.
- 반복된 데이터 중에 일부만 수정하면 데이터의 불일치가 발생한다.
- 상품명이나 단가와 같은 속성의 값들이 변경될 경우 같은 상품은 빠짐없이 모두 수정해 주어야 한다.
- 삭제 이상
- 릴레이션에서 인스턴스를 삭제할 때 발생하는 데이터 이상 현상이다.
- 유용한 정보를 함께 삭제하지 않고는 어떤 정보를 삭제하는 것이 불가능하다.
- 주문 내역을 삭제하려고 할때 관련 상품도 같이 소멸되어 상품 자체가 사라져 버리게 된다.
= > 데이터가 잘 쪼개져있어야 한다. -> 정규화
논리 모델
- 개념 모델을 상세화하는 작업으로 전체 속성을 도출하고 도출되지 않은 대부분의 엔티티들과 관계들을 도출하는 단계이다.
- 정규화(Normalyzation)를 진행하는 단계이다.
논리 모델의 목적
- 업무에 대해 충분히 의견을 교환하고 반영하여 진행하는데 도움을 준다.
- 중복값을 제거하여 이상(Anomaly)현상을 제거하기 위해 속성간에 종속관계를 확인하고 엔터티를 분할한다.
논리 모델의 주의 사항
- 업무 요건을 빠짐없이 정확하게 반영해야 한다.
- 더 이상 삭제할 엔터티나 속성은 없어야 한다.
- 주 식별자에 있어 효율성에 따라 인조 식별자를 채택할지에 대해 결정한다.
- 지나치게 성능 문제를 해결하려고 하지 않는다.
정규화
정규화이 목적
- 중복 데이터를 제거하여 안정성과 확장성을 도모한다.
- 안정성: 함수 종속을 기반으로 데이터의 성격에 맞는 엔터티가 도출되어 모델 구조를 정의할 수 있다. ->이상 현상이 없다.
- 확장성: 데이터의 정체성이 그대로 반영되어 업무가 수정되거나 추가 되더라도 엔터티에 반영하기가 수월해 진다.
함수 종속 -> 밑에 예시를 통해 이해한다.
- 릴레이션 내에 존재하는 속성 간의 종속성을 의미한다.
- 대표 속성(식별자)이 나머지 속성을 유일하게 식별할 수 있다면 대표 속성과 나머지 속성 사이에는 연관관계가 성립하고 이것을 함수 종속이라고 한다.
- 속성 간의 종속성을 나눌 때 기준이 되는 결정자(Determinant)와 결정자의 값에 의해 유일하게 식별될 수 있는 값을 종속자(Dependent)라고 한다.
- 속성 Y가 속성 X에 의해 함수적으로 종속됨을 표현한 것이다.
- 속성 X의 값을 이용해 속성 Y의 값을 유일하게 식별할 수 있다는 의미로 X의 값에 대해 Y의 값이 오직 하나만 연관되어 있음을 의미한다.
정규화의 종류
=>제 3정규화까지 고려해도 충분하다.
1 정규형(1NF)
- 모든 속성은 반드시 하나의 값을 가져야 한다.(속성은 원자값을 지녀야 한다.)
- 다가 속성(Multivalued Attributes)과 복합 속성(Composite Attributes)에 대해 판단하여 처리한다.
- 다가 속성: 하나의 인스턴스에 하나의 속성이 여러 값을 가지게 되는 속성
- 복합 속성: 여러 속성이 하나의 속성으로 묶여있는 속성
다가 속성과 관련된 1 정규형 처리 방법
- (1)의 경우와 같이 속성을 추가해서 인스턴스별로 하나의 속성에 하나의 값이 들어갈 수 있게 할 수 있다. 다만 이렇게 처리할 경우 속성의 갯수가 더 적을 경우가 많거나 추가한 속성의 수보다 많은 값은 처리할 수 없다. 속성이 한정적이고 제한적으로 존재할 때 처리할 수 있는 방법이다.
- (2)의 경우와 같이 엔터티를 따로 추출해서 1대 다 관계로 처리할 수 있다. 새로 생성된 엔터티의 인스턴스들을 구분하기 위해 속성들을 모두 식별자(복합키)로 활용하는 경우이다. (인스턴스의 구분 기준을 고려하여 식별자를 선정)
- -> 두 개를 묶어서 pk를 만들어야 유일성이 성립된다. 불빌요한 컬럼 X
- (3)의 경우는 (2)에서 추가적인 속성으로 인조식별자를 추가하여 인스턴스를 구분하고 나머지 속성은 비식별자로 처리하는 경우이다.
- -> 위 처럼 묶고 싶지 않을 경우 인조적인 식별자 추가. pk관리 수월함
복합 속성과 관련된 1정규형 처리 방법
- 주소라는 속성은 여러 속성이 하나로 묶인 복합속성의 의미가 될 수 있다.
- 업무상 주소를 구분해서 사용하고자 하는 경우가 많을 때 속성을 구별하며 되려 하나의 주소로 다룰 때가 많을 때는 속성을 구분해서 사용하는 것이 좋지 않다.
2 정규형(2NF)
- 식별자 중에 하나의 식별자에만 종속되는 속성이 있다면 분리한다.
- 후보 식별자 속성과 일반 속성 간의 종속성을 판단하여 처리한다.
3 정규형(3NF)
- 이행적 종속성(Transitive Dependency)을 제거하고 일반 속성 간에 종속관계가 없도록 처리한다.
- 일반 속성에 결정자 속성과 종속자 속성이 있는 경우 다른 엔터티로 구별하여 분리한다.
01 교육학개론 2 -> 여러 강사가 개설할 수가 있음.
'LECTURE > DB Modeling' 카테고리의 다른 글
개념 모델 (0) | 2023.01.31 |
---|---|
ERD (0) | 2023.01.31 |
DB Modeling 개요 (0) | 2023.01.31 |