(SQLD) 데이터 모델링의 이해

샘2·2023년 6월 7일
0

chapter 1 :데이터 모델링의 이해

모델링이 갖춰야 할 조건

  • 현실세계를 반영해야 한다.
  • 단순화하여 표현해야 한다.
  • 관리하고자 하는 데이터를 모델로 설계한다.

모델링의 특징

  1. 추상화: 현실 세계를 일정한 형식으로 표현하는 것이다. 즉 아이디어나 개념을 간략하게 표현하는 과정
  2. 단순화: 복잡한 현실 세계를 정해진 표기법으로 단순하고 쉽게 표현한다는 의미
  3. 명확화(clarity): 불분명함을 제거하고 명확하게 해석할 수 있도록 기술한다는의미

모델링의 세가지 단계

  1. 개념적 데이터 모델링(conceptual Data Modeling): 전사적 데이터 모델링 수행시 행해지며 추상화 레벨이 가장 높은 모델링입니다. 이 단계에서는 업무 중심적이고 포괄적인 수준의 모델링이 진행된다.
  2. 논리적 데이터 모델링(Logical Data Modeling): 재사용성이 가장 높은 모델링으로 데이터베이스 모델에 대한 key, 속성, 관계 등을 모두 표현하는 단계이다.
  3. 물리적 데이터 모델링(Physical Data modeling): 실제 데이터베이스로 구현할 수 있도록 성능이나 가용성 등의 물리적인 성격을 고려하여 모델을 표현하는 단계

3단계 스키마 구조

  1. 외부스키마(External Schema): 사용자의 관점: multiple user view 단계로 각 사용자가 보는 데이터베이스의 스키마를 정의한다.
  2. 개념스키마(conceptual schema): 통합적 관점: community view of DB 단계로 모든 사용자가 보는 데이터베이스의 스키마를 통합하여 전체 데이터베이스를 나타내는 것이다. 데이터 베이스에 저장되는 데이터들을 표현하고 데이터들 간의 관계를 나타낸다.
  3. 내부스키마(Internal Schema): 물리적 관점 : Physical Representation 단계로 물리적인 저장 구조를 나타낸다. 실질적인 데이터의 저장 구조나 컬럼 정의, 인덱스 등이 포함된다.

→ 논리적 독립성: 개념 스키마가 변경되어도 외부 스키마는 영향받지 않는다.

→ 물리적 독립성: 내부 스키마가 변경되어도 외부/개념 스키마는 영향받지 않는다.

엔터티(Entity): 사전적인 의미로는 ‘독립체’이며, 데이터베이스에서 엔터티는 식별이 가능한 객체라는 의미를 가지고 있다.

특징

  • 다른 엔터티와 1개 이상의 관계를 가지고 있어야 한다.
  • 반드시 속성을 가지고 있어야 한다.
  • 유니크함을 보장할 수 있는 식별자가 있어야 한다.
  • 2개 이상의 인스턴스를 가지고 있어야 한다.
  • 업무에 필요한 정보여야 한다.

속성

  • 하나의 엔터티는 두개 이상의 속성을 갖는다.
  • 하나의 속성은 하나의 속성값을 갖는다.
  • 속성은 의미상 더 이상 쪼개지지 않는 레벨이어야 한다.

기본속성(Basic Attribute): 업무 프로세스 분석을 통해 바로 정의가 가능한 속성

설계속성(Desinged Attribute): 업무에 존재하지는 않지만 설계하다 보니 필요하다고 판단되어 도출해낸 속성

파생속성(Derived Attribute): 다른 속성의 속성값을 계산하거나 특정한 규칙으로 변형하여 생성한 속성

PK(primary key)속성: 엔터티의 인스턴스들을 식별할 수 있는 속성

FK(foreign key)속성: 다른 엔터티의 속성에서 가져온 속성

일반 속성: PK,FK를 제외한 나머지 속성

도메인: 속성이 가질 수 있는 속성값의 범위를 도메인이라고 한다.

용어사전: 엔터티의 속성명을 정의할 때 명확한 의미의 이름을 부여하고 다른 엔터티와의 혼란을 예방하기 위해 이용된다.

관계(Relationship): 엔터티와 엔터티와의 관계를 의미하며, 어떠한 연관성이 있는지 타입을 분류하여 존재 관계와 행위 관계로 나눌 수 있다.

존재 관계: 존재 자체로 연광성이 있는 관계

행위 관계: 특정한 행위를 함으로써 연관성이 생기는 관계

표기법: 관계명(Membership), 관계차수(cardinality), 관계선택사양(Optionality)

식별자(Identifiers): 모든 엔터티는 인스턴스를 가지고 있고 인스턴스는 속성으로 자신의 특성을 나타낸다고 하였다. 식별자는 이런 속성 중에 각각의 인스턴스를 구분 가능하게 만들어주는 대표 격인 속성을 의미한다.

주식별자: 주식별자는 기본키, PK에 해당하는 속성이다.

  • 유일성: 각 인스턴스에 유니크함을 부여하여 식별이 가능하도록 한다.
  • 최소성: 유일성을 보장하는 최소 개수의 속성이어야 한다.
  • 불변성: 속성값이 되도록 변하지 않아야 한다.
  • 존재성: 속성값이 NULL일 수 없다.

식별자 관계(Identification Relationship): 부모 엔터티의 식별자가 자식 엔터티의 주식별자가 되는 관계 , 주식별자는 반드시 존재해야 하며, 부모엔터티가 있어야 생성가능하며, 단일식별자인지 복합식별자인지에 따라 1:1, 1:M으로 결정된다.

오답노트

ERD에서는 존재에 의한 관계와 행위에 의한 관계를 구분하지 않고 표현하며 클래스 다이어그램에서는 이것을 구분하여 연관 관계와 의존 관계로 표현한다.

데이터 모델링을 할 때 지양해야 할 점

  • 중복(Duplication): 같은 데이터가 여러 엔터티에 중복으로 저장되는 현상을 지양해야 한다.
  • 비유연성(inflexbility): 데이터 모델의 설계에 따라 어플리케이션의 사소한 변경에도 데이터 모델이 수시로 변경되어야 하는 상황이 생길 수 있다. 이런 상황은 시스템을 유지보수하는 데에 어려움을 가중시키므로 데이터 모델과 프로세스를 분리하여 유연성을 높이는 것이 바람직하다.

ERD 작성 순서

  1. 엔터티를 그린다.
  2. 엔터티를 적절하게 배치한다.
  3. 엔터티 간의 관계를 나타낸다.
  4. 관계명을 정의한다,.
  5. 관계의 참여도를 나타낸다.
  6. 관게의 필수 여부를 나타낸다.

중심 엔터티: 기본 엔터티로부터 파생되고, 행위 엔터티 생성| 업무에 있어서 중심적인 역할을 하며 데이터의 양이 많이 발생

속성은 프로세스에 사용되는 데이터로 더 이상 쪼개지지 않고 인스턴스에서 관리된다.

주식별자는 유일성, 불변성, 최소성, 존재성을 가진 대표 식별자이다. 회원 엔터티의 회원명은 유일성을 가질 수 없으므로 주식별자로 적합하지 않다. 동명이인이 있을 수 있음

복학식별자: 두개 이상의 속성으로 구성된 식별자

보조식별자: 인스턴스를 식별할 수는 있지만 대표 식별자가 아님, 다른 엔터티와 참조 관계로 연결되지 않음

외부 식별자: 다른 엔터티에서 온 식별자. 다른 엔터티와의 연결고리 역할

profile
부지런한 개발자가 되고싶은

0개의 댓글