Sql developer 2nd

Post on 09-Jul-2015

277 Views

Category:

Software

8 Downloads

Preview:

Click to see full reader

DESCRIPTION

SQL Developer 스터디 2주차 - 엔터티 - 속성 - 관계 - 식별자

Transcript

SQL Developer 2nd!

엔터티 . 속성 . 관계 . 식별자

Entity (엔터티)

엔터티(Entity) 개념사람, 장소, 물건, 사건, 개념 등의 명사로 표현

업무상 관리가 필요한 관심사저장이 되기 위한 어떤 것

개발자 관점에서의 개념= Entity= Instance

Instance

Entity

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 ]

top related