[ DB & SQL(RDBMS, NoSQL) ] 데이터 베이스 공부 : 데이터 모델링 개념 & ERD 다이어그램 작성_03

0

DB & SQL

목록 보기
7/12
post-thumbnail

[ DB & SQL(RDBMS, NoSQL) ] 데이터 베이스 공부 : 데이터 모델링 개념 & ERD 다이어그램 작성_03

목차

2. ERD(Entity Relationship Diagram) 그리기
                 .
                 .
    2.3 ERD 엔티티 관계 표기법.   
         2.3.1 식별자 관계
         2.3.2 비 식별자 관계
    2.4 ERD 관계의 카디널리티.   
         2.4.1 1:1관계 [ One-to-One Cardinality ]
         2.4.2 1:N관계 [ One-to-Many Cardinality ] 
         2.4.3 M:N관계 [ Many-to-Many Cardinality ] 
         2.4.4 Many-to-Many Cardinality 관계의 해소. 
    2.5 ERD 관계의 참여도  
         2.5.1 관계의 선택 기호.
         2.5.2 관계의 필수 기호.
             
   
   

Ⅱ. ERD ( Entity Relationship Diagram ) 그리기.

ERD ( Entity Relationship Diagram )는 단어에서 의미하는 그대로,

'Entity 개체'와 'Relationship 관계'를 중점적으로 표시하는 데이터베이스 구조를
한 눈에 알아보기 위해서 그려놓는 다이어그램
입니다.

'개체-관계도'라고도 불리며 요구분석사항에서 정리해 놓은
엔티티와 속성들의 관계를 그림으로 표현한 것입니다.

Ⅱ.3. ERD 엔티티 관계 표기법.

각 엔티티 유형들을 구성했으면, '엔티티 끼리 관계가 있는 경우, 선을 이어서 관계를 맺어줘야 합니다.

엔티티 끼리 관계선을 그을 때 '실선'으로 그을지 '점선'으로 그을지 나뉘게 되는데,
두 엔티티의 관계에서 '부모의 키를 자식에서 PK로 사용하는지 일반 속성으로 사용하는 지'에 따라서 표기가 다르게 됩니다.

'실선'으로 그을 시 '강한 관계'를 나타내는 것이며 '식별자 관계'라고도 불리우며,
'점선'으로 그으면 '약한 관계'를 나타내는 것이며 '비 식별자 관계'라고도 불리우게 됩니다.

Ⅱ.3.1 식별자 관계 ✍🏻

🩻 "실선"으로 표현.
🩻 '부모-자식' 관계에서 자식이 "부모의 주 식별자를 외래 식별자"로 참조해서
"자신의 주 식별자"로 설정.
🩻 아래 그림에선 자식 엔티티(학생별 취미)가 부모 엔티티(학생)의 학번을 자신의 주 식별자로 설정

Ⅱ.3.2 비 식별자 관계 ✍🏻

🩻 "점선"으로 표현.
🩻 '부모-자식' 관계에서 자식이 "부모의 주 식별자를 외래 식별자"로 참조해서
"일반 속성"으로 설정.
🩻 아래 그림에선 자식 엔티티(사원 정보)가 부모 엔티티(부모정보)의 부서코드를 일반 속성으로

Ⅱ.4. ERD 관계의 카디널리티.

'관계'가 존재하는 두 entity가 있을 때,
한 entity에서 다른 entity의 몇개의 개체와 대응되는지 제약조건을 표기하기 위해서
선을 그어서 표현합니다.

§대표적인 Mapping Cardinality의 종류는 다음과 같습니다.

Cardinality는 한 개체에서 발생할 수 있는 발생 횟수를 정의하며, 다른 개체에서 발생할 수 있는 발생 횟수와 연관된다.

ⓐ One to One : 1대 1 대응.
ⓑ One to Many : 1 대 다 대응
ⓒ Many to One : 다 대 1 대응
ⓓ Many to Many : 다 대 다 대응.

-> 위의 사진처럼, 선들을 이리저리 막 긋는다면 가독성이 매우 안 좋아지고, 표가 더러워지기 때문에
이러한 엔티티간의 1 대 다의 관계를 표기하기 위해
ERD에서는 '선의 끝 모양을 다르게 표시' 하는 방법을 사용합니다.

Ⅱ.4.1 1:1관계 [ One-to-One Cardinality ]

🩻 '학생' 과 '신체정보'는 1:1로 매칭됩니다.
🩻 한명의 학생은 반드시 하나의 신체정보를 가지기 때문입니다.

Ⅱ.4.2 1:N관계 [ One-to-Many Cardinality ]

🩻 한명의 학생은 여러개의 취미를 가질수도 있습니다.

Ⅱ.4.3 M:N관계 [ Many-to-Many Cardinality ]

🩻 '제품' 엔티티 입장에서, TV제품은 대우 티비/삼성티비/애플 티비 등 여러 제조업체 제품이 있을 수 있습니다. 이는 다른 가전제품도 마찬가지입니다.
🩻 제조업체 엔티티 입장에서, 삼성 제조업체는 세탁기만 생산하는 것이 아니라, 다른 제품도 같이 생산합니다.
🩻 따라서! 제품과 제조업체의 관계는 "다대다 관계"가 됩니다.

Ⅱ.4.4 Many-to-Many Cardinality 관계의 해소.

🩻 두 엔티티가 다 대 다 관계에 있는 경우, 두 개의 엔티티만으로는 서로는 표현하는데에 부족합니다.
🩻 '데이터 모델링 관점'에서는 M:N 관계를 완성되지 않은 모델로 간주하기 때문에,
두 엔티티의 관계를 1:N, N:1 로 조정하는 작업이 필요합니다.

🩻 두 엔티티의 관련성을 표현하기 위해서는 중간에 또 다른 엔티티를 필요로 합니다.
이 중간 엔티티(업체별 제품)가 두 엔티티의 공유 속성 역할을 하게 됩니다.
🩻 '데이터 모델링'에서 공식처럼 적용되는 규칙이기 때문에,
ERD 프로그램에서 M:N을 잡게 된다면 자동으로 조정 작업이 실행됩니다.

Ⅱ.5. ERD 관계의 참여도.

🩻 관계선 각 측의 끝자락에 '기호'를 표시합니다.
🩻 '|' 표시가 있는 곳은 반드시 있어야 하는 개체 ( 필수 )
🩻 'O' 표시가 있다면 없어도 되는 개체 (선택 )

Ⅱ.5.1 관계의 선택 기호.

🩻 취미를 가진 학생이 있을수도 있고, 취미가 없는 학생이 있을 수도 있습니다
🩻 김철수 학생은 게임이 취미라서, 대응되는 학생의 취미 테이블에 없기 때문에 관계가 없다. (선택)
🩻 대응 되는 인스턴스가 있을 수도 있고 없을 수도 없을 때 선택 관계 기호를 사용한다.

Ⅱ.5.2 관계의 필수 기호.

🩻 학번 21003 학생의 취미가 낚시 라는 정보가 있다면, 21003학번의 학생의 정보가 학생 엔티티에 반드시 존재해야 한다. (필수)
🩻 따라서 학생의 취미 테이블은 모두 학생 테이블에 대응된다.
🩻 어떤 학생이 어떤 취미를 갖는데 그 학생이 존재하지 않는다면 뭔가 잘못된 것이 된다.
🩻 이와 같이 어느 한 쪽이 존재하면 다른 쪽도 반드시 존재해야 하는 관계
필수 관계 기호를 사용한다.

0개의 댓글

관련 채용 정보