[DB] DataBase Modeling

jjenny7·2022년 5월 8일
0

DataBase

목록 보기
6/12

데이터베이스 모델링

  • 정보화 시스템을 구축하기 위해 어떤 데이터가 존재 하는지 또는 업무에 필요한 정보는 무엇인지 분석하는 방법
  • 관계형 데이터베이스는 이 '표'의 개념을 사용해서 데이터를 구성하는 방법을 사용

데이터 베이스 모델링 순서

업무파악 → 개념적 데이터 모델링 → 논리적 데이터 모델링 → 물리적 데이터 모델링

1. 업무 분석 단계

현재 하려는 일이 무엇인지, 어떤것을 만들고 싶은지에 대한 요건 정의서, 기획서를 이용하여 업무파악을 할 수 있다.

2. 개념적 모델링 단계

업무분속 단계에서 얻어진 내용을 토대로 우선 Entity를 추출하고 Entity내의 속성(Attribute)을 구성하며 Entity간의 관계를 정의해서 ER-Diagram을 작성하는 단계이다.

Entity Relationship(E-R) Diagram 기호

Entity Relationship(E-R) Diagram 예시

개체(Entity)

사용자와 관계가 있는 주요 객체로써 업무 수행을 위해 데이터로 관리되어져야 하는 사람, 사물, 장소, 사건 등을 개체라고 한다

Entity 찾는 법

  • 영속적으로 존재하는 것
  • 새로 식별이 가능한 데이터 요소를 가짐
  • Entity는 반드시 Attribute를 가져야 함
  • 명사적 표현

속성(Attribute)

정의

  • 저장할 필요가 있는 실체에 관한 정보
  • 개체(Entity)의 성질, 분류, 수량, 상태, 특성 등을 나타내는 세부사항
  • 개체에 포함되는 속성의 숫자는 10개 내외로 하는 것이 바람직함
  • 최종 DB 모델링 단계를 통해 테이블의 컬럼으로 활용

속성의 유형

  • 기초 속성 : 원래 갖고 있는 속성으로 현업에서 기본적으로 사용되는 속성
  • 추출 속성 : 기초 속성으로부터 계산(가공)에 의해 얻어질 수 있는 속성
  • 설계 속성 : 실제로 존재하지 않으나 시스템의 효율성을 도모하기 위해 설계자가 임의로 부여하는 속성

식별자

한 개체 내에서 인스턴스를 유일하게 구분할 수 이ㅛ는 단일 속성 또는 속성 그룹

이름설명
후보키(Candidatte Key)개체 내에서 각각의 인스턴스를 구분할 수 있는 속성으로 기본키가 될 수 있는 후보 속성
기본키(Primary Key)개체에서 각 인스턴스를 유일하게 식별하는데 가장 적합한 key, 기본키 설정 시 고려할 사항으로 해당 실체를 대표할 수 있을 것, 업무적으로 활용도가 높을 것, 길이가 짧을 것 등이 있다
대체키(Alternate Key)후보키 중에서 기본키로 선정되지 않은 속성
복합키(Composite Key)하나의 속성으로 기본키가 될 수 없는 경우 둘 이상의 컬럼을 묶어서 식별자로 정의하는 경우
대리키(Surrogate Key)식별자가 너무 길거나 여러개의 속성으로 구성되어 있는 경우에 인위적으로 추가할 식별자

관계(Relationship)

두 Entity간의 업무적인 연관성 또는 관련 사실

  • 각 Entity간에 특정한 존재여부 결정
  • 현재의 관계 뿐만 아니라 장래에 사용될 경우도 고려

E-R Diagram으로 관계를 설정하는 순서

  1. 관계가 있는 두 실체를 실선으로 연결하고 관계를 부여
  2. 관계 차수를 표현
    차수성(cardinality) : 한 실체의 하나의 인스턴스가 다른 실체의 몇 개의 인스턴스와 관련될 수 있는가를 정의
  3. 선택성을 표시
    선택성(optionality) : 선택적(optional)인지 반드시(mandatory)인지를 표시
    항상 그 관계를 만족해야만 하는지 파악, 관계가 만족되지 않는 경우를 찾아보고 하나라도 만족되지 않는 경우가 있으면 optional로 표시

차수성의 종류

  • 1:1 : 두 실체의 레코드가 서로 하나씩 대응
    • 학과와 학과장 사이
  • 1:N : 부모 실체의 레코드가 자식 실체의 여러 레코드에 대응
    • 학과와 학생 사이
  • N:N : 양쪽 실체 간에 여러개의 레코드와 관계를 맺을 수 있는 경우
    • 학생과 과목 사이

3. 논리적 모델링 단계

개념적으로 구체화한 모델을 관계형 데이터베이스에 맞게 구축하는 단계

개념적 모델링 단계에서 정의된 E-R Diagram을 Mapping Rule을 적용하여 관계형 데이터베이스 이론에 입각한 스키마를 설계하는 단계이를 이용하여 필요하다면 정규화 하는 단계로 구성

기본키

  • 후보키 중에서 선택한 주 키
  • NULL의 값을 가질 수 없으며 동일한 값이 중복되어 저장될 수 없음

참조키, 이웃키

  • 관계를 맺는 두 개체에서 서로 참조하는 관계의 attribute로 지정되는 키

Mapping Rule

개념적 데이터베이스 모델링에서 도출된 개체 타입과 관계 타입의 테이블 정의

개념>>>논리
단순 엔티티>>>테이블
속성>>>컬럼
식별자>>>기본키
관계>>>참조키, 테이블

정규화

  • Attribute간에 존재하는 함수적 종속성을 분석해서 관계형 스키마를 더 좋은 구조로 정제해 나가는 일련의 과정
  • 데이터의 중복을 제거하고 속성들을 본래의 제자리에 위치 시키는 것

제 1 정규화

  • 반복되는 그룹 속성을 제거한 뒤 기본 테이블의 기본키를 추가해 새로운 테이블을 생성하고 기존의 테이블과 1:N의 관계를 형성하는 과정
  • 반복되는 그룹 속성이란 같은 성격과 내용의 컬럼이 연속적으로 나타나는 컬럼을 말함

제 2 정규화

  • 복합키(Composite Primary Key)에 전체적으로 의존하지 않는 속성 제거
  • 제2정규화의 대상이 되는 테이블은 키가 여러 컬럼으로 구성된 경우
  • 복합키의 일부분에 의해 종속되는 것을 부분적 함수 종속관계라 하며 이를 제거하는 방법

제 3 정규화

  • 기본키에 의존하지 않고 일반 컬럼에 의존하는 컬럼들을 제거
  • 이행적 함수 종속관계를 갖는 컬럼을 제거하는 과정

4. 물리적 모델링 단계

어떤 DB 솔루션을 사용할지 선택하고 DB 솔루션에 가장 최적화된 SQL문을 작성하여 실제 Table을 만드는 단계

논리적 모델링 단계에서 얻어진 데이터베이스 스키마를 좀 더 효율적으로 구현하기 위한 작업으로 DBMS 특성에 맞게 실제 데이터베이스 내의 개체들을 정의하는 단계

데이터 사용량 분석과 업무 프로세스 분석을 통해서 보다 효율적인 데이터베이스가 될 수 있도록 효과적인 인덱스를 정의하고 상황에 따른 역정규화 작업을 수행

역정규화

  • 시스템의 성능을 고려하여 기존 설계를 재구성하는 것
  • 정규화에 위배되는 행위
  • 테이블의 재구성

방법

  • 데이터 중복
  • 파생 컬럼의 생성
  • 테이블 분리
  • 요약 테이블 생성
  • 테이블 통합
profile
水急不流月

0개의 댓글