본문 바로가기

DataBase

[Oracle] 데이터 모델링

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

데이터 모델링

 

정보화 시스템을 구축하기 위해, 어떤 데이터가 존재하는지 

또는 업무가 필요로 하는 정보는 무엇인지를 분석하는 방법 

 

기본 데이터모델링 개념

 

1. 업무가 관여하는 어떤 것(Entity Type)

    -  엔티티 타입은 업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 것으로 영속적으로 존재하는 단위(엔티티의 집합)

    

    -  엔티티 타입의 특징

        1) 반드시 업무에서 필요하고 관리하고자 하는 정보이어야 한다.

        2) 유일한 식별자에 의해 식별이 가능해야 한다.

        3) 영속적으로 존재하는 엔티티의 집합이어야 한다. ("한 개"가 아니라 "두 개 이상")

        4) 엔티티타입은 업무 프로세스에 의해 이용되어야 한다.

        5) 엔티티타입은 반드시 속성이 있어야 한다.

        6) 엔티티타입은 다른 엔티티타입과 최소 한 개 이상의 관계가 있어야 한다.

 

    -  엔티티타입의 분류

        1) 기본 - 해당 업무에 기본적으로 존재하는 정보(Jobs, Departments)

        2) 중심 - 업무에 핵심적인 역할을 하는 정보(Employees)

        3) 행위 - 기본과 중심 엔티티타입을 근간으로 업무가 흘러가면서 발생되는 엔티티 타입(Transaction)

 

    - 엔티티타입의 명명

       1) 현업에서 사용하는 용어를 사용한다 (사용자가 쓰는 용어)

       2) 가능한 약어를 사용하지 않는다.

       3) 단수명사를 사용한다. [ 한글일때 Ex:사원들 (X) ]

       4) 엔티티타입의 이름은 유일해야 한다.

       5) 엔티티타입이 생성되는 자연스러운 의미를 그대로 부여한다.

           Ex) 고객제품 : 고객의 제품인지 주문제품인지 명확하지 않음

                 주문제품 or 주문목록 : 주문한 제품의 이름이라는 것을 알 수 있음

  

 

 

2. 업무가 관여하는 어떤 것간의 관계(Relationships)

 

    -  관계란 두 개의 엔터티타입 사이의 논리적인 관계 즉 엔티티와 엔티티가 존재의 형태나 행위로서

       서로에게 영향을 주는 형태를 말한다.

 

    -  관계의 멤버십은 엔티티타입이 참여하는 관계에 대한 자신으로부터의 관점이다.

 

    -  관계의 카디넬러티

        두 개의 엔티티 타입간 관계에서 참여자의 수를 표현하는 것을 카디넬러티라고 한다.

         가장 일반적인 카디넬러티 관계는 1:1, 1:M, M:N 이다.

        1) 1 : 1(일대일)

           

          => 한 개의 구매신청서에 대해 한 개의 구문재문을 신청하고

               한 개의 구매주문에는 한 개의 구매신청서를 작성한다.

 

          2) 1 : M (일대다)

             

             => 한 명의 사원은 한 부서에 소속되고 한 부서에는 여러 사원을 포함한다.

 

          3) M : N (다대다)

          

             => 하나의 주문서에는 여러 개의 제품을 주문할 수 있고, 하나의 제품은 여러 개의 주문서에 의해 신청될 수 있다.

 

   -  관계의 참여도

       1) 선택참여   Ex) 지하철 안내방송

       2) 필수참여   Ex) 지하철 문     

       => 지하철은 문이 닫혀야만 출발할 수 있다. 안내방송은 나오지 않아도 지하철은 출발할 수있다.

 

    -  관계의 종류

        1) 병렬관계

            엔티티타입과 엔티티타입이 독립적으로 분리되어 있으면서 두 개 이상의 관계가 상호간의 존재하는 형태의 관계

             

      

          2) 주식별자 관계(Identifying) / 비식별자 관계(Non identifying)

               - 주식별자 관계: 부모테이블의 주식별자가 자식테이블의 주식별자로 쓰이는 관계

               - 비식별자 관계: 부모테이블의 주식별자가 자식테이블의 일반속성으로 쓰이는 관계

 

 

3. 어떤 것이 가지는 성격(Attributes)

   -  업무에 필요한 엔티티에서 관리하고자 하는 더 이상 분리되지 않는 최소의 데이터 단위이다.

 

   -  속성의 분류

       # 특성에 따른 분류

          1) 기본

          2) 코드

          3) 유도(파생)

 

       # 구성방식에 따른 분류

          1) PK 속성  - 사원번호

          2) FK 속성  - 부서코드

          3) 일반속성 - 사원명, 우편번호, 주소, 전화번호

 

  -  속성의 명명

      1) 해당업무 사용하는 용어 사용

      2) 서술식 속성명은 사용하지 않는다.

      3) 약어 사용은 가급적 

      4) 엔티티타입에서 유일하게 식별이 가능 하도록 지정

 

 

 

 

4. 식별자 개념

    -  식별자는 엔티티타입 내에서 엔티티들을 구분할 수 있는 구분자이다. 엔티티타입의 성격에 따라 식별자를 지정

   

    -  식별자의 특징

        1) 모든 엔티티 타입은 반드시 하나 이상의 식별자가 있어야 한다.

        2) 엔티티 타입 내 모든 엔티티가 유일하게 구분될 수 있는 식별자이어야 한다.

        3) 식별자가 지정되면 그 식별자는 변하지 않아야 한다.

        4) 주식별자 속성에 반드시 데이터 값이 있어야 한다.

 

   -  식별자 분류

       1) 대표성 여부

           * 주식별자, 보조 식별자

 

       2) 스스로 생성여부

           * 내부식별자, 외부식별자

 

       3) 단일속성여부

           * 단일식별자, 복합식별자(주키를 2개이상의 속성으로 구성)

 

       4) 대체여부

           * 원조식별자, 대리식별자(코드형 속성)

 

 

 

'DataBase' 카테고리의 다른 글

MySql DB 덤프  (0) 2013.12.19
데이터베이스 정규화  (0) 2012.11.06
TRUNCATE TABLE  (0) 2012.11.06
조인 순서 조정을 위한 힌트(ordered, leading)  (0) 2012.08.21
정렬과 머지조인  (0) 2012.05.08