hyeonga_code

Database_03_데이터베이스 개념 모델링, 개체-관계 모델 본문

Oracle Database

Database_03_데이터베이스 개념 모델링, 개체-관계 모델

hyeonga 2023. 7. 5. 05:59
반응형

   

- 개념 모델링
        - 개체-관계 모델_E-R model_Entry-Relationship model
            - 개체와 개체 간의 관계를 이용하여 현실 세계를 개념적 구조로 표현합니다.
            - 핵심 요소
                - 개체
                - 속성
                - 관계
            - 개체-관계 다이어그램_E-R Diagram/ERD
                - 개체-관계 모델을 이용하여 현실 세계를 개념적으로 모델링한 결과물을 그림으로 표현한 것입니다.
                - 개체_Entity [직사각형]
                    - 저장할 가치가 있는 중요 데이터를 가지고 잇는 사람이나 사물, 개념, 사건
                    - 다른 개체와 구별되는 이름을 가지고 있고 각 개체만의 고유한 특성이나 상태
                    - 속성을 하나 이상 가지고 있어야 합니다.
                        - 개념 모델링에서는 개체라고 합니다.
                        - 논리적 모델링에서는 릴레이션이라고 합니다.
                    - 개체 타입_Entity type
                        - 개체를 고유의 이름과 속성들로 정의한 것입니다.
                        '개체 이름'('속성1','속성2',...)
                    - 개체 인스턴스_Entity Instance
                        - 개체를 구성하고 있는 속성이 실제 값을 가짐으로 실체화된 개체입니다.
                        ('속성값1', '속성값2', ....)    > 1 개의 인스턴스
                    - 개체 집합_Entity set
                        - 특정 개체 타입에 대한 개체 인스턴스들을 모아놓은 것입니다.
                        - 인스턴스의 집합
                - 속성_Attribute [타원]-실선-'개체'
                    - 개체나 관계가 가지고 있는 고유의 특성입니다.
                    - 의미 있는 데이터의 가장 작은 논리적 단위입니다.
                    - 파일 구조의 필드와 대응됩니다.
                    - 분류
                        - 속성 값의 개수
                            - 단일 값 속성_Single-valued Attribute  [타원]
                                - 값을 하나만 가질 수 있는 속성입니다.
                                    - 아이디, 적립금 등
                            - 다중 값 속성_Multi-valued Attribute [이중 타원]
                                - 값을 여러 개 가질 수 있는 속성입니다.
                                    - 연락처, 이름
                        - 의미 분해 가능성
                            - 단순 속성
                                - 이름
                            - 복합 속성_Composite Attribute
                                - 의미를 분해할 수 있는 속성입니다.
                                    - 주소, 생년 월일
                        - 기존 속성 값에서 유도
                            - 유도 속성_Derived Attribute [점선 타원]
                                - 기존의 다른 속성의 값에서 유도되어 결정되는 속성
                                - 시간이 흐르면서 변하는 값이 좋습니다.
                                    - 판매가격(원가,할인율,마진율)
                    - Null 값
                        - 아직 결정되지 않았거나 모르는 값, 존재하지 않는 값
                        - 공백이나 0 과 의미가 다릅니다.
                            - 공백은 공백 문자로 1 바이트를 차지합니다.
                        - 널 속성_Null Attribute
                            - 널 값이 허용되는 속성
                    - 키 속성_Key Attribute [밑줄]
                        - 각 개체 인스턴스를 식별하는 데 사용되는 속성입니다.
                            - 중복되는 값이 없는 속성을 말합니다.
                        - 모든 개체 인스턴스의 키 속성 값이 다릅니다.
                        - 둘 이상의 속성들로 구성되기도 합니다.
                        /*
                            - 수강신청
                                - 학번, 이름, 과목코드, 성적, 학점
                                - 과목 코드가 키 속성이 됩니다.
                                - 과목의 중복이나 학번의 중복이 있을 수 있습니다.
                                    > 학번 + 과목 코드 로 고유의 키로 설정할 수 있습니다.
                        */
                    - 관계_Relationship [마름모]
                        '개체'-[마름모]-'개체'
                        - 개체와 개체가 맺고 있는 의미 있는 연관성
                        - 개체 집합들 사이의 대응 관계 = 매핑을 의미합니다.
                        - 업무 요구 사항에 대한 문장의 동사에 해당합니다.
                            - 고객이 책을 구매합니다.
                                > 구매라는 관계도 속성을 가질 수 있습니다.
                                    - 구매날짜, 결제방식
                        /*
                            - 컴퓨터 개론 책
                            - 자바 기초 책

                            - 고객 101
                            - 고객 102
                            - 고객 103

                            - 컴퓨터 개론 책/자바 기초 책 : 0-3 명의 구매가 가능합니다.
                            - 자바 기초 책을 고객 102, 고객 103 이 구매합니다.
                                > 책은 고객과 1:n 관계를 가질 수 있습니다.
                            - 고객 102 는 두 권의 책을 구매합니다.
                                > 고객은 책과 1:n 관계를 가질 수 있습니다.
                                '컴퓨터 개론' -(m)-[고객102]-(n)-'자바 기초'
                                    > 고객 102 s는 1:n의 관계를 가집니다.
                                    - m,n은 레이블입니다.
                            - 고객 101 은 아무 책도 구매하지 않았습니다.
                        */
                        - 유형
                            - 관계에 참여하는 개체 타입의 수
                                - 이항 관계
                                    - 개체 타입 두 개가 맺는 관계
                                - 삼항 관계
                                    - 개체 타입 세 개가 맺는 관계
                                    - 자동차 판매(자동차, 고객, 딜러)
                            - 매핑 카디널리티_Mapping Cardinality(행의 수)
                                - 관계를 맺는 두 개체 집합에서 각 개체 인스턴스가 연관성을 맺고 있는 

                                   상대 개체 집합의 인스턴스의 개수입니다.
                                - 'A'-(n)-<관계>-(n)-'B'
                                    > A 개체가 B 개체의 n개의 인스턴스와 관계를 맺었습니다.
                                    > B 개체가 A 개체의 n개의 인스턴스와 관계를 맺었습니다.
                                - 1:1 일대일 관계
                                    - A 개체 인스턴스가 B 개체 인스턴스 하나와 관계를 맺을 수 있습니다.
                                        - 혼인(남성,여성)
                                    - 하나의 개체가 수많은 속성을 가지고 있는 경우
                                        - 제품과 상세정보
                                - 1:N 일대다 관계
                                    - A 개체 인스턴스가 여러 개의 B 개체 인스턴스와 관계를 맺을 수 있습니다.
                                    - B 개체 인스턴스는 하나의 A 개체 인스턴스와만 관계를 맺을 수 있습니다.
                                        - 부서(사원1, 사원2, ...)
                                            > 여러 사원이 부서에 소속되어 있습니다.
                                            > 사원은 0-1 개의 부서에 소속될 수 있습니다.
                                - N:N 다대다 관계
                                    - A 개체 인스턴스가 여러 개의 B 개체 인스턴스와 관계를 맺을 수 있습니다.
                                    - B 개체 인스턴스가 여러 개의 A 개체 인스턴스와 관계를 맺을 수 있습니다.
                                        - 고객의 상품 구매
                                            '고객'-(0-n)-<구매>-(0-n)-'상품'
                                        - 학생의 수강
                                            '학생'-(1-n)-<수강>-(0-n)-'과목'
                                                - 학생은 과목에 필수 참여합니다.
                                                - 과목은 학생에 선택 참여합니다.
                                            '학생'=(n)=<소속>-(1)='학과'
                                                - 학과에는 여러 학생이 소속될 수 있습니다.
                                                - 학생은 하나의 학과에 소속될 수 있습니다.
                                                - 학생은 학과에 필수 참여합니다.
                                                - 학과는 학생에 필수 참여가 아닙니다.
                                                    - 필수 참여인 경우 새로운 학과를 개설할 수 없습니다.
                            - 순환 관계_Recursive Relationship
                                - 개체가 관계를 지나 다시 자기자신으로 돌아오는 것입니다.
                                - 하나의 개체가 다른 개체가 아닌 자기 자신과 관계를 맺는 관계입니다.
                                    - 회원가입 시 추천인 작성
                                        - 고객 개체의 고객 아이디 속성끼리의 순환입니다.

반응형