필요성
- 비즈니스적 관점
- 어떤 데이터를 저장해야 하는가?
- 어떤 데이터를 집어넣고, 집어넣지 않을지 결정하기 위해 비즈니스적 관점이 필요하다.
- 프로그래머의 관점
- 어떻게 데이터를 결정하는가?
- 어떤 데이터를 저장할 것인지 결정했으면, 그것을 어떻게 저장할지에 대한 관점이 필요하다.
모델링 단계
- 사용자 요구사항 분석
- 개념적 데이터 모델링
- 요구사항의 해석 오류를 방지
- 실세계 데이터를 개념적으로 일반화시켜 데이터 구조, 데이터 타입, 속성, 관계, 제약 조건 등을 이끌어내는 과정
- 논리적 데이터 모델링 → 개념 스키마
- 특정 DBMS의 구현 모델에 맞춰 데이터를 표현하는 과정
- 데이터 정의 언어(DDL)로 기술된 개념 스키마 생성
- 물리적 데이터 모델링
- 데이터베이스 파일 내부 저장구조, 파일 구성, 인덱스, 접근 경로 등을 결정하는 과정
- → 내부 스키마 생성
각 단계가 왜 필요할까? 일단 모델링은 왜 필요할까?
- 데이터의 의미를 파악하고 데이터와 관여하는 업무 프로세스를 개념적으로 정의하고 분석하는 작업
데이터 모델?
- 의미, 데이터 타입, 연산 등을 명시하기 위해 사용할 수 있는 개념 집합
데이터 모델링
- 실세계 일부분을 DBMS가 지원하는 데이터 모델 형태로 나타내는 과정
사용자 요구사항
- 데이터에 대한 충분한 사전 분석없이 적절한 설계 불가능
- 데이터베이스 구조가 점차 복잡해지고, 수명 주기가 단축되고 있기 때문에 신속, 정확성이 요구
- 데이터베이스의 활용 범위가 확대됨에 따라 데이터베이스의 효율적 운용에 초점
- 사용자의 요구를 명세하지 않고 데이터베이스 설계 및 개발을 진행하는 경우
- 결과물의 완성도 저하 및 신뢰도 추락
- 개발 후, 발생하는 에러 수정에 많은 추가 비용 지출
시스템 요구사항 분석 개념
- 시스템 대상이 되는 업무르 분석
- 정보 시스템의 데이터베이스가 신속되고 효과적으로 업무처리 지원
- 필요한 데이터를 저장 및 운용할 수 있는 구조 개발
- 도출, 분석, 기록 단계로 수행
- 실제로 이 단계가 국제 표준으로 지정되어 있음 IEEE-Std-830
사용자 요구사항 분석 과정
- 요구사항 도출
- 제안 요청서(Request For Proposal, RFP)에서 시작
- 업무관계자와 인터뷰
- 외부자료 수집 및 분석
- 이걸 통해 구축대상, 프로젝트 목표, 범위 기준으로 조사 범위 결정
- 제안 요청서(Request For Proposal, RFP)에서 시작
- 요구사항 분석
- 제안 요청 단계가 끝나면 요구사항 명세서가 나온다. 이걸 통해 요구사항 분석을 시작.
- 도출된 요구사항의 명확성, 완전성, 모호성 검증
- 불완전한 부분이 존재할 경우 요구사항 도출단계 재수행
- 요구사항을 분류하여 통합 또는 분리
- 제안 요청 단계가 끝나면 요구사항 명세서가 나온다. 이걸 통해 요구사항 분석을 시작.
- 요구사항 기록
- 요구사항 분석이 끝나면 요구사항 정의서가 나온다.
- 요구사항 목록 정리 및 관리자 승인
- 정리된 요구사항을 형식에 맞춰 문서화
- 프로젝트 종료까지 반영 여부 지속 관리
ER 모델
- 실세계 속성들로 이루어진 개체(entity)와 개체 사이의 관계(relationship)를 정형화한 모델
- 1976년 카네기 멜론 대학의 Peter Chen 박사가 제안
- 개념적 데이터 모델링 단계에서 사용되는 데이터 모델
- 데이터 구조와 관계를 ERD로 표현
- 구성요소
- 개체 집합
- 관계 집합
- 속성
개체 집합
- 개체
- 실세계에 존재하는 다른 객체와 구별되는 유무형 사물
- 개체를 설명하는 여러 속성들로 구성
- 예)
- 이름: 김살다
- 출생일: 2019년 1월 1일
- 거주지: 중구 서소문로
- 이사 예정일: 미정
- 이런 데이터가 여러 개 있으면 그게 개체 집합이다.
- 예)
관계 집합
- 관계
- 개체와 개체 사이의 연관성.
- 관계 집합
- 개체 집합 간 연결 관계
속성
- 개체를 구체적으로 설명
- 속성에 포함될 수 있는 값의 특성에 따라 여러 종류로 구분
- 속성의 종류
- 단순 속성과 복합 속성
- 단순 속성
- 더 작은 구성요소로 나눌 수 없는 속성.
- 예) 이름,
- 더 작은 구성요소로 나눌 수 없는 속성.
- 복합 속성
- 더 작은 구성요소로 나눌 수 있는 속성
- 예) 생년월일 → 년, 월, 일로 나눌 수 있음
- 더 작은 구성요소로 나눌 수 있는 속성
- 단순 속성
- 단일값 속성과 다중값 속성
- 단일값 속성
- 한 개체에 대해 단 하나의 값만 갖는 속성
- 예) 생년월일, 이름 등
- 한 개체에 대해 단 하나의 값만 갖는 속성
- 다중값 속성
- 한 개체에 대해 여러 개 값을 갖는 속성
- 예) 연락처 → 집전화, 핸드폰 번호 등 여러 개 존재할 수 있음
- 한 개체에 대해 여러 개 값을 갖는 속성
- 단일값 속성
- 유도 속성과 저장 속성
- 유도 속성
- 다른 속성 값으로부터 값을 유추할 수 있는 속성
- 예) 생년월일과 나이.
- 생년월일을 통해 나이를 유추할 수 있음.
- 예) 생년월일과 나이.
- 다른 속성 값으로부터 값을 유추할 수 있는 속성
- 저장 속성
- 유도 속성을 위해 사용될 수 있는 속성
- 즉, 유추가 불가능하기 때문에 실제 저장해야만 하는 속성.
- 유도 속성을 위해 사용될 수 있는 속성
- 유도 속성
- 단순 속성과 복합 속성
제약조건
- 데이터 모델은 데이터, 의미, 구조, 연관성 및 데이터 조건을 표현하기 위한 도구
- ER 모델은 개체와 관계에 대한 표현의 정확성을 위해 데이터가 준수해야 하는 제약 조건을 정의할 수 있는 표현 방법 제공
제약 조건 종류
- 사상수(mapping cardinality)
- 관계 집합에 참가한 개체 집합에 대해 한 개체가 다른 개체와 관계를 맺을 수 있는 수량을 명시
왼쪽 X는 오른쪽 Y와 하나씩만 관계를 맺는다. 반대도 마찬가지다. 이렇게 1:1로 매칭되는 관계를 1:1 관계라고 한다.
X는 하나의 요소에 두 개이상 관계를 맺고 있지만 Y는 하나에 하나씩만 관계를 맺고 있다. 이런 관계가 1:N이다.
1:1 사상수 표현
양쪽 모두 화살표로 관계를 맺는다.
1:N 사상수 표현
한쪽(1 방향)으로 화살표가 향한다
N:N 사상수 표현
N:N은 화살표가 없음
참가 제약조건(participation constaints)
- 전체 참가: 어떤 개체 집합의 모든 개체가 관계 집합에 참여하는 조건
- 부분 참가: 어떤 개체 집합의 일부 개체가 관계 집합에 참여하는 조건
key 속성
학생 개체 집합이 있다고 하면 어떻게 개별 학생 개체를 구분할 수 있을까? 각각의 고유한 개체를 표현하기 위한 별도 값을 key라고 한다.
- 각 개체를 구별하는데 사용하는 유일한 값을 가지는 속성 집합
- 개체를 고유하게 구분하는 역할
- 관계 집합의 특정 관계를 찾는 역할
특수 속성과 특수 관계
특수 속성
- 관계 집합의 속성: 두 개체 집합의 관계에서 생성되는 값을 저장하는 속성
- 예) 학생이 과목을 신청할 때 생성되는 신청 시간
- 재귀적 관계: 한 개체 집합이 자기 자신과 관계 집합을 형성하는 관계
특수 관계
- 약한 개체 집합
- 개체의 존재 유무가 관계를 맺고 있는 개체의 존재에 종속되는 개체 집합
- 강한 개체 집합
- 약한 개체 집합과 연결되는 개체 집합
'Study > 강의 메모' 카테고리의 다른 글
SQL(1) (0) | 2022.03.22 |
---|---|
관계형 데이터 모델 수업 (0) | 2022.03.15 |