[Database] 개념적 설계

Jaehyeong Kwon·2023년 3월 9일
0

데이터베이스

목록 보기
9/10

데이터 베이스 설계

사용자의 다양한 요구 사항을 고려하여 데이터베이스를 생성하는 과정

  • 요구 사항 -> 개념적 설계 -> 논리적 설계 -> 물리적 설계 -> 구현
  • 설계 과정 -> 오류 발견 -> 변경 필요 -> 이전 단계 설계 내용 변경 가능

요구사항 분석 목적

  • 사용자의 요구 사항을 수집 분석하여 개발할 데이터베이스의 용도를 파악한다.
  • 업무에 필요한 데이터, 데이터를 이용한 처리 방향 등을 고려한다.
  • 결과물: 요구사항 명세서

주요 작업

  • 데이터베이스를 실제로 사용할 사용자의 범위를 결정한다.
  • 사용자가 조직에서 수행하는 업무를 분석한다.
  • 면담, 설문조사, 업무 관련 문서 분석 등의 방법을 이용해 요구사항을 수집한다.
  • 수집된 요구사항에 대한 분석 결과를 요구사항 명세서로 작성한다.

요구사항 분석 예시


개념적 설계

  • DBMS에 독립적인 개념적 스키마 설계
  • 요구사항 명세서를 개념적 구조로 표현한다.
  • 결과물: E-R 다이어그램

주요 작업

개체와 속성 추출

저장할만한 가치가 있는 중요 데이터를 가진 사람이나 사물

  • 예) 학사행정 데이터베이스 개발에 필요한 개체
    학사행정 운영에 필요한 사람: 학생, 교수, 행정담당자 등
    학사행정 운영에 필요한 사람: 강의실, 행정실, 교자재 등

개체 추출 방법

요구 사항 문장에서 업무와 관련이 깊은 의미 있는 명사

  • 업무와 관련이 적은 일반적이고 광범위한 의미의 명사는 제외
  • 의미가 같은 명사가 여러 개일 경우는 대표 명사 하나만 선택
  • 추출된 명사를 개체와 속성으로 분류

1번 문장

  • 쇼핑몰은 일반적이고 광범위한 의미의 명사이므로 제외한다.
  • 회원 아이디, 비밀번호, 이름, 나이, 직업, 등급, 적립금은 회원의 속성으로 분류한다.
  • 회원 아이디는 키 속성으로 분류한다.

개체: 회원
속성: 회원 아이디, 비밀번호, 이름, 나이, 직업, 등급, 적립금
키 속성: 회원 아이디

2번 문장

  • 개체: 회원, 상품
  • 속성: 주문번호, 주문수량, 배송지, 주문일자
  • 키 속성: 회원이 상품을 주문 시 생성되는 정보이기 때문에 특정 관계(주문)의 속성

개체 간의 관계 추출

  • 관계: 개체 간의 의미있는 연관성

개체 간의 관계 추출 방법

  • 요구 사항 문장에서 개체간의 연관성을 의미있게 표현한 동사를 추출한다.
  • 의미가 같은 동사가 여러 개일 경우, 대표 동사 하나만 선택한다.
  • 찾아낸 관계에 대한 매핑 카디너리티와 참여 특성을 결정한다.
  • 매핑 카디널리티: 1:1, 1:N, N:M
  • 참여 특성: 필수적 참여/ 선택적 참여

개체 간의 관계 추출 예시 (1)
1. 회원은 여러 상품을 주문할 수 있고, 하나의 상품을 여러 회원이 주문할 수 있다.
2. 회원이 상품을 주문하면 주문에 대한 주문번호, 수량, 배송지, 주문일자 정보를 유지해야 한다.

관계: 주문
회원과 상품 객체 관계: 다대다 (N:M)
회원: 선택적 참여, 상품 (선택적 참여)
주문관계 속성: 주문번호, 수량, 배송지, 주문일자

개체 간의 관계 추출 예시 (2)
각 상품은 한 제조업체가 공급하고, 제조업체 하나는 여러 상품을 공급할 수 있다.
제조 업체가 상품을 공급하면 공급량 정보를 유지해야 한다.

관계: 공급
상품과 제조업체 개체관계: 일대다 (1:N)
상품: 필수적 참여, 제조 (선택적 참여)
공급 관계 속성: 공급일자, 공급량

**개체 간의 관계 추출 예시 (3)
회원은 게시글을 여러개 작성할 수 있고, 게시글 하나는 한 명의 회원만 작성할 수 있다.

관계: 작성
회원과 게시글 개체 관계: 일대다 (1:N)
상품: 선택적 참여, 게시글 (필수적 참여)

profile
나무와 같이 성장하는 사람

0개의 댓글