데이터 모델링은 현실 세계를 데이터베이스로 표현하기 위해서 추상화한다.
1) 개념적 모델링
2) 논리적 모델링
3) 물리적 모델링
개념적 모델(ERD)로 표현하는 과정이다.
업무의 관심 대상이 되는 정보를 갖고 있거나 그에 대한 정보를 관리할 필요가 있는 유형, 무형의 사물(개체)을 말한다.
홍길동, 김철수, 강만길 등을 회원 엔티티의 인스턴스라고 부른다.
엔티티에서 관리해야 할 최소 단위의 정보 항목을 말하며 엔티티는 하나 이상의 속성을 포함한다.
ex)
회원 엔티티는 회원의 ID, 이름, 주소, 전화번호 등을 관리하기 위한 것으로 ID, 이름, 주소, 전화번호 등을 회원 엔티티의 속성이라고 말한다. 현실세계에서 하나의 엔티티는 많은 정보를 포함할 수 있다. 그러나 모델링 과정에서 포함하고 있는 모든 정보 항목을 속성으로 표현하지는 않는다.
속성의 결정
엔티티의 속성은 테이블의 컬럼과 대응한다.
데이터 모델링에서 연습해야 할 것 중의 하나는 엔티티를 테이블과 연관지어 생각하는 것이다.
두 엔티티 사이의 관련성을 나타내는 용어이다. 현실세계에서는 여러 사물들이 상호 관련성을 가지고 움직이기 때문에 이를 모델링하면 엔티티와 엔티티 사이의 관계로 표현된다.
중요❗️
두 엔티티가 관계가 있다는 의미는 상호 공유하는 속성이 있다는 의미이다.
카디낼러티(cardinality)는 두 엔티티 간의 관계를 보다 구체적으로 표현하는 방법의 하나로 각 엔티티에 속해 있는 인스턴스들 간에 수적으로 어떤 관계에 있는지 나타내는 개념이다.
1대1 관계
1대1 관계는 완전 1대1 관계와 선택적 1대1 관계가 있다.
1대N 관계
1대N 관계는 엔티티에 행이 하나 있을 때 다른 엔티티의 값이 여러 개 있는 관계이다.
M대N 관계
M대N 관계는 두 개 엔티티가 서로 여러 개의 관계를 가지고 있는 것이다.
정규화는 데이터의 일관성, 최소한의 데이터 중복, 최대한의 데이터 유연성을 위한 방법이다.
제1정규화
회원번호 | 회원이름 | 프로그램 |
---|---|---|
101 | 강호동 | 스쿼시초급 |
102 | 손흥민 | 헬스 |
103 | 김민수 | 헬스, 골프초급 |
위 테이블 해결방법)
회원번호 | 회원이름 | 프로그램 |
---|---|---|
101 | 강호동 | 스쿼시초급 |
102 | 손흥민 | 헬스 |
103 | 김민수 | 헬스 |
103 | 김민수 | 골프초급 |
제2정규화
기본키가 2개 이상의 속성으로 이루어진 경우, 부분 함수 종속성을 제거(분해)한다.
제3정규화
BCNF
기본키를 제외하고 후보키가 있는 경우, 후보키가 기본키를 종속시키면 분해한다.
제4정규화
여러 칼럼들이 하나의 칼럼을 종속시키는 경우 분해하여 다중값 종속성을 제거한다.
제5정규화
조인에 의해서 종속성이 발생되는 경우 분해한다.
좋은 글이네요. 공유해주셔서 감사합니다.