DB 모델링
모델링? 말 그대로 모델을 만드는 작업을 뜻한다. 즉, 현실 세계를 추상화, 단순화, 명확화 시켜서 표현하는 기법이다. 실체를 모델링하여 모델을 만들어 실체를 구현한다. |
소프트웨어 개발과정
소프트웨어(프로그램) 개발 프로세스
요구사항 분석 —> 프로그램 설계 —> 프로그램 구현 —> 통합/테스트 —> 유지보수 (#분설구테유) |
- 정보전략 계획수립(ISP) : 프로그램 개발하고자 하는 고객사의 장단점 등 기업 분석
- 업무 분석 : 작업의 관여물 작성시 어떤 식으로 흘러가는지 모델링 하는 작업, 클래스 다이어그램 유스케이스 다이어그램, 시퀀스 다이어그램 등 작성
- 데이터 관점 순서
- 데이터 모델링
- 상관 모델링
- 물리 DB 설계
- DB 구축
- DB 튜닝
- 프로세스 관점
- 프로세스 모델링
- 상관 모델링
- 프로그램(로직) 설계
- 프로그램 개발
- 프로그램 테스트
<데이터 관점>
- 데이터 모델링 : 논리 DB 설계 —> 물리 DB 설계 —> DB 구축 —> DB 튜닝
<프로세스 관점>
- 프로세스 모델링 : 단위 업무들에 대한 로직 처리 ( ex. 회원가입 서비스 구현 어떤 메소드에 어떤 코드를 구현하는지 모델링 하는 작업 )
- RUN & 유지보수
DB 모델링 주요 개념
엔티티(Entity)
업무의 관심 대상이 되는 정보를 갖고 있거나 그에 대한 정보를 관리할 필요가 있는 유형이다.
무형의 사물(개체)
- 유형 엔티티 : 물리적인 형태가 있는 엔티티(ex. 멤버, 사원, 직원, 상품, 거래처, 학생 등)
- 무형 엔티티 : 물리적인 형태가 없고 개념적인 형태로 존재하는 엔티티(ex. 생산 계획, 부서 조직, 색상별 선호도 등)
- 문서 엔티티 : 업무 절차 상에서 사용되는 문서나 장부같은 것 (ex. 거래명세서, 입출금 전표, 주문서 등)
- 이력 엔티티 : 업무 상에서 반복적으로 이루어지는 행위나 사건의 내용을 일자 별, 시간 별로 정리한 것 (ex. 입출고 내역 등)
- 코드 엔티티 : 무형 엔티티의 일종으로, 각종 코드를 관리하기 위한 엔티티 (ex. 색상 코드, 국가 코드, 직급 분류 코드 등)
속성(Attribute)
엔티티에서 관리해야 할 최소 단위 정보 항목(관심이 있는 항목)을 말한다.
엔티티는 하나 이상의 속성을 포함한다.
- 기본 속성 : 업무 분석 과정에서 그 대상인 엔티티가 가져야 할 전체 속성들 중에 가장 큰 비율을 차지한다.
- 유도 속성 : 다른 속성의 값들로부터 유도될 수 있는 속성 (ex. 포인트)
- 설계 속성 : 외래키 같은 인위적인 식별자로써 설계를 보다 효과적으로 할 수 있는 속성이다.
인스턴스(Instance)
엔티티의 속성으로 실제로 구현된 하나의 값
✔️ 엔티티의 조건
- 업무의 관심 대상이 되는 사물이어야 한다.
- 두 개 이상의 인스턴스를 소유해야 한다.
- 마땅한 속성을 소유해야 된다. (속성이 하나 이상이 있어야 한다.)
✔️ 속성 명명 규칙
- 속성의 의미가 분명히 드러나게 작성해야 할 것 = 명확
- 해당 업무에서 사용하는 이름을 부여할 것
- 서술식(수식어, 소유격) X, 약어 X
- 엔티티에서 유일하게 식별 가능하도록 지정할 것 = 중복 X
◾ 관계
두 엔티티 사이의 관련성을 나타낸다. 엔티티 간의 관계를 설정함으로써 속성을 공유하게 된다. 공유하는 속성이 없다면 엔티티끼리 서로 관계 하지 않는다.
데이터의 발생 경로와 어떻게 데이터가 변화하는지를 표현할 수 있다.
◾ 카디널리티(Cardinality)
- 각 엔티티에 속해 있는 인스턴스들 간에 수적으로 어떤 관계가 있는지 나타낸다.
- 종류 —> 1:1, 1:N, M:N
주식별자(Primary Identifier)
엔티티 내에 있는 각각의 인스턴스를 구별하는 기준이다.
인스턴스를 구분할 수 있는 유일한 구분자의 역할을 한다.
엔티티를 만들 때는 항상 주식별자가 존재해야 한다.
주식별자는
▪️ 유일성(중복X),
▪️ 최소성(굳이 복합키로 두지말라),
▪️ 불변성(한 번 주식별자의 값을 부여했으면 변경하지말라),
▪️ **존재성(무조건 값이 있어야 한다=NOT NULL제약조건을 만족)**의 특징을 갖는다.
주식별자는 1개가 아니라 여러 속성일 수도 있다. (=복합키)
엔티티의 속성 중 주식별자 속성이 없다면 인위적으로 주식별자로서 사용할 새로운 속성을 만든다.
외래식별자(Foreign Identifier)
엔티티와 엔티티를 연결해주는 고리의 역할이다.
엔티티 간의 공유하는 상호 식별자 속성
관계가 있는 두 엔티티를 부모, 자식 엔티티로 구분한 뒤, 부모의 주식별자와 공통 속성이 자식에게도 존재하면 해당 속성을 외래식별자로 지정한다.
자식 엔티티에 부모 엔티티 주식별자 공통 속성이 없다면 → 자식에게 속성을 추가한 후에 외래식별자로 지정한다.
'Study > Concepts' 카테고리의 다른 글
DAY 75. DB - 논리적 모델링 (0) | 2021.11.01 |
---|---|
DAY 74. DB - 개념적 모델링 (0) | 2021.10.31 |
DAY 71. UML - 시퀀스 다이어그램 (0) | 2021.10.28 |
DAY 70. UML - 클래스 다이어그램 (0) | 2021.10.27 |
DAY 69. UML - 개념 & 유스케이스 다이어그램 (0) | 2021.10.26 |