명칭 설명

엔티티 -> 테이블

속성 -> 컬럼

인스턴스 -> 행




관계도

1 대 N


1 대 1


M:N

=> 모델링에서 M N은 아직 완성되지 않은 모델로 간주하여 1:N으로 전환시키는 작업을 진행하여야 한다.




참여도 표시

||  필수

선택



=> 사원은 부서를 필수로 포함해야하지만부서는 사원이 선택이다.



키 표시

PK ◆ID 또는 ID(PK)와 같이 기재 (주 식별자)

FK ID(FK)로 기재

 



Identifying Non-Identifying

외래 식별자가 관계에 있는 다른 엔티티의 주 식별자의 일부일 경우 Identifying이라 하고 별도일 경우Non-Identifying 이라고 한다.





=> Identifying





=> Non-Identifying




요구사항을 통해 엔티티 정의 만들기


엔티티 정의


-> 먼저 명사를 찾는다.


-> 엔티티의 정의는 `업무의 관심대상이 되는 정보를 갖고 있거나그에 대한 정보를 관리 할 필요가 있는 유형무형의 개체를 의미한다.

  = 엔티티 정의를 생각하며 정의한다.


-> 중복된 명사나 유사의미를 통합한다.

  = ex) 고객과 회원은 통합하여 생각한다.


-> 개념이 명확하지 않거나의미가 불분명한것을 찾는다.

-> 데이터의 관리가 필요한지 여부를 판단한다.

-> 추출한 명사가 데이터 관리의 주가 되는 엔티티인지 다른 엔티티의 속성의 성질을 가지는지 판단한다.

-> 그 업무에 맞는 핵심 엔티티를 찾고 나머지 엔티티를 구별하는 방식으로 하면 편하다.

-> 엔티티 내부에서 여러 곳에서 많이 사용되는 속성은 별도의 엔티티로 관리한다.

-> 업무별로 정의하고중복된 것을 줄이자.

새로운 속성으로 주 식별자 선정의 장 단점

대출일, 회원번호, 도서관리번호를 주식별자로 가져야 하는 경우, 너무 많은 속성이 주 식별자가 되어 구별하기 어려울 때, 대출 번호라는 새로운 주 식별자를 도입할 수 있다.

-> 하지만 새로운 주 식별자를 도입한경우, 다음과 같은 문제가 발생할 수 있다.

-> 대출번호가 키가 되는경우 대출일, 회원번호, 도서관리번호가 중복된 데이터가 있을 수 있다.

-> 새로운 개념의 속성을 만들어 주식별자로 지정할 경우 단점과 장점이 있으니 잘 사용해야 한다.



필요없는 속성을 주 식별자로 지정하는 경우.

필요없는 속성이 주 식별자가 되는 경우, 문제가 발생할 수 있다.

제품번호와 제품가격이 주 식별자가 되었을 때, 제품번호별로 제품가격은 하나여야 하는데 서로 다른 데이터가 존재할 수 있는 의미적 중복문제를 발생시킬 수 있다.

제품번호 가격

1111111 11

1111111 22


 

관계의 정의 방법

엔티티는 명사를 도출 하였다면 관계정의는 요청서에서 동사를 보고 판단하라.

부모 관계를 확인하라.

=> A 엔티티가 만들어지기 위해서 B엔티티가 필요하다면, B엔티티는 A엔티티의 부모의

관계를 가지고 있다.

=> 두 엔티티 중 정보를 먼저 생성하여 가지고 있는 쪽이 부모이고, 가져다 쓰는 쪽이

자식이다.



외래식별자 정의

=> 부모 엔티티의 속성이 자식 엔티티에도 공통적으로 존재한다면 자식 엔티티에 있는 공통

속성이 외래 식별자가 된다.


관계/외래식별자에 대한 규칙

=> 두 엔티티가 관련이 있다는 의미는 두 엔티티가 공유하는 속성이 있다는

의미.

=> 공통 속성의 값이 먼저 생성되는 쪽이 부모 엔티티고 , 가져다 쓰는 쪽이

자식 엔티티

=> 부모엔티티에 있는 공통 속성은 주 식별자가 되고, 자식 엔티티의 공통

속성은 외래 식별자가 된다.

=> 부모 엔티티와 자식 엔티티의 카디낼러티는 1:N

정규화

정규화는 ERD 내에서 중복을 찾아 제거해 나가는 과정을 말한다.

관계형 데이터베이스 모델의 기본은 동일한 정보는 한곳에서만 관리하는 것이다.


제 1정규화

엔티티에서 하나의 속성이 복수의 값을 갖도록 설계 되었을 때 이를 단일 값을 갖도록 하는 것이다.


 

정규화 전.

사원번호 취미

1001 등산, 낚시

1002 테니스, 등산


 

정규화 후

사원번호 취미

1001 등산

1001 낚시

1002 테니스

1002 등산


다음과 같은 사유도 동일하게 제 1정규화 대상이 된다.

사원번호 취미1 취미2 취미3

1001 등산 낚시

1002 테니스

1003 테니스 운동 독서


해당 테이블 구조는 단일 값을 가지고 있기 때문에 아무 문제가 없어보이지만, 동일한 성격을 가지는 데이터를 다른 속성에 저장하는 것도 문제가 된다.


제 2정규화

제 2정규화는 주 식별자가 아닌 속성 중에서 주 식별자가 전체가 아닌 일부 속성에 종속된 속성을 찾아 제거하는 과정이다.

여기서 말하는 제거는 다른 엔티티를 만들어 속성을 옮기는 것을 말한다.


정규화 전

판매 엔티티

#판매일자

#판매부서

#판매번호

부서명

판매사원번호

사원명

고객번호

고객명

고객주소


판매 엔티티안에 부서번호를 가지고 있을 필요가 없다. 분리를 해야한다.


정규화 후

판매 엔티티

#판매일자

#판매부서

#판매번호

판매사원번호

사원명

고객번호

고객명

고객주소


부서

#부서번호

부서명




제 3정규화

제 3정규화는 주 식별자가 아닌 속성들 중에서 종속 관계에 있는 속성을 찾아 제거하는 단계이다.


정규화 전

판매 엔티티

#판매일자

#판매부서

#판매번호

판매사원번호

사원명

고객번호

고객명

고객주소


위의 엔티티는 사원과 고객 엔티티 속성들이 종속관계를 보인다.

이들을 별도의 엔티티로 구분하여 지정할 수 있다.


정규화 후

판매 엔티티

#판매일자

#판매부서

#판매번호

판매사원번호(FK)

고객번호(FK)


사원

사원번호(PK)

사원명


고객명

고객번호(PK)

고객명

고객주소






정규화를 고려하여 데이터 설계시 주의사항


제 1정규화

제 1정규화 작업을 거치지 않게 설계를 하기 위해서는 반복 속성이 존재하지 않도록 모델링 해야한다.


이를 위해서는 설계를 해야하는 데이터에서 정보를 포함하는 머리부분과 속성을 나타내는 서술 부분을 나눠서 생각해야 한다.


머리부분이 서술부분의 부모 엔티티가 된다.(1:N 관계)


제 2, 3정규화

제 2, 3정규화의 공통점은 종속관계에 있는 속성들을 제거하는 과정이다.

코드-코드값의 관계에 있는 속성들은 별도의 엔티티로 구성한다.

-> 종속관계에 있는 데이터들을 하나의 엔티티에 모두 그리지 않도록 주의한다.

도메인

도메인은 엔티티의 속성들이 가질 수 있는 값들의 집합.

DBMS에서 도메인이란 엔티티와 속성에 대응하는 테이블의 컬럼에 대한 데이터 타입과 길이를 의미



도메인 추출 및 데이터 타입 추출방법

1. 테이블에 구성될 컬럼들을 나열한 후 테이블의 도메인을 먼저 지정한다.

대출일 - 날짜

우수회원여부 - 예아니오

회원이름 - 회원이름



2. 도메인에 맞는 데이터 타입을 지정한다.

대출일 - date

우수회원여부 - char(1)

회원이름 - varchar(20)


 



ERD 검토


1. 엔티티 검토


 1) 엔티티가 적절히 구성되었는지의 여부

2) 엔티티의 주 식별자가 적절히 선정되었는지 여부

-> 주식별자에 불필요한 요소가 없는지

-> 인스턴스의 유일성을 보장해 주는지

3) 유사한 내용을 관리하는 엔티티가 없는지

-> 분리, 통합이 필요 없는지.


2. 속성 검토

1) 필요한 정보를 담기위해 속성이 잘 구성되어 있는지.

2) 여러 엔티티 사이에 중복된 속성이 없는지

-> 사원정보에도 이름이 있고, 제품정보에도 이름이 있을 경우 사원정보에는 사원명, 제품정보에는 제품명으로 지정해 준다.

3) 날짜를 저장하는 속성이 올바르게 구성되었는지

-> 연도, 월,일이 서로 나누어져 컬럼으로 되어있다면, 합쳐서 일자로 지정


3. 관계의 검토

1) 카디낼러티와 참여도가 올바른지 검토

2) 카디낼러티가 M:N 관계가 있는 것이 없는지 (조정이 가능한지)

3) 홀로 떨어져 있는(관계가 없는) 엔티티가 있는지 확인.

-> 홀로 떨어져 있는경우, 존재할 이유가 없거나 적절한 관계가 맺어지지 않은상태.

4) 관계가 너무 복잡하지 않은지.


※ M:N 관계 해소


제품 엔티티

제품명(pk), 제품분류, 판매코너


제조업체

업체명(pk), 공장위치


두개의 관계가 M:N 일때 두 개의 엔티티의 주 식별자를 포함한 하나의 연결 엔티티를 이용하여 M:N 관계를 해소

해 줄 수 있다.


업체별 제품 (연결 엔티티)

제품명(PK), 업체명(PK)

+ Recent posts