2018/05/15 - [방송통신대학교/컴퓨터과학과 [3학년 1학기]] - [데이터베이스] 5강 정규화 기초

2018/03/21 - [방송통신대학교/컴퓨터과학과 [3학년 1학기]] - [데이터베이스] 4강 데이터베이스 언어

2018/03/19 - [방송통신대학교/컴퓨터과학과 [3학년 1학기]] - [데이터베이스] 3강 관계형 모델

2018/03/16 - [방송통신대학교/컴퓨터과학과 [3학년 1학기]] - [데이터베이스] 2강 데이터베이스 모델링

2018/03/16 - [방송통신대학교/컴퓨터과학과 [3학년 1학기]] - [데이터베이스] 1강 데이터베이스의 이해

1. 모델링의 과정

1) 모델링이 필요한 이유

처음과 의도한대로 만들기 위해서 설계라는 과정이 필요함

1-1) 비즈니스적 관점

어떤 데이터를 저장해야 하는가?

1-2) 컴퓨터 프로그래머 관점

어떻게 데이터를 저장해야 하는가?

2) 사용자 요구사항 분석 단계

2-1) 요구사항 도출

- 구축대상, 프로젝트 목표, 범위를 기준으로 조사범위를 결정
- 업무관계자와 인터뷰
- 외부자료 수집 및 분석

2-2) 요구사항 분석

- 도출된 요구사항의 명확성, 모호성 검증
- 요구사항을 분류하여 통합 또는 분리
- 불완전한 부분이 존재할 경우 이전 단계 재수행

2-3) 요구사항 기록

- 요구사항 목록 정리 및 관리자의 승인
- 정리된 요구사항을 형식에 맞춰 문서화
- 미비 사항이 존재할 경우 이전 단계 재수행
- 프로젝트 종료 때까지 반영 여부 지속적 관리

3) 데이터베이스 모델링 과정

3-1) 개념적 데이터 모델링

- 요구사항의 해석 오류를 피하기 위해 사용
- 실세계의 데이터들을 개념적으로 일반화시켜 구조, 데이터 타입, 속성 관계, 제약조건을 이끌어내는 과정

3-2) 논리적 데이터 모델링

- 특정 DBMS의 구현 모델에 맞춰 데이터를 표현하는 과정
- 데이터 정의 언어로 기술된 논리 스키마 생성

3-3) 물리적 데이터 모델링

- DB 파일의 내부 저장구조, 파일 구성, 인덱스, 접근경로 등을 결정하는 과정

2. ER 모델의 정의

1) 개념

1976년 Peter Chen 박사에 의하여 제안
개념적 모델링 단계에서 사용되는 데이터 모델
실세계의 속성들로 이루어진 개체(entity) 와 개체사이의 관계(relationship)를 정형화 시킨 모델

구성요소 > 개체집합, 관계집합, 속성

2) 개체 집합

2-1) 개체 (entity) 1row

- 실세계에 존재하는 다른 객체와 구별되는 유무형의 사물
- 개체를 설명하는 여러 속성들로 구성

2-2) 개체 집합(entity set) table?

- 같은 속성을 공유하는 개체들의 모임

3) 관계 집합

3-1) 관계

- 개체와 개체 사이의 연관성

3-2) 관계 집합

- 개체 집합 간의 전체적 연결 관계

4) 속성의 개념

- 개체를 구체적으로 설명하는 특성
- 속성에 포함될 수 있는 값의 특성에 따라 여러 종류로 구성

4-1) 속성의 종류

단순속성: 더 이상 작은 구성요소로 나눌수 없는 속성
 예) 회원이름 , 키 , 몸무게

복합속성 : 들여쓰기 사용
 예) 주민등록번호(생일 년월일 성별코드 지역코드)

단일값 속성: 하나의 개체에 대해 단 하나의 값만을 갖는 속성
 예) 회원개체집합의 회원번호, 회원이름

다중값 속성: 하나의 개체에 대해 여러개의 값을 갖는 속성
 예) 회원개체집합의 전화번호(여러개가 들어갈 수 있다) { } 중괄호 사용

유도 속성: 다른 속성의 값으로부터 값이 유추될 수 있는 속성

저장 속성: 유도 속성을 위해 사용될 수 있는 속성
 예) 회원개체집합의 주민등록번호에서 나이를 유추할 수 있으므로 소괄호를 사용

널(null) 속성: 특정 개체가 일부 속성값을 가지지 못하여 null 값을 갖는 속성
    - 특정 개체가 가지는 값을 모르는(입력되지 않은) 경우
    - 특정 개체에 일부 속성이 적용이 될 수 없는 경우

5) 제약조건

- 데이터 모델은 데이터, 의미, 구조, 연관성 및 데이터의 조건을 표현하기 위한 도구
- ER모델은 개체와 관계에 대한 표현을 명확하게 하기위해 데이터가 항상 준수해야 하는 제약조건을 정의할 수 있는 방법을 제공

5-1) 사상수 (mapping cardinality)

관계 집합에 참가한 개체 집합에 대해 각각의 개체가 얼마만큼의 관계를 맺을 수 있는지 명시한 수
1:N, N:1, N:N

※ 일대일 사상수 표현 (보유라는 마름모꼴로 양쪽의 화살표(1을의미))
 예) 스포츠센터의 강사에게 월급을 주기 위한 계좌번호관계

※ 일대다 사상수 표현 (강의라는 마름모꼴로 강사쪽에 화살표 강좌에는 화살표 없는 선)
 예) 강사가 다수의 강좌를 담당할 수 있는 관계

※ 다대다 사상수 표현 (담당이라는 마름모꼴로 양쪽에 화살표 없는 선)
 예) 강사가 여러명의 회원을 담당할 수 있고 회원이 여러명의 강사와 담당관계가능

5-2) 참가 제약조건 (participation constraints)

전체적 참가: 어떤 개체 집합의 모든 개체가 특정 관계 집합에 참여 하는 조건
부분적 참가: 어떤 개체 집합의 일부 개체가 특정 관계 집합에 참여 하는 조건

예) 한명의 강사는 여러개의 강좌를 강의할 수 있고 하나의 강좌는 반드시 하나의 강사에 의해서만 진행될 수 있다. 모든강사는 강의에 참여하는것은 아니다. 모든강좌는 반드시 강의를 진행하는 강사가 있다.

(그림 참가제약조건의예)

 

(그림 참가제약조건의예2)

5-3) 키 속성

키(key): 각 개체를 구별하는데 사용되는 유일한 값을 가지는 속성의 집합
 예) 회원개체집합의 회원번호 개체가 키가 될 수 있다.
 표현) 밑줄

5-4) 특수속성과 관계

관계집합의 속성: 두 개체 집합의 관계에서 생성되는 값을 저장하는 속성
재귀적 관계: 한 개체 집합이 자기 자신과 관계 집합을 형성하는 관계

5-5) 특수관계

약한 개체 집합: 개체의 존재 유무가 관계를 맺고 있는 개체의 존재에 종속되는 개체집합
강한 개체 집합: 약한 개체 집합과 연결되는 일반 개체 집합

3. ER 모델링

학사지원 시스템의 요구사항 분석

● 본교의 학사지원 시스템은 여러 명의 교수와 학생들 그리고 과목 정보를 관리하기 위한 시스템이다.
● 학생은 학번, 이름, 학년, 소속학과 정보를 가지며, 교수는 교번, 이름, 연봉 정보를 가진다. 과목은 학수번호, 과목명, 학점 정보를 가진다. 과목은 한 개 이상의 분반으로 이루어진다. 분반은 번호, 학기, 연도 정보를 관리한다. 추가적으로 과목은 선수과목정보를 가진다.
● 하나의 학생은 한 명의 교수와 지도교수 관계를 맺을 수 있으며, 한 명의 교수는 복수의 학생을 지도할 수 있다. 학생은 여러 개의 과목을 수강할 수 있으며, 교수는 여러 개의 과목을 강의할 수 있다. 하나의 과목은 여러 명의 학생이 수강할 수 있으나, 강사는 1명으로 제한된다. 수강 및 강의 시 학수번호와 분반번호를 같이 기술해야 한다.

(그림 학사지원 시스템의 ER모델)