Sql developer 2nd
-
Upload
minwoo-choi -
Category
Software
-
view
277 -
download
8
description
Transcript of Sql developer 2nd
![Page 1: Sql developer 2nd](https://reader031.fdocument.pub/reader031/viewer/2022020116/559dfda91a28ab66098b46ef/html5/thumbnails/1.jpg)
SQL Developer 2nd!
엔터티 . 속성 . 관계 . 식별자
![Page 2: Sql developer 2nd](https://reader031.fdocument.pub/reader031/viewer/2022020116/559dfda91a28ab66098b46ef/html5/thumbnails/2.jpg)
Entity (엔터티)
![Page 3: Sql developer 2nd](https://reader031.fdocument.pub/reader031/viewer/2022020116/559dfda91a28ab66098b46ef/html5/thumbnails/3.jpg)
엔터티(Entity) 개념사람, 장소, 물건, 사건, 개념 등의 명사로 표현
업무상 관리가 필요한 관심사저장이 되기 위한 어떤 것
![Page 4: Sql developer 2nd](https://reader031.fdocument.pub/reader031/viewer/2022020116/559dfda91a28ab66098b46ef/html5/thumbnails/4.jpg)
개발자 관점에서의 개념= Entity= Instance
Instance
Entity
![Page 5: Sql developer 2nd](https://reader031.fdocument.pub/reader031/viewer/2022020116/559dfda91a28ab66098b46ef/html5/thumbnails/5.jpg)
Entity / Instance 관계와 표기
![Page 6: Sql developer 2nd](https://reader031.fdocument.pub/reader031/viewer/2022020116/559dfda91a28ab66098b46ef/html5/thumbnails/6.jpg)
엔터티(Entity)의 특징
• 반드시 해당 업무에서 필요하고 관리하고자 하는 정보여야 한다. ( ex : 환자, 토익 응시횟수 … )
• 유일한 식별자에 의해 식별이 가능해야 한다.
• 영속적으로 존재하는 인스턴스의 집합이어야 한다. ( ‘한 개’ 가 아니라 ‘두 개 이상’ )
• 엔터티는 업무 프로세스에 의해 이용되어야 한다.
• 엔터티는 반드시 속성이 있어야 한다.
• 엔터티는 다른 엔터티와 최소 한 개 이상의 관계가 있어야 한다.
![Page 7: Sql developer 2nd](https://reader031.fdocument.pub/reader031/viewer/2022020116/559dfda91a28ab66098b46ef/html5/thumbnails/7.jpg)
1) 업무에서 필요로 하는 정보
업무영역 내에서 관리가 필요한지 여부를 판단하는 것이 중요
![Page 8: Sql developer 2nd](https://reader031.fdocument.pub/reader031/viewer/2022020116/559dfda91a28ab66098b46ef/html5/thumbnails/8.jpg)
2) 식별이 가능해야 함
업무적으로 의미를 가지는 인스턴스가 유일한지를 검증이 필요
![Page 9: Sql developer 2nd](https://reader031.fdocument.pub/reader031/viewer/2022020116/559dfda91a28ab66098b46ef/html5/thumbnails/9.jpg)
3) 인스턴스의 집합
인스턴스가 한 개뿐 이라면 집합의 성립이 되지 않음
![Page 10: Sql developer 2nd](https://reader031.fdocument.pub/reader031/viewer/2022020116/559dfda91a28ab66098b46ef/html5/thumbnails/10.jpg)
4) 업무프로세스에 의해 이용
사용되지 않은 엔터티는 프로세스에서 누락된 엔터티 이거나 프로세스에 필요없는 엔터티 일 수 있음
![Page 11: Sql developer 2nd](https://reader031.fdocument.pub/reader031/viewer/2022020116/559dfda91a28ab66098b46ef/html5/thumbnails/11.jpg)
5) 속성을 포함
속성이 존재하지 않으면 존재할 필요가 없음
![Page 12: Sql developer 2nd](https://reader031.fdocument.pub/reader031/viewer/2022020116/559dfda91a28ab66098b46ef/html5/thumbnails/12.jpg)
6) 관계의 존재
엔터티가 관계가 없으면, 잘못된 엔터티이거나 관계가 누락될 가능성이 큼
예외 ) 통계용 엔터티, 코드성 엔터티, 시스템내부 엔터티
![Page 13: Sql developer 2nd](https://reader031.fdocument.pub/reader031/viewer/2022020116/559dfda91a28ab66098b46ef/html5/thumbnails/13.jpg)
엔터티(Entity)의 분류
• 유무형에 따른 종류 A. 유형 엔터티 : 물리적형태, 안정 ∙ 지속적으로 활용되는 엔터티
B. 개념 엔터티 : 개념적형태, 관리해야할 개념적 엔터티
C. 사건 엔터티 : 업무진행상 발생량이 많고, 통계용으로 주로 쓰이는 엔터티
• 발생시점에 따른 종류 A. 기본 엔터티 : 다른 엔터티와 관계에 의해 생성되지 않고, 독립적으로 생성하는 엔터티
B. 중심 엔터티 : 기본 엔터티로부터 발생하고, 업무의 중심이 되는 엔터티
C. 행위 엔터티 : 두 개 이상의 부모 엔터티로부터 발생되고, 내용이 변경되거나 데이터양 이 증가함
![Page 14: Sql developer 2nd](https://reader031.fdocument.pub/reader031/viewer/2022020116/559dfda91a28ab66098b46ef/html5/thumbnails/14.jpg)
엔터티(Entity) 분류 방법
![Page 15: Sql developer 2nd](https://reader031.fdocument.pub/reader031/viewer/2022020116/559dfda91a28ab66098b46ef/html5/thumbnails/15.jpg)
엔터티(Entity)의 명명(Naming)
• 가능하면 현업업무에서 사용하는 용어를 사용
• 가능하면 약어를 사용하지 않는다.
• 단수명사를 사용한다.
• 모든 엔터티에서 유일하게 이름이 부여되어야 한다.
• 엔터티 생성 의미대로 이름을 부여한다. ex ) 고객제품
![Page 16: Sql developer 2nd](https://reader031.fdocument.pub/reader031/viewer/2022020116/559dfda91a28ab66098b46ef/html5/thumbnails/16.jpg)
Attribute (속성)
![Page 17: Sql developer 2nd](https://reader031.fdocument.pub/reader031/viewer/2022020116/559dfda91a28ab66098b46ef/html5/thumbnails/17.jpg)
속성(Attribute)의 개념
인스턴스의 구성요소!
![Page 18: Sql developer 2nd](https://reader031.fdocument.pub/reader031/viewer/2022020116/559dfda91a28ab66098b46ef/html5/thumbnails/18.jpg)
엔터티, 인스턴스, 속성, 속성값의 관계
개발자 개념으로…?
?
A. 엔터티 : Table
B. 인스턴스 : Row
C. 속성 : Column
D. 속성값 : Value
![Page 19: Sql developer 2nd](https://reader031.fdocument.pub/reader031/viewer/2022020116/559dfda91a28ab66098b46ef/html5/thumbnails/19.jpg)
속성(Attribute)의 표기법
엔터티에 따른 속성들을 표기…
![Page 20: Sql developer 2nd](https://reader031.fdocument.pub/reader031/viewer/2022020116/559dfda91a28ab66098b46ef/html5/thumbnails/20.jpg)
Wordpress ERD
![Page 21: Sql developer 2nd](https://reader031.fdocument.pub/reader031/viewer/2022020116/559dfda91a28ab66098b46ef/html5/thumbnails/21.jpg)
속성(Attribute)의 특징
• 엔터티와 마찬가지로 반드시 해당 업무에서 필요하고 관리하고자 하는 정보이어야 한다. ( ex : 강사의 교재이름 )
• 정규화 이론에 근간하여 정해진 주 식별자에 함수적 종속성을 가져야 한다.
• 하나의 속성에는 한 개의 값만을 가진다. 하나의 속성에 여러 개의 값이 있는 다중값일 경우 별도의 엔터티를 이용하여 분리한다.
![Page 22: Sql developer 2nd](https://reader031.fdocument.pub/reader031/viewer/2022020116/559dfda91a28ab66098b46ef/html5/thumbnails/22.jpg)
속성(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)
![Page 23: Sql developer 2nd](https://reader031.fdocument.pub/reader031/viewer/2022020116/559dfda91a28ab66098b46ef/html5/thumbnails/23.jpg)
도메인(Domain)
• 각 속성의 가질 수 있는 값의 범위
• 엔터티 내에서 속성에 대한 데이터타입과 크기 그리고 제약사항을 지정하는 것
![Page 24: Sql developer 2nd](https://reader031.fdocument.pub/reader031/viewer/2022020116/559dfda91a28ab66098b46ef/html5/thumbnails/24.jpg)
속성의 명명(Naming)
![Page 25: Sql developer 2nd](https://reader031.fdocument.pub/reader031/viewer/2022020116/559dfda91a28ab66098b46ef/html5/thumbnails/25.jpg)
Relationship (관계)
![Page 26: Sql developer 2nd](https://reader031.fdocument.pub/reader031/viewer/2022020116/559dfda91a28ab66098b46ef/html5/thumbnails/26.jpg)
관계(Relationship)의 정의
![Page 27: Sql developer 2nd](https://reader031.fdocument.pub/reader031/viewer/2022020116/559dfda91a28ab66098b46ef/html5/thumbnails/27.jpg)
관계의 패어링(Paring)
엔터티 안에 인스턴스가 개별적으로 관계를 가지는 것 [ 패어링 ] 인스턴스를 집합화 하여 관계를 도출
![Page 28: Sql developer 2nd](https://reader031.fdocument.pub/reader031/viewer/2022020116/559dfda91a28ab66098b46ef/html5/thumbnails/28.jpg)
관계의 분류
![Page 29: Sql developer 2nd](https://reader031.fdocument.pub/reader031/viewer/2022020116/559dfda91a28ab66098b46ef/html5/thumbnails/29.jpg)
Class Diagram
연관 관계 : 실선 ( 멤버변수 사용 ) 의존 관계 : 점선 ( 파라미터 사용 )
![Page 30: Sql developer 2nd](https://reader031.fdocument.pub/reader031/viewer/2022020116/559dfda91a28ab66098b46ef/html5/thumbnails/30.jpg)
관계의 표기법
• 관계명 (Membership) : 관계의 이름
• 관계차수 (Cardinality) : 1:1, 1:M, M:N
• 관계선택사양 (Optionality) : 필수관계, 선택관계
![Page 31: Sql developer 2nd](https://reader031.fdocument.pub/reader031/viewer/2022020116/559dfda91a28ab66098b46ef/html5/thumbnails/31.jpg)
1) 관계명(Membership)
• 관계 시작점(The Beginning)과 관계 끝점(The End)을 능동적 혹은 수동적으로 명명
• 애매한 동사를 피하고, 현재형으로 표현해야 한다. 실전에서 잘 사용되지 않음
![Page 32: Sql developer 2nd](https://reader031.fdocument.pub/reader031/viewer/2022020116/559dfda91a28ab66098b46ef/html5/thumbnails/32.jpg)
2) 관계차수(Degree/Cardinality)
1:1
1:M
M:N
![Page 33: Sql developer 2nd](https://reader031.fdocument.pub/reader031/viewer/2022020116/559dfda91a28ab66098b46ef/html5/thumbnails/33.jpg)
관계 차수의 실제 ERD
![Page 34: Sql developer 2nd](https://reader031.fdocument.pub/reader031/viewer/2022020116/559dfda91a28ab66098b46ef/html5/thumbnails/34.jpg)
3) 관계선택사양
• 필수 참여 (Mandatory Membership) : 관계되는 속성이 필수적으로 존재해야한다. • 선택 참여 (Optional Membership) : 관계되는 속성이 null을 허용 할 수 있다. 단, 0(zero) to 0(zero) 관계가 되는 경우는 관계설정이 잘못되었는지 판단해야 한다.
Sync & Async? Equal & Outer?
![Page 35: Sql developer 2nd](https://reader031.fdocument.pub/reader031/viewer/2022020116/559dfda91a28ab66098b46ef/html5/thumbnails/35.jpg)
관계 체크사항
• 두 개의 엔터티 사이에 관심있는 연관규칙이 존재하는가?
• 두 개의 엔터티 사이에 정보의 조합이 발생되는가?
• 업무기술서, 장표에 관계연결에 대한 규칙이 서술되어 있는가?
• 업무기술서, 장표에 관계연결을 가능하게 하는 동사(Verb)가 있는가?
![Page 36: Sql developer 2nd](https://reader031.fdocument.pub/reader031/viewer/2022020116/559dfda91a28ab66098b46ef/html5/thumbnails/36.jpg)
관계 읽기
![Page 37: Sql developer 2nd](https://reader031.fdocument.pub/reader031/viewer/2022020116/559dfda91a28ab66098b46ef/html5/thumbnails/37.jpg)
Identifiers (식별자)
![Page 38: Sql developer 2nd](https://reader031.fdocument.pub/reader031/viewer/2022020116/559dfda91a28ab66098b46ef/html5/thumbnails/38.jpg)
식별자(Identifiers)의 개념
= KEY
![Page 39: Sql developer 2nd](https://reader031.fdocument.pub/reader031/viewer/2022020116/559dfda91a28ab66098b46ef/html5/thumbnails/39.jpg)
식별자(Identifiers)의 특징
외부식별자의 경우 주식별자와 일치하지 않으며, 참조무결성 제약조건(Referential Integrity)에 따른 특징을 가짐
어떤 실체의 튜플이 다른 실체에 있는 튜플을 참조하려면 참조되는 튜플이 반드시 그 실체 내에 존재하여야 한다는 것
![Page 40: Sql developer 2nd](https://reader031.fdocument.pub/reader031/viewer/2022020116/559dfda91a28ab66098b46ef/html5/thumbnails/40.jpg)
식별자(Identifiers) 분류
![Page 41: Sql developer 2nd](https://reader031.fdocument.pub/reader031/viewer/2022020116/559dfda91a28ab66098b46ef/html5/thumbnails/41.jpg)
식별자(Identifiers) 표기법
![Page 42: Sql developer 2nd](https://reader031.fdocument.pub/reader031/viewer/2022020116/559dfda91a28ab66098b46ef/html5/thumbnails/42.jpg)
주식별자 도출기준
• 해당 업무에서 자주 이용되는 속성을 주 식별자로 지정한다.
• 명칭, 내역 등과 같이 이름으로 기술되는 것들은 가능하면 주 식별자로 지정하지 않는다.
• 복합으로 주 식별자로 구성할 경우 너무 많은 속성이 포함되지 않도록 한다.
![Page 43: Sql developer 2nd](https://reader031.fdocument.pub/reader031/viewer/2022020116/559dfda91a28ab66098b46ef/html5/thumbnails/43.jpg)
자주 이용되는 속성
![Page 44: Sql developer 2nd](https://reader031.fdocument.pub/reader031/viewer/2022020116/559dfda91a28ab66098b46ef/html5/thumbnails/44.jpg)
이름으로 기술되는 속성
공통코드…
![Page 45: Sql developer 2nd](https://reader031.fdocument.pub/reader031/viewer/2022020116/559dfda91a28ab66098b46ef/html5/thumbnails/45.jpg)
속성 수의 제한
![Page 46: Sql developer 2nd](https://reader031.fdocument.pub/reader031/viewer/2022020116/559dfda91a28ab66098b46ef/html5/thumbnails/46.jpg)
식별자관계와 비식별자관계의 결정
엔터티 사이 관계유형은 업무특징, 자식엔터티의 주식별자구성 및 SQL 전략에 의해 결정
![Page 47: Sql developer 2nd](https://reader031.fdocument.pub/reader031/viewer/2022020116/559dfda91a28ab66098b46ef/html5/thumbnails/47.jpg)
식별자 관계
부모의 주식별자가 상속이 되는 경우
![Page 48: Sql developer 2nd](https://reader031.fdocument.pub/reader031/viewer/2022020116/559dfda91a28ab66098b46ef/html5/thumbnails/48.jpg)
비식별자 관계
![Page 49: Sql developer 2nd](https://reader031.fdocument.pub/reader031/viewer/2022020116/559dfda91a28ab66098b46ef/html5/thumbnails/49.jpg)
비식별자 관계• 부모엔터티에 인스턴스가 자식 엔터티와 관계를 가지고 있었지만, 자식만 남겨두고 부모가 먼저 소멸 될 수 있는 경우
• 대안으로 Foreign Key를 연결하지 않는 임시적인 방법이 있음
• 모델상으론 비식별자 관계로 설정하는 것이 바람직함
• 엔터티 통합으로 인한 식별자관계가 비식별자 관계가 되는 경우
• 자식엔터티에 별도의 주식별자를 생성하는 방법을 이용한다면 외부식별자로 표현
![Page 50: Sql developer 2nd](https://reader031.fdocument.pub/reader031/viewer/2022020116/559dfda91a28ab66098b46ef/html5/thumbnails/50.jpg)
식별자 관계로만 설정시 문제점
부모에서 자식으로 식별자 관계로 연결되므로 인해 주식별자의 속성 수가 많아지게 된다.
![Page 51: Sql developer 2nd](https://reader031.fdocument.pub/reader031/viewer/2022020116/559dfda91a28ab66098b46ef/html5/thumbnails/51.jpg)
식별자 관계로만 설정시 문제점(2)
![Page 52: Sql developer 2nd](https://reader031.fdocument.pub/reader031/viewer/2022020116/559dfda91a28ab66098b46ef/html5/thumbnails/52.jpg)
식별자 관계로만 설정시 문제점(3)
![Page 53: Sql developer 2nd](https://reader031.fdocument.pub/reader031/viewer/2022020116/559dfda91a28ab66098b46ef/html5/thumbnails/53.jpg)
비식별자 관계로만 설정시 문제점
![Page 54: Sql developer 2nd](https://reader031.fdocument.pub/reader031/viewer/2022020116/559dfda91a28ab66098b46ef/html5/thumbnails/54.jpg)
비식별자 관계로만 설정시 문제점(2)
![Page 55: Sql developer 2nd](https://reader031.fdocument.pub/reader031/viewer/2022020116/559dfda91a28ab66098b46ef/html5/thumbnails/55.jpg)
식별자관계와 비식별자관계 모델링
![Page 56: Sql developer 2nd](https://reader031.fdocument.pub/reader031/viewer/2022020116/559dfda91a28ab66098b46ef/html5/thumbnails/56.jpg)
식별자관계와 비식별자관계 모델링(2)
![Page 57: Sql developer 2nd](https://reader031.fdocument.pub/reader031/viewer/2022020116/559dfda91a28ab66098b46ef/html5/thumbnails/57.jpg)
연습문제
• 문제 1) 데이터 모델링의 세 가지 중요개념에 속하지 않는 것은? A. 업무가 관여하는 어떤것(Things) B. 업무가 관여하는 어떤것의 행위(Events) C. 업무가 관여하는 어떤것의 성격(Attributes) D. 업무가 관여하는 어떤것의 관계(Relationships)
• 문제 2) 발생시점에 따라 구분할 수 있는 엔터티의 유형이 아닌 것은? A. 행위 엔터티(Active Entity) B. 중심 엔터티(Main Entity) C. 개념 엔터티(Conceptual Entity) D. 기본 엔터티(Basic Entity)
![Page 58: Sql developer 2nd](https://reader031.fdocument.pub/reader031/viewer/2022020116/559dfda91a28ab66098b46ef/html5/thumbnails/58.jpg)
연습문제• 문제 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)
![Page 59: Sql developer 2nd](https://reader031.fdocument.pub/reader031/viewer/2022020116/559dfda91a28ab66098b46ef/html5/thumbnails/59.jpg)
연습문제
• 문제 5) 식별자의 대체여부에 따라 분류하는 방식은? A. 주식별자 - 보조식별자 B. 내부식별자 - 외부식별자 C. 본질식별자 - 인조식별자 D. 단일식별자 - 복합식별자
• 문제 6) 다음 개념에 해당하는 관계는 어떤 관계를 설명한 것인가? 부모엔터티로부터 속성을 받았지만 자식엔터티의 주식별자로 사용하지 않고 일반적인 속성으로만 사용한다. A. 식별자관계(Identifying Relationship) B. 일반속성관계(Attribute Relationship) C. 비식별자관계(Non-Identifying Relationship) D. 외부식별관계(Foreign Key Relationship)
![Page 60: Sql developer 2nd](https://reader031.fdocument.pub/reader031/viewer/2022020116/559dfda91a28ab66098b46ef/html5/thumbnails/60.jpg)
기출문제
![Page 61: Sql developer 2nd](https://reader031.fdocument.pub/reader031/viewer/2022020116/559dfda91a28ab66098b46ef/html5/thumbnails/61.jpg)
기출문제
![Page 62: Sql developer 2nd](https://reader031.fdocument.pub/reader031/viewer/2022020116/559dfda91a28ab66098b46ef/html5/thumbnails/62.jpg)
감사합니다 [ Thank you ]