학습 개요
- 데이터베이스를 구축하기 이전에 반드시 선행되어야 하는 작업은 데이터를 조직화하여 저장할 수 있는 명확한 체계를 설계하는 것이다.
- 서로 복잡하게 연관되어 있는 실 세계의 데이터를 명확한 구조화 없이 곧바로 DBMS 입력하여 사용하는 경우 효율적인 데이터 처리가 불가능해진다.
- 효과적인 데이터베이스 구조를 도출하기 위해 필요한 전반적인 데이터베이스 모델링 과정에 대하여 살펴보고 초기 단계인 사용자 요구 사항 분석과 개념적 데이터 모델링에서 사용하는 ER 모델의 요소 및 ER 모델링 방법에 대하여 학습한다.
주요 용어
- 사용자 요구 사항 분석
- 사용자가 원하는 애플리케이션 프로그램의 요구 사항을 만족하는 데이터베이스를 모델링 하기 위해 실제 업무에서 사용되는 데이터의 종류와 특징을 폭넓게 파악하는 과정
- 개념적 데이터 모델링
- 실 세계의 데이터를 개념적으로 일반화 시켜 데이터 구조, 데이터 타입, 속성, 관계, 제약 조건 등을 이끌어내는 과정
- ER 모델
- 실 세계의 속성들로 이루어진 개체(entity)와 개체 사이의 관계(relationship)를 정형화 시킨 모델
- 개체 집합
- 실 세계에 존재하는 다른 객체와 구별되는 유, 무형의 사물의 집합
- 관계 집합
- 개체 집합 간의 연결 관계
강의록
데이터베이스 모델링의 이해
데이터베이스 모델링의 필요
- 비즈니스적 관점
- 어떤 데이터를 저장해야 하는가?
- ex) 편의점
- 최종목표
- 상품들을 고객들에게 효율적으로 판매하기 위한 데이터베이스 시스템 구축
- 필요한 정보
- 고객들의 판매 성향, 고객들의 대략 수입(추정치) 등
- 불필요한 정보
- 고객의 혈액형, 정치 성향, 종교 등
- 최종목표
- IT적 관점
- 어떻게 데이터를 저장해야 하는가?
데이터베이스 모델링의 정의
- 데이터의 의미를 파악하고 데이터와 관여하는 업무 프로세스를 개념적으로 정의하고 분석하는 작업
데이터베이스 모델링의 단계?
- 명확한 정의 필요
- 저장하려는 데이터가 무엇인지?
- 데이터는 어떤 의미로 활용되는지?
- 어떻게 연산 되어 결과를 도출하는가?
- 명확한 정의 필요
- 사용할 데이터를 선별하고 데이터베이스에 체계적으로 구조화하여 저장, 사용할 방법이 필요
- 개념적 데이터 모델링 → 논리적 데이터 모델링 → 물리적 데이터 모델링
- 데이터 모델
- 데이터의 의미, 데이터 타입, 연산 등을 명시하기 위해 사용할 수 있는 개념(표기법)의 집합
- 데이터 모델링
- 데이터에 대한 요구 사항을 분석하여 추상화 하는 과정
- 실 세계의 일부분을 DBMS가 지원하는 데이터 모델의 형태로 나타내는 과정
- 비즈니스 모델에 필요한 실 세계의 다양한 형태의 데이터를 DBMS가 효율적으로 저장할 수 있는 구조로 전환하는 과정
- 여러 사람이 공동으로 작업해야 하므로 동일한 표기법 사용해야함
데이터베이스 모델링의 단계
- 개념적 데이터 모델링
- 요구 사항을 바탕으로 추상화하고 해석 오류를 방지
- 실 세계의 데이터를 개념적으로 일반화 시켜 데이터 타입, 속성, 관계, 제약 조건 등을 이끌어내는 과정
- 논리적 데이터 모델링
- DBMS의 구현 모델에 맞춰 데이터의 구조를 표현
- 데이터 정의 언어로 기술된 스키마(schema) 생성
- 스키마
- 어떤 물건들을 적재하기 위한 효율적인 구조
- 데이터를 저장하기 위한 구조체
- 스키마
- 물리적 데이터 모델링
- 데이터베이스 파일의 내부 저장 구조, 파일 구성, 인덱스, 접근 경로 등을 결정하는 과정
사용자 요구 사항 분석
사용자 요구 사항 분석의 필요
- 데이터에 대한 충분한 사전 분석 없이 적절한 설계가 불가능
- 데이터베이스의 구조가 점차 복잡해지고 수명 주기가 단축되는 최근 경향에 신속, 정확성이 요구
- 데이터베이스의 활용 범위가 확대됨에 따라 데이터베이스의 효율적인 운용에 초점
- 사용자의 요구를 명세하지 않고 데이터베이스 설계 및 개발을 진행하는 경우
- 결과물의 완성도 저하 및 신뢰도 추락
- 개발 후, 발생하는 에러 수정에 대량의 추가 비용 지출
사용자 요구 사항 분석의 개념
- 정보 시스템의 대상이 되는 업무를 분석
- 정보 시스템의 데이터베이스가 신속하고 효과적으로 업무 처리를 지원
- 필요한 데이터를 저장 및 운용할 수 있는 구조 개발
- 도출 → 분석 → 기록 단계로 수행
- 국제 표준화
- IEEE-Std-830
- ex) IEEE-Std-830 스타일의 Software Requirements Specification
- 요구 사항 명세 양식
- 소프트웨어 만들기 앞서 기능적 요구 사항과 비 기능적 요구 사항은 무엇?
- 좋은 요구 사항 명세란?
- 도출 → 분석 → 기록 단계를 수행하면서 추상적 → 구체적
- 모호하지 않게
- 요구 사항 명세 양식
- 국제 표준화
사용자 요구 사항 분석 과정
- 요구 사항 도출
- 개발 프로젝트 배경, 목표 및 범위를 파악
- 업무 관계자 인터뷰 수행
- 제안 요청서의 요구 사항을 기능 별 분류 및 상세화
- 외부 자료 수집 및 분석
- 요구 사항 분석
- 도출 된 요구 사항의 명확성, 완전성, 모호성 검증
- 기술 개요, 기능 및 비기능 요구 사항, 위험 요소, 용어와 데이터 정의, 사용자 인터페이스 명세화
- 불완전한 부분이 존재할 경우, 요구 사항 도출 단계 재수행
- 요구 사항 기록
- 요구 사항 목록 정리 및 관리자의 승인
- 정리된 요구 사항을 형식에 맞춰 문서화
- 프로젝트 종료 때까지 반영 여부 지속적 관리
- 요구 사항 정의서
- 실질적인 개념적 데이터 모델링 진행
ER 모델
ER 모델의 개념
- 1976년 카네기 멜론 대학의 P.Chen 박사 제안
- 실 세계의 속성들로 이루어진 개체(entity)와 개체 사이의 관계(relationship)를 정형화 시킨 모델
- 개념적 데이터 모델링 단계에서 사용되는 모델
- 데이터 구조와 관계를 ER 다이어그램(ERD)으로 표현
- 구성 요소
- 개체 집합, 관계 집합, 속성
- 제약 조건
- 특수 속성과 특수 관계
개체 집합
- 개체(entity)
- 실 세계에 존재하는 다른 객체와 구별되는 유, 무형의 사물
- 개체를 설명하는 여러 속성들로 구성
- 개체 집합(entity set)
같은 속성을 공유하는 개체들의 모임
- 구체적인 내용 X
- 추상적, 구조적인 성격
관계 집합
- 관계
- 개체와 개체 사이의 연관성
- 관계 집합
개체 집합 간의 연결 관계
속성
- 개체를 구체적으로 설명하는 특성으로 개체 집합은 속성의 집합
- 속성 값의 특성에 따라 여러 종류로 구분
- 속성의 종류
- 단순 속성과 복합 속성
- 단일 값 속성과 다중 값 속성
- 유도 속성과 저장 속성
- 각각의 속성은 위 세 그룹 중 하나의 속성에 해당
속성의 종류
- 단순 속성
더 작은 요소로 나눌 수 없는 속성
- 복합 속성
더 작은 구성 요소로 나눌 수 있는 속성
- ex) 1999년 12월 5일 → 연, 월, 일
- 단일 값 속성
한 개체에 대해 단 하나의 속성 값 만을 갖는 속성
- 다중 값 속성
- 한 개체에 대해 여러 개의 속성 값을 갖는 속성
- 유도 속성
다른 속성의 값으로부터 값이 유추 될 수 있는 속성
- 저장 속성
- 실제 값을 저장해야 하는 속성, 유도 속성을 위해 사용
제약 조건
- 데이터 모델은 데이터, 의미, 구조, 연관성 및 데이터의 조건을 표현하기 위한 도구
- ER 모델은 개체와 관계에 대한 표현의 정확성을 위해 데이터가 준수해 하는 제약 조건을 정의할 수 있는 표현 방법 제공
- 제약 조건(contraints)의 종류
- 사상수
- 참가 제약 조건
- 키 속성
사상수(mapping cardinality)
- 관계 집합에 참가한 개체 집합에 대해 한 개체 집합의 개체가 다른 개체 집합의 개체와 관계를 맺을 수 있는 수량
일대일(1:1)
- X 하나가 Y 하나에 연결
- Y 하나가 X 하나에 연결
다대일(N:1)
- Y 하나가 X 여러 개에 연결
다대다(M:N)
- 사상 수에 따라 최종 생성되는 내부 스키마가 완전히 달라짐
일대일 사상수 표현
- 1에 해당하는 쪽에 화살표
- 1인이 1계좌를 보유하고 1계좌는 1인에게만 속함
- 1:1의 관계
일대다 사상수 표현
- 1 교수는 다 과목을 강의하고 1 과목은 1 교수가 강의함
다대다 사상수 표현
- 서로 여러 개체에 대응
- 다:다의 관계
참가 제약 조건(participatoin constraints)
- 전체적 참가
- 한 개체 집합의 모든 개체가 관계 집합에 참여하는 조건
- 이중 선으로 나타냄
- 부분적 참가
- 한 개체 집합의 일부 개체만 관계 집합에 참여하는 조건
- 단일 선으로 나타냄
- 이 과목은 반드시 교수에 의해 꼭 강의 됨(의무)
- 일부 교수는 과목을 강의가 아닌 다른 역할을 담당할 수도 있음
키(key) 속성
각 개체를 구별하는데 사용되는 유일한 값을 가지는 속성의 집합
- 개체를 고유하게 구분하는 역할
- 관계 집합의 특정 관계를 찾는 역할
해당 키에 해당하는 자물쇠는 무엇인가를 밝히기 위한 방법을 제공하는 속성
특수 속성과 특수 관계
- 관계 집합의 속성
- 두 개체 집합의 관계에서 생성되는 값을 저장하는 속성
- 재귀적 관계
- 한 개체 집합이 자기 자신과 관계 집합을 형성하는 관계
- 선수 과목
- 과목 개체 집합
- 후수 과목
- 과목 개체 집합
특수 개체 집합
- 약한 개체 집합
- 개체의 존재 유무가 관계를 맺고 있는 개체의 존재에 종속되는 개체 집합
- 강한 개체 집합
- 약한 개체 집합과 연결되는 개체 집합
- 계좌는 학생이 없어지면 반드시 따라 없어져야함
- 이중선 표기
개념적 데이터 모델링의 결과
연습 문제
사용할 데이터를 선별하고 데이터베이스에 체계적으로 구조화하여 저장 · 사용할 방법을 정의할 수 있도록 데이터의 의미, 데이터 타입, 연산 등을 명시하기 위한 개념들의 집합을 무엇이라고 하는가?
a. 데이터 모델
- 데이터의 의미, 데이터의 타입, 연산 등 현실 세계의 정보들을 데이터베이스에 표현하기 위해서 단순화, 추상화하여 체계적으로 표현할 수 있는 모형을 데이터 모델이라고 함
사용자 요구 사항 분석 과정의 순서로 올바른 것은?
a. 요구 사항 도출 → 요구 사항 분석 → 요구 사항 기록
- 사용자 요구 사항 분석 과정을 통해 제안 요청서에서 요구 사항 정의서를 도출할 수 있으며 이를 위해 사용자 요구 사항 분석 과정은 요구 사항 도출, 요구 사항 분석, 요구 사항 기록 단계를 거침
관계 집합에 참가한 개체 집합에 대해 한 개체가 다른 개체와 관계를 맺을 수 있는 수량을 명시한 것은?
a. 사상수(mapping cardinality)
- 개체와 관계에 대한 표현의 정확성을 위해 명시할 수 있는 제약 조건에는 사상수, 참가 제약 조건, 키 속성이 있으며 이 중 사상수는 관계 집합에 참가한 개체 집합에 대해 한 개체가 다른 개체와 관계를 맺을 수 있는 수량을 명시함
정리 하기
- 데이터베이스 모델링 과정은 사용자 요구 사항을 분석하여 개념적 데이터 모델링, 논리적 데이터 모델링, 물리적 데이터 모델링의 단계로 진행됨
- 사용자 요구 사항 분석 단계에서는 요구 사항을 도출하고 분석하고 기록하는 단계로 진행되며, 요구 사항이 모호하거나 정확하지 않을 때는 이전 단계로 회귀하여 요구 사항을 교정함
- 데이터 모델링이란 데이터에 대한 요구 사항을 정의하고 분석하는 방법으로, 데이터 모델링을 통하여 데이터베이스가 구축되기까지는 개념적 데이터 모델링, 논리적 데이터 모델링, 물리적 데이터 모델링 과정으로 나뉨
- ER 모델은 전체적인 데이터베이스의 논리적인 구조를 표현하는 전체 스키마의 명세서를 작성하는데 사용되는 개념적 데이터 모델링 도구로, 실 세계의 조직 업무의 의미와 상호 작용을 개념적으로 나타내는 데 매우 유용함
- ER 모델의 기본 요소인 개체는 공통된 속성을 가지며 구별 가능한 실 세계의 개체들로 구성 됨
- 이러한 개체들은 각 개체 집합의 구성원들이 가지는 기술적 특성인 속성들의 집합으로 표현되며, 속성의 유형은 단순 속성, 복합 속성, 단일 값 속성, 다중 값 속성, 유도 속성, 저장 속성, 널 속성 등으로 구분할 수 있음
- ER 모델의 중요한 제약 조건은 사상 수, 참가 제약 조건, 키 속성으로 나뉘며, 이진 관계에서 사상 수 비율은 1:1(일대일), 1:N(일대다), N:1(다대일), M:N(다대다)의 형태가 있음
- 참가 제약 조건에서는 특정 개체 집합이 관계 집합에 참여할 때 모든 개체가 관계에 참여한다면 전체적 참여, 일부만 참가하면 부분적 참여라고 함
- 또한 구조적 제약 조건을 통해 개체가 최소 몇 번, 최대 몇 번 관계에 참여할 수 있는지 정의할 수 있음
- 키 속성의 경우 어떤 개체 집합 안의 각각의 개체들을 구별해 주기 위해 선택되는 것으로, 최소한의 속성의 조합으로 만들어지며, 대표적으로 사용될 수 있는 속성 조합을 키라고 함
- 동일한 개체 집합이 서로 다른 역할로 참가하여 생성되는 관계 집합을 재귀적 관계 집합이라고 함
- 이 때 관계에 참가하는 개체가 행하는 기능을 개체의 역할(role)이라고 함
- 약한 개체 집합은 1:N 관계 집합을 통해 강한 개체 집합에 연결해야 하며, 약한 개체 집합의 구별자(또는 부분 키)는 약한 개체 집합 내의 개체들을 구분하는 속성의 집합임
- 약한 개체 집합의 키 설정은 반드시 지배 개체 집합의 키와 약한 개체 집합의 부분 키로 구성되어야 함
체크 포인트
데이터베이스 모델링에 대한 단계 중 아래에서 설명하는 단계는?
1 2
추상화 수준이 높고 업무 중심적이고 포괄적인 수준의 모델링 진행 전사적 데이터 모델링으로 EA 수립 시 많이 이용됨
a. 개념적 데이터 모델링
ER 모델에서 다중 값 속성의 표기법은?
a. 2
ER 표기법