thespeace 2021. 11. 26. 19:31

모델링이란?

 

말 그대로 모델을 만드는 작업을 뜻한다.→

즉, 현실 세계를 단순화 시켜 표현하는 기법←

실체
(Reality)
→→모델링→→ 모델
(Model)
←←구현←←

모델링 에서는 추상화, 단순화, 명확화 라는 걸 지켜서 모델링 작업을 해야 한다.

추상화 : 내가 개발을 할 때 딱 필요한 것들만 추출하는 것.

단순화 : 이해 하기 쉽지만 규칙이나 규약이 제시 되어있는 것 ex) 다이어그램

명확화 : 애매하게 그리지말고 정확하게 그려야 한다는 것.

 

즉, 딱 필요한 것들만 가지고 규칙이나 규약을 지켜서 이해하기 쉽고 정확하게 그려야한다는 것을 말한다.

 

 

소프트웨어 개발 과정

 

소프트웨어(프로그램) 개발 프로세스

요구사항 분석→ 프로그램 설계→ 프로그램 구현(코딩)→ 통합/테스트→ 유지보수

 

요구사항 분석 + 프로그램 설계의 단계를 모델링 단계라고 한다.

 

 

DB 모델링의 주요 개념

엔티티(Entity)

업무의 관심 대상이 되는 정보를 갖고 있거나 그에 대한 정보를 관리 할 필요가 있는 유형, 무형의 사물(개체)

 

  1. 유형 : 물리적인 형태가 있는 개체
  2. 무형 : 물리적인 형태가 없고, 개념적인 형태로 존재하는 엔티티 ex) 생산계획, 부서조직, 선호 색상 등등
  3. 문서 : 어떤 업무절차상에서 사용되는 문서나 장부, 전표같은 엔티티
  4. 이력 : 업무상에서 반복적으로 이루어지는 행위나 사건의 내용을 일자별로 날짜별로 시간별로 저장하기 위한 엔티티 ex) 입고 이력, 출고 이력 등등
  5. 코드 : 무형 엔티티의 일종, 각종 코드를 관리하기 위한 엔티티 이다. ex) 색상 코드(빨간 태그, 파란 태그, 국가 코드, 직급 분류 코드 등등)

ex) 회원가입 -> 회원이라는 엔티티

 

속성(Attribute)

엔티티에서 관리해야 할 최소 단위 정보 항목(관심이 있는 항목)을 말하며 엔티티는 하나 이상의 속성을 포함

기본 : 통상적으로 생각 되는 기본 속성을 가리키며, 명시적으로 작성을 하는데, 업무 과정에서 업무 관심의 대상이 되는 엔티티가 가져야할 전체 속성중에 가장 큰 비율을 차지하는 속성을 기본 속성이라 한다. ex) 학번, 이름, 주소, 전공

유도 : 다른 속성의 값들로 부터 유도될 수있는 속성을 말한다. ex) 적립 포인트

설계 : 현실세계에서는 존재하지 않지만 설계를 보다 효과적으로 할 수 있게 하는 것, 정보 시스템이 운영 될 때 필요성 때문에 강제적으로 만들어 지는 속성이 설계 속성이다. ex) 인위적 주 식별자, 외래키

 

 

인스턴스(Instance)

엔티티의 속성으로 실제로 구현된 하나의 값

엔티티와 속성이 들어와 있는 값들을 하나하나의 인스턴스가 모여 만들어진다.

자바로 생각해보면 엔티티랑 속성이 더해진게 클래스라고 생각하면 된다. 그리고 뉴라는 연산자를 통해서 생성된 그 실제값의 객체들을 인스턴스라고 생각하면 좀 더 이해가 쉽겠다.

 

엔티티(Entity) 조건

  1. 업무의 관심 대상이 되는 사물이어야 된다. ex) 회원가입 - 책(?)(X)
  2. 두 개 이상의 인스턴스를 소유해야된다. ex) 과목 - 국어, 수학..etc
  3. 마땅한 속성을 소유해야 된다. ex) 엔티티를 뽑았는데 속성이 없다면? 그 엔티티는 필요없는 엔티티이다.

속성(Attribute) 명명규칙

  1. 속성의 의미가 분명히 드러나게 작성할 것(명확하게 기입) 
  2. 해당 업무에서 사용하는 이름 부여할 것
  3. 서술식(수식어, 소유격) X, 약어 X - 많은 사람이 이해하기 쉽게 가독성이 좋을 것.
  4. 엔티티에서 유일하게 식별 가능하도록 지정할 것 (중복X)