반응형
데이터 모델링의 3단계
- 개념적 데이터 모델링 : 추상화 수준이 높고 업무중심적이고 포괄적인 수준의 모델링 진행. 전사적 데이터 모델링, EA 수립 시 많이 이용됨
- 논리적 데이터 모델링 : 시스템으로 구축하고자 하는 업무에 대해 Key, 속성, 관계 등을 정확하게 표현, 재사용성이 높음
- 물리적 데이터 모델링 : 실제로 데이터베이스에 이식할 수 있도록 성능, 저장 등 물리적인 성격을 고려하여 설계
데이터 모델링의 3가지 요소
- Thing(엔티티) :
- Attributes(속성) : 업무에서 필요로 하는 인스턴스에서 더 이상 분리되지 않는 최소의 데이터 단위
- Relationship(관계) :
데이터 모델링을 할 때 유의할 사항
- 중복(Duplication) : 데이터가 중복 저장되어 관리되면 안된다.
- 비유연성(Inflexibility) : 데이터의 정의를 데이터의 프로세스와 분리하여 업무 변화에 데이터 모델이 영향을 받지 않도록 한다.
- 비일관성(Inconsistency) : 데이터 간의 상호 연관 관계에 대해 명확하게 정의하여 연관된 데이터 간 비일관성을 방지
ANSI-SPARC에서 정의한 데이터베이스 스키마 구조 3단계(three-level architecture)
- 외부스키마(External Schema) : 개개 사용자가 보는 개인적 DB 스키마
- 개념스키마(Conceptual Schema) : 통합관점의 스키마구조를 표현. 데이터 모델링은 개념 스키마를 만들어가는 과정
- 내부스키마(Internal Schema) : 물리적 장치에 저장된 실제 데이터
ERD 작성 순서
- 엔터티 도출
- 엔터티 배치
- 관계 설정
- 관계명 기술
- 관계의 참여도 기술
- 관계의 필수여부 기술
엔터티 분류
- 유무형에 따른 분류
- 유형 : 물리적 형태 ex> 사원
- 개념 : 개념적 정보 ex> 부서
- 사건 : 업무 수행 시 발생 ex> 주문
- 발생 시점에 따른 엔터티 분류
- 기본/키엔터티(Fundamental Entity, Key Entity)
- 그 업무에 원래 존재하는 정보로서 다른 엔터티와의 관계에 의해 생성되지 않고 독립적으로 생성이 가능하고 자신은 타 엔터티의 부모의 역할을 하게 된다.
- 다른 엔터티로부터 주식별자를 상속받지 않고 자신의 고유한 주식별자를 가지게 된다.
- 사원, 부서 등
- 중심엔터티(Main Entity)
- 기본 엔터티로부터 발생. 업무의 중심
- 접수, 계약, 청구, 주문, 매출 등
- 예시로 보아하니 업무? 작업이라고 보면 되겠다.
- 행위엔터티(Active Entity)
- 2개 이상의 부모엔터티로부터 발생
- 관계 엔터티인가?
- 기본/키엔터티(Fundamental Entity, Key Entity)
속성의 분류
- 속성의 특성에 따른 분류
- 기본속성(Basic Attribute)
- 업무분석을 통해 바로 정의한 속성
- 설계속성(Designed Attribute)
- 원래 업무상 존재하지는 않지만 설계를 하면서 도출해내는 속성
- 예> 코드성 속성은 원래 속성을 데이터 규칙화를 위해 변형한 경우
- 예> 일련번호는 유니크한 식별자를 부여하기 위해 정의한 설계속성
- 파생속성(Derived Attribute)
- 다른 속성으로부터 계산이나 변형이 되어 생성되는 속성
- 보통 계산된 값들이 이에 해당된다.
- 다른 속성에 영향을 받기 때문에 데이터 정합성에 유의
- 기본속성(Basic Attribute)
- 엔터티 구성방식에 따른 분류
- PK(Primary Key) 속성 : 엔터티를 식별할 수 있는 속성
- FK(Foreign Key) 속성 : 다른 엔터티와의 관계에서 포함된 속성
- 세부 의미를 쪼갤 수 있는지에 따라
- 단순 속성(Simple Attribute) : 분리될수 없는 속성(성별 등)
- 복합 속성(Composite Attribute) : 예시> 주소(시,구,동,번지 등으로 분리 가능)
시스템 카탈로그(System Catalog) :
용어사전(Word Dictionary)
속성사전(Attribute Dictionary)
도메인(Domain) : 속성에 대한 데이터타입과 크기 그리고 제약사항을 미리 정의해놓은 것
데이터 모델링의 관계
- 관계는 존재에 의한 관계, 행위에 의한 관계로 나누어볼 수 있다.
- ERD에서는 관계를 연결할 때 존재와 행위를 구분하지않고 표기한다.
- UML에서는 연관관계(Association)와 의존관계(Dependency)로 구분하여 실선과 점선으로 각각 다르게 표기한다.
관계의 표기법
- 관계명(Membership)
- 관계차수(Cardinality)
- 선택성(선택사양)(Optionality)
관계 체크사항
- 두 개의 엔터티 사이에 관심있는 연관규칙이 존재하는가?
- 두 개의 엔터티 사이에 정보의 조합이 발생되는가?
- 업무기술서, 장표에 관계연결에 대한 규칙이 서술되어 있는가?
- 업무기술서, 장표에 관계연결을 가능하게 하는 동사(Verb)가 있는가?
FROM 절
- FROM절에는 AS를 쓸 수 없다. 안쓰고 그냥 ALIAS를 쓰면 된다.
- FROM절에 쓴 서브쿼리(inline view)에는 테이블 간 관계를 가질 수 없다.(상호연관 서브쿼리는 FROM에 쓰면안된다)
원자성
반응형
'백엔드 > SQLD' 카테고리의 다른 글
조인 (0) | 2020.11.26 |
---|---|
NULL과 관련된 규칙들 (0) | 2020.11.25 |
TOP, ROWNUM (0) | 2020.11.23 |
DDL, DML, DCL, TCL (0) | 2020.11.23 |
SAVEPOINT, ROLLBACK (0) | 2020.11.22 |
댓글