Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

Ga0's

데이터 모델링의 이해 본문

Study IT/SQLD

데이터 모델링의 이해

Ga0Kwon 2024. 1. 2. 21:26

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

  • 중복(Duplication) : 데이터베이스가 여러 장소에 같은 정보를 저장하지 않도록 해야함. 
  • 비유연성(Inflexbility) : 데이터의 정의를 데이터의 사용 프로세스와 분리함으로써 데이터 모델링은 데이터 혹은 프로세스의 작은 변화가 애플리케이션과 데이터베이스에 중대한 변화를 일으킬 수 있는 가능성을 줄인다.
  • 비일관성(Inconsistency) : 데이터 모델링을 할 때 데이터와 데이터간의 상호 연관 관계에 대해 명확하게 정의해야한다. (만약, 사용자가 처리하는 프로세스 혹은 이와 관련된 프로그램과 테이블의 연계성을 높이는 것은 데이터 모델이 업무 변경에 대해 취약하게 만드는 단점에 속함!)

 ◆ 데이터 모델링 3단계

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

 ◆  스키마 3단계

  • 개념스키마 : 데이터 베이스의 전체적인 논리적 구조
  • 내부스키마 : 데이터 베이스의 물리적 저장구조를 정의
  • 외부스키마 : 실세계에서 존재하는 데이터들을 어떤 구조와 형식, 배치 화면을 통해 사용자에게 어떻게 보여줄 것인가에 대해 정의

 ◆  엔터티의 특징

  • 해당 업무에서 필요하고 관리하고자하는 정보이어야 함.
  • 유일한 식별자에 이해 식별이 가능해야 함.
  • 두개 이상의 엔터티가 필요함.(=영속적으로 존재하는 인스턴스의 집합)
  • 업무 프로세서에 의해 이용되어야 함.
  • 반드시 속성이 존재해야 함.
  • 다른 엔터티와 최소한 한개 이상의 관계가 있어야 함.

 ◆  엔터티 명명 기준

  • 협업 업무에서 사용하는 용어를 사용해야 함.
  • 약어를 사용하지 말아야 함.
  • 단수명사를 사용해야 함.
  • 모든 엔터티를 통틀어서 유일하게 이름이 부여되어야 함.
  • 엔터티 생성 의미대로 이름을 부여해야 함.

 ◆  데이터 모델링 관점에서의 속성

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

 ◆  속성의 특성에 따른 분류 3가지

  • 기본 속성 : 사원이름, 직책이름, 고용일자 등 가장 일반적인 속성
  • 설계 속성 : 업무상 필요한 데이터 이에 데이터 모델링을 이해, 업무를 규칙화하기 위해 속성을 새로 만들거나 변형하여 정의하는 속성
  • 파생 속성 : 다른 속성에 영향을 받아 발생하는 속성으로써, 데이터를 조회할 때 빠른 성능을 할 수 있도록 원래의 속성의 값을 계산하여 저장하는 속성. (가급적 적게 정의하는 것이 좋음)

 ◆ 데이터 모델링에서의 도메인

  •  각 엔터티(테이블)의 속성에 대해서 어떤 유형의 값이 들어가는지를 정의하는 개념이며, 각 속성이 가질 수 있는 값의 범위를 의미함.

 ◆  ERD와 클래스 다이어그램의 차이

  • ERD는 존재적 관계와 행위에 의한 관계를 구분하지 않지만, 클래스 다이어그램은 존재적 관계와 행위에 의한 관계를 구분하여 연관관계와 의존 관계로 표현한다.

 ◆  데이터 모델링에서의 관계

  • 관계는 존재적 관계행위에 의한 관계로 나누어볼 수 있음.
  • 관계 표기법은 관계명, 관계차수, 선택성(선택사양)의 3가지 개념으로 표현됨

 ◆  데이터 모델링에서이 관계 체크 사항

  • 두 개의 엔터티 사이에 관심있는 연관규칙이 존재하는가?
  • 두 개의 엔터티 사이에 정보의 조합이 발생되는가?
  • 관계연결에 대한 규칙이 서술되어 있는가?
  • 관계연결을 가능하게 하는 동사가 있는가?

 ◆  주식별자를 지정시 고려해야할 사항

  • 주식별자에 의해 엔터티내에 모든 인스턴스들이 유일하게 구분되어야 함.
  • 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야 함.
  • 지정된 주 식별자의 값은 자주 변하지 않는 것이어야 함.
  • 주식별자가 지정이 되면 반드시 값이 들어와야 함.
  • 해당 업무에서 자주 이용되는 속성을 주식별자로 지정해야 함.
  • 명칭, 내역 등과 같이 이름으로 기술되는 것들은 가능하면 주식별자로 지정하지 않아야 함.
  • 복합으로 주식별자로 구성할 경우 너무 많은 속성이 포함되지 않도록 해야 함.

 ◆  비식별자 관계(점선으로 표현)로 연결하는 것을 고려해야하는 경우

  • 부모엔터티에 참조값이 없어도 자식엔터티의 인스턴스가 생성될 수 있는 경우
  • 여러 개의 엔터티들을 하나로 통합하면서 각각의 엔터티가 갖고 있던 여러 갱의 개별 관계가 통합되는 경우
  • 자식쪽 엔터티의 주식별자를 부모엔터티와는 별도로 생성하는 것이 유리하다고 판단했을 경우
  • 약한 종속 관계
  • 자식 주식별자구성을 독립적으로 구성
  • 자식 주식별자 구성에 부모 주식별자 부분 필요
  • 상속받은 주식별자속성을 타 엔터티에 차단 필요
  • 부모쪽 관계참여가 선택관계

 ◆  식별자 관계(실선으로 표현)로 연결하는 것을 고려해야하는 경우

  • 부모엔터티의 인스턴스가 자식 엔터티와 같이 소멸되는 경우
  • 반드시 부모엔터티에 종속
  • 자식 주식별자구성에 부모주식별자포함 필요
  • 상속받은 주식별자속성을 타엔터티에 이전 필요

 

'Study IT > SQLD' 카테고리의 다른 글

SQL 기본(1)  (3) 2024.01.06
데이터 모델과 성능  (2) 2024.01.04
SQLD_분산 데이터베이스와 성능  (0) 2023.05.03
SQLD_데이터베이스 구조와 성능  (2) 2023.05.03
SQLD_대량 데이터에 따른 성능  (0) 2023.04.30