•
4 min read
데이터베이스 공부 - 2

관계형 데이터 베이스 설계

데이터 모델링

데이터 모델

  • 현실 세계에 대해 우리가 관심있어 하는 정보를 데이터베이스로 표현하는 과정에서 데이터베이스의 구조를 개념적/논리적으로 표현하기 위한 도구
  • img1.png

데이터 모델의 역할

  • 시스템을 현재 또는 원하는 모습으로 가시화
  • 시스템의 구조와 행동을 명세화
  • 시스템을 구축하는 틀을 제공
  • 시스템을 바라보는 다양한 관점 제공
  • 특정 목표에 따라 다양한 상세 수준을 제공

데이터 모델링 정의

  • 정보 시스템을 구축하기 위해, 어떤 데이터가 존재하는지 또는 업무가 필요로 하는 정보는 무엇인지를 분석/표현하는 방법

데이터 모델링 필요성

  • 현실 세계에 존재하는 객체를 식별 -> 개체와 개체 사이의 관계를 정의
  • 사용자와 데이터베이스 사이의 인터페이스

데이터 모델링 단계

개념적 모델링

  • 데이터 들의 상관관계를 파악
  • 개체, 관계, 속성을 파악하여 이들간의 관련성을 도식화
  • ERD(Entity Relationship Diagram)

논리적 모델링

  • DBMS의 유형(관계형, 객체지향형, 객체-관계형)에 맞추어 데이터의 골격(스키마)를 만드는 작업
  • 함수 종속성 파악, 논리적스키마(릴레이션구조)

물리적 모델링

  • 특정 DBMS에 의존하는 데이터 형식, 각종 제약조건, 뷰, 인덱스 등을 설정하는 작업
  • 테이블 정의서, 제약조건 리스트, 인덱스 명세서

데이터베이스 설계

  • 요구사항에 맞게 정보를 제공할수 있도록 데이터베이스 구조를 개발하는 과정
  • 개념적/논리적/물리적 데이터베이스 설계를 포괄하는 개념

데이터베이스 설계 시 고려사항

  • 무결성: 데이터는 항상 제약조건을 만족함
  • 일관성: 데이터 사이에 모순성이 없어야 함
  • 회복: 시스템 장애 발생시 장애 발생 전의 일관된 상태로 복구 가능해야함
  • 보안: 불법 접근(데이터의 변경, 손실, 노출)에 대한 보호
  • 효율성: 응답시간, 저장 공간 최적화, 생상선 등을 고려
  • 확장성: 응용 프로그램 추가, 데이터 증가, 변경 등을 수용할 수 있는 구조

데이터베이스 설계 단계

  • 1, 요구 분석(Requirement Analysis): 데이터 요구명세
  • 2, 개념적 설계(Conceprual Design): 개체 관계도
  • 3, 논리적 설계(Logical Design): 함수 종속, 테이블 구조
  • 4, 물리적 설계(Physical Design): 테이블 최적화, 인덱스 설정
  • 5, 구현(Implementation): DDL을 이용한 구현 트랜잭션 작성

데이터베이스 설계 흐름

  • img2.png

물리적 데이터베이스 설계

  • A physical data model (or database design) is a representation of a data design which takes in to account the facilities and constraints or a given database management system
  • 설계목적: 효율적 구현 가능한 물리적 DB 구조 설계
    • 데이터 저장구조나 접근 경로에 대해서 DBMS가 지원하는 방법 중에서 선택함
    • 응답시간, 저장공간의 효율화, 트랜잭션 처리도 (Throughput) 등을 고려해야함

수행작업

  • 저장구조 설계:
  • 제약조건 지정: 데이터 형 지정, 기본키 및 기본값 정의, 체크와 규칙 정의
  • 데이터 집중의 분석 및 설계:
    • 데이터(row, record) 크기와 물리적 저장 장치의 특성을 파악
    • 테이블 분산, 파티셔닝 등
  • 접근 경로 설계:
    • 인덱스 설정
    • 뷰 정의
  • 데이터처리 설계
    • 트랜잭션 구현
    • 저장 프로시져 구현
    • 동시성 제어

저장구조 설계

  • 데이터베이스 구조, 테이블 구조, 테이블 분할
  • img3.png

제약조건 지정

  • 개체무결성 제약조건
    • 기본키 제약(Primary Key)
    • 유일성 제약(Unique)
    • Null or Not Null
  • 도메인 무결성 제약조건
    • 컬럼 데이터 타입(Data Type)
    • 체크 제약(Check)
    • 기본값 제약(Default)
  • 참조무결성 제약조건
    • 외래키 제약(Foreign Key)

레코드 집중의 분석과 설계

  • 데이터(record, row) 크기와 물리적 저장 장치의 특성을 파악
  • 테이블 분산, 파티셔닝 등 수행

접근 경로 설계

  • 인덱스 생성
  • 뷰 정
  • img4.png

데이터 처리 설계

  • 트랜잭션 구현
  • img5.png
  • 저장프로시져 구현
  • img6.png
  • 동시성 제어