SlideShare a Scribd company logo
1 of 62
Download to read offline
SQL Developer 2nd 
! 
엔터티 . 속성 . 관계 . 식별자
Entity (엔터티)
엔터티(Entity) 개념 
사람, 장소, 물건, 사건, 개념 등의 명사로 표현 
업무상 관리가 필요한 관심사 
저장이 되기 위한 어떤 것
개발자 관점에서의 개념 
= Instance = Entity 
Entity 
Instance
Entity / Instance 관계와 표기
엔터티(Entity)의 특징 
• 반드시 해당 업무에서 필요하고 관리하고자 하는 정보여야 한다. 
( ex : 환자, 토익 응시횟수 … ) 
• 유일한 식별자에 의해 식별이 가능해야 한다. 
• 영속적으로 존재하는 인스턴스의 집합이어야 한다. ( ‘한 개’ 가 아니라 ‘두 개 이상’ ) 
• 엔터티는 업무 프로세스에 의해 이용되어야 한다. 
• 엔터티는 반드시 속성이 있어야 한다. 
• 엔터티는 다른 엔터티와 최소 한 개 이상의 관계가 있어야 한다.
1) 업무에서 필요로 하는 정보 
업무영역 내에서 관리가 필요한지 여부를 판단하는 것이 중요
2) 식별이 가능해야 함 
업무적으로 의미를 가지는 인스턴스가 유일한지를 검증이 필요
3) 인스턴스의 집합 
인스턴스가 한 개뿐 이라면 집합의 성립이 되지 않음
4) 업무프로세스에 의해 이용 
사용되지 않은 엔터티는 프로세스에서 누락된 엔터티 
이거나 프로세스에 필요없는 엔터티 일 수 있음
5) 속성을 포함 
속성이 존재하지 않으면 존재할 필요가 없음
6) 관계의 존재 
엔터티가 관계가 없으면, 잘못된 엔터티이거나 
관계가 누락될 가능성이 큼 
예외 ) 통계용 엔터티, 코드성 엔터티, 시스템내부 엔터티
엔터티(Entity)의 분류 
• 유무형에 따른 종류 
A. 유형 엔터티 : 물리적형태, 안정 ∙ 지속적으로 활용되는 엔터티 
B. 개념 엔터티 : 개념적형태, 관리해야할 개념적 엔터티 
C. 사건 엔터티 : 업무진행상 발생량이 많고, 통계용으로 주로 쓰이는 엔터티 
• 발생시점에 따른 종류 
A. 기본 엔터티 : 다른 엔터티와 관계에 의해 생성되지 않고, 독립적으로 생성하는 엔터티 
B. 중심 엔터티 : 기본 엔터티로부터 발생하고, 업무의 중심이 되는 엔터티 
C. 행위 엔터티 : 두 개 이상의 부모 엔터티로부터 발생되고, 내용이 변경되거나 데이터양 
이 증가함
엔터티(Entity) 분류 방법
엔터티(Entity)의 명명(Naming) 
• 가능하면 현업업무에서 사용하는 용어를 사용 
• 가능하면 약어를 사용하지 않는다. 
• 단수명사를 사용한다. 
• 모든 엔터티에서 유일하게 이름이 부여되어야 한다. 
• 엔터티 생성 의미대로 이름을 부여한다. ex ) 고객제품
Attribute (속성)
속성(Attribute)의 개념 
인스턴스의 구성요소!
엔터티, 인스턴스, 속성, 속성값의 관계 
개발자 개념으로…? 
? 
A. 엔터티 : Table 
B. 인스턴스 : Row 
C. 속성 : Column 
D. 속성값 : Value
속성(Attribute)의 표기법 
엔터티에 따른 속성들을 표기…
Wordpress ERD
속성(Attribute)의 특징 
• 엔터티와 마찬가지로 반드시 해당 업무에서 필요하고 관리하고자 
하는 정보이어야 한다. ( ex : 강사의 교재이름 ) 
• 정규화 이론에 근간하여 정해진 주 식별자에 함수적 종속성을 가 
져야 한다. 
• 하나의 속성에는 한 개의 값만을 가진다. 하나의 속성에 여러 개의 
값이 있는 다중값일 경우 별도의 엔터티를 이용하여 분리한다.
속성(Attribute)의 분류 
• 속성의 특성에 따른 분류 
A. 기본 속성 : 업무 분석을 통해 정의한 속성 ( 기분존 정의된 속성 제외 ) 
B. 설계 속성 : 업무상 존재하지 않지만 설계 시 도출된 속성 ( 코드성 속성 ) 
C. 파생 속성 : 다른 속성으로 부터 계산이나 변형되는 속성 
• 엔터티 구성방식에 따른 분류 
A. 식별자 : PK(Primary Key) 속성, FK(Foreign Key) 속성, 일반 속성 
B. 세부 의미 : 단순형(Simple Attribute), 복합형(Composite Attribute) 
C. 값의 수 : 단일값(Single Value), 다중값(Multiple Value), 
단일값 속성(Single-Value Attribute), 다중값 속성(Multiple-Value Attribute)
도메인(Domain) 
• 각 속성의 가질 수 있는 값의 범위 
• 엔터티 내에서 속성에 대한 데이터타입과 크기 그리고 제약사항을 
지정하는 것
속성의 명명(Naming)
Relationship (관계)
관계(Relationship)의 정의
관계의 패어링(Paring) 
엔터티 안에 인스턴스가 개별적으로 관계를 가지는 것 [ 패어링 ] 
인스턴스를 집합화 하여 관계를 도출
관계의 분류
연관 관계 : 실선 ( 멤버변수 사용 ) 
의존 관계 : 점선 ( 파라미터 사용 ) 
Class Diagram
관계의 표기법 
• 관계명 (Membership) : 관계의 이름 
• 관계차수 (Cardinality) : 1:1, 1:M, M:N 
• 관계선택사양 (Optionality) : 필수관계, 선택관계
1) 관계명(Membership) 
• 관계 시작점(The Beginning)과 관계 끝점(The End)을 
능동적 혹은 수동적으로 명명 
• 애매한 동사를 피하고, 현재형으로 표현해야 한다. 
실전에서 잘 사용되지 않음
2) 관계차수(Degree/Cardinality) 
1:1 
1:M 
M:N
관계 차수의 실제 ERD
3) 관계선택사양 
• 필수 참여 (Mandatory Membership) : 관계되는 속성이 필수적으로 존재해야한다. 
• 선택 참여 (Optional Membership) : 관계되는 속성이 null을 허용 할 수 있다. 
단, 0(zero) to 0(zero) 관계가 되는 경우는 관계설정이 잘못되었는지 판단해야 한다. 
Sync & Async? Equal & Outer?
관계 체크사항 
• 두 개의 엔터티 사이에 관심있는 연관규칙이 존재하는가? 
• 두 개의 엔터티 사이에 정보의 조합이 발생되는가? 
• 업무기술서, 장표에 관계연결에 대한 규칙이 서술되어 있는가? 
• 업무기술서, 장표에 관계연결을 가능하게 하는 동사(Verb)가 있는가?
관계 읽기
Identifiers (식별자)
식별자(Identifiers)의 개념 
= KEY
식별자(Identifiers)의 특징 
외부식별자의 경우 주식별자와 일치하지 않으며, 
참조무결성 제약조건(Referential Integrity)에 따른 특징을 가짐 
어떤 실체의 튜플이 다른 실체에 있는 튜플을 참조하려면 참조되는 
튜플이 반드시 그 실체 내에 존재하여야 한다는 것
식별자(Identifiers) 분류
식별자(Identifiers) 표기법
주식별자 도출기준 
• 해당 업무에서 자주 이용되는 속성을 주 식별자로 지정한다. 
• 명칭, 내역 등과 같이 이름으로 기술되는 것들은 가능하면 주 식별 
자로 지정하지 않는다. 
• 복합으로 주 식별자로 구성할 경우 너무 많은 속성이 포함되지 않 
도록 한다.
자주 이용되는 속성
이름으로 기술되는 속성 
공통코드…
속성 수의 제한
식별자관계와 비식별자관계의 결정 
엔터티 사이 관계유형은 업무특징, 자식엔터티의 주식별자구성 
및 SQL 전략에 의해 결정
식별자 관계 
부모의 주식별자가 상속이 되는 경우
비식별자 관계
비식별자 관계 
• 부모엔터티에 인스턴스가 자식 엔터티와 관계를 가지고 있었지만, 
자식만 남겨두고 부모가 먼저 소멸 될 수 있는 경우 
• 대안으로 Foreign Key를 연결하지 않는 임시적인 방법이 있음 
• 모델상으론 비식별자 관계로 설정하는 것이 바람직함 
• 엔터티 통합으로 인한 식별자관계가 비식별자 관계가 되는 경우 
• 자식엔터티에 별도의 주식별자를 생성하는 방법을 이용한다면 외 
부식별자로 표현
식별자 관계로만 설정시 문제점 
부모에서 자식으로 식별자 관계로 연결되므로 인해 
주식별자의 속성 수가 많아지게 된다.
식별자 관계로만 설정시 문제점(2)
식별자 관계로만 설정시 문제점(3)
비식별자 관계로만 설정시 문제점
비식별자 관계로만 설정시 문제점(2)
식별자관계와 비식별자관계 모델링
식별자관계와 비식별자관계 모델링(2)
연습문제 
• 문제 1) 데이터 모델링의 세 가지 중요개념에 속하지 않는 것은? 
A. 업무가 관여하는 어떤것(Things) 
B. 업무가 관여하는 어떤것의 행위(Events) 
C. 업무가 관여하는 어떤것의 성격(Attributes) 
D. 업무가 관여하는 어떤것의 관계(Relationships) 
• 문제 2) 발생시점에 따라 구분할 수 있는 엔터티의 유형이 아닌 것은? 
A. 행위 엔터티(Active Entity) 
B. 중심 엔터티(Main Entity) 
C. 개념 엔터티(Conceptual Entity) 
D. 기본 엔터티(Basic Entity)
연습문제 
• 문제 3) 이 속성이 없어도 다른 속성을 이용하여 결과를 도출할 수 있는 특 
징을 가진 속성의 이름은? 
A. 설계 속성(Designed Attribute) 
B. 파생 속성(Derived Attribute) 
C. 기본 속성(Basic Attribute) 
D. 관계 속성(Associative Attribute) 
• 문제 4) 다음 설명이 나태내는 데이터 모델의 개념은 무엇인가? 
학생이라는 엔터티가 있을 때 학점이라는 속성의 값의 범위는 0.0에서 4.0 사이의 실수 값이 
며 주소라는 속성은 길이가 20자리 이내의 문자열로 정의할 수 있다 
A. 도메인(Domain) 
B. 용어사전(Word Dictionary) 
C. 속성사전(Attribute Dictionary) 
D. 시스템 카탈로그(System Catalog)
연습문제 
• 문제 5) 식별자의 대체여부에 따라 분류하는 방식은? 
A. 주식별자 - 보조식별자 
B. 내부식별자 - 외부식별자 
C. 본질식별자 - 인조식별자 
D. 단일식별자 - 복합식별자 
• 문제 6) 다음 개념에 해당하는 관계는 어떤 관계를 설명한 것인가? 
부모엔터티로부터 속성을 받았지만 자식엔터티의 주식별자로 사용하지 않고 일반적인 속성으 
로만 사용한다. 
A. 식별자관계(Identifying Relationship) 
B. 일반속성관계(Attribute Relationship) 
C. 비식별자관계(Non-Identifying Relationship) 
D. 외부식별관계(Foreign Key Relationship)
기출문제
기출문제
감사합니다 [ Thank you ]

More Related Content

Viewers also liked

2차년도 융합전문가 특강 - 네트워크 보안
2차년도 융합전문가 특강 - 네트워크 보안2차년도 융합전문가 특강 - 네트워크 보안
2차년도 융합전문가 특강 - 네트워크 보안ictplusud
 
[47th KUG PP] Visual Presentation
[47th KUG PP] Visual Presentation[47th KUG PP] Visual Presentation
[47th KUG PP] Visual PresentationKeynote User Group
 
13.품격을 높여주는 비지니스 차트 j.mp-gnchart(44 p)
13.품격을 높여주는 비지니스 차트   j.mp-gnchart(44 p)13.품격을 높여주는 비지니스 차트   j.mp-gnchart(44 p)
13.품격을 높여주는 비지니스 차트 j.mp-gnchart(44 p)하이퍼테크
 
09.11.19. Twenty Network
09.11.19. Twenty Network09.11.19. Twenty Network
09.11.19. Twenty NetworkJUNGEUN KANG
 
[웹프로그래밍] 최종발표
[웹프로그래밍] 최종발표[웹프로그래밍] 최종발표
[웹프로그래밍] 최종발표Kwang-soo Park
 
Monument Ball travel 최종 발표
Monument Ball travel 최종 발표Monument Ball travel 최종 발표
Monument Ball travel 최종 발표준혁 이
 
인포그래픽스 데이터분석과 저널리즘 3장 데이터수집,정제에서 분석까지
인포그래픽스 데이터분석과 저널리즘 3장 데이터수집,정제에서 분석까지인포그래픽스 데이터분석과 저널리즘 3장 데이터수집,정제에서 분석까지
인포그래픽스 데이터분석과 저널리즘 3장 데이터수집,정제에서 분석까지Han Woo PARK
 
2. basic data structures(1)
2. basic data structures(1)2. basic data structures(1)
2. basic data structures(1)Hongjun Jang
 
Chart PPT
Chart PPTChart PPT
Chart PPTsjkim
 
[발표용 '15.11.27]정보보안 전문가 되는길 new(최종_요약본)
[발표용 '15.11.27]정보보안 전문가 되는길 new(최종_요약본)[발표용 '15.11.27]정보보안 전문가 되는길 new(최종_요약본)
[발표용 '15.11.27]정보보안 전문가 되는길 new(최종_요약본)james yoo
 
[Msd12]interface design123
[Msd12]interface design123[Msd12]interface design123
[Msd12]interface design123jylee_kgit
 
[I3 d]11 designui(2)
[I3 d]11 designui(2)[I3 d]11 designui(2)
[I3 d]11 designui(2)jylee_kgit
 
[MSD01]Introduction
[MSD01]Introduction[MSD01]Introduction
[MSD01]Introductionjylee_kgit
 
Excel expert 2010 모의고사 문제만
Excel expert 2010 모의고사 문제만Excel expert 2010 모의고사 문제만
Excel expert 2010 모의고사 문제만수진 서
 
[Info01]introduction
[Info01]introduction[Info01]introduction
[Info01]introductionJY LEE
 

Viewers also liked (20)

2차년도 융합전문가 특강 - 네트워크 보안
2차년도 융합전문가 특강 - 네트워크 보안2차년도 융합전문가 특강 - 네트워크 보안
2차년도 융합전문가 특강 - 네트워크 보안
 
[47th KUG PP] Visual Presentation
[47th KUG PP] Visual Presentation[47th KUG PP] Visual Presentation
[47th KUG PP] Visual Presentation
 
2주차 linux
2주차 linux2주차 linux
2주차 linux
 
Ppt작성기법
Ppt작성기법Ppt작성기법
Ppt작성기법
 
13.품격을 높여주는 비지니스 차트 j.mp-gnchart(44 p)
13.품격을 높여주는 비지니스 차트   j.mp-gnchart(44 p)13.품격을 높여주는 비지니스 차트   j.mp-gnchart(44 p)
13.품격을 높여주는 비지니스 차트 j.mp-gnchart(44 p)
 
09.11.19. Twenty Network
09.11.19. Twenty Network09.11.19. Twenty Network
09.11.19. Twenty Network
 
[웹프로그래밍] 최종발표
[웹프로그래밍] 최종발표[웹프로그래밍] 최종발표
[웹프로그래밍] 최종발표
 
Monument Ball travel 최종 발표
Monument Ball travel 최종 발표Monument Ball travel 최종 발표
Monument Ball travel 최종 발표
 
인포그래픽스 데이터분석과 저널리즘 3장 데이터수집,정제에서 분석까지
인포그래픽스 데이터분석과 저널리즘 3장 데이터수집,정제에서 분석까지인포그래픽스 데이터분석과 저널리즘 3장 데이터수집,정제에서 분석까지
인포그래픽스 데이터분석과 저널리즘 3장 데이터수집,정제에서 분석까지
 
2. basic data structures(1)
2. basic data structures(1)2. basic data structures(1)
2. basic data structures(1)
 
Chart PPT
Chart PPTChart PPT
Chart PPT
 
[발표용 '15.11.27]정보보안 전문가 되는길 new(최종_요약본)
[발표용 '15.11.27]정보보안 전문가 되는길 new(최종_요약본)[발표용 '15.11.27]정보보안 전문가 되는길 new(최종_요약본)
[발표용 '15.11.27]정보보안 전문가 되는길 new(최종_요약본)
 
[Msd12]interface design123
[Msd12]interface design123[Msd12]interface design123
[Msd12]interface design123
 
[I3 d]11 designui(2)
[I3 d]11 designui(2)[I3 d]11 designui(2)
[I3 d]11 designui(2)
 
[Nux]12 nux
[Nux]12 nux[Nux]12 nux
[Nux]12 nux
 
[MSD01]Introduction
[MSD01]Introduction[MSD01]Introduction
[MSD01]Introduction
 
Excel expert 2010 모의고사 문제만
Excel expert 2010 모의고사 문제만Excel expert 2010 모의고사 문제만
Excel expert 2010 모의고사 문제만
 
[Nux]09 nux
[Nux]09 nux[Nux]09 nux
[Nux]09 nux
 
[Info01]introduction
[Info01]introduction[Info01]introduction
[Info01]introduction
 
Socket.io
Socket.io Socket.io
Socket.io
 

Similar to Sql developer 2nd

데이터 모델링
데이터 모델링데이터 모델링
데이터 모델링Choonghyun Yang
 
데이터 모델이론 개념모델링
데이터 모델이론 개념모델링데이터 모델이론 개념모델링
데이터 모델이론 개념모델링DataUs
 
Domain-Driven-Design 정복기 1탄
Domain-Driven-Design 정복기 1탄Domain-Driven-Design 정복기 1탄
Domain-Driven-Design 정복기 1탄현 수
 
Domain-Driven-Design 정복기 1탄
Domain-Driven-Design 정복기 1탄Domain-Driven-Design 정복기 1탄
Domain-Driven-Design 정복기 1탄Suhyeon Jo
 
아꿈사 DDD(Domain-Driven Design) 5장 소프트웨어에서 표현되는 모델
아꿈사 DDD(Domain-Driven Design) 5장 소프트웨어에서 표현되는 모델아꿈사 DDD(Domain-Driven Design) 5장 소프트웨어에서 표현되는 모델
아꿈사 DDD(Domain-Driven Design) 5장 소프트웨어에서 표현되는 모델명환 안
 
추천 시스템 개요 (1)-draft
추천 시스템 개요 (1)-draft추천 시스템 개요 (1)-draft
추천 시스템 개요 (1)-drafthyunsung lee
 
Effective c++ chapter3, 4 요약본
Effective c++ chapter3, 4 요약본Effective c++ chapter3, 4 요약본
Effective c++ chapter3, 4 요약본Dong Chan Shin
 
Social Web 2 [자동 저장]
Social Web 2 [자동 저장]Social Web 2 [자동 저장]
Social Web 2 [자동 저장]guestfa4990
 
effective c++ chapter 3~4 정리
effective c++ chapter 3~4 정리effective c++ chapter 3~4 정리
effective c++ chapter 3~4 정리Injae Lee
 
DDD 그게 뭔데 (개념 찍먹편)
DDD 그게 뭔데 (개념 찍먹편)DDD 그게 뭔데 (개념 찍먹편)
DDD 그게 뭔데 (개념 찍먹편)명석 고
 
언리얼 리플렉션 & CDO.pptx
언리얼 리플렉션 & CDO.pptx언리얼 리플렉션 & CDO.pptx
언리얼 리플렉션 & CDO.pptxMUUMUMUMU
 
De text a deep text ranking framework with bert
De text  a deep text ranking framework with bertDe text  a deep text ranking framework with bert
De text a deep text ranking framework with berttaeseon ryu
 
Sqlp 스터디
Sqlp 스터디Sqlp 스터디
Sqlp 스터디lee4339
 
[PyCon KR 2018] 땀내를 줄이는 Data와 Feature 다루기
[PyCon KR 2018] 땀내를 줄이는 Data와 Feature 다루기[PyCon KR 2018] 땀내를 줄이는 Data와 Feature 다루기
[PyCon KR 2018] 땀내를 줄이는 Data와 Feature 다루기Joeun Park
 
Effective c++ 2
Effective c++ 2Effective c++ 2
Effective c++ 2현찬 양
 
Social Network Analysis : Methods and Applications Ch 1,2
Social Network Analysis : Methods and Applications Ch 1,2Social Network Analysis : Methods and Applications Ch 1,2
Social Network Analysis : Methods and Applications Ch 1,2Kunwoo Park
 
Lost practice : Requirement Analysis
Lost practice : Requirement AnalysisLost practice : Requirement Analysis
Lost practice : Requirement Analysisc K
 

Similar to Sql developer 2nd (18)

데이터 모델링
데이터 모델링데이터 모델링
데이터 모델링
 
데이터 모델이론 개념모델링
데이터 모델이론 개념모델링데이터 모델이론 개념모델링
데이터 모델이론 개념모델링
 
Domain-Driven-Design 정복기 1탄
Domain-Driven-Design 정복기 1탄Domain-Driven-Design 정복기 1탄
Domain-Driven-Design 정복기 1탄
 
Domain-Driven-Design 정복기 1탄
Domain-Driven-Design 정복기 1탄Domain-Driven-Design 정복기 1탄
Domain-Driven-Design 정복기 1탄
 
아꿈사 DDD(Domain-Driven Design) 5장 소프트웨어에서 표현되는 모델
아꿈사 DDD(Domain-Driven Design) 5장 소프트웨어에서 표현되는 모델아꿈사 DDD(Domain-Driven Design) 5장 소프트웨어에서 표현되는 모델
아꿈사 DDD(Domain-Driven Design) 5장 소프트웨어에서 표현되는 모델
 
추천 시스템 개요 (1)-draft
추천 시스템 개요 (1)-draft추천 시스템 개요 (1)-draft
추천 시스템 개요 (1)-draft
 
Effective c++ chapter3, 4 요약본
Effective c++ chapter3, 4 요약본Effective c++ chapter3, 4 요약본
Effective c++ chapter3, 4 요약본
 
Social Web 2 [자동 저장]
Social Web 2 [자동 저장]Social Web 2 [자동 저장]
Social Web 2 [자동 저장]
 
effective c++ chapter 3~4 정리
effective c++ chapter 3~4 정리effective c++ chapter 3~4 정리
effective c++ chapter 3~4 정리
 
DDD 그게 뭔데 (개념 찍먹편)
DDD 그게 뭔데 (개념 찍먹편)DDD 그게 뭔데 (개념 찍먹편)
DDD 그게 뭔데 (개념 찍먹편)
 
언리얼 리플렉션 & CDO.pptx
언리얼 리플렉션 & CDO.pptx언리얼 리플렉션 & CDO.pptx
언리얼 리플렉션 & CDO.pptx
 
De text a deep text ranking framework with bert
De text  a deep text ranking framework with bertDe text  a deep text ranking framework with bert
De text a deep text ranking framework with bert
 
Uml 세미나
Uml 세미나Uml 세미나
Uml 세미나
 
Sqlp 스터디
Sqlp 스터디Sqlp 스터디
Sqlp 스터디
 
[PyCon KR 2018] 땀내를 줄이는 Data와 Feature 다루기
[PyCon KR 2018] 땀내를 줄이는 Data와 Feature 다루기[PyCon KR 2018] 땀내를 줄이는 Data와 Feature 다루기
[PyCon KR 2018] 땀내를 줄이는 Data와 Feature 다루기
 
Effective c++ 2
Effective c++ 2Effective c++ 2
Effective c++ 2
 
Social Network Analysis : Methods and Applications Ch 1,2
Social Network Analysis : Methods and Applications Ch 1,2Social Network Analysis : Methods and Applications Ch 1,2
Social Network Analysis : Methods and Applications Ch 1,2
 
Lost practice : Requirement Analysis
Lost practice : Requirement AnalysisLost practice : Requirement Analysis
Lost practice : Requirement Analysis
 

Sql developer 2nd

  • 1. SQL Developer 2nd ! 엔터티 . 속성 . 관계 . 식별자
  • 3. 엔터티(Entity) 개념 사람, 장소, 물건, 사건, 개념 등의 명사로 표현 업무상 관리가 필요한 관심사 저장이 되기 위한 어떤 것
  • 4. 개발자 관점에서의 개념 = Instance = Entity Entity Instance
  • 5. Entity / Instance 관계와 표기
  • 6. 엔터티(Entity)의 특징 • 반드시 해당 업무에서 필요하고 관리하고자 하는 정보여야 한다. ( ex : 환자, 토익 응시횟수 … ) • 유일한 식별자에 의해 식별이 가능해야 한다. • 영속적으로 존재하는 인스턴스의 집합이어야 한다. ( ‘한 개’ 가 아니라 ‘두 개 이상’ ) • 엔터티는 업무 프로세스에 의해 이용되어야 한다. • 엔터티는 반드시 속성이 있어야 한다. • 엔터티는 다른 엔터티와 최소 한 개 이상의 관계가 있어야 한다.
  • 7. 1) 업무에서 필요로 하는 정보 업무영역 내에서 관리가 필요한지 여부를 판단하는 것이 중요
  • 8. 2) 식별이 가능해야 함 업무적으로 의미를 가지는 인스턴스가 유일한지를 검증이 필요
  • 9. 3) 인스턴스의 집합 인스턴스가 한 개뿐 이라면 집합의 성립이 되지 않음
  • 10. 4) 업무프로세스에 의해 이용 사용되지 않은 엔터티는 프로세스에서 누락된 엔터티 이거나 프로세스에 필요없는 엔터티 일 수 있음
  • 11. 5) 속성을 포함 속성이 존재하지 않으면 존재할 필요가 없음
  • 12. 6) 관계의 존재 엔터티가 관계가 없으면, 잘못된 엔터티이거나 관계가 누락될 가능성이 큼 예외 ) 통계용 엔터티, 코드성 엔터티, 시스템내부 엔터티
  • 13. 엔터티(Entity)의 분류 • 유무형에 따른 종류 A. 유형 엔터티 : 물리적형태, 안정 ∙ 지속적으로 활용되는 엔터티 B. 개념 엔터티 : 개념적형태, 관리해야할 개념적 엔터티 C. 사건 엔터티 : 업무진행상 발생량이 많고, 통계용으로 주로 쓰이는 엔터티 • 발생시점에 따른 종류 A. 기본 엔터티 : 다른 엔터티와 관계에 의해 생성되지 않고, 독립적으로 생성하는 엔터티 B. 중심 엔터티 : 기본 엔터티로부터 발생하고, 업무의 중심이 되는 엔터티 C. 행위 엔터티 : 두 개 이상의 부모 엔터티로부터 발생되고, 내용이 변경되거나 데이터양 이 증가함
  • 15. 엔터티(Entity)의 명명(Naming) • 가능하면 현업업무에서 사용하는 용어를 사용 • 가능하면 약어를 사용하지 않는다. • 단수명사를 사용한다. • 모든 엔터티에서 유일하게 이름이 부여되어야 한다. • 엔터티 생성 의미대로 이름을 부여한다. ex ) 고객제품
  • 18. 엔터티, 인스턴스, 속성, 속성값의 관계 개발자 개념으로…? ? A. 엔터티 : Table B. 인스턴스 : Row C. 속성 : Column D. 속성값 : Value
  • 19. 속성(Attribute)의 표기법 엔터티에 따른 속성들을 표기…
  • 21. 속성(Attribute)의 특징 • 엔터티와 마찬가지로 반드시 해당 업무에서 필요하고 관리하고자 하는 정보이어야 한다. ( ex : 강사의 교재이름 ) • 정규화 이론에 근간하여 정해진 주 식별자에 함수적 종속성을 가 져야 한다. • 하나의 속성에는 한 개의 값만을 가진다. 하나의 속성에 여러 개의 값이 있는 다중값일 경우 별도의 엔터티를 이용하여 분리한다.
  • 22. 속성(Attribute)의 분류 • 속성의 특성에 따른 분류 A. 기본 속성 : 업무 분석을 통해 정의한 속성 ( 기분존 정의된 속성 제외 ) B. 설계 속성 : 업무상 존재하지 않지만 설계 시 도출된 속성 ( 코드성 속성 ) C. 파생 속성 : 다른 속성으로 부터 계산이나 변형되는 속성 • 엔터티 구성방식에 따른 분류 A. 식별자 : PK(Primary Key) 속성, FK(Foreign Key) 속성, 일반 속성 B. 세부 의미 : 단순형(Simple Attribute), 복합형(Composite Attribute) C. 값의 수 : 단일값(Single Value), 다중값(Multiple Value), 단일값 속성(Single-Value Attribute), 다중값 속성(Multiple-Value Attribute)
  • 23. 도메인(Domain) • 각 속성의 가질 수 있는 값의 범위 • 엔터티 내에서 속성에 대한 데이터타입과 크기 그리고 제약사항을 지정하는 것
  • 27. 관계의 패어링(Paring) 엔터티 안에 인스턴스가 개별적으로 관계를 가지는 것 [ 패어링 ] 인스턴스를 집합화 하여 관계를 도출
  • 29. 연관 관계 : 실선 ( 멤버변수 사용 ) 의존 관계 : 점선 ( 파라미터 사용 ) Class Diagram
  • 30. 관계의 표기법 • 관계명 (Membership) : 관계의 이름 • 관계차수 (Cardinality) : 1:1, 1:M, M:N • 관계선택사양 (Optionality) : 필수관계, 선택관계
  • 31. 1) 관계명(Membership) • 관계 시작점(The Beginning)과 관계 끝점(The End)을 능동적 혹은 수동적으로 명명 • 애매한 동사를 피하고, 현재형으로 표현해야 한다. 실전에서 잘 사용되지 않음
  • 34. 3) 관계선택사양 • 필수 참여 (Mandatory Membership) : 관계되는 속성이 필수적으로 존재해야한다. • 선택 참여 (Optional Membership) : 관계되는 속성이 null을 허용 할 수 있다. 단, 0(zero) to 0(zero) 관계가 되는 경우는 관계설정이 잘못되었는지 판단해야 한다. Sync & Async? Equal & Outer?
  • 35. 관계 체크사항 • 두 개의 엔터티 사이에 관심있는 연관규칙이 존재하는가? • 두 개의 엔터티 사이에 정보의 조합이 발생되는가? • 업무기술서, 장표에 관계연결에 대한 규칙이 서술되어 있는가? • 업무기술서, 장표에 관계연결을 가능하게 하는 동사(Verb)가 있는가?
  • 39. 식별자(Identifiers)의 특징 외부식별자의 경우 주식별자와 일치하지 않으며, 참조무결성 제약조건(Referential Integrity)에 따른 특징을 가짐 어떤 실체의 튜플이 다른 실체에 있는 튜플을 참조하려면 참조되는 튜플이 반드시 그 실체 내에 존재하여야 한다는 것
  • 42. 주식별자 도출기준 • 해당 업무에서 자주 이용되는 속성을 주 식별자로 지정한다. • 명칭, 내역 등과 같이 이름으로 기술되는 것들은 가능하면 주 식별 자로 지정하지 않는다. • 복합으로 주 식별자로 구성할 경우 너무 많은 속성이 포함되지 않 도록 한다.
  • 46. 식별자관계와 비식별자관계의 결정 엔터티 사이 관계유형은 업무특징, 자식엔터티의 주식별자구성 및 SQL 전략에 의해 결정
  • 47. 식별자 관계 부모의 주식별자가 상속이 되는 경우
  • 49. 비식별자 관계 • 부모엔터티에 인스턴스가 자식 엔터티와 관계를 가지고 있었지만, 자식만 남겨두고 부모가 먼저 소멸 될 수 있는 경우 • 대안으로 Foreign Key를 연결하지 않는 임시적인 방법이 있음 • 모델상으론 비식별자 관계로 설정하는 것이 바람직함 • 엔터티 통합으로 인한 식별자관계가 비식별자 관계가 되는 경우 • 자식엔터티에 별도의 주식별자를 생성하는 방법을 이용한다면 외 부식별자로 표현
  • 50. 식별자 관계로만 설정시 문제점 부모에서 자식으로 식별자 관계로 연결되므로 인해 주식별자의 속성 수가 많아지게 된다.
  • 57. 연습문제 • 문제 1) 데이터 모델링의 세 가지 중요개념에 속하지 않는 것은? A. 업무가 관여하는 어떤것(Things) B. 업무가 관여하는 어떤것의 행위(Events) C. 업무가 관여하는 어떤것의 성격(Attributes) D. 업무가 관여하는 어떤것의 관계(Relationships) • 문제 2) 발생시점에 따라 구분할 수 있는 엔터티의 유형이 아닌 것은? A. 행위 엔터티(Active Entity) B. 중심 엔터티(Main Entity) C. 개념 엔터티(Conceptual Entity) D. 기본 엔터티(Basic Entity)
  • 58. 연습문제 • 문제 3) 이 속성이 없어도 다른 속성을 이용하여 결과를 도출할 수 있는 특 징을 가진 속성의 이름은? A. 설계 속성(Designed Attribute) B. 파생 속성(Derived Attribute) C. 기본 속성(Basic Attribute) D. 관계 속성(Associative Attribute) • 문제 4) 다음 설명이 나태내는 데이터 모델의 개념은 무엇인가? 학생이라는 엔터티가 있을 때 학점이라는 속성의 값의 범위는 0.0에서 4.0 사이의 실수 값이 며 주소라는 속성은 길이가 20자리 이내의 문자열로 정의할 수 있다 A. 도메인(Domain) B. 용어사전(Word Dictionary) C. 속성사전(Attribute Dictionary) D. 시스템 카탈로그(System Catalog)
  • 59. 연습문제 • 문제 5) 식별자의 대체여부에 따라 분류하는 방식은? A. 주식별자 - 보조식별자 B. 내부식별자 - 외부식별자 C. 본질식별자 - 인조식별자 D. 단일식별자 - 복합식별자 • 문제 6) 다음 개념에 해당하는 관계는 어떤 관계를 설명한 것인가? 부모엔터티로부터 속성을 받았지만 자식엔터티의 주식별자로 사용하지 않고 일반적인 속성으 로만 사용한다. A. 식별자관계(Identifying Relationship) B. 일반속성관계(Attribute Relationship) C. 비식별자관계(Non-Identifying Relationship) D. 외부식별관계(Foreign Key Relationship)