SlideShare a Scribd company logo
1 of 35
Download to read offline
ERD를 이용한 DB 모델링
용영환
주의
정답이 아닙니다.
취업이나 승진을 보장하지 않습니다.
모델링이란
Model
http://ko.wikipedia.org/wiki/%ED%8C%8C%EC%9D%BC:%EB%A0%88%EC%9D%B4%EC%8B%B1%EB%AA%A8%EB%8D%B8.JPG
3D Modeling
http://images.kbench.com:8080/kbench/article/2009_09/k73958p3n1-s.jpg
소프트웨어를 해부하면
크게 “동작”과 “데이터”로 나눌 수 있을 것 같습니다.
인간을 위한 소프트웨어 중에
데이터가 없는 소프트웨어는… 없겠지…요.
모델링(modeling) 이란
명사1 .
<미술>
모델을 보고 닮게 만드는 일. 주로 석고상이나 모델을
보고 점토 소조로 만드는 것을 이른다.
모델링(modeling) 이란
우리말 : 모각
이미 있는 조각 작품을 보고 그대로 본떠 새김.
소프트웨어 모델링이란
만들고자 하는… 머리 속에 있는 생각을
누구나 볼 수 있게 본을 뜨는 것입니다.
객체나 DB 를 그림으로 표현하는 것입니다.
모델링을 하면 좋은 점
만들고자 하는 바를 더 명확하게 알 수 있다.
조금 더 잘 만들 수 있다.
이해하고 소통하기 편합니다.
모델링을 하면 더 좋은 점
면접 볼 때 좋습니다.
보여 줄 때 좋습니다.
만들고 나면 뿌듯합니다.
데이터베이스 설계 필요성
데이터를 보다 잘 다루기 위해서 입니다.
소프트웨어 전체에 영향을 미칩니다.
우리가 보는 데이터 모습
ERD
Entity-Relationship Diagram ( 개체 관계 다이어그램 )
ERD 실체
ERD를 그려서 얻는 이점
RDBMS 데이터 설계가 쉬워집니다.
프로그래밍,그러니까 코드 짜는게 좀더 편해 집니다.
그럴 싸~ 합니다. 뿌듯하죠.
개발을 하다보니
정말 실무에서 ERD는 자주 그리게 됩니다.
ERD 도구
ER-win
MySQL Workbench
이 외에도 많은데요.
ERD Tool, DB Design tool 등을 검색해 보세요.
ERD 식별자
ERD 표기법
출처 :	한국데이터베이스진흥원
다양한 ERD 식별자
데이터베이스
모델링에서는 스키마(Schema)라고도 합니다.
테이블
선
테이블 간의 관계를 의미
실선 : Primary Key
점선 : Foreign Key
Keys
Primary Key(PK) : 중복이 없는 유일한 값
Foreign Key(FK) : 다른 테이블의 PK를 참고한 값
관계(Relationship)
두 테이블이 어떻게 참조를 하고 있는지를 말한다.
RDBMS 무결성
실체 무결성(Entity Integrity)
•주식별자(Primary Identifier : Primary Key)는 유일하다.
•주식별자는 Null(Not Null)을 포함하지 않는다.
참조 무결성(Reference Integrity)
•모든 외부식별자(Foreign Identifier : Foreign Key) 값은 관련
있는 관계테이블의 모든 주식별자 값이 존재해야 한다.
영역 무결성(Domain Integrity)
•테이블 내의 모든 열에 대한 무결성 법칙으로 데이터형태, 변위
기본값, 유일성 등에 관한 제한이다.
알아야 할 용어
Identifying Relationship : “식별 관계”
Mandatory : 필수
Cascade : “폭포”, “폭포처럼 떨어뜨리다.” = 연쇄
Identifying Relationship
Identifying ßà Non-Identifying
Foreign key 가 PK 로 지정되어 있는가
Mandatory
NULL !
참고 대상의 존재 여부를 의미한다.
Foreign key options
RESTRICT : 참고 테이블의 값의 변경을 거부한다.
CASCADE : 같이 삭제 또는 수정
SET NULL : NULL 로 변경
NO ACTION : RESTRICT 랑 동일한 결과
RESTRICT vs. NO ACTION
RESTRICT : 일단 거절
NO ACTION : 나중에 거절
정규화
관계형 데이터베이스의 설계에서 중복을 최소화하게 데
이터를 구조화하는 프로세스를 정규화라고 한다.
From 위키피디아

More Related Content

What's hot

opm-subledger-accounting-view-details
opm-subledger-accounting-view-detailsopm-subledger-accounting-view-details
opm-subledger-accounting-view-detailsSinh Vu Duc
 
오승준, 사회적 기술이 프로그래머 인생을 바꿔주는 이유, NDC2011
오승준, 사회적 기술이 프로그래머 인생을 바꿔주는 이유, NDC2011오승준, 사회적 기술이 프로그래머 인생을 바꿔주는 이유, NDC2011
오승준, 사회적 기술이 프로그래머 인생을 바꿔주는 이유, NDC2011devCAT Studio, NEXON
 
SQL Queries
SQL QueriesSQL Queries
SQL QueriesNilt1234
 
Oracle APPS :Receivables Auto Invoice
Oracle APPS :Receivables Auto InvoiceOracle APPS :Receivables Auto Invoice
Oracle APPS :Receivables Auto InvoiceSekhar Byna
 
How to Define a KFF(key flex field) Step by Step
How to Define a KFF(key flex field) Step by StepHow to Define a KFF(key flex field) Step by Step
How to Define a KFF(key flex field) Step by StepPan Tian
 
Oracle Course
Oracle CourseOracle Course
Oracle Courserspaike
 
View Inheritance in Odoo 15
View Inheritance in Odoo 15View Inheritance in Odoo 15
View Inheritance in Odoo 15Celine George
 
Oracle EBS R12 Sales order personalization
Oracle EBS R12 Sales order personalizationOracle EBS R12 Sales order personalization
Oracle EBS R12 Sales order personalizationAhmed Elshayeb
 
Sql integrity constraints
Sql integrity constraintsSql integrity constraints
Sql integrity constraintsVivek Singh
 
Understanding Flex Fields with Accounting Flexfields(Chart of Accounts) in O...
Understanding Flex Fields with  Accounting Flexfields(Chart of Accounts) in O...Understanding Flex Fields with  Accounting Flexfields(Chart of Accounts) in O...
Understanding Flex Fields with Accounting Flexfields(Chart of Accounts) in O...Gurpreet singh
 
How to Debug the Fast Formula.pdf
How to Debug the Fast Formula.pdfHow to Debug the Fast Formula.pdf
How to Debug the Fast Formula.pdfFeras Ahmad
 

What's hot (20)

Cursores.ppt
Cursores.pptCursores.ppt
Cursores.ppt
 
25 bi reporting
25   bi reporting25   bi reporting
25 bi reporting
 
Cursores explicitos
Cursores explicitosCursores explicitos
Cursores explicitos
 
Sql join
Sql  joinSql  join
Sql join
 
opm-subledger-accounting-view-details
opm-subledger-accounting-view-detailsopm-subledger-accounting-view-details
opm-subledger-accounting-view-details
 
Oaf personaliztion examples
Oaf personaliztion examplesOaf personaliztion examples
Oaf personaliztion examples
 
Introduction to SQL
Introduction to SQLIntroduction to SQL
Introduction to SQL
 
오승준, 사회적 기술이 프로그래머 인생을 바꿔주는 이유, NDC2011
오승준, 사회적 기술이 프로그래머 인생을 바꿔주는 이유, NDC2011오승준, 사회적 기술이 프로그래머 인생을 바꿔주는 이유, NDC2011
오승준, 사회적 기술이 프로그래머 인생을 바꿔주는 이유, NDC2011
 
SQL
SQLSQL
SQL
 
SQL Queries
SQL QueriesSQL Queries
SQL Queries
 
Oraclesql
OraclesqlOraclesql
Oraclesql
 
Oracle APPS :Receivables Auto Invoice
Oracle APPS :Receivables Auto InvoiceOracle APPS :Receivables Auto Invoice
Oracle APPS :Receivables Auto Invoice
 
How to Define a KFF(key flex field) Step by Step
How to Define a KFF(key flex field) Step by StepHow to Define a KFF(key flex field) Step by Step
How to Define a KFF(key flex field) Step by Step
 
Oracle Course
Oracle CourseOracle Course
Oracle Course
 
PLSQL Tutorial
PLSQL TutorialPLSQL Tutorial
PLSQL Tutorial
 
View Inheritance in Odoo 15
View Inheritance in Odoo 15View Inheritance in Odoo 15
View Inheritance in Odoo 15
 
Oracle EBS R12 Sales order personalization
Oracle EBS R12 Sales order personalizationOracle EBS R12 Sales order personalization
Oracle EBS R12 Sales order personalization
 
Sql integrity constraints
Sql integrity constraintsSql integrity constraints
Sql integrity constraints
 
Understanding Flex Fields with Accounting Flexfields(Chart of Accounts) in O...
Understanding Flex Fields with  Accounting Flexfields(Chart of Accounts) in O...Understanding Flex Fields with  Accounting Flexfields(Chart of Accounts) in O...
Understanding Flex Fields with Accounting Flexfields(Chart of Accounts) in O...
 
How to Debug the Fast Formula.pdf
How to Debug the Fast Formula.pdfHow to Debug the Fast Formula.pdf
How to Debug the Fast Formula.pdf
 

More from Young D

HAProxy TCP 모드에서 내부 서버로 Source IP 전달 방법
HAProxy TCP 모드에서 내부 서버로 Source IP 전달 방법HAProxy TCP 모드에서 내부 서버로 Source IP 전달 방법
HAProxy TCP 모드에서 내부 서버로 Source IP 전달 방법Young D
 
한발 앞서 배워보는 Xamarin overview
한발 앞서 배워보는 Xamarin overview한발 앞서 배워보는 Xamarin overview
한발 앞서 배워보는 Xamarin overviewYoung D
 
Apache JMeter로 웹 성능 테스트 방법
Apache JMeter로 웹 성능 테스트 방법Apache JMeter로 웹 성능 테스트 방법
Apache JMeter로 웹 성능 테스트 방법Young D
 
티켓몬스터를 위한 PHP 개발 방법
티켓몬스터를 위한 PHP 개발 방법티켓몬스터를 위한 PHP 개발 방법
티켓몬스터를 위한 PHP 개발 방법Young D
 
유연하게 확장할 수 있는 PHP 웹 개발 이야기
유연하게 확장할 수 있는 PHP 웹 개발 이야기유연하게 확장할 수 있는 PHP 웹 개발 이야기
유연하게 확장할 수 있는 PHP 웹 개발 이야기Young D
 
Microsoft Azure를 통한 Push와 DB 이용방법
Microsoft Azure를 통한 Push와 DB 이용방법Microsoft Azure를 통한 Push와 DB 이용방법
Microsoft Azure를 통한 Push와 DB 이용방법Young D
 
iBeacons가 뭔가
iBeacons가 뭔가iBeacons가 뭔가
iBeacons가 뭔가Young D
 
CentOS 에 MySQL 5.6 설치
CentOS 에 MySQL 5.6 설치CentOS 에 MySQL 5.6 설치
CentOS 에 MySQL 5.6 설치Young D
 
마이크로소프트 Azure 에서 안드로이드 Push 구현과 Data 처리
마이크로소프트 Azure 에서 안드로이드  Push 구현과 Data 처리마이크로소프트 Azure 에서 안드로이드  Push 구현과 Data 처리
마이크로소프트 Azure 에서 안드로이드 Push 구현과 Data 처리Young D
 
무선 랜으로 파일 전송할 때 왜 무선 마우스 랙이 발생할까
무선 랜으로 파일 전송할 때 왜 무선 마우스 랙이 발생할까무선 랜으로 파일 전송할 때 왜 무선 마우스 랙이 발생할까
무선 랜으로 파일 전송할 때 왜 무선 마우스 랙이 발생할까Young D
 
PHP 개발 생산성을 높여주는 통합 개발 환경 - 이클립스 PDT
PHP 개발 생산성을 높여주는 통합 개발 환경 - 이클립스 PDTPHP 개발 생산성을 높여주는 통합 개발 환경 - 이클립스 PDT
PHP 개발 생산성을 높여주는 통합 개발 환경 - 이클립스 PDTYoung D
 
[협업 도구] 위키를 활용한 협업 노하우
[협업 도구] 위키를 활용한 협업 노하우 [협업 도구] 위키를 활용한 협업 노하우
[협업 도구] 위키를 활용한 협업 노하우 Young D
 
교육용 프로그래밍 언어 Small basic
교육용 프로그래밍 언어 Small basic교육용 프로그래밍 언어 Small basic
교육용 프로그래밍 언어 Small basicYoung D
 

More from Young D (13)

HAProxy TCP 모드에서 내부 서버로 Source IP 전달 방법
HAProxy TCP 모드에서 내부 서버로 Source IP 전달 방법HAProxy TCP 모드에서 내부 서버로 Source IP 전달 방법
HAProxy TCP 모드에서 내부 서버로 Source IP 전달 방법
 
한발 앞서 배워보는 Xamarin overview
한발 앞서 배워보는 Xamarin overview한발 앞서 배워보는 Xamarin overview
한발 앞서 배워보는 Xamarin overview
 
Apache JMeter로 웹 성능 테스트 방법
Apache JMeter로 웹 성능 테스트 방법Apache JMeter로 웹 성능 테스트 방법
Apache JMeter로 웹 성능 테스트 방법
 
티켓몬스터를 위한 PHP 개발 방법
티켓몬스터를 위한 PHP 개발 방법티켓몬스터를 위한 PHP 개발 방법
티켓몬스터를 위한 PHP 개발 방법
 
유연하게 확장할 수 있는 PHP 웹 개발 이야기
유연하게 확장할 수 있는 PHP 웹 개발 이야기유연하게 확장할 수 있는 PHP 웹 개발 이야기
유연하게 확장할 수 있는 PHP 웹 개발 이야기
 
Microsoft Azure를 통한 Push와 DB 이용방법
Microsoft Azure를 통한 Push와 DB 이용방법Microsoft Azure를 통한 Push와 DB 이용방법
Microsoft Azure를 통한 Push와 DB 이용방법
 
iBeacons가 뭔가
iBeacons가 뭔가iBeacons가 뭔가
iBeacons가 뭔가
 
CentOS 에 MySQL 5.6 설치
CentOS 에 MySQL 5.6 설치CentOS 에 MySQL 5.6 설치
CentOS 에 MySQL 5.6 설치
 
마이크로소프트 Azure 에서 안드로이드 Push 구현과 Data 처리
마이크로소프트 Azure 에서 안드로이드  Push 구현과 Data 처리마이크로소프트 Azure 에서 안드로이드  Push 구현과 Data 처리
마이크로소프트 Azure 에서 안드로이드 Push 구현과 Data 처리
 
무선 랜으로 파일 전송할 때 왜 무선 마우스 랙이 발생할까
무선 랜으로 파일 전송할 때 왜 무선 마우스 랙이 발생할까무선 랜으로 파일 전송할 때 왜 무선 마우스 랙이 발생할까
무선 랜으로 파일 전송할 때 왜 무선 마우스 랙이 발생할까
 
PHP 개발 생산성을 높여주는 통합 개발 환경 - 이클립스 PDT
PHP 개발 생산성을 높여주는 통합 개발 환경 - 이클립스 PDTPHP 개발 생산성을 높여주는 통합 개발 환경 - 이클립스 PDT
PHP 개발 생산성을 높여주는 통합 개발 환경 - 이클립스 PDT
 
[협업 도구] 위키를 활용한 협업 노하우
[협업 도구] 위키를 활용한 협업 노하우 [협업 도구] 위키를 활용한 협업 노하우
[협업 도구] 위키를 활용한 협업 노하우
 
교육용 프로그래밍 언어 Small basic
교육용 프로그래밍 언어 Small basic교육용 프로그래밍 언어 Small basic
교육용 프로그래밍 언어 Small basic
 

ERD를 이용한 DB 모델링