• 데이터 베이스 설계 1부

    2017. 6. 26. 20:37

    by. 위지원

    데이터베이스 설계의 주요단계




    1.엔티티 : 독립적으로 존재하면서 고유하게 식별이 가능한 실세계의 객체

    1)[employee] - 테이블 이름 : 엔티티 타입

    ㄱ.강한 엔티티(정규 엔티티)타입 : key를 가지고 있음

    ㄴ.약한 엔티티타입 : key 가없음 -> 소유 엔티티 타입이 있어야 함!!

    -다른 엔티티 타입으로부터 키 애트리뷰트를 가져옴 ( key를 제공하는 엔티티타입을 소유 엔티티(식별 엔티티)라고 함 )

    -약학 엔티티타입과 연결된 정규 엔티티타입은 약한 관계가 이루어짐 
    -다른 엔티티 존재에 의존하는 이러한 현상을 의존 종속성이라 함
    -약한 엔티티타입의 부분키는 점선으로 나타내며 약한 엔티티 타입이나 관계는 이중선으로 그려 나타냄


     name

    add 

    2)나는야 

    엔티티 


    3)엔티티집합 : 엔티티들이 모여있는 것 


    2.애트리뷰트 : 애트리뷰트가 모여 엔티티가 되는 것!

    (Ex. 사원엔티티=사원번호애트리뷰트+이름애트리뷰트+나이애트리뷰트..)

    1)단순 애트리뷰트 : 더이상 나눌 수 없음



    2)복합 애트리뷰트 : 2개이상의 애트리뷰트로 이루어짐





    3)단일 값 애트리뷰트 : 각 엔티티마다 정확하게 하나의 값을 가짐


    4)다치 애트리뷰트 : 여러개의 값을 가짐 ( 이중선으로 표현 )



    5)저장 된 애트리뷰트 : 다른 애트리뷰트와 독립적으로 존재


    6)유도 된 애트리뷰트 : 다른 애트리뷰트의 값으로 얻어진 애트리뷰트 ( 데이터의 불일치를 유발 할 수 있으므로 릴레이션의 애트리뷰트로 포함시키지 않는 것이 좋음_ 점선으로 표시)



    3.관계

     1)관계를 설명하는 애트리뷰트를 가질 수 있음

     2)관계로 연결된 엔티티 타입들의 개수에 따라 1,2,3진으로 나눌 수 있음


     3)카디날리티 비율 : 1:1,1:N,N:M의 관계가 있으며 한 엔티티 타입의 몇개의 엔티티가 다른 엔티티 타입의 몇개의 엔티티와 연관되는가를 나타냄

    ■ 1 : 1 관계

    관계2.png 

    한 개의 구매신청서에 대해 한 개의 구매주문을 신청한다.
    한 개의 구매주문에 대해 한 개의 구매신청서 내용을 작성한다. 

    ■ 1 : M 관계

    관계3.png 

    한 부서에는 여러 사원을 포함한다.
    한 명의 사원은  부서에 소속된다. 

    ■ N : M 관계

    관계4.png 
     
    하나의 주문에는 여러 개의 제품을 포함한다.
    한 제품은 여러 개의 주문을 통해 주문된다.


    관계에 대해 좀 더 자세하게 알아보자면... http://tech.devgear.co.kr/db_kb/331
     

    4)실선 위에 (min,max)값을 명시해서 좀 더 명확하게 나타낼 수 있음 

    ㄱ.1은 적어도 한번은 

    ㄴ.0은 참여해야할 필요는 없음

    ㄷ.*은 마음대로


    5)하나의 관계에 하나의 엔티티타입이 여러번 나타나면 역할을 표시해야 함


    6)전체 참여와 부분참여

    ㄱ.전체참여 : 엔티티 타입의 모든 엔티티들이 관계에 의해 어떤 다른 엔티티타입의 엔티티들과 모두 연관

    ㄴ.부분참여: 일부 엔티티만 연관


    7)다중 관계 : 두 엔티티 사이에 두개 이상의 관계가 존재함

    8)순환적 관계 : 하나의 엔티티 타입이 동일한 관계 타입에 두번이상 참여

    ++정리++


    출처url

    http://somnode.com/database-deiteobeiseu-seolgyewa-ermodel/

    http://halfmoon.world/49

    http://tech.devgear.co.kr/db_kb/331

    '2017년 > Database' 카테고리의 다른 글

    DB Browser for SQLite  (0) 2017.07.05
    sas university edition을 사용해보자  (0) 2017.06.29
    sqlite란 2부  (0) 2017.06.29
    데이터 베이스 개요  (0) 2017.06.26
    sqlite란 1부  (0) 2017.06.25