
01. 데이터베이스 모델링 개념
조직의 정보 수집과 관리시스템을 정의하는 시각적 표현
어떤 데이터가 존재하는지 or 업무에 필요한 정보는 무엇인지 분석
정보시스템의 모습을 적절한 Notation으로 표현
DBMS 구축에 필요한 제반 기술들의 효율적 적용 방안 제시 가능
데이터 모델링 관점 3가지
데이터 관점(What, Data)
프로세스 관점 (How, Process)
데이터와 프로세스의 상관 관점 (Interaction)
데이터 모델링시 중요 요소
업무 특성(Domain)
업무간의 관계(Relationships)
업무의 성격(Attributes)
02. 엔티티 타입 및 속성 개념
Entity
업무에 필요한 정보를 저장하고 관리하기위한 영속적으로 존재하는 단위
엔티티는 엔티티 타입이 속한 하나의 인스턴스
엔티티 타입(강의실), 엔티티(101호, 102호)
DB를 구현할 때 테이블에 해당
Entity 타입 특징
시스템 구축시 반드시 업무에서 필요하고 관리되어야 하는 정보
병원의 경우 환자 엔티티 반드시 필요
유일한 식별자에 의해 식별 가능
식별자를 부여해 유일하게 만들어야한다.
각 엔티티가 식별자에 의해 1개만 존재하는지 검증 필요
유일한 식별자는 엔티티만의 고유 이름 (주민번호, 상품번호)
영속적으로 존재하는 엔티티의 집합
엔티티 타입은 반드시 2개이상의 엔티티로 구성 (회사: L사, S사)
반드시 업무 프로세스에 사용
반드시 Attribute이 포함
속성 정보 누락 x
엔티티 타입은 다른 엔티티 타입과 최소 1개 이상의 관계를 포함
엔티티 타입이 잘못 선정되면 고립된 엔티티 타입이 존재
Entity 타입 분류
성격에 따라 분류
유무에 따른 분류
유형: 물리적 형태(사원, 강사)
개념: 물리적 형태 x, 관리해야할 개념적 정보 (조직, 상품, 장소)
사건: 업무수행에 따라 발생, 일반적으로 발생량이 많다.(주문, 청구)
업무를 구성하는 모습에 따라 분류
발생 시점에 따른 분류
기본 엔티티 타입: 업무에 원래 존재하는 정보, 독립적 생성, 자신은 부모 역할
중심 엔티티 타입: 기본 엔티티 타입에서 발생되고 그 업무에서 중심적인 역할
행위 엔티티 타입: 2개 이상의 부모 엔티티 타입에서 발생, 내용이 자주 바뀌거나 데이터양이 증가(배송)
Entity 타입 명명
현업에서 사용하는 용어
약어 사용 x
단수 명사
엔티티 타입에 부여되는 이름은 유일
엔티티 타입에 생성되는 의미에 따라 이름 부여
Attribute
엔티티에서 더 이상 분리되지 않는 최소 데이터 단위
엔티티는 고유의 성격을 표현하는 속성 정보를 1개 이상 포함
속성은 엔티티에 대한 구체적인 정보를 나타내며, 각각의 속성은 구체적인 값을 갖는다.
사원(엔티티타입) - 홍길동(엔티티) - 주소, 나이, 성별 (속성)
속성의 분류
기본 속성: 업무 분석을 통해 정의한 속성(식별번호)
설계 속성: 업무에는 존재하지않지만 설계를 하면서 도출되는 속성(식별자)
파생 속성: 계산이나 변형되어 생성되는 속성(계산된 값)
속성의 명명
인터페이스에 나타나기에 정확한 이름 부여
용어사전 사용
속성 부여 원칙 준수
현업에서 사용하는 이름
명사형 이용, 수식어를 많이 붙지 않도록 주의
공용화하지않은 약어는 사용 금지
속성의 이름은 유일하게 작성
03. 식별자, 관계 개념
식별자
하나의 엔티티 타입에서 각각의 엔티티를 구분할 수 있는 결정자
모든 엔티티 타입에는 반드시 1개 이상의 식별자가 필요
DB로 구현했을 때 PK, FK 등의 역할 수행
주민번호, 사원번호
식별자 특징
엔티티 타입 내 모든 엔티티들이 유일하게 구분
식별자가 지정되면 그 식별자는 변경 불가
주식별자 속성에 반드시 데이터 값이 존재해야한다. (Null, 공백 x)
식별자 구분
대표성 여부에 따라 구분
주, 보조 식별자
내부, 외부 식별자
단일, 복합 식별자
원조, 대리 식별자
주/보조 식별자
주: 엔티티 타입의 대표성을 나타내는 유일한 식별자, 1개만 (PK)
보조: 주식별자를 대신해 보조적으로 엔티티를 식별, 2개 이상 (후보키)
물리 테이블에서 주식별자는 PK, 보조식별자는 유니크 인덱스로 지정
카드사의 고객 테이블의 경우, 카드번호와 주민번호가 유일한 식별자라면
카드사 특성상 카드번호를 주식별자로 사용
주민번호를 보조 식별자로 사용
내부/외부 식별자
내부: 자신의 엔티티 타입 내에서 스스로 생성되어 존재하는 식별자
외부: 다른 엔티티 타입으로 부터 관계에 의해 주식별자의 속성을 상속받아 자신의 속성에 포함
외부 식별자는 자신의 엔티티 타입으로부터 다른 엔티티 타입을 찾아가는 연결자(FK)
단일/복합 식별자
단일: 주식별자 구성이 한가지 속성으로만 이루어진 경우
복합: 2개이상의 속성으로 구성된 경우(이름,사원번호)
원조/대리 식별자
대리: 주식별자 속성이 복합 식별자일 경우 여러개의 속성을 묶어 하나의 속성으로 만들어 주식별자로 활용하는 식별자(똑같은 제품인데 시즌별로 만든 경우)
관계
2개의 엔티티 타입 사이의 논리적인 관계로 서로 영향을 주는 것
업무의 흐름
관계가 제대로 되어있지않으면 데이터 무결성 문제가 발생할 수 있다.
관계 페어링
각각의 엔티티들이 자신과 관련된 엔티티들과 관계의 어커런스로 참여
관계는 관계 페어링 집합을 논리적으로 표현한 것
관계 명명
2개이상의 멤버십이 필요
멤버십의 성격에 따라 능동적, 수동적으로 명명
애매한 동사 사용 x
관계 카디널리티
엔티티 타입간 관계에서 참여자의 수
1:1, 1:M, M:N
1:1 각 엔티티 관계를 맺는 다른 엔티티에 대해 단지 하나의 관계만을 가진다.
1:M 관계에 참여하는 각각의 엔티티는 관계를 맺는 다른 엔티티에 대해 하나이상의 수와 관계를 가진다. (고객:주문)
M:N 하나 이상의 수와 관계 (책:작가), query를 만들기 어렵다.
멤버십의 개수에 따라 구분
04. 데이터 모델링 유형
데이터 모델링 단계
요구사항 분석
개념 모델링: 핵심 엔티티 도출 및 관계 정의 (개념 ER모델)
논리 모델링: 업무 요건을 명확하게 표현, 설계 (상세 ER모델)
물리 모델링: 구현할 DBMS 특징에 맞게 표현
데이터베이스: 물리적 모델을 DB에 구현
점점 추상화/단순화에서 구체화/세분화로 발전
개념적 데이터 모델링
비지니스 이해관계자와 분석가가 생성
간단한 다이어 그램 표현
데이터 프로젝트의 목적, 범위 및 설계에 대한 의견일치가 중요
데이터에 대한 청사진 제공
핵심 데이터 집합 도출, 관계 설정, 핵심속성 정의, 식별자 정의