YJ의 새벽

sqld (1) - 데이터 모델링의 이해 본문

SelfStudy/sqld

sqld (1) - 데이터 모델링의 이해

YJDawn 2024. 2. 21. 18:33

 

 

  • 모델링 특징

추상화  :  현실세계, 다양한 현상 일정한 양식인 표기법에 의해 표현

단순화  :  복잡한 현실세계를 약속된 규약 의해 제한된 표기법이나 언어로 표현

명확화  :  누구나 이해하기 쉽게 대상에 대한 애매모호함을 제거

 

 

  • 모델링의 세 관점

데이터 관점  :  업무가 어떤 데이터와 관련이 있는지, 데이터간 관계 무엇인지

프로세스 관점  :  업무가 실제하고 있는 일이 무엇인지, 무엇을 해야하는지

상관 관점  :  업무 처리하는 방법에 따라 데이터가 어떻게 영향받고 있는지

 

 

  • 데이터 모델링 정의

정보시스템 구축을 위한 데이터 관점의 업무 분석기법으로 현실세계 데이터에 대해

약속된 표기법에 의해 표현하는 과정,

데이터베이스 구축하기위한 분석, 설계과정.

 

 

  • 데이터 모델링 유의점

중복         :  같은 시간 같은 데이터 제공

비유연성  :  사소한 업무변화에 데이터 모델이 수시로 변경되면 안됨.

비일관성  :  데이터 간 상호 연관 관계에 대해 명확히 정의해야 함.

 

 

  • 데이터 모델링의 작업 순서

1) 엔터티를 그린다

2) 엔터티를 적절하게 배치한다

3) 엔터티간 관계를 설정한다

4) 관게명을 기술한다

5) 관계의 참여도를 기술한다

6) 관계의 필수 여부를 기술한다

 

 

  • 데이터 모델링의 3단계 진행   (  (추상적) 개념적  --  논리적  --  물리적 (구체적)  )     -->  개 논 물 !! 

개념적 데이터 모델링  :  추상화, 업무중심적, 포괄적, 전사적, EA수립시 사용

                                       사용자 관점에서 데이터 요구사항을 식별

논리적 데이터 모델링  :  KEY, 속성, 관계 표현, 재사용성 높음(정규화)

                                       식별자확정 무결성 정의

물리적 데이터 모델링  :  실제 데이터베이스 이식할 수 있도록 성능,저장 등 물리적 성격 고려

 

 

  • 데이터 독립성 요소              (   외  개  내 !! )

외부 스키마  :  개인 사용자가 보는 개인적 DB스키마

개념 스키마  :  모든 사용자 관점을 통합한 전체 DB

내부 스키마  :  물리적 장치에서 데이터가 실제적 저장

 

 

 

  • 데이터 모델링 세가지 요소

엔티티(Entity), 속성(Attribute), 관계(Relationships)

 

 

 


 

  • 엔터티 개념

엔터티는 사람, 장소, 물건, 개념 등의 명사에 해당한다.

엔터티는 업무상 관리가 필요한 관심사에 해당한다.

엔터티는 저장이 되기위한 어떤 것 이다.

 

 

  • 엔터티 특징

업무에서 필요하고 관리하고자 하는 정보여야 한다.

유일한 식별자에 의해 식별이 가능해야 한다.  ★

반드시 속성이 있어야 한다. ★

인스턴스의 집합 이어야 한다. ( 따라서 하나의 엔터티는 두개 이상의 인스턴스로 구성 )  ★

다른 엔터티와 최소 한 개 이상의 관계가 있어야 한다  ★

 

현업 업무에서 사용하는 용어를 이용한다.  ★

가능하면 약어를 사용하지 않는다.  ★

유일하게 이름이 부여되어야 한다.  ★

단수 명사를 사용해야 한다.

 

 

  • 속성(Attribute)의 개념

업무에서 필요로 한다.

의미상 더이상 분리되지 않는다.  ★

인스턴스의 구성 요소이다.

서술식 속성 명은 사용하지 않는다.

약어 사용은 가급적 제한한다.

 

 

  • 인스턴스 - 속성 - 속성값

한 개의 엔터티는 두 개 이상의 인스턴스의 집합이어야 한다  ★

한 개의 엔터티는 두 개 이상의 속성을 갖는다 ★

한 개의 속성은 한 개의 속성값만 갖는다 ★

 

 

  • 속성 분류

기본속성  :  업무분석을 통해 바로 정의한 속성

설계속성  :  업무상 존재하지는 않지만 설계를 하며 도출해 내는 속성   ( 코드성 속성 )

파생속성  :  다른 속성으로부터 계산이나 변형이 되어 생성되는 속성  ( 계산된 속성 ) 

 

 

  • 도메인(Domain) 의 정의

각 속성이 가질 수 있는 값의 범위

각 속성은 오직 도메인 내에 있는 값만 가질 수 있다.

 

 

  • 관계 (Relationships) 의 분류

1) 존재에 의한 관계  ( 부서와 사원 )

2) 행위에 의한 관계  ( 고객과 주문 )

 

 

  • 관계 표기법

관계명 , 관계차수 , 관계선택사양

 

 

  • 관계 정의 시 고려 사항

두 개의 엔터티 사이에 관심있는 연관규칙이 존재하는가 ?

규칙이 서술되어 있는가 ?

관계연결을 가능하게 하는 동사가 있는가 ?

 

 


 

 

  • 식별자의 특징

유일성  :  주식별자에 의해 엔터티 내에 모든 인스턴스들은 유일하게 구분되어야 한다.

최소성  :  주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야 한다.

불변성  :  지정된 주식별자의 값은 자주 변하지 않는 것이어야 한다.

존재성  :  주식별자가 지정되면 반드시 값이 들어와야 한다.

 

 

  • 식별자 도출 기준

해당 업무에서 자주 이용되는 속성을 주식별자로 지정한다.

명칭,내역 등과 같이 이름으로 기술되는 것들은 가능하면 주식별자로 지정하지 않는다.

주식별자가 복합으로 구성되는 경우, 너무 많은 속성이 포함되지 않도록 한다.

 

 

  • 식별자 , 비식별자 관계

식별자 관계  :  부모의 주식별자가 자식 엔터티의 주식별자로 상속되는 경우

비식별자 관계  :  부모엔터티로부터 속성을 받았지만 자식엔터티의 주식별자로 사용하지 않고

                            일반적인 속성으로만 사용하는경우

                         :  부모와 자식의 생명주기가 다른 경우  ( 별도로 소멸 )

                         :  자식엔터티에 별도의 주식별자를 생성하는것이 더 유리한경우

                         :  SQL 문장이 길어져 복잡성이 증가되는것 방지.

 

 

 

 

 

 

'SelfStudy > sqld' 카테고리의 다른 글

sqld (4) - SQL 활용  (0) 2024.03.06
sqld (3) - SQL 기본  (0) 2024.02.21
sqld (2) - 데이터 모델과 성능  (0) 2024.02.21
Comments