List
Search
1. 데이터베이스 모델링의 이해
1.1. 데이터베이스 모델링의 필요
1.
비즈니스적 관점
•
어떠한 데이터를 저장해야 하는가?
2.
컴퓨터 프로그래머의 관점
•
어떻게 데이터를 저장해야 하는가?
비즈니스 관점과 컴퓨터 프로그래머의 관점 둘다 고려 필요
1.2. 데이터베이스 시스템 구현 과정
•
기능 분석 → 애플리케이션 프로그램 설계 → 프로그램 구현
•
사용자 요구사항 분석 → 개념적 모델링 → 논리적 데이터 모델링 → 물리적 데이터 모델링
•
논리적 데이터 모델링을 기준으로, 위로는 비즈니스적 관점의 측면, 아래는 컴퓨터 프로그램의 관점을 지님
1.3. 데이터베이스 모델링의 개념
•
데이터베이스 모델링
◦
데이터의 의미를 파악하고, 데이터와 관여하는 업무 프로세스를 개념적으로 정의하고 분석하는 작업
•
모델링 단계
1.
사용자 요구사항 분석
2.
(데이터 및 업무)
3.
개념적 데이터 모델링
4.
(ER 모델)
5.
논리적 데이터 모델링
6.
(관계형 모델)
7.
물리적 데이터 모델링
8.
(물리적 세부사항)
9.
내부 스키마
1.4. 데이터 모델
•
사용할 데이터를 선별하여 데이터베이스에 체계적으로 구조화하여 저장 사용할 방법이 필요
•
데이터 모델
◦
의미, 데이터 타입, 연산 등을 명시하기 위해 사용할 수 있는 개념들의 집합
•
데이터 모델링
◦
실세계의 일부분을 DBMS가 지원하는 데이터 모델의 형태로 나타내는 과정
1.5. 데이터베이스 모델링의 단계
1.
개념적 데이터 모델링
•
요구사항의 해석 오류 방지
•
실세계의 데이터를 개념적으로 일반화하여 데이터 구조, 데이터 타입, 속성, 관계, 제약 조건 등을 이끌어내는 과정
2.
논리적 데이터 모델링
•
특정 DBMS의 구현 모델에 맞춰 데이터를 표현하는 과정
3.
물리적 데이터 모델링
•
데이터베이스 파일의 내부 저장 구조, 파일 구성, 인덱스, 접근 경로 등을 결정하는 과정
2. 사용자 요구사항 분석
2.1. 사용자 요구사항 분석의 필요
1.
데이터의 대한 충분한 사전 분석 없이 적절한 설계가 불가능
•
데이터베이스의 구조가 점차 복잡해지고 수명 주기가 단축되기 떄문에 신속, 정확성이 요구됨
•
데이터베이스 활용 범위가 확대됨에 따라 효율적 운용에 초점
2.
사용자 요구를 명세하지 않고 디비 설계 및 개발을 진행하는 경우
•
결과물 완성도 및 신뢰도 저하
•
추가적인 유지보수 및 리팩토링 비용 발생
2.2. 사용자 요구사항의 개념
1.
시스템의 대상이 되는 업무를 분석
2.
도출, 분석, 기록 단계로 수행
•
국제 표준화: IEEE-std-830
2.3. 사용자 요구사항의 분석 과정
1.
제안 요청서 → 요구사항 도출
•
프로젝트 목표, 범위 등을 기준으로 조사 범위 결정
•
업무 관계 인터뷰
•
외부자료 수집 및 분석
2.
요구사항 명세서 → 요구사항 분석
•
도출된 요구사항 명확성, 완전성, 모호성 검증
•
불완전한 부분이 존재할 경우 요구사항 도출단계 재수행
•
요구사항을 분류하여 통합/분리
3.
요구사항 정의서 → 요구사항 기록
•
요구사항 목록 정리 및 관리자 승인
•
정리된 요구사항을 형식에 맞춰 문서화
•
프로젝트 종료 때까지 반영 여부 지속적 관리
•
정리
◦
요구사항 도출 → 분석 → 기록
3. ER 모델
3.1. ER 모델의 개념
•
1976년 카네기 멜론 대학의 PChen 박사 제한
•
실세계의 속성들로 이루어진 개체(entity)와 개체 사이의 관계(relationship)를 정형화시킨 모델
•
개념적 모델링 단계에서 사용되는 데이터 모델
•
데이터 구조와 관계를 ERD로 표현
•
어떤 데이터를 저장할 것인가? 그리고 이 데이터로 할 수 있는 업무가 무엇인가를 표현하기 위해 사용
•
구성 요소
◦
개체 집합
◦
관계 집합
◦
속성
3.2. ER 모델의 구성요소 (1) 개체 집합
•
개체 (entity)
◦
실세계에 존재하는 다른 객체와 구별되는 유무형의 사물
◦
개체를 설명하는 여러 속성들로 구성
•
개체 집합 (entity set)
◦
같은 속성을 공유하는 개체들의 모임
•
예)
◦
학생(개체)
◦
학생번호/학생이름/성별/나이(속성)
3.3. ER 모델의 구성요소 (2) 관계 집합
•
관계
◦
개체와 개체 사이의 연관성
•
관계 집합
◦
개체 집합 간의 관계
3.4. ER 모델의 구성요소 (3) 속성
•
개체를 구체적으로 설명
•
속성에 포함될 수 있는 값의 특성에 따라 여러가지로 구분
•
속성의 종류
◦
단순 / 복합 속성
◦
단일값 / 다중값 속성
◦
유도 / 저장 속성
3.5. 속성의 종류
1.
단순 속성
•
더 작은 구성요소로 나눌 수 없는 속성
•
예) 학생 이름, 성별, 나이
2.
복합 속성
•
더 작은 구성요소로 나눌 수 있는 속성
•
예) 생년월일 → 년/월/일로 나눌 수 있음
3.
단일값 속성
•
한 개체에 대해 단 하나의 값만을 갖는 속성 (예. 유니크 값)
4.
다중값 속성
•
한 개체에 대해 단 여러 값을 갖는 속성 (예. 유저 상태)
5.
유도 속성
•
다른 속성 값으로부터 값이 유추 될 수 있는 속성
•
예) 나이. 생년월일로 유추 가능
6.
저장 속성
•
유도 속성을 위해 사용될 수 있는 속성
•
예) 생년월일
3.6. 제약 조건
•
데이터 모델은 데이터, 의미, 구조, 연관성 및 데이터의 조건을 표현하기 위한 도구
•
ER 모델은 개체와 관계에 대한 표현의 정확성을 위해 제약조건을 정의할 수 있는 표현 방법 제공
•
제약 조건의 종류
◦
사상수
◦
참가 제약 조건
◦
키 속성
3.7. 제약 조건 종류 (1) 사상수 (mapping cardinality)
•
관계 집합에 참가한 개체 집합에 대해 한 개체가 다른 개체와 관계를 맺을 수 있는 수량을 명시
◦
1:1 관계
◦
1:N 관계
◦
M:N 관계
3.8. 제약 조건 종류 (2) 참가 제약 조건 (participation constraints)
•
전체적 참가
◦
어떤 개체 집합의 모든 개체가 관계 집합에 참여하는 조건
◦
예)
▪
과목 테이블은 반드시 교수 테이블을 참조해야함. 교수가 없이 과목은 있을 수 없음
•
부분적 참가
◦
어떤 개체 집합의 일부 개체가 관계 집합에 참여하는 조건
◦
예)
▪
어떤 교수는 어떠한 강의도 하지 않을 수 있음 (과목이 없음)
3.9. 제약 조건 종류 (3) 키 속성
•
각 개체를 구별하는데 사용되는 유일한 값을 가지는 속성의 집합
◦
개체를 고유하게 구분하는 역할
◦
관계 집합의 특정 관계를 찾는 역할
3.10. 특수 속성과 특수 관계
•
관계 집합의 속성
◦
두 개체 집합의 관계에서 생성되는 값을 저장하는 속성
◦
예시) 신청 시각
•
재귀적 관계
◦
한 개체 집합이 자기 자신과 관계 집합을 형성하는 관계
◦
예시) 선수과목 코드
•
예시
3.11. 특수 관계
•
약한 개체 집합
◦
개체의 존재 유무가 관계를 맺고 있는 개체의 존재에 종속되는 개체 집합
◦
cascade 조건
▪
부모 테이블의 row 삭제 시 관계된 자식 테이블의 데이터도 제거되어야함
•
강한 개체 집합
◦
약한 개체 집합과 연결되는 일반 개체 집합