hyeonga_code
Database_03_데이터베이스 개념 모델링, 개체-관계 모델 본문
- 개념 모델링
- 개체-관계 모델_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
- 개체가 관계를 지나 다시 자기자신으로 돌아오는 것입니다.
- 하나의 개체가 다른 개체가 아닌 자기 자신과 관계를 맺는 관계입니다.
- 회원가입 시 추천인 작성
- 고객 개체의 고객 아이디 속성끼리의 순환입니다.
'Oracle Database' 카테고리의 다른 글
Database_06_오라클 데이터베이스 사용하기 (0) | 2023.07.08 |
---|---|
Database_05_관계형 데이터베이스 (0) | 2023.07.07 |
Database_04_데이터베이스 논리적 모델 (0) | 2023.07.06 |
Database_02_데이터 모델링 (0) | 2023.07.04 |
Database_01_데이터베이스 관리 시스템 (0) | 2023.07.03 |