배운 내용
- 데이터 모델링
- 엔티티타입
- 정규화
1. 데이터모델링
데이터모델링은?
정보화 시스템을 구축하기 위해, 어떤 데이터가 존재하는지 또는 업무가 필요로 하는 정보는 무엇인지를 분석하는 방법
모델링의 세가지 관점
- 데이터 관점 : 업무가 어떤 데이터와 관련이 있는지 또는 데이터간의 관계는 무엇인지를 모델링 하는 방법
- 프로세스 관점 : 업무에서 실제 하는 일은 무엇인지 또는 어떻게 해야 하는지에 대해 모델링 하는 방법
- 상관 관점 : 업무가 처리하는 일의 방법에 따라 데이터는 어떻게 영향을 받고 있는지 모델링 하는 방법
2. 엔티티타입
엔티티타입은?
업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 것으로 영속적으로 존재하는 단위
- 엔티티타입은 엔티티의 집합이다.
엔티티타입 예시
엔티티 타입의 특징
- 첫 번째 반드시 업무에서 필요하고 관리하고자 하는 정보여야 한다.
- 유일한 식별자에 의해 식별이 가능해야 한다.
- 영속적으로 존재하는 엔티티의 집합이어야 한다. (여기서 영속적은 지속된다는 의미이다.)
- 업무 프로세스에 의해 이용되어야 한다.
- 반드시 속성이 있어야 한다.
- 최소 한 개 이상의 관계가 있어야 한다.
식별자는?
엔티티타입 내에서 엔티티들을 구분할 수 있는 구분자이다.
식별자의 분류
- 대표성 여부 : 주식별자, 보조식별자
- 자가생성여부 : 내부식별자, 외부식별자
- 단일속성여부 : 단일식별자, 복합식별자
- 대체여부 : 원조식별자, 대리식별자
Relationship(관계)는?
두 개의 엔티티타입 사이의 논리적인 관계 즉, 엔티티와 엔티티가 존재의 형태나 행위로서 서로에게 영향을 주는 형태
관계 예시
- 부서 DB팀에 사원 황경빈이 소속되는 존재에 의한 관계이다.
- 고객 김경재가 CTA201을 주문하는 행위에 의한 관계이다.
여기서 관계간 멤버쉽이 존재하는데 이는 엔티티타입이 참여하는 관계에 대한 자신으로부터의 관점이다.
멤버쉽 예시 1
- 부서로서 사원을 포함하고, 사원으로서 부서에 소속된다는 1인칭 관점
관계의 종류(카디널리티)
- 1:1 (ONE TO ONE)
1:1 예시 1
- 한 개의 구매신청에 대해 한 개의 구매주문을 작성하고
한 개의 구매주군에 대해 한 개의 구매신청내용을 작성한다.
2. 1:M (ONE TO MANY)
1:M 예시 1
- 한 명의 사원은 한 부서에 소속되고 한 부서에는 여러 사원을 포함한다.
3. M:M(MANY TO MANY)
M:M 예시 1
- 하나의 주문은 여러 개의 제품을 구매할 수 있고
하나의 제품은 여러 개의 주문에 의해 주문될 수 있다.
관계의 참여도
참여도 예시 1
- 하나의 주문목록에는 한 개의 목록을 항상 포함하고
한 목록은 여러 개의 주문목록에 의해 포함될 수 있다.
관계의 종류(주/비식별자)
관계의 종류 예시
- 주식별자 : 부모의 주식별자가 자식의 주식별자로 상속됨
- 비식별자 : 부모의 주식별자가 자식의 일반속으로 상속됨
속성은?
업무에 필요한 엔티티에서 관리하고자 하는 더 이상 분리되지 않는 최소의 데이터 단위이다.
속성 예시 1
- 구성 방식에 따른 속성의 분류로 PRIMARY KEY는 사원번호, FORIEN KEY는 부서코드, 나머지는 일반 속성으로 분류된 것을 볼 수 있다.
3. 정규화
정규화는?
다양한 유형의 검사를 통해 데이터모델을 좀 더 구조화하고 개선시켜 나가는 절차이다.
- 정규화의 기본 원칙은 테이블에 중복된 데이터가 없도록 하는 것
- 정규화를 하지 않아도 오류는 없지만 쌓이다보면 걷잡을 수 없이 쓸모없는 데이터가 쌓이게 됨
정규화 예시 1
- 1차 정규화 : 중복값을 제거
- 2차 정규화 : PRIMARY KEY(주키)와 관련없는 속성 제거
- 3차 정규화 : 일반속성 중 주키 역할을 하는 속성 제거
함수의 종속성
함수의 종속성 예시 1
- 이름, 출생지, 주소는 주민등록번호에 함수 종속성을 가지고 있음
- 종속자는 근본적으로 결정자에 함수적으로 종속관계를 가지고 있음
ERD 작업 방법
- 엔티티타입을 그린다.
- 엔티티타입을 좌에서 우, 위에서 아래로 중요도와 업무흐름에 따라 배치한다.
- 엔티티타입간 관계를 설정한다.
- 관계명을 기술한다.
- 관계의 카디널리티를 기술한다.
- 관계의 참여도를 기술한다.
ERD 예시 1
'KOSTA' 카테고리의 다른 글
KOSTA 교육 (HTML5, 시맨틱 마크업, CSS, link, Font, 박스모델, 테이블&테두리 속성) (0) | 2021.03.17 |
---|---|
KOSTA 교육(HTML, Tag, div, ol, ul, li, head, meta, body, form, h, input, type) (0) | 2021.03.16 |
KOSTA 교육 (PL/SQL, 제어문, 반복문, EXCEPTION, CURSOR, PROCEDURE) (0) | 2021.03.12 |
KOSTA 교육 (JOIN, 다중 컬럼, 다중 로우, FROM절 서브쿼리, INDEX, VIEW, SEQUENCE, PL/SQL) (0) | 2021.03.12 |
KOSTA 교육(HAVING, 함수, DDL, DML, 제약조건) (0) | 2021.03.10 |