SQLD

JUNHO YEOM·2023년 2월 23일
0

DB, SQL

목록 보기
20/21

모델링

현실세계를 단순화 하여 표현하는 기법

DB모델링: 현실 세계를 추상화, 단순화, 명확화 하기 위해 일정한 표기법에 의해 표현하는 기법


모델링의 조건

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


모델링의 특징

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


모델링의 세가지 관점

데이터 관점 : 데이터 위주의 모델링. 어떤 데이터들이 업무와 얽혀 있는지, 이 데이터들간에 어떤 관계가 있는지 모델링
프로세스 관점: 프로세스 위주의 모델링. 이 업무가 실제로 처리하고 있는일, 앞으로 처리해야 하는일이 무엇인지를 모델링
데이터와 프로세스의 상관 관점: 데이터와 프로세스 관계 위주 모델링. 프로세스 흐름에 따라 데이터가 어떤 영향을 받는지 모델링


모델링의 세 가지 단계

개념적 데이터 모델링: 전사적 데이터 모델링 수행시 행해짐. 추상화 레벨이 가장 높음. 업무 중심적이고 포괄적인 수준의 모델링이 진행됨.
논리적 데이터 모델링: 재사용성이 가장 높은 모델링. DB 모델에 대한 key, 속성, 관계들을 모두 포함하는 단계
물리적 데이터 모델링: 실제 DB로 구현할 수 있도록 성능이나 가용성등의 물리적 성격을 고려하여 모델링을 구현하는 단계


데이터 모델링의 유의점

중복

같은 데이터를 사용하는 사람, 시간, 그리고 장소를 파악하는데 도움을 줌으로써 데이터베이스가 여러 장소에 같은 정보를 저장하는 잘못을 하지 않도록 한다.

비유연성

데이터 모델을 어떻게 설계했는지에 따라 사소한 업무 변화에도 데이터 모델이 수시로 변경되어 유지보수의 어려움을 가중시킬 수 있다. 데이터의 정의를 데이터의 사용 프로세스와 분리함으로써 모델링은 데이터 혹은 프로세스의 작은 변화로 인한 DB의 중대한 변화 가능성을 줄인다.

비일관성

데이터의 중복이 없더라도 비일관성은 발생할 수 있다. 데이터 모델링을 할 때 데이터와 데이터간의 상호 연관 관계에 명확하게 정의한다면 이러한 위험을 사전에 예방하는데 도움줄 수 있다. 사용자가 처리하는 프로세스 혹은 이와 관련된 프로그램과 테이블의 연계성을 높이는 것은 데이터 모델이 업무 변경에 대해 취약하게 만드는 단점에 해당된다.


데이터의 독립성

ANSI-SPARC 아키텍처

1975년 제안된 데이터베이스 관리 시스템의 추상적인 설계 표준
스키마를 3단계 구조로 나눔


ANSI-SPARC 3단계 스키마 구조

외부 스키마(사용자의 관점)

Multiple User's View 단계로 각 사용자가 보는 데이터 베이스의 스키마를 정의

개념 스키마(통합된 관점)

Community View of DB 단계로 모든 사용자가 보는 데이터베이스의 스키마를 통합하여 전체 DB를 나타내는 것. 데이터베이스에 저장되는 데이터들을 표현하고 데이터들의 관계를 나타냄

내부 스키마(물리적인 관점)

Physical Representation 단계로 물리적인 저장 구조를 나타냄. 실질적인 데이터의 저장구조, 컬럼 정의, 인덱스가 포함


3단계 스키마 구조가 보장하는 독립성

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


ERD

시스템에 어떤 엔티티들이 존재하며, 그들간에 어떤 관계가 있는지를 나타내는 다이어그램


ERD 작성순서

  1. 엔티티 도출하고 그린다
  2. 엔티티를 절절히 배치한다
  3. 엔티티 관계를 설정한다
  4. 관계명을 기입한다.
  5. 관계의 참여도를 기입한다.
  6. 관계의 필수/선택여부를 기입한다.

엔티티

식별가능한 객체라는 의미로 업무에서 쓰이는 데이터를 용도별로 분류한 그룹

인스턴스: Row
속성: Column


엔티티의 특징

  1. 업무에서 쓰이는 정보여야 함
  2. 유니크함을 보장할 수 있는 식별자가 있어야 한다.
  3. 2개 이상의 인스턴스를 가지고 있어야 함(Row)
  4. 반드시 속성을 가지고 있어야함(Column)
  5. 다른 엔티티와 1이상의 관계를 가지고 있어야 함

엔티티의 분류

유형, 무형

  1. 유형 엔티티: 물리적인 형태 존재, 안정적, 지속적
  2. 무형 엔티티: 물리적인 형태 없음, 개념적
  3. 사건 엔티티: 행위를 함으로써 발생

발생 시점

  1. 기본 엔티티: 독립적으로 생성됨. 자식 엔티티를 가질 수 있음
  2. 중심 엔티티: 기본 엔티티로부터 파생, 행위 엔티티 생성
  3. 행위 엔티티: 2개 이상의 엔티티로부터 파생

속성

사물이나 개념의 특징을 설명해 줄 수 있는 항목
하나의 속성은 하나의 속성값만 가질 수 있다


속성의 특성에 따른 분류

기본속성

업무 프로세스 분석을 통해 바로 정의가 가능한 속성

설계속성

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

파생속성

다른 속성의 속성값을 계산하거나 특정한 규칙으로 변형하여 생성한 속성


주식별자를 도출하는 기준

  • 해당 업무에서 자주 이용되는 속성을 주 식별자로 지정한다
  • 명칭, 내역 같이 이름으로 기술되는 것들은 가능하면 주식별자로 지정하지 않는다
  • 복합으로 주식별자로 구성할 경우 너무 많은 속성이 포함되지 않도록 한다

0개의 댓글