관계형DB 데이터 모델링 단계

요구사항 분석

조사범위를 어디서부터 어디까지 할건지 결정
요구사항을 수집하고, 요구사항을 검토/승인하는 단계

데이터 모델링

개체, 속성, 관계파악
개념-논리-물리 데이터 모델링 단계
(데이터 모델링 3단계는 하단에 설명)

"개체"는 테이블이 된다.
그 속에는 "속성"이 들어간다.
개체간의 "관계"를 파악한다.

테이블 설계

데이터 모델링 중 개념적 모델링에서 작성한 E-R 다이어그램을 테이블 형태로 변환

테이블 명세서


데이터 모델링 3단계

1) 개념적 모델링

  • 떠있는 것들을 골라내고 E-R다이어그램 그린다

2) 논리적 모델링

  • 중복되는 필드를 없애는 과정
    (정규화과정/ 중복을 없애는 걸 말함)

3) 물리적 모델링

  • 이름을 부여하고, 데이터타입을 결정하고, 길이(자리수)를 결정하는 단계
  • (스키마) 필드의 속성을 정하는 것
    (스키마 데이터 구조를 정하는 것)
  • 키 결정

문자 길이, 숫자 길이
날짜는 따로 길이를 안줘도 된다.

이름- 글자 데이터 / 한글자당 2byte
통상 20byte정도 준다.

주민등록번호- 날짜 데이터 타입으로 준다.

데이터타입은
숫자,문자,날짜 등등..


테이블 관계

1) 일 대 다 (1:N) 관계

2) 다 대 다 (N:M) 관계

[사원 테이블]
사원번호가 기본키

[근무 테이블]
사원번호와 사업장번호는 복합키이면서 기본키

[사업장 테이블]
사업장번호가 기본키

근무테이블의 사원번호와 사업장번호는 외래키로 참조하고 있음

3) 일 대 일 (1:1) 관계


ERD (E-R 다이어그램)

Entity Relationship Diagram

존재하고 있는 것(Entity)들의 관계(Relationship)을 나타낸 도표(Diagram)

(Entity는 테이블이 나오기 전 단계라고 생각하면 된다)


ERD 규칙

  • ○는 0개 이상 (없을 수도 있다)는 의미.
  • 하나의 A는 하나 이하의 B로 구성되어 있다라는 의미는 1개이거나 0개이거나 (둘 중의 하나)
  • 하나의 A는 0또는 하나 이상의 B로 구성되어 있다라는 의미는 1대 다(1:N)이지만, 관계가 없을 수도 있다라는 의미

예시1)

먼저 부모테이블과 자식테이블이 뭔지 구별해야한다
더 중심이 되는 테이블이 부모 테이블.

A테이블의 기본키를 B테이블이 가지고 있다면
A는 부모테이블, B는 자식테이블.

(실선/점선 표기법)
실선 표기 (식별관계)
부모 테이블의 기본키를 자식 테이블이 가지고 있으며, 기본키로 사용하는 경우

점선 표기 (비식별관계)
부모 테이블의 기본키를 자식 테이블이 가지고 있지만, 기본키로 사용하지 않는 경우

한 학생은 여러개의 수업을 수강 할 수 있기 때문에 일 대 다 (1:N) 로 표기.
여러가지 수업 중 안듣는 수업이 있을 수 있기 때문에 ○를 표시해준다.


예시2)

부모 테이블은 부서 테이블
자식 테이블은 사원 테이블

부모 테이블의 기본키를 자식 테이블에서 기본키로 사용하지 않았기 때문에 점선으로 표시 (비식별 관계)

하나의 부서는 0~N명의 사원을 가질 수 있다.

사원 테이블은 부서테이블의 기본키인 부서번호를 FK로 가진다.

  • 기본키는 누가 갖고 있는가?
  • 누가 외래키를 갖고 있는가?
  • 누가 어디에 종속되고 누가 누구를 포함하고 있는가? 등의 관계를 표현

E-R 다이어그램 실습

사용자 요구 사항을 분석 결과
• 사원은 (사원번호, 사원명, 주소, 전화번호, 직급, 부서명)의 속성을 갖는다.
• 사업장은 (사업장번호, 사업장명, 주소, 전화번호, 공사금액, 투입인원, 시공일자, 예상완공일, 완공일, 비고)의 속성을 갖는다.
• 사업장의 비고는 공사중과 공사완료로 구분한다.
• 사업장자재는 (자재명코드, 자재명, 수량, 구입가격, 구입일)의 속성을 갖는다.
• 한 사원은 일정 기간 동안 하나의 사업장에서 근무하며 그 기간이 지나면 다른 사업장에서 근무한다.
• 구입한 사업장자재는 하나의 사업장에서만 관리할 수 있다.

참고)
https://mjn5027.tistory.com/43

0개의 댓글