언어 선택
durumis AI가 요약한 글
- 논리적 데이터 모델링은 개념적 데이터 모델링에서 ERD를 관계형 데이터베이스 패러다임에 맞게 변환하는 기계적인 과정으로, 맵핑 룰을 기준으로 진행된다.
- 관계는 카디널리티와 옵셔널리티를 고려하여 1:1, 1:N, N:M 관계 순서로 표현되며, N:M 관계는 중간 테이블을 생성하여 처리한다.
- 정규화는 테이블을 관계형 데이터베이스에 적합하게 만드는 과정으로, 제 1 정규화는 원자적 값을 갖도록, 제 2 정규화는 부분 종속성을 제거하고, 제 3 정규화는 이행적 종속성을 제거하는 과정이다.
요구 사항 분석과 개념적 데이터 모델링에 비해, 논리적 데이터 모델링은 좀 더 기계적인 절차다.
맵핑 룰(Mapping Rule)을 기준으로 관계형 데이터베이스 패러다임에 맞도록 개념적 데이터 모델링 산출물인 ERD를 변환하는 과정이 주를 이룬다.
맵핑 룰
- 사각형 엔티티는 테이블로 변환한다.
- 원형 속성은 컬럼으로 변환한다.
- 관계는 PK 또는 FK로 변환한다.
가장 먼저 FK가 없는 테이블이 우선적으로 표현하기 편하다.
관계
- 카디널리티와 옵셔널리티를 고려해 테이블 간 관계를 표현한다.
- 가장 간단한 관계인 1:1 관계부터, 1:N 관계, N:M 관계 순서로 표현 한다.
1:1 관계의 처리
1:1 관계에서는 두 테이블간에 의존 관계를 살펴보고 FK를 설정한다.
부모와 자식 테이블로 볼 수 있다.
1:N 관계의 처리
1:N 관계에서는 1을 N이 참조하므로, N에 FK를 설정한다.
N:M 관계의 처리
관계형 데이터베이스에서 N:M 관계를 처리하기 위해서는 중간 테이블(맵핑 테이블 또는 연결 테이블이라고도 한다)을 생성하여 표현한다.
이 때 중요한 점은, 맵핑 테이블을 기준으로 참조되는 양쪽 테이블의 카디널리티와 옵셔널리티를 표현 해주어야 한다.
정규화(Normalization)
Wikipedia - Database Normalization
정제되지 않은 테이블을 관계형 데이터베이스에 어울리는 표로 만드는 과정이다.
산업적으로 사용되는 정규화 과정은 제 3 정규화 과정까지이며, 그 뒤의 정규화 과정들은 학술적으로 주로 이용된다.
정규화는 한번에 하나의 단계씩 순차적으로 진행해야한다.
제 1 정규화(1st Normal Form, 1NF)
- 테이블에 속한 컬럼들이 원자적(Atomic)인 값만 가져야한다.
제 1 정규화의 대원칙을 살펴보면, 무슨 말인지 이해하기 어렵지만 단순히 각 컬럼이 하나의 값만을 가져야 한다는 것이다.
만약 하나의 컬럼안에 여러 값이 들어있다면, 즉 원자적이지 않다면 SQL문으로 조인하기도 어렵고 여러가지 문제점을 일으킬 수 있다.
제 2 정규화(2nd Normal Form, 2NF)
- 제 1 정규화를 만족해야한다.
- 부분 종속성을 제거해야한다.
테이블의 행 중에 중복되는 값이 존재한다면, 해당 행이 의존하고 있는 컬럼을 찾아서 분리 한다.
제 3 정규화(3rd Normal Form, 3NF)
- 제 1 정규화를 만족해야한다.
- 제 2 정규화를 만족해야한다.
- 이행적 종속성을 제거해야한다.
이행적 종속성이라는 말이 굉장히 이해하기 어렵다. 이해한 바로는, 특정 테이블에서 암시적으로 다른 테이블의 식별자를 의미하는 값(물론 FK는 제외한다)이 하나 이상이라면 그것을 이행적 종속성이라고 하는 것 같다.