Notice
Recent Posts
Link
Tags
- nginx
- AWS
- 문자열
- Docker
- session
- 데이터베이스
- spring security 6
- string
- 스프링
- PYTHON
- spring boot
- ORM
- spring
- 프로그래머스
- 1차원 배열
- DI
- mysql
- Django
- 자바
- SSL
- 스프링부트
- @transactional
- select
- join
- java
- springboot
- jpa
- Git
- sql
- spring mvc
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Archives
개발하는 자몽
개념적 데이터 모델링: 실습 본문
위 강의와 데이터베이스 개론(2019, 김연희 지음) 책을 바탕으로 작성하는 글입니다.
데이터베이스 설계 단계
E-R 모델과 릴레이션 변환 규칙을 이용한 설계의 과정
- 1단계 : 요구 사항 분석
- 2단계 : 개념적 설계
- 3단계 : 논리적 설계
- 4단계 : 물리적 설계
- 5단계 : 구현
Note 설계 과정 중에 오류가 발견되어 변경이 필요하면 이전 단계로 되돌아가 설계 내용을 변경 가능
요구사항 분석
설계 1단계 : 요구 사항 분석
- 목적
- 사용자의 요구 사항을 수집하고 분석하여 개발할 데이터베이스의 용도를 파악
: 업무에 필요한 데이터가 무엇인지, 그 데이터에 어떤 처리가 필요한지 등을 고려
- 사용자의 요구 사항을 수집하고 분석하여 개발할 데이터베이스의 용도를 파악
- 결과물
- 요구 사항 명세서
- 주요 작업
- 데이터베이스를 실제로 사용할 주요 사용자의 범위를 결정
- 사용자가 조직에서 수행하는 업무를 분석
- 면담, 설문 조사, 업무 관련 문서 분석 등의 방법을 이용해 요구 사항 수집
- 수집된 요구 사항에 대한 분석 결과를 요구 사항 명세서로 작성
요구 사항 분석 Ex. [한빛 마트 데이터베이스]
인터넷으로 회원들에게 상품을 판매하는 한빛 마트의 데이터베이스 개발
개념적 설계
설계 2단계 : 개념적 설계
- 목적
- DBMS에 독립적인 개념적 스키마 설계
- 요구 사항 분석 결과물을 개념적 데이터 모델을 이용해 개념적 구조로 표현 → 개념적 모델링
- 일반적으로 E-R 모델을 많이 이용
- 결과물
- 개념적 스키마 : E-R 다이어그램
- 주요 작업
- 요구 사항 분석 결과를 기반으로 중요한 개체를 추출하고 개체 간의 관계를 결정하여 E-R 다이어그램으로 표현
- 작업 과정
- STEP 1 개체 추출, 각 개체의 주요 속성과 키 속성 선별 ☞ 개체와 속성 추출
- STEP 2 개체 간의 관계 결정 ☞ 관계 추출
- STEP 3 E-R 다이어그램으로 표현 ☞ E-R 다이어그램 작성
개념적 설계 - (STEP 1) 개체와 속성 추출
- 개체 : 저장할만한 가치가 있는 중요 데이터를 가진 사람이나 사물 등
- 개체 추출 방법
- 요구 사항 문장에서 업무와 관련이 깊은 의미 있는 명사 찾기
- 업무와 관련이 적은 일반적이고 광범위한 의미의 명사는 제외 (Ex. 한빛 마트 : 전체 데이터베이스를 포괄하는 광범위한 범위이므로 제외)
- 의미가 같은 명사가 여러 개일 경우는 대표 명사 하나만 선택 (Ex. 회원, 고객)
- 찾아낸 명사를 개체와 속성으로 분류하기
- 요구 사항 문장에서 업무와 관련이 깊은 의미 있는 명사 찾기
개념적 설계 - (STEP 1) 개체와 속성 추출 예
그림 8-4의 요구 사항 명세서에서 개체와 속성을 추출하는 과정
[추출 결과] (A)
- 한빛 마트 : 일반적이고 광범위한 의미의 명사이므로 제외
- 개체 : 회원
- 회원(개체)의 속성 : 회원아이디, 비밀번호, 이름, 나이, 직업, 등급, 적립금
- 키 속성 : 회원아이디(회원을 식별할 수 있는 속성)
[추출 결과] (B)
- 개체 : 회원, 상품
- 속성 : 주문번호, 주문수량, 배송지, 주문 일자 → 회원이 상품을 주문을 해야 생기는 정보, 이후 추출할 특정 관계의 속성일 가능성이 높음
[추출 결과] (최종)
- 개체 : 회원, 상품, 제조업체, 게시글
- 속성
- 회원의 속성 : 회원아이디, 비밀번호, 이름, 나이, 직업, 등급, 적립금
- 상품의 속성 : 상품번호, 상품명, 재고량, 단가
- 제조업체의 속성 : 제조업체명, 전화, 위치, 담당자
- 게시글의 속성 : 글번호, 글제목, 글내용, 작성일자
- 키 속성
- 회원의 키 속성 : 회원아이디
- 상품의 키 속성 : 상품번호
- 제조업체의 키 속성 : 제조업체명
- 게시글의 키 속성 : 글번호
개념적 설계 - (STEP 2) 관계 추출
- 관계 : 개체 간의 의미 있는 연관성
- 관계 추출 방법
- 요구 사항 문장에서 개체 간의 연관성을 의미 있게 표현한 동사 찾기
- 의미가 같은 동사가 여러 개일 경우는 대표 명사 하나만 선택
- 찾아낸 관계에 대해 매핑 카디널리티와 참여 특성을 결정하기
- 매핑 카디널리티 : 일대일(1 : 1), 일대다(1 : n), 다대다(n : m)
- 참여 특성 : 필수적 참여 | 선택적 참여
- 요구 사항 문장에서 개체 간의 연관성을 의미 있게 표현한 동사 찾기
개념적 설계 - (STEP 2) 관계 추출 예
그림 8-4의 요구 사항 명세서에서 관계를 추출하는 과정
위 밑줄 처진 동사 모두 개체와 개체의 관계를 표현하는 동사로 볼 수 없으므로 제외
[추출 결과] (B)
- 관계 : 주문
- 회원(개체)와 상품(개체)가 맺는 관계 - 다대다(n : m) 관계
- 회원(개체)는 관계에 선택적 참여 | 상품(개체)는 관계에 선택적 참여
- 주문(관계)의 속성 : 주문번호, 주문수량, 배송지, 주문일자
[추출 결과] (C)
- 관계 : 공급
- 제조업체(개체)와 상품(개체)가 맺는 관계 - 일대다(1 : n) 관계
- 상품(개체)는 관계에 필수적 참여 | 제조업체(개체)는 관계에 선택적 참여
- 공급(관계)의 속성 : 공급일자, 공급량
[추출 결과] (D)
- 관계 : 작성
- 회원(개체)와 게시글(개체)가 맺는 관계 - 일대다(1 : n) 관계
- 회원(개체)는 관계에 선택적 참여 | 게시글(개체)는 관계에 필수적 참여
[추출 결과] (최종)
- 관계 : 주문, 공급, 작성
- 관계에 참여하는 개체
- 주문 : 회원(선택), 상품(선택)
- 공급 : 상품(필수), 제조업체(선택)
- 작성 : 회원(선택), 게시글(필수)
- 관계 유형
- 주문 : 회원 상품 - 다대다
- 공급 : 상품 제조업체 - 일대다
- 작성 : 회원 게시글 - 일대다
- 속성
- 주문 : 주문번호, 주문수량, 배송지, 주문일자
- 공급 : 공급일자, 공급량
개념적 설계 - (STEP 3) E-R 다이어그램 작성
'Database' 카테고리의 다른 글
[MySQL] You can't specify target table '테이블명' for update in FROM clause (0) | 2022.01.20 |
---|---|
5. 관계 데이터 모델링 (0) | 2022.01.17 |
4. 개념적 데이터 모델링 (1) | 2022.01.12 |
데이터의 분류 (0) | 2022.01.09 |
3. 데이터베이스 시스템 (0) | 2022.01.09 |
Comments