데이터 모델의 이해 1 - 2
[ 데이터 모델링의 중요한 세 가지 개념 ]
데이터 모델링의 세 가지 요소
- Things : 업무가 관여하는 어떤 것
- Attributes : 어떤 것이 가지는 성격
- Relationships : 업무가 관여하는 어떤 것 간의 관계
= Entity, Attirbutes, Relationship
단수와 집합(복수) 명령
- 데이터 모델링에서는 위 세가지 개념에 대해서 단수와 복수의 개념을 분명하게 구분하고, 실제 데이터 모델링을 할 때 많이 활용되는 용어이다.
[ 데이터 모델링의 이해 관계자 ]
이해관계자의 데이터 모델링의 중요성 인식
실제 업무 시스템 구축 프로젝트에서는 데이터베이스 전문가(DBA)보다 업무를 이해한 응용 시스템 개발자가 데이터 모델링을 함께 수행하는 경우가 많다. 이는 단순히 데이터베이스 설계가 아닌 업무 분석 및 표현이 중요하기 때문이다.
업무를 잘 아는 사람이 초기 모델링을 주도하고, 이후 DBA가 이를 구체화하는 방식으로 협업이 이루어진다. 그러나 많은 시스템 개발자들은 데이터 모델링보다 프로그래밍 언어에 더 집중하는 경향이 있다
하지만 데이터 모델링은 업무 분석, 데이터베이스 구조, 향후 시스템 활용까지 영향을 미치는 핵심 작업으로서, 응용 시스템 개발에서 매우 중요하게 다뤄져야 한다.
데이터 모델링의 이해 관계자
데이터 모델링을 연구해야 하는 관계자
- 프로젝트에 참여한 모든 IT 기술자들은 데이터 모델링에 대해 정확하게 알고 있어야 한다.
- IT 기술에 종사하거나 전공하지 않았더라도 해당 업무에서 정보화를 추진하는 위치에 있는 사람도 데이터 모델링에 대한 개념 및 세부사항에 대해 어느정도 지식을 가지고 있어야 한다
- 위와 같은 자들이 숙지하고 있어야 서로가 프로젝트 수행 중에 의사소통을 잘 할 수 있고 업무를 잘못 해석하여 잘못된 시스템을 구축하는 리스크를 줄일 수 있게 된다.
[ 데이터 모델의 표기법인 ERD 의 이해 ]
데이터 모델 표기법
- 1976 년 피터첸(Peter Chen) 이 E-R Model(Entity-Relationship Model) 표기법을 제작
- 엔티티 : 사각형
- 관계 : 마름모
- 속성 : 타원
ERD(Entity-Relationship Diagram) 표기법을 이용하여 모델링하는 방법
- ERD = 엔티티와 엔티티간의 관계를 이해하기 쉽게 도식화된 다이어그램
- 해당 업무에서 데이터의 흐름과 프로세스와의 연관성을 이야기하는 데 가장 중요한 표기법이자 산출물
- 정보공학을 기반으로 하는 모델링에서는 해당 업무에 가장 적절한 ERD 를 그려내는 것이 프로젝트의 지상과제
- 오브젝트 모델링을 하더라도 관계형 데이터베이스를 대부분 사용하기 때문에 데이터 베이스를 생성할 수 있는 데이터 모델 생성이 프로젝트에서 아주 중요한 타스크에 포함됨
- 일정한 규칙을 지정하여 그림으로써 데이터 모델을 누구나 공통된 시각으로 파악할 수 있고 의사소통을 원활하게 하는 장점이 있음
- ERD 작업순서
- 엔티티 그리기
- 인티티를 적절하게 배치
- 엔티티간의 관계 설정
- 관계명을 기술
- 관계의 참여도 기술
- 관계의 필수여부를 기술
- 엔티티 배치
- 가장 중요한 엔티티를 왼쪽 상단에 배치
- 위 엔티티를 중심으로 다른 엔티티를 나열하면서 전개하면 사람의 눈이 따라가기 편리한 데이터 모델링 전개 가능
- 예시
- 제일 중요한 '고개' 왼쪽 상단
- '주문' 과 '출고' 를 상하 배치
- '출고' 와 '재고' 를 상하 배치
- '주문' 과 '주문목록' 을 나란히 배치
- '출고' 와 '출고목록' 을 나란히 배치
- '사원' 은 '고객' 과 '주문목록' 이 겹치는 곳에 배치
- '창고' 는 '출고' 와 나란히
- ERD 관계의 연결
- 엔티티 배치가 되면 관계를 정의한 분석서를 보고 서로 관련있는 엔티티 간에 관계를 설정
- 초기엔 모두 Primary Key 로 속성이 상속되는 식별자 관계를 설정
- 중복되는 관계가 발생되지 않도록하고, Circle 관계도 발생하지 않도록 유의
- ERD 관계명의 표시
- 관계설정이 완료되면 연결된 관계에 관계이름 부여
- 관계이름은 현재형
- 지나치게 포괄적인 용어(예, 이다. 가진다 등)는 지양
- 실제 프로젝트에선 관계 명칭을 크게 고려하지 않음
- ERD 흐름이 명확하게 드러나기 때문
- ERD 관계차수와 선택성 표시
- 관계 이름 설정 후 관계가 참여하는 성격 중 엔티티내에 인스턴스들이 얼마나 관계에 참여하는 지를 나타내는 관계 차수를 표현
- IE
- 하나(1, One) 의 관계는 실선
- Barker
- 점선과 실선 혼합
- 다수참여의 관계는 까마귀발과 같은 모양
- 관계의 필수/선택 표시는 관계선에 원을 표현ERD 관계 관계차수와 선택성 표시
[좋은 데이터 모델의 요소 ]
완전성
- 업무에서 필요로 하는 모든 데이터가 데이터 모델에 정의되어 있어야 한다.
중복배제
- 하나의 데이터베이스 내에 동일한 사실은 반드시 한 번만 기록해야 한다
- 저장공간 낭비, 중복 관리되고 있는 데이터의 일관성을 유지하기 위한 추가적인 데이터 조작 비용 낭비
업무규칙
- 데이터 모델링 과정에서 도출되고 규명되는 수많은 업무규칙을 데이터 모델에 표현하고, 모든 사용자에게 공유 및 제공
- 특히 논리 데이터 모델에서 이러한 요소들이 포함되어야 함은 매우 중요하다
- 해당 데이터 모델을 사용하는 모든 사용자가 해당 규칙에 대해서 동일한 판단을 하고 데이터를 조작 할 수 있다
데이터 재사용
- 데이터의 재사용성을 향상시키고자 한다면 데이터의 통합성과 독립성에 대해서 충분히 고려해야 한다
- 데이터 설계시 통합 모델이어야함 데이터 재사용성을 향상시킬 수 있다
- 데이터가 애플리케이션에 대해 독립적으로 설계되어야 데이터 재상용성을 향상시킬 수 있다
의사소통
- 데이터 분석 과정에서 도출되는 많은 업부 규칙들은 데이터 모델에 엔티티, 서브타입, 속성, 관계 등의 형태로 최대한 자세하게 표현되어야 한다
- 표현된 규칙들을 정보 시스템을 운용, 관리하는 관련자들이 설계자가 정의한 업무 규칙들을 동일한 의미로 받아들이고 정보시스템을 활용할 수 있게 하는 역할을 하게 된다.
통합성
- 조직 전체에서 한 번만 정의되고 이를 여러 다른 영역에서 참조, 활용하는 것이 좋다
- 성능 등의 부가적인 목적으로 의도적 데이터 중복 시키는 경우도 존재 할 수 있지만 동일한 성격의 데이터를 한 번만 벙의하기 위해서는 공유 데이터에 대한 구조를 여러 업무 영역게서 공동으로 사용하기 용이하게 정의할 수 있어야 한다.
'SQLD > SQLD 개발자' 카테고리의 다른 글
SQLD 개발자 chpt1. (0) | 2025.05.16 |
---|