자격증/SQLD

SQLD 노랭이 1과목 문제 풀이 요점 (데이터 모델링의 이해)

ByeongJun 2023. 6. 5. 18:00
반응형

데이터모델링을 하는 이유

  • 업무 정보를 구성하는 기초가 되는 정보들에 대해 일정한 표기법에 의해 표현함으로써
    정보시스템 구축의 대상이 되는 업무 내용을 정확하게 분석하기 위한 목적
  • 분석된 모델을 가지고 실제 데이터베이스를 생성하여 개발 및 데이터 관리에 사용하기 위한 목적

 

데이터모델링 시 유의점

비유연성(Inflexibility)

- 데이터 모델을 어떻게 설계했느냐에 따라 사소한 업무 변화에도 데이터 모델이 수시로 변경됨으로써

  유지보수의 어려움을 가중시킬 수 있음

 

데이터모델링 관계

ERD : 존재적 관계와 행위에 의한 관계를 구분 X

- 관계는 존재에 의한 관계와 행위에 의한 관계로 구분될 수 있으나,

  ERD에서는 관계를 연결할 때 존재와 행위를 구분하지 않고 단일화된 표기법을 사용

 

클래스 다이어그램 : 연관관계와 의존관계로 표현하여 구분 O

- UML(Unified Modeling Language)에는 클래스 다이어그램의 관계 중

  연관관계(Association)와 의존관계(Dependency)가 있고 이것은 실선과 점선의 표기법으로 다르게 표현

 


개념스키마(Conceptual Schema)

  • 통합 데이터베이스 구조
  • 모든 사용자 관점을 통합한 조직 전체의 관점의 통합적 표현
  • 모든 응용시스템들이나 사용자들이 필요로 하는 데이터를 통합한 조직 전체의 DB를 기술한 것으로
    DB에 저장되는 데이터와 그들 간의 관계를 표현한 스키마

 

 

 

엔터티 (엔터티가 기억나지 않을 땐 전설의 포켓몬 앤테이를 떠올려 보자(?))

 

  • 속성이 없는 엔터티는 없을 수 없다. 반드시 속성을 가져야 한다.
  • 하나의 엔터티는 두 개 이상의 속성을 갖는다.
  • 반드시 해당 업무에서 필요하고 관리하고자 하는 정보이어야 한다. (업무 프로세스에 의해 이용돼야 함)
  • 엔터티는 다른 엔터티와 최소 한 개 이상의 관계가 있어야 한다. (단, 통계성·코드성 엔터티의 경우 관계 생략 가능)
  • 영속적으로 존재하는 두 개 이상의 인스턴스의 집합이어야 한다.

 

 

 

속성

업무에서 필요로 하는 인스턴스에서 관리하고자 하는 의미상 더 이상 분리되지 않는 최소의 데이터 단위

  • 엔터티에 대한 자세하고 구체적인 정보를 나타낸다.
  • 하나의 인스턴스에서 각각의 속성은 한 개의 속성값을 가져야 한다. ('한 개 이상'이라고 낚는 문제 출제 多)
  • 속성도 집합이다.

 

도메인

각 속성이 가질 수 있는 값의 범위 (엔터티 내에서 속성에 대한 데이터 타입과 크기, 제약사항을 지정)

 


주식별자(Primary Identifier)

  • 주식별자에 의해 엔터티 내에 모든 인스턴스들이 유일하게 구분되어야 한다.
  • 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야 한다.
  • 지정된 주식별자의 값은 자주 변하지 않는 것이어야 한다.
  • 주식별자가 지정되면 반드시 값이 들어와야 한다. 

특징

  • 최소성 : 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야  함
  • 유일성 : 주식별자에 의해 엔터티 내 모든 인스턴스들을 유일하게 구분
  • 존재성 : 주식별자가 지정되면 반드시 데이터 값이 존재 (Null 불가)
  • 불변성 : 주식별자가 한 번 특정 엔터티에 지정되면 그 식별자의 값은 변하지 않아야 함
  • (노랭이 교재 기준 위의 4가지지만 혹시 몰라 대표성 추가)
    대표성 : 주식별자는 엔터티를 대표할 수 있어야 함

후보키(Candidate Key) : 최소성유일성 만족

슈퍼키(Super Key) : 유일성만 만족하고 최소성은 만족X

외래키(Foreign Key) : 하나 혹은 다수의 다른 테이블의 기본키 필드를 가리키는것으로 참조 무결성을 확인하기 위해 사용

 

 

 

식별 관계와 비식별 관계

항목 식별자관계 비식별자관계
목적 강한 연결관계 표현 약한 연결관계 표현
자식 주식별자 영향 자식 주식별자의 구성에 포함 자식 일반 속성에 포함
표기법 실선 표현 점선 표현
연결
고려사항
- 반드시 부모엔터티 종속
- 자식 주식별자 구성에 부모 주식별자 포함 필요
- 상속받은 주식별자 속성을 타 엔터티에 이전 필요
- 약한 종속관계
- 자식 주식별자 구성을 독립적으로 구성
- 자식 주식별자 구성에 부모 주식별자 부분 필요
- 상속받은 주식별자 속성을 타 엔터티에 차단 필요
- 부모쪽의 관계 참여가 선택 관계

+ 추가

  • 부모엔터티의 인스턴스가 자식 엔터티와 같이 소멸되는 경우 식별자관계로 정의하는 것이 더 적합
  • 부모엔터티의 주식별자를 자식엔터티에서 받아 손자엔터티까지 계속 흘려보내려면 식별자관계를 고려
  • 자식테이블에서 독립적인 Primary Key의 구조를 가지기 원할 때 비식별자관계를 고려
  • 관계의 강약을 분석해 상호간에 연관성이 약할 경우 비식별자관계를 고려
  • 모든 관계가 식별자 관계로 연결되면 SQL Where절에서 비교하는 항목이 증가되어 Join에 참여하는 테이블에 따라
    SQL문장이 길어져 SQL문의 복잡성이 증가되는 것을 방지하기 위해 비식별자관계를 고려

 

 

반응형