본문 바로가기
백엔드/SQLD

외울거 정리

by 1005ptr 2020. 11. 25.
반응형

데이터 모델링의 3단계

  1. 개념적 데이터 모델링 : 추상화 수준이 높고 업무중심적이고 포괄적인 수준의 모델링 진행. 전사적 데이터 모델링, EA 수립 시 많이 이용됨
  2. 논리적 데이터 모델링 : 시스템으로 구축하고자 하는 업무에 대해 Key, 속성, 관계 등을 정확하게 표현, 재사용성이 높음
  3. 물리적 데이터 모델링 : 실제로 데이터베이스에 이식할 수 있도록 성능, 저장 등 물리적인 성격을 고려하여 설계

데이터 모델링의 3가지 요소

  • Thing(엔티티) : 
  • Attributes(속성) : 업무에서 필요로 하는 인스턴스에서 더 이상 분리되지 않는 최소의 데이터 단위
  • Relationship(관계) : 

데이터 모델링을 할 때 유의할 사항

  • 중복(Duplication) : 데이터가 중복 저장되어 관리되면 안된다.
  • 비유연성(Inflexibility) : 데이터의 정의를 데이터의 프로세스와 분리하여 업무 변화에 데이터 모델이 영향을 받지 않도록 한다.
  • 비일관성(Inconsistency) : 데이터 간의 상호 연관 관계에 대해 명확하게 정의하여 연관된 데이터 간 비일관성을 방지

ANSI-SPARC에서 정의한 데이터베이스 스키마 구조 3단계(three-level architecture)

  • 외부스키마(External Schema) : 개개 사용자가 보는 개인적 DB 스키마
  • 개념스키마(Conceptual Schema) : 통합관점의 스키마구조를 표현. 데이터 모델링은 개념 스키마를 만들어가는 과정
  • 내부스키마(Internal Schema) : 물리적 장치에 저장된 실제 데이터

ERD 작성 순서

  1. 엔터티 도출
  2. 엔터티 배치
  3. 관계 설정
  4. 관계명 기술
  5. 관계의 참여도 기술
  6. 관계의 필수여부 기술

엔터티 분류

  • 유무형에 따른 분류
    • 유형 : 물리적 형태 ex> 사원
    • 개념 : 개념적 정보 ex> 부서
    • 사건 : 업무 수행 시 발생 ex> 주문
  • 발생 시점에 따른 엔터티 분류
    • 기본/키엔터티(Fundamental Entity, Key Entity)
      • 그 업무에 원래 존재하는 정보로서 다른 엔터티와의 관계에 의해 생성되지 않고 독립적으로 생성이 가능하고 자신은 타 엔터티의 부모의 역할을 하게 된다.
      • 다른 엔터티로부터 주식별자를 상속받지 않고 자신의 고유한 주식별자를 가지게 된다.
      • 사원, 부서 등
    • 중심엔터티(Main Entity)
      • 기본 엔터티로부터 발생. 업무의 중심
      • 접수, 계약, 청구, 주문, 매출 등
      • 예시로 보아하니 업무? 작업이라고 보면 되겠다.
    • 행위엔터티(Active Entity)
      • 2개 이상의 부모엔터티로부터 발생
      • 관계 엔터티인가?

속성의 분류

  • 속성의 특성에 따른 분류
    • 기본속성(Basic Attribute)
      • 업무분석을 통해 바로 정의한 속성
    • 설계속성(Designed Attribute)
      • 원래 업무상 존재하지는 않지만 설계를 하면서 도출해내는 속성
      • 예> 코드성 속성은 원래 속성을 데이터 규칙화를 위해 변형한 경우
      • 예> 일련번호는 유니크한 식별자를 부여하기 위해 정의한 설계속성
    • 파생속성(Derived 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

댓글