반응형
데이터베이스 모델링의 이해
- 데이터베이스 모델링이란 데이터의 의미를 파악하고 데이터와 관여하는 업무 프로세스를 개념적으로 정의하고 분석하는 작업이다.
- 데이터베이스 모델링 과정은 데이터에 초점을 맞추어 개별적 데이터의 특징을 분리하는 개념적 데이터 모델링이 이뤄지고
- 이후 특정 상용 DBMS에 맞추어 데이터를 표현하는 논리적 데이터 모델링을 거친다.
- 그다음 데이터베이스와 관련되는 프로그램이 개발된다.
- 즉 개념적 데이터 모델링 → 논리적 데이터 모델링 → DBMS 관련 프로그램 개발
- 데이터 모델 : 의미, 데이터 타입, 연산 등을 명시하기 위해 사용할 수 있는 개념들의 집합
- 데이터 모델링 : 실세계의 일부분을 DBMS가 지원하는 데이터 모델의 형태로 나타내는 과정
사용자 요구사항 분석 단계
- 사용자 요구사항 분석
- 실제 데이터베이스 애플리케이션을 사용할 실무자와 문서를 교환하거나 인터뷰를 통해 데이터에 대한 상세한 요구사항을 수집하고 결정한다.
- 이 단계에서는 데이터를 활용하는 시스템의 목표를 수립하고 그 목표를 달성하기 위한 여러 단계의 문서화 작업이 동반된다. → 명세서(specification)
- 명세서는 업무 및 업무 간의 데이터 흐름을 가능한 한 상세하고 내용적으로 완벽하게 기술하는 것이 목표이다.
- 요구사항 분석 단계
- 요구사항 도출 단계 : 데이터베이스를 구축하기 위한 목표, 범위를 기준으로 조사범위를 결정한다. 다양한 자료를 수집하고 분석하거나 업무 관계자와 인터뷰를 통하여 요구사항 명세서를 도출한다.
- 요구사항 분석 단계 : 도출된 요구사항이 명확한지, 완전한지, 모호하지 않은지를 판단. 만약 불완전한 경우 이전 단계로 돌아가 다시 조사하여 요구사항을 도출한다. 도출된 요구사항들을 기능별로 세분화하고 서로 중복되거나 유사한 사항이 있다면 하나로 통합하는 등 기능별로 요구를 상세화 한 요구사항 정의서를 작성한다.
- 요구사항 기록 단계 : 분석한 요구사항 목록을 정리하여 문서화 작업 후 관리자의 승인을 받고 프로젝트가 종료될 때까지 각 요구사항의 반영 여부를 지속적으로 확인 및 관리한다.
데이터 모델링 단계
- 데이터 모델링 : 데이터에 대한 요구사항을 정의하고 분석하여 추상화하는 과정
- 시스템의 대상이 되는 업무를 분석하여 데이터베이스 시스템을 구축하기 위해 요구되는 업무의 내용을 적절한 표기법으로 표현하여 모델링을 수행한다.
- 표현 대상
- 데이터 관점 : 업무가 어떤 데이터와 관련이 있는지, 데이터 간의 관계는 어떠한지
- 프로세스 관점 : 업무를 통해 어떤 일(연산)을 처리하는지, 무엇을 해야 하는지를 표현
- 데이터-프로세스 상관 관점 : 업무에서 일을 처리하는 방법에 따라 어떤 데이터가 어떻게 영향을 받는지
- 사용자 요구사항에 대한 명세서는 데이터 흐름도, 순서 다이어그램, 시나리오 등 다양한 형태로 기술되고 정리된다.
- 데이터베이스 모델링은 개념적 데이터 모델링, 논리적 데이터 모델링, 물리적 데이터 모델링의 세 단계를 거쳐 진행된다.
개념적 데이터 모델링
- 실제 DBMS와는 무관한 단계이다.
- 사용자 요구사항을 바탕으로 프로그램 개발자와 의사소통을 할 때 요구사항이 잘못 해석되는 오류를 피하기 위해 공통된 표기법을 사용한 추상화(abstraction) 기법이 사용된다.
- 추상화 : 실세계의 데이터들을 개념적으로 일반화시킨 데이터 타입, 속성, 관계, 제약조건들을 이끌어 내는 과정
- 대표적으로 ER(개체-관계) 모델이 사용된다.
논리적 데이터 모델링
- 개념적 데이터 모델을 특정 상용 DBMS의 데이터베이스로 작성하기 위해서 DBMS에 맞는 구현 데이터 모델인 스키마(schema)로 변환하는 작업
- 데이터의 구조와 데이터 간 관계가 목표 DBMS의 데이터 표현 방법에 맞게 변환
- 구현 데이터 모델은 관계형 모델, 객체지향형 모델, 객체-관계형 모델 등이 있다.
- 최근에는 NoSQL에서 사용하는 Key/Value 모델, Document 모델 등이 있음
- 일반적으로 관계형 모델을 사용
- 이 단계의 최종적으로 목표 DBMS의 데이터 정의 언어(DDL)로 기술된 논리 스키마 생성
물리적 데이터 모델링
- 데이터베이스 파일의 내부 저장구조, 파일 구성, 인덱스, 접근 경로 등을 결정 → DBMS의 전체적 성능에 영향을 미침
- DBMS 및 하드웨어의 특징을 고려하여 처리능력을 향상시키고 요구사항을 최대한 만족시킬 수 있는 접근 방법을 선택
- 위의 단계들을 끝내면 최종적으로 내부 스키마가 완성된다.
반응형
사용자 요구사항 분석 과정
- DB 구조가 점차 복잡해지고, 수명 주기가 단축되고, DB의 효율적 운용에 초점을 두어 데이터에 대한 충분한 사전 분석이 필요하다.
- 사용자 요구사항 분석 과적은 도출, 분석, 기록 단계로 수행이 되며 국제 표준화는 IEEE-std-830이다.
- 제안 요청서(RFP : Request for Proposal) : 데이터베이스의 시스템 설계, 개발, 도입 과정은 사업의 목표, 사용자의 요구 기능, 관리하는 데이터의 보안 수준 등 시스템의 기능과 성능에 대한 다양한 요구사항들을 기술
- 사용자의 요구 명세서가 없으면 결과물의 완성도 저하 및 신뢰도가 추락하고 개발 후 발생하는 에러 수정에 추가 비용 지출이 생긴다.
- 요구사항 분석 마지막에는 최종적으로 분석한 요구사항 목록을 정리하여 문서화 작업을 한 후 관리자 승인을 받고 프로젝트가 종료될 때까지 반영 여부를 지속적으로 확인 및 관리한다.
반응형
ER 모델
- ER(Entity-Relationship) 모델 또는 개체-관계 모델은 1976년 첸(P. Chen) 박사가 제안
- 전체적인 데이터베이스의 논리적인 구조를 표현하는 데이터 모델링 도구
- 실세계의 속성들로 이루어진 개체(Entity) 집합과 이들 사이의 관계(Relationship)를 정형화시킨 모델
- 대다수의 데이터베이스 설계 도구가 ER 모델을 지원한다.
- ER 모델은 크게 개체 집합, 관계 집합, 그리고 속성으로 구성된다.
- 데이터 구조와 단계를 ER 다이어그램(ERD)으로 표현한다.
개체 집합
- 개체 : ER 모델의 가장 기본적인 요소, 실세계에 존재하는 다른 모든 개체와 구별되는 유•무형의 대상을 표현
- ex) 학생이라는 개체의 학생 번호, 성별, 나이, 이름 등의 속성이 존재한다. 이 속성들은 여러 학생 중 특정한 학생을 유일하게 구별하는 속성이다.
- 개체 집합 : 개체들의 모임, 같은 속성을 공유하는 개체들로 구성된다.
- 개체는 개체 집합의 각 구성원들이 가지는 기술적 특성인 속성(attribute)들의 집합으로 표현된다.
- 속성 : 개체 집합에 속한 개체들이 공통적으로 가지는 특성
- 각 개체는 각 속성에 대한 값(value)을 갖는다.
- ER 표기법은 현재 대규모 데이터베이스 모델링에는 높은 복잡성으로 업무 현상에서는 잘 사용되지 않고 대신 UML(Unofied Modeling Language, 통합 모델링 언어) 표기법을 사용한다.
- UML 형식에서는 모든 개체를 고유하게 구분하는 키(Key)가 존재하며, 속성에는 속성이 가질 수 있는 모든 가능한 값들의 범위를 의미하는 도메인(domain)이 존재한다.
관계 집합
- 여러 개체들은 그들 사이에 연관성을 가지며 이를 ER 모델에서는 관계라고 표현한다.
- 개체를 연결 시키는 특정 관계를 관계 인스턴스라 한다.
- 관계는 실세계를 표현하는 가장 중요한 추상적 개념이다.
- 관계 집합 : 같은 유형의 관계 인스턴스들의 집합. 2개 이상의 개체 집합 간의 수학적인 연결 관계를 나타낸다.
한 개체 집합이 다른 개체 집합과 연관성을 가지는 것을 관계 집합에 참가한다고 표현한다. - 차수(degree) : 관계 집합에 참여하는 개체 집합의 수
- 관계 집합의 차수가 2일 경우 이항관계 집합이라 정의한다.
- 관계에 참가하는 개체의 기능을 개체의 역할(role)이라 한다. 이러한 역할은 묵시적으로 정해진다.
- 동일한 개체 집합이 재귀적으로 서로 다른 역할로 참가하여 생성되는 재귀적 관계 집합의 경우 역할을 명시해 주어야 한다.
- 재귀적 관계 집합 : 어떤 개체 집합이 자기 자신과 관계를 형성하는 관계 집합을 말한다.
속성
- 속성 : 개체를 구체적으로 설명하는 특성. 속성은 속성에 포함될 수 있는 값의 특성에 따라 단순 속성과 복합 속성, 단일값 속성과 다중값 속성, 유도 속성과 저장 속성 등의 유형으로 분류된다.
단순 속성과 복합 속성
- 단순 속성 : 더 이상 작은 구성요소로 나눌 수 없는 속성
- ex) 성별, 나이 등
- 복합 속성 : 더 작은 의미단위로 나누어질 수 있는 속성
- ex) 생일 : 년+월+일 조합
- 데이터 모델링 과정에서 작은 구성단위가 빈번하게 사용될 경우 복합 속성을 모델링상에 중복하여 포함시키도 한다.
- 복합 속성의 경우 들여 쓰기 형태로 표현한다.
- 생일
년
월
일
- 생일
단일값 속성과 다중값 속성
- 단일값 속성 : 한 개체가 특정 속성에 단 하나의 값을 가질 경우
- ex) 한 학생의 경우 고유한 하나의 학생 번호를 가짐
- 다중값 속성 : 속성값으로 여러 개의 값을 가질 경우
- ex) 전화번호는 휴대폰 번호, 집전화번호, 회사 전화번호 등이 존재
- 다중값 속성의 경우 집합 기호 '{ }'를 사용하여 표현 ex){전화번호}
유도 속성과 저장 속성
- 유도 속성 : 다른 속성 값으로부터 유도되어 결정되는 속성 값
- ex) 나이는 생일로부터 연산 가능한 정보이다.
- 저장 속성 : 실제 값을 저장해야만 의미가 유지되는 속성
- 유도 속성은 '( )'를 이용해 표현한다. ex) 나이( )
제약조건
- 관계 집합은 한 개체 집합에서 다른 개체 집합으로 개체 간 대응성, 곧 사상을 의미
- ER 모델링은 관계 집합에 대한 상세 표현을 위해 데이터베이스가 준수해야 되는 제약조건을 부가할 수 있다.
- 대표적 제약조건 : 사상수, 참가 제약조건, 키 속성
사상수
- 관계 집합에 참가한 개체 집합들에 대해 각각의 개체가 얼마만큼의 관계를 맺을 수 있는지 명시한다.
- 일대일(1:1) 관계 : 개체 집합 A와 개체 집합 B가 서로 일대일 대응 관계.
화살표가 있는 실선이 일(1)을 의미한다.
- 일대다(1:N) 관계 : 개체 집합 A의 개체 1개와 개체 집합 B의 개체 여러 개가 서로 대응 관계.
일(1) 쪽은 화살표가 있는 실선, 다(N) 쪽은 화살표가 없는 실선으로 표시
- 다대일(N:1) 관계 : 개체 집합 A의 개체 여러 개와 개체 집합 B의 개체 1개가 서로 대응 관계.
- 다대다(N:N) 관계 : 개체 집합 A의 개체 여러 개와 개체 집합 Y의 개체 여러 개가 서로 대응 관계.
두 개체 집합을 모두 화살표가 없는 실선으로 표현
참가 제약조건
- 관계에 참여하는 개체 집합의 범위를 나타낸다.
- 전체적 참가 : 개체 집합의 모든 개체가 관계에 참가, 이중 실선으로 표현
- 부분적 참가 : 개체 집합의 일부만 참가, 실선으로 표현
키 속성
- 키 : 개체 집합의 각 개체마다 서로 다른 값을 가지는 속성의 집합
- 어떤 개체의 키 값은 각각의 개체들을 서로 구별하는 데 사용
- 관계 집합의 특정한 관계를 찾는 데에도 사용
- ER 모델에서는 속성의 이름에 밑줄로 표현
반응형
ER 모델의 기호
- ER 모델로 표현된 데이터베이스 전체의 논리적인 구조는 ER 다이어그램(ERD)이라는 도식으로 표현
- 이분 직사각형 : 개체 집합을 표현, 윗부분은 개체 집합의 이름, 아랫부분은 개체 집합을 구성하는 속성들의 이름. 기본키는 밑줄로 표현
- 이중 이분 직사각형 : 약한 개채 집합
- 다이아몬드 : 관계 집합을 나타냄
- 단일 직사각형 : 관계 집합의 속성들을 나타냄
- 실선 : 개체 집합과 관계 집합 연결. 또한 부분 참여를 나타냄
- 점선 : 관계 집합의 속성들을 관계 집합에 연결
- 이중선 : 관계 집합 내에 개체의 전체 참여를 나타냄
- 이중 다이아몬드 : 약한 관계 집합을 나타냄
- 관계 집합의 속성 : 두 개체의 집합 관계에서 생성되는 값을 저장하는 속성
- 재귀적 관계 집합 : 한 개체 집합과 관계 집합 사이에 두 개의 실선으로 표현, 역할 기술
- 약한 개체 집합은 개체의 존재 유무가 관계를 맺고 있는 개체의 존재에 종속되는 개체 집합
- ex) 학생과 학생 계좌의 경우 학생이 자퇴나 퇴학하면 학생 계좌도 없어진다.
- 일대다 관계 사상수를 가지며, 이를 통해 강한 개체 집합과 연결되어야 함. 약한 개체 집합의 개체를 구별하는 키는 강한 개체 집합의 키와 결합하여 구성하며 점선으로 밑줄을 삽입
- 약한 개체 집합과 연결된 관계 집합은 이중선으로 표기
반응형