ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • DB모델링
    DB모델링 2022. 3. 28. 21:45

    모델링은 실체를 두고 사이즈같은 제약적인 조건 때문에 이를 똑같이 만들지 않고 단순하게 표현하는 기법이다.

    실체는 모델을 가지고 구현한 것이다.

     

    <DB모델링>

    개발자와 고객의 의사소통 때문에 모델링이 필요하다. -> 모델링한 것을 문서화하기 위해서 필요하다.

     

    <소프트웨어 개발과정>

    1) 요구사항 분석

    -정보 전략 계획의 수립

    -업무 분석

     

    2) 프로그램 설계

    -논리 DB설계(데이터 관점)

    -프로세스 모델링

    -상관 모델링

    -물리DB설계

    -프로그램(로직) 설계

     

    3) 프로그램 구현

    -DB구축(데이터 관점)

    -프로그램 개발

     

    4) 통합테스트

    -DB 튜닝(데이터 관점)

    -프로그램 테스트

     

    5) 유지보수

    -RUN & 유지보수

     

    DB모델링의 주요 개념

    1) 엔티티(=테이블)

    -업무의 관심 대상이 되는 정보를 가져야하고 그에 대한 정보를 관리할 필요가 있는 유형, 무형의 사물(개체)

    (유형, 무형, 문서, 이력(입출고), 코드)

     

    2) 속성(=컬럼)

    -엔티티에서 관리해야 할 최소 단위 정보 항목(관심이 있는 항목)을 말하며

     엔티티는 하나 이상의 속성을 포함한다.

    -기본 속성 : 엔티티에서 쓰는 기본적인 속성

    -유도 속성 : 다른 값에 의해 유도되는 속성(평균, 합계, 등급)

     

    3) 인스턴스(=행)

    -엔티티의 속성으로 실제로 구현된 하나의 값.

     

    4) 엔티티 조건

    -사물이어야하고 적절한 속성을 소유해야하고 두 개 이상의 인스턴스를 소유해야한다.

     

    5) 속성 명명규칙

    -속성의미가 분명해야하고 업무에서 사용하는 이름을 부여해야한다. (서술식X, 약어X)

     

    6) 관계

    -두 엔티티 사이의 관련성을 나타낸다.

     

    7)**카디널리티**

    -각 엔티티에 속해 있는 인스턴스들 간에 수적으로 어떤 관계에 있는지 나타낸다.

    (1:1, 1:N, M:N의 관계) <- 부모 : 자식(대부분)

    ex. 학생 -> 학생 취미

               -> 학생 취미2 (취미는 여러가지 존재할 수 있다.) 

     

    8) 주식별자(Primary Identifer)

    -엔티티 내 각 인스턴스를 구별하는 기준이 되는 속성

     

    9) 외래식별자(Foreign Identifer)

    -관계가 있는 엔티티 간의 연결고리 역할을 하는 속성

    ex. EMPLOYEE테이블에서 DEPT_CODE

         EMPLOYEE테이블에서 JOB_CODE

         EMPLOYEE테이블에서 SAL_LEVEL...

     

    10) 개념적 설계

    -요구분석 단계에서 정의된 핵심 개체와 그들 간의 관계를 바탕으로

     ERD를 생성하는 단계

     

    11) 논리적 설계

    -개념설계에서 추상화된 데이터를 구체화하여 개체, 속성을 테이블화하고 상세화하는 과정

     

    12) 물리적 설계

    -논리적 설계 단계에서 표현된 데이터를 실제 컴퓨터의 저장장치에 어떻게 표현할 것인가

    (관계형 데이터베이스로 전환한다)

     

    <개념적 모델링>

     

    1) 엔티티 도출

    -엔티티 후보 풀엔티티 리스트를 그린다.

    -분석 대상 문서를 보고 명사를 찾아 표시한다.

    -명사 하나하나에 대해 속성인지 엔티티인지 구분한다.

    -중복된 명사, 유사한 의미의 명사는 하나로 정리한다.

    -엔티티 후보풀에 있는 명사들을 검토한다.

    -도출된 엔티티에 대하여 구축될 시스템에서 데이터를 관리할 필요가 있는지 판단한다.

     

    ERD

    -'개체 관계도', 엔티티와 속성들을 그림으로 그려 관계를 도출한 것

     

    주식별자(Primary Identifier)

    =고유식별자

    -엔티티에 소속된 인스턴스들을 구별하는 기준 역할.

    -유일성, 최소성, 불변성, 존재성

    -여러 속성일 수 있음(복합 키)

    -인위적 주식별자 : 속성 중 주식별자 속성이 없다면 새로운 속성을 만든다.

     

    외래 식별자(Foreign Identifier)

    -부모의 주식별자와 공통 속성이 자식에게도 존재하면 해당 속성을 외래 식별자로 지정

     

    엔티티 간의 부모-자식 관계

    -먼저 생성된 정보에 따라 결정된다. --> 애매할 때 카디널리티를 생각해보면 알 수 있다.

    1:N(부모:자식) -->먼저 생성된 것이 부모, 그 다음에 생성된 것이 자식

     

    참여도

    -필수, 선택

    (부모-학생, 자식-학생별취미)

     

    카디널리티

    -인스턴스들을 수적으로 표현한 것

    -인스턴스가 1개와 대응된다면 | 로 표시, 다수와 대응된다면 까마귀발 표기법 표시

     

    관계의 참여도

     | = 필수

    O = 선택

     

    ********완전중요**********

    외래식별자 지정

    *ERD 표기법 (식별-비식별 관계)

    식별 관계

    -1:N 관계에서 외래 식별자가 자식 엔티티의 주식별자의 일부가 되는 관계

    -PFK로 표시(외래 식별자가 주식별자의 역할도 함)

    -실선으로 관계 표시

     

    비식별 관계

    -1:N 관계에서 외래 식별자가 자식 엔티티의 주식별자 역할을 하지 못하고

    단순히 새로운 속성으로 추가되는 관계

    -FK로 표시(단지 외래식별자의 역할만 함)

    -점선으로 관계 표시

     

    1. 일단 비식별 관계로 먼저 연결한다.

    2. 자식 엔티티 입장에서 데이터를 생각해본다.

     

    ERD 표기법(관계)

    한 개의 XXX에 한 개의

                        여러 개의 XXX가 ~~다.

     

    1) 1:1 관계

    -한 명의 학과장은 한 학과에 속해 있다.( 1:1 )

    -한 학과는 한 명의 학과장을 갖고 있다.( 1:1 )

     

    2) 1:N 관계

    -한 교수는 여러 개의 수업과목을 맡을 수 있다.( 1:N )

    -한 수업 과목은 여러 교수에 배당될 수 있다.( 1:N )

    -한 수업 과목은 한 교수에 배당된다.( 1:N )

    -교수 - 수업과목 M:N(구현 불가능) 분석중요!!

     

    3) M:N 관계

    -덜 완성된 모습 (M:N관계는 해소해줘야 한다.)
    -중간에<릴레이션 엔티티>가 들어가야 한다.

    -정교화를 통해 해소한다.

    'DB모델링' 카테고리의 다른 글

    DB모델링[2]_예제문제  (0) 2022.03.29
Designed by Tistory.