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

hoon·2024년 10월 23일

sqld

목록 보기
1/10

모델링이란?

–복잡한 현실세계를 추상화, 단순화하여 일정한 표기법에 의해 명확하게 표현하는 것

  • 추상화, 단순화, 명확화 구체화, 복잡화, 일반화 등이 아님

–모델(Model): 현실 세계의 추상화된 반영

데이터베이스 3단계 구조

–외부 스키마(External Schema)

  • 각 사용자 또는 응용프로그램이 바라보는 스키마

–개념 스키마(Conceptual Schema)

  • 모든 사용자의 관점을 통합한 스키마
  • DB에 저장되는 데이터와 그들 간의 관계를 표현

–내부 스키마(Physical Schema)

  • DB가 물리적으로 저장된 형식

데이터 모델링은 통합 관점의 개념 스키마를 만들어 가는 과정

데이터 독립성

–논리적 독립성

  • 논리적 사상(외부적/개념적 사상)을 통해 논리적 독립성이 보장됨
  • 내용
    • 개념 스키마가 변경되어도 외부 스키마에는 영향을 미치지 않음
    • 논리적 구조가 변경되어도 응용 프로그램에는 영향이 없음

–물리적 독립성

  • 물리적 사상(개념적/내부적 사상)을 통해 물리적 독립성이 보장됨
  • 내용
    • 내부스키마가 변경되어도 외부/개념 스키마는 영향을 받지 않음
    • 저장장치의 구조변경은 응용프로그램과 개념스키마에 영향을 주지 않음

엔터티

엔터티의 분류

–유형(Tangible) 엔터티

  • 물리적인 형태가 있고 안정적이며 지속적으로 활용됨
  • 교수, 강의실, 학생 등

–개념(Conceptual) 엔터티

  • 물리적인 형태는 존재하지 않으나 관리해야 할 개념적 정보
  • 수업, 보험상품 등

–사건(Event) 엔터티

  • 업무 수행 과정에서 발생하며 비교적 발생량이 많음 (각종 통계 자료에 이용됨)
  • 수강신청, 주문, 입금 등

발생 시점에 따라 구분 할 수 있는 엔터티

행위 엔터티

중심 엔터티

기본 엔터티

엔터티와 인스턴스

–엔터티는 인스턴스의 집합

엔터티의 특징

–해당 업무에서 필요하고 관리하고자 하는 정보를 포함해야 함

–유일한 식별자에 의해 식별이 가능해야 함

–영속적으로 존재하는 (둘 이상) 인스턴스의 집합이어야 함

–업무 프로세스에 의해 이용되어야 함

–반드시 속성을 가져야 함

–주식별자만 존재하고 일반속성은 없는 경우도 바람직하지 않음

엔터티의 명명

–엔터티 생성 의미대로, 실제 업무에서 사용하는 용어를 사용한다.

–약어를 사용하지 않는다.

–단수 명사를 사용한다.

–이름이 동일한 텍스트엔터티가 중복으로 존재할 수 없다.

–다른 엔터티와 최소 한 개 이상의 관계를 가져야 함

속성

속성의 정의

–사물의 특징 또는 본질적인 성질

  • 속성이 없다면 실체를 생각할 수 없음

–인스턴스에 대해 의미상 더 이상 분리되지 않는 최소의 데이터 단위

–엔터티에 속한 인스턴스들의 성격을 구체적으로 나타냄

  • 인스턴스 각각을 구분할 수 있는 기준 파악 → 이름 부여 → 속성화

–엔터티, 인스턴스, 속성, 속성값의 대응

  • 각 엔터티는 둘 이상의 인스턴스를 가짐
  • 각 엔터티는 둘 이상의 속성을 가짐
  • 각 속성은 하나의 속성값을 가짐

속성의 분류

–속성의 특성에 따른 분류

  • 기본 속성(Basic Attribute)
    • 가장 일반적인 속성으로, 원래의 업무로부터 유래한 속성
  • 설계 속성(Designed Attribute) – 구분이 애매함
    • 데이터 모델링을 위해 새로 만든 속성 (주로 코드)
  • 파생 속성(Derived Attribute)
    • 다른 속성들로부터 유도된 속성 (주로 통계 관련)
    • 가급적 적게 정의하는 것이 좋음

–엔터티 구성 방식에 따른 분류

  • PK(Primary Key) 속성 – 엔터티의 인스턴스를 구별할 수 있는 속성
  • FK(Foreign Key) 속성 – 타 엔터티의 PK를 참조하는 속성
  • 일반 속성 – 그 외의 속성

–분리 가능성에 따른 분류

  • 복합 속성(Composite Attribute) vs. 단순 속성(Simple Attribute)

–속성값의 수에 따른 분류

  • 다중값 속성(Multi-Valued Attribute) vs. 단일값 속성(Single-Valued Attribute)

속성의 특징

–해당 업무에서 필요하고 관리해야 하는 정보

–모든 속성은 주식별자에 함수적으로 종속되어야 함

–하나의 속성은 한 개의 값만을 가져야 함

  • 속성이 다중값을 가질 경우 해당 속성을 별도의 엔터티로 분리함

속성의 명명

–현업에서 사용하는 이름을 부여

–약어 사용은 가급적 금지

–서술식 속성명을 피하고 명사형 속성명을 사용

–수식어와 소유격을 피함

속성의 이름은 가급적 전체 모델에서 유일하게 정의

도메인(Domain)

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

  • 예) 학점: 0.0 ~ 4.5 사이의 실수
  • 예) 주소: 길이가 20자리 이내인 문자열

–속성에 대한 데이터 타입과 크기, 그리고 제약사항을 지정하는 개념

식별자의 분류

식별자의 특징

식별자 관계와 비식별자 관계

–부모 엔터티의 식별자 A를 자식 엔터티의 외부식별자 A(FK)로 포함할 때

  • A(FK)가 주식별자에 포함된 경우 → 식별자 관계
  • A(FK)가 비식별자 속성으로 포함된 경우 → 비식별자 관계

식별자 관계(Identifying Relationship)

–부모의 주식별자가 자식엔터티의 주식별자로 상속

–반드시 부모 엔터티가 생성되어야 자식 엔터티가 생성될 수 있음

  • 해당 속성이 Not Null 이므로 -> weak entity에 해당됨

–자식 엔터티의 주식별자가 해당 속성만으로 구성되는 경우 1:1 관계

–자식 엔터티의 주식별자가 해당 속성 + a 로 구성되는 경우 1:N 관계

비식별자 관계(Non-Identifying Relationship)

–부모의 주식별자가 자식엔터티의 비식별자 속성으로 상속

–다음의 경우 비식별자 관계가 생성됨

  • 부모 엔터티와 자식 엔터티의 관계가 약한 경우
    • 부모 엔터티 없이 자식 엔터티가 생성 가능
  • 자식 엔터티의 주식별자로 사용해도 되지만, 일반 속성으로 두는 것이 유리할 때
    • 자식 엔터티의 독립적인 주식별자 설정이 필요한 경우 등

0개의 댓글