ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 16. 데이터베이스 설계
    개발자 수업/DB 2021. 11. 16. 17:59

    1. 데이터베이스 설계
        1) 사용자의 다양한 요구 사항을 고려하여 DB를 생성하는 과정
        2) 이미 구축된 DB는 구조를 변경하기 어려우므로 체계적인 설계를 통해 DB가 올바르게 구축되어야 함
        3) 대표적인 설계 방법
            - E-R 모델
            - 정규화를 이용한 설계

    2. DB 설계 단계
        1) 요구 사항 분석
            - 실제 세계에서 어떤 요구사항의 시스템을 구축할 것인지에 대한 DB의 용도 파악
            - 요구사항에 대한 어떤 데이터들이 필요한지, 어떤 기능들이 필요한지 분석
            - 산출물 : 요구사항 명세서
        2) 개념적 설계 (Conceptual Model)
            - 요구사항 분석 결과물을 개념적 데이터 모델로 표현
            - 요구사항 명세서를 E-R 다이어그램으로 표현
        3) 논리적 설계
            - 관계 모델(Relational Model)을 통해 개념적 모델을 논리적으로 표현
            - 산출물 : 릴레이션 스키마
        4) 물리적 설계
            - DBMS로 구현이 가능한 물리적인 구조 설계
            - 저장 타입 등 설계
            - 산출물 : 물리적 스키마
        5) 소프트웨어 구현
        6) 서비스(사이트) 운영
        

    3. 요구사항 분석
        1) DB를 사용할 주요 사용자의 범위 결정
        2) 사용자가 수행하는 업무를 분석
        3) 수집된 요구사항에 대한 분석 결과가 요구사항 명세서임
        4) 예
            - 이젠아카데미에 회원으로 가입하려면 회원아이디, 비밀번호, 이름, 이메일, 전화번호를 입력해야 함
            - 회원은 회원아이디로 식별함
            - 강의(상품)에 대한 강의번호, 강의명, 수강생 수, 수강비를 유지해야 함
            - 상품은 상품번호로 식별함
            - 회원이 강의를 주문하면 주문에 대한 주문번호, 주문수량, 강의실, 주문일자 정보를 유지해야 함

    4. 개념적 설계
        1) DMBS에 독립적인 개념적 스키마를 설계하는 과정
        2) 요구사항 분석 결과를 기반으로 중요한 개체를 추출하고 개체 간의 관계를 결정하여 E-R 다이어그램으로 표현
        3) 작업 과정
            - step 1 : 개체 추출, 각 개체의 주요 속성과 키 속성 선별
            - step 2 : 개체 간의 관계 결정
            - step 3 : E-R 다이어그램 작성

        4) Step 1
            - 개체 : 저장할 만한 가치가 있는 중요한 데이터를 가진 사람이나 사물 등
            - 개체 / 속성 추출 방법
                - 요구사항 문장에서 업무(서비스)와 관련이 깊은 의미 있는 명사를 찾음
                - 찾아낸 명사를 개체와 속성으로 분류
        5) Step 2
            - 관계 (Relationship) : 개체 간의 의미 있는 연관성
            - 관계 추출 방법
                - 요구사항 문장에서 개체 간의 연관성을 의미있게 표현한 동사를 찾음
                - 찾아낸 관계에 대해 매칭 Cardinality
                    - 매칭 Cardinality
                        - 1:1, 1:n, m:n
                    - 참여 특성
                        - 전체 참여, 부분 참여
            - 예
                - 주문
                    - 개체 : 회원(선택), 상품(선택)
                    - Cardinality : m:n
                    - 속성 : 전화번호, 주문수량, 배송지, 주문일자
                - 공급
                    - 개체 : 상품(필수), 제공업체(선택)
                    - Cardinality : 1:n
                    - 속성 : 공급일자, 공급량
                - 작성
                    - 개체 : 회원(선택), 게시글(필수)
                    - Cardinality : 1:n
        6) Step 3
            - ER 모델 (Entity Relation Model)
                - 요구사항에서 얻어낸 정보를 개체, 속성, 관계성으로 기술하는 데이터 모델
                - (Peter) Chen notation
                - Crow's Foot (까마귀 발) notation
                  barker 표기법

    5. 개체 (Entity)
        1) 저장할 만한 가치가 있는 중요한 데이터를 가진 사람이나 사물, 행위 등
        2) 개체 이름을 포함하는 네모로 표현

    6. 속성 (Attribute)
        1) 이름을 포함한 원으로 표현
        2) Key Attribute
            - 특정 Entity를 식별할 수 있는 고유한 값을 가진 Attribute
            - 이름에 underscore

    7. 관계 (Relationship)
        1) Entity간의 어떤 상호작용을 하는지 표현
        2) Relationship 이름을 포함한 다이아몬드(마름모)로 표현
        3) Relationship도 Attribute를 가질 수 있음

    8. Cardinality (Degree of Relationship)
        1) 관계를 맺는 두 Entity에 대해 한 객체가 얼마나 많은 다른 개체와 관련될 수 있는지 나타내는 표현
            - "1", "N", "M"
        2) Cardinality에 따른 관계 타입의 유형
            one to one (1:1)
                - 일대일 관계
                - 하나의 개체가 하나의 개체에 대응
                - 예) 사원 - 컴퓨터
            one to many (1:N)
                - 일대다 관계
                - 하나의 개채가 여러 개체에 대응
                - 예) 학과 - 학생
            many to one (N:1)
                - 다대일 관계
                - 여러 개체가 하나의 개체에 대응
                - 예) 학과 - 학생
            many to many (M:N)
                - 다대다 관계
                - 여러 개체가 여러 개체에 대응
                - 예) 학생 - 강좌

    '개발자 수업 > DB' 카테고리의 다른 글

    18. 데이터베이스 설계2  (0) 2021.11.16
    17. 논리적 설계  (0) 2021.11.16
    15. SELECT  (0) 2021.11.16
    14. JDBCConnectTest  (0) 2021.11.16
    13. CASE  (0) 2021.11.16

    댓글