상세 컨텐츠

본문 제목

58일차. DB 11 - 모델링 (개념설계, 논리설계)

수업 일지/Oracle DBMS

by NayC 2021. 5. 12. 09:40

본문

728x90

회사 가서 

Q. 이 페이지에 맞는 데이터베이스 모델링을 해달라. 라고 한다면? 

icoda 보고 테이블 정의하기

 

테이블 이름 event 정하고

- 속성들 뭐로 들어갈지 정하기

 

지황님 의견 - 상품에 너무 길게 하지 말고, 카테고리 테이블도 만들어서 참조를 하게 하자

 

 

이 중에 1조가 가장 잘했다고 하심

 

//

 

DMBS에서 가장 많은 비율 : RDBMS (관계), 이밖에도 있는데 그냥 이게 압도적

- '관계'를 가지고 DB를 관리하는 것

 

무결성 : 중복 제거 방식으로  - '뷰'라는게 있는데 -> 집중화(쪼갬)해서 '테이블'

 

사용할 때는 테이블 합쳐서 사용

테이블 -> 합쳐서 (뷰) -> 파일

 

테이블 저장하고 있는 기준은

- 객체지향에서는 '상속' 

- RDBMS에서는 '관계' 

 

관계...라는게 참 애매하다. 

- 관계는 행위 

 

주어(테이블)   ------ 동사(행위/관계) ----- 목적어 (테이블) 

ex) 회원(테이블)이 게시글(테이블)을 등록하다.(관계/행위)  

 

우리가 해야할 첫 번째는 

1) 주어 찾기 (= 주체 찾기, 행위자/역할자 찾기)

   역할은 업무적인 것. 

   그래서 주어는 사람의 수와 같은게 아님. 

   ex) 서울 병원은 수납이라는 같은 일을 하는 사람이 사람이 여러명

-> 쇼핑몰에서의 주어는 누구일까. 

     

역할자가 DB에 등록되어야 하는지 판단해야

-> 회원, 관리자, 판매자 O

    비회원 X

 


2. 목적어 찾기 (동사는 '등록하다'로) 

ex) 회원이 등록하는 대상 (~을/~를 에 해당하는 것)   

 

장바구니를 등록하다? 

-> 장바구니는 등록하는게 아님

    '장바구니' 생상인지/크기인지.... 

    등록하는게 아니라 '담는 것' 

 

관심상품을 등록하다? 

- 회원이 관심을 가질 수는 있지만 등록할 수는 없음

- 앞에 행위를 붙여줌으로서 명사를 만들어주면 안된다... 

  관심상품 -> 상품. 

  상품을 등록하는건 회원이 할 내용이 아니니 X 

 

// 

 

역할자 찾기 

대상 찾기 (행위는 '등록하다')

- 합성어, 행위자 빼기


DB 설계는 3단계로 구분된다.

1. 개념 설계

- Concept 잡는 것

역할자 - 관리자 (주어)

행위/관계 - 등록하다. (그림으로 그릴 때는 마름모로 표현)

대상  - 공지사항

네모들 : entity

즉, entity와 관계만 있는 것 (ERD이라고 표현 - Entity Relation Diagram)

 

2. 논리 설계

- 명사/키워드 (key가 되는 entity) 

  그 사이 행위/관계가 '등록' 말고 다른 것도 되는지 찾아보기

  ex) [판매자]가 [상품]을 [   ] 하다. 

  그 다음 명사/키워드도 바꿔보기

  ex) 수정하다, 삭제하다. 

       

- 위의 그림처럼 하나의 대상을 두고 역할자 별로 행위를 할 수 있는 관계 찾기 

 

구매, 결제같은게 빠져있음ㅋㅋㅋ

 

*행위/관계*

1) 업무적으로 다루는 내용인지 확인

2) 행위는 데이터를 '추가하는 행위'만 다루기

   ex) 수정, 삭제가 애매.... 

   '위키피디아'의 경우 수정된 것도 다 저장이 됨 (누가, 언제, 무엇이 수정되었는지)  

   이건 '행위'로 간주

- 행위/관계는 DB에 등록되는 것만을! 대상으로 함

  ex) '등록'은 누적하는거니까 행위. (수정은 의미가 없다!) 

  Q. 삭제는....  (만약 회사에서 "우리는 삭제 내역 쌓는다" 하면 행위/관계가 맞음)

  '조회'도 쌓인다면 DB에 관계로 표시를 해야하지만 그렇지 않으면 관계 X 

 

Q. 관계로서 살아남는건? 

ex) 구매 - 구매 내역이 누적되는거니까 

     찜 - 이것도 맞다. 누적됨 (지황님은 아니라고 함. DATA를 별도의! 저장소를 이용하는 경우) 

         - 하나의 데이터를 별도의 파일이나 저장소를 이용하는 경우는 DB 관계에서 제외됨

      DB를 사용하지 않고 다른 저장소를 선택하는 기준이 있을까? 

      -> '임시 데이터'는 임시 저장소를 사용

           조작(수정,삭제,등록) 과 같은 조작을 수반하지 않고, 읽기 전용 데이터를 기록하는 경우 

      임시 데이터로 넣을지? 

      로그인 전에 찜하면 데이터 날라감. 근데 로그인 후에 찜하면 ... 사용자 데이터로 있어야

ex) 평가 - 관계! 

ex) 판매자가 상품 등록, 관리자도 상품을 등록할 수 있게 한다면 .. 

.... 네가 등록했어도 내가 고칠거야 (관리자의 신적 영영) .. 

   놓침... ㅠ

.

.

다시 그림 고치는 중

 

회원 --------------- 구매 --------------- 상품 

 

 

3. 물리 설계

 

 

 

 

 

728x90
반응형

관련글 더보기