※ 관계(Relationship)

               1. 관계란? - 엔터티와 엔터티와의 관계를 의미

           

             2. 관계의 분류

              ① 존재관계 - 존재 자체로 연관성이 있는 관계

                   

              ② 행위관계 - 특정한 행위를 함으로써 연관성이 생기는 관계 

 

              3. 관계의 표기법

              ① 관계명(Membership) - 엔터티와 엔터티가 어떤 관계를 맺고 있는지 나타내주는 문장으로 명확하게 표현해야 하며                                        현재형이어야 한다. 각 엔터티의 관점에서 관계명을 하나씩 가지므로 모든 관계는 두 개의 관계명을 가짐

 

              ② 관계차수(Cardinality) - 각 엔터티에서 관계에 참여하는 수

                    ㉮ 1:1 관계

                    ㉯ 1:N 관계

                    ㉰ M:N 관계

              ③ 관계선택사양(Optionality) - 이 관계가 필수요소인지 선택요소인지의 여부

                    ㉮ 필수적 관계 - 참여자가 반드시 존재해야 하는 관계 

                    ㉯ 선택적 관계 - 참여자가 없을 수도 있는 관계

 

※ 속성(Attribute)

        1. 속성이란? - 사물이나 개념의 특징을 설명해 줄 수 있는 항목들. 의미상으로 더 이상 쪼개질 수 없는 최소의 데이터이어야 하고                          프로세스에 필요한 데이터이어야 함

 

              2. 속성값 - 각각의 속성은 한 개의 속성값을 가지며 속성값은 엔터티에 속한 하나의 인스턴스를 구체적으로 나타내주는 데이터를                          나타냄. 만약 한 개의 속성이 다수의 속성값을 갖는 경우 별도의 엔터티를 만들어 분리시킴

 

        3. 엔터티, 인스턴스, 속성, 속성값의 관계

             • 엔터티 ⊃ 인스턴스 ⊃ 속성 

             • 한 개의 엔터티는 두 개 이상의 인스턴스를 가짐 

             • 한 개의 인스턴스는 두 개 이상의 속성을 가짐

             • 한 개의 속성은 한 개의 속성값을 가짐

 

        4. 속성의 분류

             ① 특성에 따른 분류

                  ㉮ 기본속성(Basic Attribute) - 엔터티의 가장 일반적인 속성으로 업무 프로세스 분석을 통해 바로 정의가 가능한 속성들이 속함.                          일부 설계속성과 파생속성을 제외한 모든 속성이 기본속성에 해당함

                           Ex) 이름, 전화번호

                  ㉯ 설계속성(Designed Attribute) - 업무에 존재하지 않지만 설계과정에서 합리적인 모델링을 위해 인위적으로 만들어진                                    속성으로 중복될 수 있는 인스턴스에 유니크함을 부여

                        Ex) 학번, 고객번호

                    ㉰ 파생속성(Derived Attribute) - 다른 속성으로부터 파생된 속성을 의미하는 것으로 계산된 값이나 가공된 값이 이에 속함.                                데이터 조회 시 빠른 성능을 보장하기 위해 본래의 속성값을 계산하여 따로 저장할 수 있도록 만든 속성. 파생속성을                                    설계할 경우 반드시 데이터의 정합성이 고려되어야 하고 계산 과정에서 누락되는 데이터가 생기는 경우 결괏값이                                        엉터리가 될 수 있는 위험요소가 존재하므로 불가피하게 필요한 경우에만 정의하는 것이 바람직함.

 

            ② 구성방식에 따른 분류

                  ㉮ PK(Primary Key) 속성 - 엔터티에 속한 각 인스턴스에 유니크함을 부여

                  ㉯ FK(Foreign Key) 속성 - 다른 엔터티와 관계를 맺게 해주는 매개체 역할을 하는 속성으로 다른 엔터티의 PK값과 일치하거나                            NULL값을 가질 수 있음

                  ㉰ 일반속성 - PK, FK를 제외한 나머지 속성

 

       5. 도메인 - 데이터 모델링에서 속성이 가질 수 있는 속성값의 범위

 

※ 엔터티(Entity)

        1. 엔터티란? - 데이터베이스에서 식별이 가능한 객체 또는 업무에서 쓰이는 데이터를 명확한 기준을 가지고 용도별로 분류한 그룹

 

                                                                              속성         인스턴스

                                                                                            

엔터티 - 학생

 

        2. 엔터티의 특징

             • 업무에서 쓰이는 정보여야 함

             • 엔터티에 속한 각각의 인스턴스가 중복되어 식별이 모호한 것을 방지하기 위해 인스턴스가 식별 가능한 식별자가 있어야 함

             • 2개 이상의 인스턴스를 가지고 있어야 함

             • 반드시 속성을 포함

             • 다른 엔터티와 1개 이상의 관계를 가지고 있어야 함

 

        3. 엔터티의 분류

             ① 유형 vs. 무형

                  ㉮ 유형 엔터티 - 물리적인 형태로 안정적이고 지속적으로 존재하는 엔터티

                        Ex) 상품, 회원

                  ㉯ 개념 엔터티 - 물리적인 형태 없이 개념적으로 존재하는 엔터티

                        Ex) 부서, 학과

                  ㉰ 사건 엔터티 - 행동을 함으로써 발생하는 엔터티로 통계 자료로 사용 가능

                        Ex) 주문, 이벤트 응모

 

                       ② 발생시점

                  ㉮ 기본 엔터티 - 독립적으로 생성되어 자신만의 주식별자를 가지며 다른 엔터티의 부모 역할을 함

                        Ex) 상품, 회원

                   중심 엔터티 - 기본 엔터티로부터 파생되어 많은 데이터를 가지고 행위 엔터티 생성

                        Ex) 주문

                   행위 엔터티 - 2개 이상의 부모 엔터티로부터 파생되어 자주 추가되거나 변경되는 데이터가 많은 엔터티

                        Ex) 주문 내역, 이벤트 응모 이력 

           

        4. 엔터티의 이름을 정할 때 주의할 점

              • 업무에서 실제로 쓰이는 용어 사용

              • 한글은 약어를 사용하지 않고 영문은 대문자로 표기

              • 단수 명사로 표현하고 띄어쓰기는 하지 않음

              • 다른 엔터티와 의미상으로 중복불가 (주문, 결제 엔터티는 중복가능)

              • 해당 엔터티가 갖고 있는 데이터가 무엇인지 명확하게 표현

 

※ 데이터 모델(Data Model)

        1. 데이터 모델이란? - 구축할 시스템의 정보 요구 사항과 한계를 가장 명확하고 간결하게 표현할 수 있는 도구

 

        2. 데이터 모델 기능

             • 시스템을 현재 또는 원하는 모습으로 가시화

              시스템의 구조와 행동을 명세화

              시스템을 구축하는 구조화한 틀 제공

              시스템을 구축하는 과정에서 결정하는 것을 문서화

              다양한 영역에 집중하기 위해 다른 영역의 세부 사항은 숨기는 다양한 관점 제공

              특정 목표에 따라 구체화된 상세 수준의 표현방법 제공

 

 데이터 모델링(Data Modeling)

             1. 데이터 모델링이란? - 현실 세계를 추상화, 단순화, 명확화 하여 표현하는 기법으로 관리하고자 하는 데이터를 모델로 설계하여                         데이터베이스를 구축

 

        2. 데이터 모델링 특징

              추상화(Abstraction) - 현실 세계를 일정한 형식으로 표현하는 것으로 아이디어나 개념을 간략하게 표현하는 과정

              단순화(Simplification) - 복잡한 현실 세계를 정해진 표기법으로 단순하고 쉽게 표현한다는 의미

              명확화(Clarity) - 불분명함을 제거하고 명확하게 해석할 수 있도록 기술하는 것

 

        3. 데이터 모델링 관점

              데이터 관점(What, Data) - 데이터 위주의 모델링으로 어떤 데이터들이 업무와 얽혀있고 데이터 간에는 어떤 관계가 있는지에                         대해서 모델링하는 방법

              프로세스 관점(How, Process) - 프로세스 위주의 모델링으로 이 업무가 실제로 처리하고 있는 일은 무엇인지 또는 앞으로 처리해야                   하는 일은 무엇인지를 모델링하는 방법

              데이터와 프로세스의 상관 관점(Data vs. Process, Interaction) - 데이터와 프로세스의 관계 위주 모델링으로 프로세스의 흐름에                     따라 데이터가 어떤 영향을 받는지를 모델링하는 방법

 

        4. 데이터 모델링 세 가지 단계

            ① 개념적 데이터 모델링(Conceptual Data Modeling) - 전사적 데이터 모델링 수행 시 행해지는 추상화 레벨이 가장 높은 모델링.                       업무 중심적이고 포괄적인 수준의 모델링이 진행됨

            ② 논리적 데이터 모델링(Logical Data Modeling) - 재사용성이 가장 높은 모델링으로 데이터베이스 모델에 대한 Key, 속성,                               관계 등을 모두 표현하는 단계

            ③ 물리적 데이터 모델링(Physical Data Modeling) - 실제 데이터베이스로 구현할 수 있도록 성능이나 가용성 등의 물리적인 성격을                   고려하여 모델을 표현하는 단계

       

        5. 데이터의 독립성

            ① 3단계 스키마 구조

 

                    ㉮ 외부 스키마(External Schema) / 사용자 관점 - Multiple User's View 단계로 각 사용자가 보는 데이터베이스의 스키마를                               정의

                    ㉯ 개념 스키마(Conceptual Schema) / 통합된 관점 - Community View of DB 단계로 모든 사용자가 보는 데이터베이스의                                 스키마를 통합하여 전체 데이터베이스를 나타내는 것으로 데이터베이스에 저장되는 데이터들을 표현하고 데이터 간의                                 관계를 나타냄

                    ㉰ 내부 스키마(Internal Schema) / 물리적인 관점 - Physical Representation 단계로 물리적인 저장 구조를 나타내며 실질적인                           데이터의 저장 구조, 컬럼 정의, 인덱스 등이 포함됨

                          * 스키마: 데이터 모델에 의거하여 데이터베이스의 성질을 형식적으로 기술

 

            ② 3단계 스키마 구조가 보장하는 독립성

                 ㉮ 논리적 독립성 - 개념 스키마가 변경되어도 외부 스키마는 영향받지 않음

                 ㉯ 물리적 독립성 - 내부 스키마가 변경되어도 외부/개념 스키마는 영향받지 않음

 

        6. ERD(Entity Relationship Diagram)

            ① ERD 표기방식

                ㉮ IE/Crow's Foot - 까마귀발 표기법이라고도 부르고 가장 많이 사용되며 ERWin, ERStudio에서 사용되는 모델

                              ㉯ Case*Method/Baker - Oracle에서 사용되는 모델로 Crow's Foot과 비슷

                     ② IE/Crow'sFoot 표기법

 

기호 의미
사각형  ▭ 엔터티
타원  ◯ 0개
해쉬 마크  | 1개
까마귀 발  ⪪ 2개 이상(n)
실선  – Identifying - 부모 엔터티의 기본 키를 자식 엔터티의 기본 키로 사용

A가 없으면 B가 존재할 수 없는 관계
점선  ⋯ Non-Identifying

A가 없어도 B가 존재할 수 있는 관계

                  ③ ERD 작성 순서

               ㉮ 엔터티를 도출하고 그린다.

               ㉯ 엔터티를 적절하게 배치한다.

               ㉰ 엔터티 간의 관계를 설정한다.

                     * 기본 키로 속성이 상속되는 식별자 관계를 설정

                     * 중복되는 관계가 있으면 안됨

                     * Circle 관계가 발생하면 안됨

                ㉱ 관계명을 기입한다.

                     * 현재용을 사용

                     * 지나치게 포괄적인 용어 사용금지

                     * IE/Crow's Foot 표기법에서는 링크마다 각각의 관계 기술

                ㉲ 관계의 참여도를 기입한다.

                ㉳ 관계의 필수/선택 여부를 기입한다.

+ Recent posts