DB - 데이터베이스 모델링

이상해씨·2022년 9월 26일
0

웹 풀스택(JAVA)

목록 보기
45/54

✔ DataBase Modelling

◾ DataBase Modelling(데이터베이스 모델링)

  • 데이터가 존재 하는지 또는 업무에 필요한 정보는 무엇인지 분석하는 방법.
  • 관계형 데이터베이스(RDB) : 표 개념을 사용하여 데이터를 구성하는 방법.

✔ 개념적 데이터베이스 모델링

image

1. 개념적 데이터베이스 모델링 기초

  • Entity간의 관계를 정의하여 ER-Diagram 정의
    • 업무 분석 단계에서 얻은 내용을 토대로 Entity 추출.
    • Entity내에 속성(Attribute) 구성.

◾개념적 데이터베이스 순서

  1. 사용자 부문의 처리 현상 분석.
  2. 중요 실체와 관계를 파악하여 ERD 작성.
  3. 실체에 대한 상세 정의.
  4. 식별자 정의, 식별자 업무 규칙 작성.
  5. 실체별로 속성 상세화.
  6. 필요한 속성 및 영역 상세 정의.
  7. 속성에 대한 업무 규칙 정의.
  8. 각 단계를 마친 후 사용자와 함게 모델 검토.

◾Entity Relationship (E-R) Diagram 기호

image

2. 개념적 데이터베이스 모델링 용어

◾속성(Attribute)

  • 저장할 필요가 있는 실체에 관한 정보
  • 개체(Entity)의 성질, 분류, 술야, 상태, 특성 등을 나타내는 세부 사항.
  • 개체에 포함되는 속성의 숫자는 10개 내외로 하는 것이 바람직.
  • 최종 DB 모델링 단계를 통해 테이블의 컬럼으로 활용.
  • 속성의 유형
    • 기초 속성 : 원래 갖고 있는 속성. 기본적으로 사용되는 속성.
    • 추출 속성 : 기초 속성으로부터 계산(가공)에 의해 얻어질 수 있는 속성.
    • 설계 속성 : 실제로 존재하지 않으나 시스템의 효율성을 도모하기 위해 설계자가 임의로 부여하는 속성.

◾식별자

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

◾관계(Relationship)

  • 두 Entity간의 업무적인 연관성 도는 관련 사실
  • Relationship 분석
    • 각 Entity간에 특정한 존재 여부 결정.
    • 현재의 관계 뿐만 아니라 장래에 사용될 경우도 고려.
  • 관계 설정 순서
    1. 관계가 있는 두 실체를 실선으로 연결하고 관계 부여
    2. 관계차수 표현
      • 차수성(Cardinality) : 한 실체의 하나의 인스턴스가 다른 실체의 몇 개의 인스턴스와 관련될 수 있는가 정의.(경우에 다라 발생 횟수 조사, 양쪽 방향 모두 조사.)
    3. 선택성 표시
      • 선택성(Optionality) : 선택적인지 반드시 인지 표시.
        • 일반적이고 상식적인 선에서 먼저 판단.
        • 항상 그 관계를 만족해야만 하는지 파악.
        • 관계가 만족되지 않는 경우를 찾아보고 하나라도 만족되지 않는 경우가 있으면 optional로 표시.
        • 양쪽 방향 모두 조사.

3. 차수성

◾차수성의 종류

  • 1:1(일대일) : 두 실체의 레코드가 서로 하나씩 대응.
  • 1:N(일대다) : 부모 실체 하나의 레코드가 자식 실체의 여러 레코드에 대응.
  • N:N(다대다) : 양 쪽 실체 간에 여러 개의 레코드와 관계를 맺을 수 있는 경우.

✔ 논리적 데이터베이스 모델링

1. 논리적 데이터베이스 모델링 기초

◾논리적 데이터베이스 모델링

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

2. 논리적 데이터베이스 모델링 용어

◾기본키(Primary Key)

  • 후보키 중에서 선택한 주 키.
  • 널(Null)의 값을 가질 수 없다.(Not Null)
  • 동일한 값이 중복해서 저장될 수 없다.(Unique)

◾참조키, 이웃키(Foreign Key)

  • 관계를 맺는 두 엔티티에서 서로 참조하는 릴레이션의 attribute로 지정되는 키.

3. Mapping Rule

  • ER-Diagram Entity를 관계형 스키마로 변환.

4. 정규화

◾정규화

  • Attribute간에 존재하는 함수적 종속성을 분석하여 스키마 구조를 정제하는 과정
  • 데이터 중복을 제거하고 속성들을 본래의 제자리에 위치 시키는 것.
  • 정규화 종류
    • 제1 정규화
    • 제2 정규화
    • 제3 정규화

◾제1 정규화

  • 반복되는 그룹 속성 제거 + 기본키 추가 = 새로운 테이블 생성.
    • 기존 테이블과 1:N의 관계를 형성하는 과정.
  • 반복되는 그룹 속성 : 같은 성격의 내용의 컬럼이 연속적으로 나타나는 컬럼.
  • 정규화 적용 전 테이블 : 부수적인 데이터를 저장하기 위해 기본 데이터 중복.

◾제2 정규화

  • 복합키(Composite Primary Key)에 전체적으로 의존하지 않는 속성 제거.
    • 키가 여러 컬럼으로 구성된 경우.
  • 부분적 함수 종속을 제거하는 작업
    • 부분적 함수 종속 : 복합키의 일부분에 종속되는 것.

◾제3 정규화

  • 이행적 함수 종속을 제거하는 작업.
    • 이행적 함수 종속 : 기본키에 의존하지 않고 일반 컬럼에 의존하는 컬럼

✔ 물리적 데이터베이스 모델링

1. 물리적 데이터베이스 모델링 기초

◾물리적 데이터 베이스 모델링

  • 논리적 데이터베이스 모델링 단계에서 얻은 데이터베이스 스키마를 좀더 효율적으로 구현하기 위한 작업.
  • DBMS 특성에 맞게 실제 데이터베이스 내의 개체들을 정의하는 단계.
    • Column의 domain 설정(int, varchar, date, ...)
  • 데이터 사용량 분석과 업무 프로세스 분석을 통해 효율적인 데이터베이스가 될 수 있도록 인덱스 정의, 상황에 따라 역정규화 작업 수행.
    • Index, Trigger, 역정규화

2. 역정규화

◾역정규화(Denomalization)

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

◾역정규화 방법

  • 데이터 중복(컬럼 역정규화)
    • 조인 프로세스가 많아 시스템의 성능 저하를 가져오는 경우.
    • 조인 프로세스를 줄이기 위해 해당 컬럼을 중복함으로써 성능을 향상시키기 위한 방법.
  • 파생 컬럼의 생성
    • 기본적으로 테이블에 없는 컬럼을 숫자 연산이나 데이터 조작 등을 통해 조회할 때 새로운 정보를 보여주는 경우.
    • 판매테이블의 판매금액 컬럼이나 성적 테이블의 총점과 평균.
  • 테이블 분리
    • 컬럼 기준으로 분리(컬럼수)
    • 레코드 기준으로 분리(레코드양)
  • 요약 테이블 생성(Summary Table)
    • 조회의 프로세스를 줄이기 위해 요약된 정보만을 저장하는 테이블을 만드는 것.
  • 테이블 통합
    • 분리된 두 테이블이 시스템에 영향을 끼칠 경우 고려.
profile
후라이드 치킨

0개의 댓글