[DATABASE] MODELING OUTLINE

성장일기·2024년 7월 3일

[SWCAMP] DB

목록 보기
9/14

Modeling

필요성

  • 시냇물에 디딤돌을 만들어 나가는 것은 별다른 설계도나 구상을 요구하지 않는다.
  • 하지만 큰 다리를 건설해야 한다면 건설 자재부터 물의 깊이 등 고려해야 할 사항이 많아진다.
  • 아무리 유명하고 경험많은 건축가라도 건설할 다리 모형이나 알아보기 쉬우며 정확한 내용으로 작성된 설계도가 없다면 현실세계에 놓을 다리를 건설하기란 쉽지 않다.
  • 이와같이 복잡한 현실세계를 단순화하고 목적에 부합하며 정확한 내용으로 표현할 수 있다면 이를 참고하여 다리 건설 뿐 아니라 여러 방면에서 도움을 받을 수 있다.
    • 의사소통, 시뮬레이션, 문제해결, 핵심파악, 교육, 훈련, 연구, 개발

모델링의 특징

단순화

  • 복잡한 현실 세계를 선택과 집중을 통해 목적에 부합하는 필요한 것만 선택하는 것

추상화

  • 현실세계의 다양한 현상을 일정한 형식의 표기법으로 관련있는 비슷한 수준끼리 묶어낸 것

명확화

  • 누구나 쉽게 이해할 수 있게 애매모호함을 제거하고 정확하게 기술하는 것

Data Modeling

데이터 모델링의 필요성

파일 저장

  • 어플리케이션에서 사용하는 데이터나 정보를 메모리에서만 관리해서 사용하게 되면 어플리케이션이 종료되거나 컴퓨터가 꺼지면 데이터가 사라지게 된다.
    따라서 데이터가 소멸되지 않게 보관하기 위해서 디스크라는 저장장치에 파일 형식으로 저장하고 읽고 쓰게 된다.
  • 시스템 장애나 파일 입출력 도중 문제가 발생했을 때 원상태로 복구 시키기가 힘들다.
  • 이진 파일은 사람이 바로 읽고 해석하기 힘들다.

엑셀 파일 저장

  • 한눈에 알아보기 쉽게 엑셀 파일로 2차원 테이블 형태로 저장하게 되면 각 컬럼과 데이터를 한눈에 살펴 볼 수 있다.

  • 엑셀 파일의 경우 컬럼이 늘어날 수록, 같은 컬럼에 들어가야 될 데이터가 많아질수록 중복되는 데이터가 많아지고 저장할 데이터가 기하 급수적으로 많아진다.
  • 엑셀파일의 경우 하나의 테이블로 관리 시 데이터가 늘어 날수록 처리되는 시간이 많이 걸리고 따로 뜯어서 관리하기가 힘들다. (대략 10만행 이상이 되면 속도가 많이 느리게 된다.)
  • 중복된 데이터가 많아 행을 추가 할때, 삭제 할 때, 수정할 때마다 번거로운 일이 발생한다.(이상(Anomaly) 관련)

관계형 데이터 베이스 저장

  • 각 데이터들의 종류를 한눈에 파악하기 쉽다.
  • 데이터 테이블 간의 관계를 통해 연관있는 데이터들이 어떻게 누적되어 가는지 한눈에 파악하기 쉽다.
  • 중복값이 제거되어 중복된 데이터로 인한 문제들을 해결할 수 있다.

관계형 데이터 베이스 저장을 위한 설계

  • 각 테이블들이 어떤 기준으로 따로 만들어져야 하는지에 대한 기준을 세울 수 있어야 한다.
  • 테이블들의 컬럼이 어떤 의미인지 파악해서 테이블 별로 정의 될 수 있도록 해야 한다.
  • 데이터들 간에 어떤 관계들이 있는지를 확인하고 서로 관련 있는 테이블들 간에 어떤 관계를 맺어야 하는지 정의할 수 있어야 한다.

소프트웨어 개발절차에 따른 정보시스템 구축 절차

  • 위의 그림은 폭포수(Waterfall) 모델 방식의 일반적인 소프트웨어 개발 절차는 요구사항 분석, 프로그램 설계, 프로그램 구현, 통합/테스트, 유지보수이다.
  • 정보시스템이란 데이터를 입력받아 처리하여 정보를 산출하는 시스템이다. 기업환경에서 업무처리나 경영 의사결정에 필요한 데이터를 수집, 저장, 가공, 배분하게 된다.

데이터 관점 모델링

  • 업무가 어떤 데이터와 관련이 있는지 또는 데이터 간의 관계는 무엇인지에 대한 모델링을 통해 ERD를 산출하고 물리적 데이터베이스 설계와 데이터베이스 구축 및 튜닝까지의 과정이 포함된다.

프로세스 모델링

  • 업무가 어떻게 구성되고, 업무의 처리절차, 방법이 어떻게 되는지를 모델로 표현하는 단계

상관 모델링

  • 데이터를 가지고 하는 일에 따라 데이터가 어떻게 영향을 받고 있는지 모델링 하는 단계

데이터 모델링의 이해관계자

  • 정보 시스템을 구축하는 모든 사람은 데이터 모델링도 전분적으로 할수 있거나 적어도 완성된 모델을 정확하게 해설할 수 있어야 한다.
  • IT 종사자가 아닌 경우에도 해당 업무에서 정보화를 추진하는 위치에 있는 사람 또한 데이터 모델링에 대한 개념 및 세부사항에 대해 어느 정도 지식을 가지고 있어야 한다.
  • 현업의 IT업무 담당자 또한 모델링을 이해할 수 있어야 프로젝트 수행 중 의사소통을 잘 할 수 있고 업무를 잘못 해석하여 잘못된 시스템을 구축하는 위험을 줄일 수 있다.

데이터 모델 표기법

피터첸 표기법

  • 1976년 피터첸이 ER Model이라는 표기법을 만듦
  • 주로 국내 대학에서는 피터첸 표기법을 이용해 모델링하는 방법을 가르치고 있다.

IE 표기법

  • 범용적인 표기법.

바커 표기법

데이터 아키텍처 전문가 관련 자격에서 적용한다.

관계형 모델(Relational Model)

릴레이션

무결성

무결성이란

  • 무결성은 데이터 값이 정확한 상태를 의미한다.(완전성과 정확성)
  • 정합성은 데이터가 서로 모순이 없이 일관되게 일치해야 함을 의미하는 반면 무결성은 데이터가 완전하고 정확해야 한다는 의미이다.
    (정합성은 맞지만 실제 데이터는 모두 틀린 값이라면 무결성은 위반한 것)

무결성의 종류 및 설명

무결성 종류무결성 특징
엔티티 무결성
(Entity Integrity)
모든 인스턴스는 고유해야 하며 인스턴스를 대표하는 속성에는 널 값을 가지면 안된다는 의미
참조 무결성
(Referentail Integrity)
엔터티의 왜래 식별자 속성은 참조하는 엔터티의 주 식별자 값에 포함되거나 널이어야 함을 의미
도메인 무결성
(Domain Integrity)
속성 값과 관련된 것으로 특정 속성 값은 같은 데이터 타입, 길이, 널 여부, 중복 값 허용, 기본 값 등 동일한 범주의 값만 존재해야 함을 의미
업무 무결성
(Business Integrity)
기업에서 업무를 수행하는 방법이나 데이터를 처리하는 규칙을 의미함
profile
엔지니어로의 성장일지

0개의 댓글