본문 바로가기

국비

01.06 국비학원 67일차 (ER다이어그램, 정규화)

ER다이어그램

관계

1 : 1  (One to One Relationship)

   ex. 나라 - 수도. 한 나라는 하나의 수도만을 가진다.

1 : N (One to Many Relationship)

   ex. 회원은 여러 전화번호를 가질 수 있다.

N : M (Many to Many Relationship)

   ex. 학생은 여러 과목을 수강할 수 있다. 한 과목에 여러 학생이 신청할 수 있다.

          학생 ------< 수강신청 >------ 과목

 

예시1

연락처, 이메일 주소가 반드시 필요하다.
게시글을 작성할 때에는 제목, 내용, 작성자, 작성일 정보가 필요하며 회원은 자신이 게시한 글에 대해 
자신도 삭제할 수 없는 삭제금지 옵션을 사용할 수 있다.
회원은 연락처 정보를 1개가 아닌 여러개를 등록하여 사용할 수 있다.
모든 회원은 등록된 게시글에 댓글을 작성할 수 있으며, 댓글에는 댓글내용, 작성자, 추천수 정보가 필요하다. 
또한 관리자에 의해 해당 댓글은 삭제될 수 있으나 실제 삭제가 된 것은 아니고 삭제됨 옵션으로 처리하게 한다.
게시글을 카테고리별로 분류하여 관리할 수 있도록 한다. 카테고리는 언제든 추가할 수 있다. 
카테고리별로 분류된 후에는 관리자에 의해 해당 카테고리의 모든 게시글을 숨김처리하여 회원들에게
보이지 않을 수 있어야 한다.
회원에 등급을 부여하여 등급별로 차별화된 서비스를 제공하고자 한다. 등급은 브론즈, 실버, 골드, 플래티넘이
있으며, 나중에 다양한 등급이 추가 될 수 있다.
회원 개체에 관리자 유무를 추가하여 해당 회원이 커뮤니티 사이트를 관리할 수 있는 관리자인지 구분하려고
합니다. 관리자에 해당하는 경우 별도의 권한을 부여하여 각 카테고리별 게시판을 관리할 수 있도록 하려합니다.
관리자는 여러명 있을 수 있으며, 각 관리자는 하나의 카테고리 게시글만 관리할 수 있습니다.
게시글을 관리 할 때 해당 게시글을 완전 삭제하거나 숨기기만 하는 작업을 할 수 있습니다.

식별관계 : FK 가 PK 의 일부가 된 경우

비식별관계 : FK 가 일반 속성에 적용된 경우. 까마귀 발이 점선으로 표현된다. (속성창의 identifying 해제)

 

예시2

재고관리를 위한 데이터베이스 테이블을 생성하려고 한다. 재고관리에는 상품에 대한 정보, 입고/출고 정보, 현 재고 정보를 사용하며 상품에 대한 정보에는 상품명, 상품코드, 구입가, 판매가 정보가 있다. 
위의 테이블을 생성하고 난 후 에는 월별/분기별 입출고 현황도 파악할 수 있어야 한다.
이를 위한 ERD 를 생성하세요.

입출고 테이블의 구분은 입고/출고의 구분이다.
테이블 명세

테이블 명세는 ER 다이어그램에서는 표현되지 않은 실제 구현할 정보를 담는다.

 

  • 정규화

         제 1 정규화

            - 모든 속성은 반드시 하나의 값을 가져야한다.

            - 각 속성의 모든 값은 동일한 형식이어야 한다.

            - 각 속성들은 유일한 이름을 가져야 한다.

            - 레코드들 간에 식별이 가능해야 한다.

 

         제 2 정규화

            - 식별자가 아닌 모든 속성들은 식별자 전체 속성에 완전 종속 되어야 한다.

                  ex. 테이블  A   B   C   D   E   F  가 있을 때,

                        A,B 가 PK 인 경우 A 가 C,D 를 식별하고 B 가 E,F 를 식별하면 부분 종속인 경우 이다.

                        A  C  D 가 있는 테이블, B  E  F 가 있는 테이블로 따로 분리해야 완전 종속이 된다.

                       (컬럼들을 묶어서 식별자로 사용 가능하다 해도 테이블을 나눠 식별자를 1개로 만드는 것이 좋다)

 

         제 3 정규화

            - 제 2 정규화를 만족하고 식별자를 제외한 나머지 속성들 간의 종속이 존재하면 안된다.

 

 

 

# 파이널 프로젝트 산출문서 (3월 말 예정)

        1. 유스케이스 다이어그램

        2. 시퀀스 다이어그램

        3. 클래스 다이어그램

        4. ER 다이어그램

        5. 테이블 명세

        6. 목업(MockUp) - 카카오 오븐 활용 가능