728x90
요구조건 분석
- 할 일이 무엇인가?
- 화면 정의 기획서 - 어떤 화면이 필요한지 파악
개념 데이터 모델링
- 하고자 하는 일에는 어떤 개념이 있고, 각각 개념들은 어떻게 상호작용 하는가?
- 사용자의 요구에 대한 트랜잭션을 모델링 하는 단계
- 트랜잭션 모델링, view 통합방법 및 attribute 합성 고
- DB 종류와 관계 없음
개체관계 다이어그램(ERD)
- 각 업무 분석에서 도출된 엔티티간의 관계를 이해하기 쉽게 도식화한 다이어그램
Cardinality & Optionality
1:1 관계
1:N 관계
M:N 관계
- M:N의 관계일 때는 바로 연결하지 않고, mapping table 사용
논리 데이터 모델링
- 관계형 데이터베이스에 맞게끔 표로 전환
관계 데이터 모델은 데이터를 행과 열로 구성된 2차원 테이블 형태로 구성한 모델 - 트랜잭션의 인터페이스를 설계하는 단계
- 정규화를 수행 및 논리적 데이터베이스 구조로 매핑
식별, 비식별
- 외래키를 사용하여 테이블 간의 관계를 설정할 때 사용 하는 방법
- 식별
부모 테이블의 기본키 or 유니크 키를 자식 테이블이 자신의 기본키로 사용하는 것
부모 데이터에 자식 데이터가 종속
자식 데이터가 존재한다면 반드시 부모 데이터가 존재하는 상태
장점: 데이터의 정합성 유지를 DB에서 한번 더 가능
단점: 구조 변경이 어려움
- 비식별
부모 테이블의 기본키 or 유니크 키를 자신의 기본키로 사용하지 않고, 외래키로 사용하는 것
자식 데이터는 부모 데이터가 없어도 독립적으로 생성될 수 있음
장점: 요구사항의 변경에 유동적, 독립적인 자식 데이터 생성 가능
단점: 자식 데이터가 존재해도 부모 데이터가 없을 수 있음 (데이터 무결성 보장X)
정규화
1정규화 | 도메인이 원자값, 속성값은 하나의 원자값을 가지고 있어야 함 |
2정규화 | 부분적 함수 종속 제거 |
3정규화 | 이행적 함수 종속 제거 |
BCNF (Boye-codd Nomal Form) |
결정자가 키 값이어야 함 (보통 1정규화 과정에서 Cardinality를 생각하면 완료됨) |
4정규화 | 다치 종속 제거 |
5정규화 | 조인 종속성에 의해 정규화 |
물리 데이터 모델링
- 실제 표를 생성
- 논리 데이터 모델을 특정 DBMS의 특성 및 성능을 고려하여 물리적인 스키마를 만드는 단계
- 테이블, 인덱스, 뷰, 파티션 등 객체를 생성
- 성능 측면에서 반 정규화를 수행
물리적 모델링 연습 (pdf 자료)
1. 회원 - 상품
- 상품정보 (상품명, 가격, 설명, 남은수량)
- 회원 (회원id, 이름, 연락처, 배송지)
- 주문 하기 (회원id, 배송지, 주문번호, 결제, 주문일자, 금액) & 주문 리스트 (주문하기와 상세내역으로 생성 가능)
- 신규 배송지(배송번호, 받는사람, 연락처, 주소, 배송메시지, 회원id)
- 주문 상세내역 (상품 갯수) (주문 리스트와 연결)
2. 회원 - 강의
--- 조건 ---
1. 회원은 ID, PW, 회원번호, 이름, 연락처로 나눔
회원등급은 교수, 수강생, 최고관리자로 나눔
2. 강의 테이블은 강의코드, 과정명, 담당교수, 강의 개강일, 강의 종료일, 요일, 강의 타입, 회차, 모집인원으로 나눔
강의 타입은 일반강의, 국가강의, 주말강의, 기간강의로 나눠질 수 있어야 함
3. 강의신청 테이블에는 수강생의 강의신청목록이 저장됨 (회원번호, 강의코드, 신청일) - 회원과 강의가 있을 때
4. 훈련일지 테이블은 강의 테이블과 연결
강의에 대해서 출석정보를 기록할 수 있어야 함
5. 훈련일지 등록은 일지에 대해서 여러 훈련사항을 추가할 수 있어야 함
6. 상담일지 테이블은 상담내역을 저장하는 테이블
회원은 자신의 상담내역을 볼 수 있고, 강의별로 상담내역이 따로 저장됨
7. 상담일지 등록화면은 상담일, 상담자, 상담종류, 상담내용, 피드백으로 나눠짐
8. 건의사항 테이블은 회원이라면 누구나 작성 가능, 작성자, 제목, 등록일이 있음
- 수정
오늘 하루
더보기
기억에 남는 부분
-
-
어려운 부분
-
-
문제 해결 부분
-
-
728x90
'Database > Oracle' 카테고리의 다른 글
[Oracle - JSP] JDBC (ORM 사용x), ORM (0) | 2022.11.22 |
---|