< 모델링이 갖춰야 할 조건 >
- 현실세계 반영
- 단순화하여 표현
- 관리하고자 하는 데이터를 모델로 설계
(1) 추상화(Abstraction) : 현실 세계를 일정한 형식으로 표현하는 것, 아이디어 / 개념을 간략하게 표현하는 과정
(2) 단순화(Simplification) : 복잡한 현실 세계를 정해진 표기법으로 단순 & 쉽게 표현하는 것
(3) 명확화(Clarity)** : 불분명함을 제거, 명확하게 해석할 수 있게 기술하는 것
=> 모델링 : 현실세계를 추상화, 단순화, 명확화하기 위해 일정한 표기법에 의해 표현하는 기법
(1) 데이터 관점(What, Data) : 데이터 & 업무 / 데이터 간에 어떤 관계가 있는지에 대해 모델링
(2) 프로세스 관점(How, Process) : 업무가 실제로 처리하고 있는 일은 무엇인지 / 앞으로 처리해야 하는 일은 무엇인지 모델링
(3) 데이터 & 프로세스의 상관 관점(Data vs. Process, Interaction) : 프로세스의 흐름에 따라 데이터가 어떤 영향을 받는지 모델링
(1) 개념적 데이터 모델링(Conceptual Data Modeling)
(2) 논리적 데이터 모델링(Logical Data Modeling)
(3) 물리적 데이터 모델링(Physical Data Modeling)
💡 분리한 이유?
DB에 대한 사용자들의 관점 & DB가 실제로 표현되는 물리적 방식 분리 => 독립성 보장하기 위해
IE/Crow's Foot 표기법
테이블의 첫번째 행 : PK(기본키), 두번째 행 : FK, 일반 컬럼
엔터티 도출하고 그림
엔터티 적절하게 배치
엔터티 간의 관계 설정
관계명 기입
관계의 참여도 기입
관계의 필수 / 선택 여부 기입
- 엔터티 : 테이블
- 인스턴스 : 로우
- 속성 : 컬럼
< 유형 vs. 무형 >
< 발생시점 >
: 엔터티에 속한 하나의 인스턴스를 구체적으로 나타내주는 데이터
: 엔테티 > 인스턴스 > 속성의 관계가 성립 !
- 1개의 엔터티는 2개 이상의 인스턴스를 가짐
- 1개의 인스턴스는 2개 이상의 속성을 가짐
- 1개의 속성은 1개의 속성값을 가짐
속성 종류 | 특징 |
---|---|
기본속성 (Basic) | 업무 프로세스 분석을 통해 바로 정의가 가능한 속성 ex) 주민등록번호 |
설계속성 (Designed) | 업무에 존재하지 않지만 설계하다 보니 필요하다고 판단되어 도출해낸 속성 ex) 학번 (학생들을 학과로만 판별 불가능해서 설계함 |
파생속성 (Derived) | 다른 속성의 속성값을 계산 / 특정 규칙으로 변형하여 생성한 속성 |
속성 종류 | 특징 |
---|---|
PK(Primary Key)속성 | 엔터티의 인스턴스들을 식별할 수 있는 속성 (= 각 인스턴스에 유니크함을 부여해줌) ex) 상품 엔터티의 상품코드, 학생 엔터티의 학번 |
FK(Foreign Key)속성 | 다른 엔터티의 속성에서 가져온 속성 (= 다른 엔터티와 관계를 맺게 해주는 매개체 역할) ex) 직원 엔터티의 부서코드, 학생 엔터티의 학과코드 |
일반속성 | PK, FK를 제외한 나머지 ex) 상품 엔터티의 상품명 & 가격, 학생 엔터티의 이름 & 생년월일 |
: 속성이 가질 수 있는 속성값의 범위
ex) 우편번호 - 5자리의 숫자
엔터티 정의할 때 데이터 타입, 크기로 나타낼 수 있음
+) 용어사전 : 엔터티의 속성명 정의할 때 명확한 의미 이름 부여, 다른 엔터티와의 혼란 예방, 각 엔터티에 공통된 룰 적용
엔터티 - 엔터티의 관계, 어떤 연관성이 있는지 분류함
: 존재 자체로 연관성 있는 관계
ex) 엄마 - 아기, 직원 - 부서, 학생 - 학과
: 특정한 행위를 함으로써 연관성이 생기는 관계
ex) 회원 - 주문, 학생 - 출석부
관계명 | 엔터가 어떠한 관계를 맺고 있는지 나타내주는 현재형의 문장, 각 관계는 2개의 관계명 및 관점 가짐(각 엔터티의 관점들) |
---|---|
관계차수 | 관계에 참여하는 수 1:1, 1:M, N:M |
관계선택사양 | 필수 / 선택인지의 여부 ex) 필수 : 주문 - 주문 상품 선택 : 학생 - 출석부 |
: 각각의 인스턴스를 구분 가능하게 만들어주는 대표적인 속성
: 기본키, FK에 해당하는 속성
유일성 : 주식별자에 의해 엔터티 내의 모든 인스턴스들에 유니크함을 부여하여 식별 가능하게 함
최소성 : 주식별자를 구성하는 속성은 유일성을 보장하는 최소 개수의 속성이어야 함
불변성 : 주식별자의 속성값이 되도록 변하지 않아야 함
존재성 : 주식별자의 속성값이 NULL X
대표성 여부
주식별자 : 다른 엔터티와 참조 관계로 연결
보조식별자 : 인스턴스를 식별 가능, BUT 대표 식별자 아님
다른 엔터티와 참조 관계로 연결 X
스스로 생성됐는지 여부
내부 식별자 : 엔터티 내부에서 스스로 생성된 식별자
외부 식별자 : 다른 엔터티에서 온 식별자, 다른 엔터티와의 연결고리 역할
단일 속성의 여부
단일식별자 : 속성 1개
복합식별자 : 속성 2개 이상
대체 여부
원조식별자(본질) : 업무 프로세스에 존재하는 식별자, 가공되지 X 원래의 식별자
대리식별자(인조) : 주식별자의 속성이 2개 이상 -> 그걸 하나로 묶어서 사용하는 식별자
식별자 관계 | 비식별자 관계 |
---|---|
강한 관계 | 약한 관계 |
부모 엔터티의 식별자가 자식 엔터티의 주식별자 | 부모 엔터티의 식별자가 자식 엔터티의 일반 속성 |
부모 엔터티가 있어야 생성 가능 | 부모 엔터티 없는 자식 엔터티 생성 가능 |
실선으로 표현 | 점선으로 표현 |