프로그래밍/Database

데이터베이스 모델링과 회원가입 설계

Jay22 2017. 3. 26. 10:51
반응형

■  모델링의 정의


모형, 축소형의 의미

사람이 살아가면서 나타날 수 있는 다양한 현상에 대해서 일정한 표기법에 의해 포현해 놓은 모형

사람,사물,개념 등 -> 모델을 만들어가는 일

추상화(모형과,가설적) : 현실시계를 일정한 형식에 맞추어 표현

단순화 : 복잡한 현실세계 -> 약속된 규약에 의해 제한된 표기법이나 언어로 표현

명확화 : 누구나 이해하기 쉽게 대상에 대한 애매모호함을 제거하고 정확하게 현상 기술




■ 데이터 모델링이란?


정보시스템을 구축하기 위한 데이터 관점의 업무  분석 기법

데이터베이스를 구축하기 위한 분석/설계의 과정





개념 데이터 모델링 : 추상화 수준이 높고 업무중심적이고 포괄적인 수준의 모델링 진행


논리적 데이터 모델링 : 시스템으로 구축하고자 하는 업무에 대해 Key, 속성 관계 등을 정확하게 표현


물리적 데이터 모델링 : 실제로 데이터베이스에 이식할 수 있도록 성능, 저장 등 물리적인 성능을 고려하여 설계



■ 데이터 모델링 개념


어떤것(Thing)                                                    엔터티 타입(Entity Type), 엔터티(Entity)

어떤 것 간의 연관 (Association between Things)        관계(Relationship)

어떤 것의 성격 (Characteristic of Thing)                     속성(Attribute)


** 모델링은 하나를 만들어 놓고 그것을 계속 돌려 쓸 수 있게 만드는게 좋은 모델링이다.

** 모델러의 역할 : 수정을 최소화 하면서 확장을 해야한다.



■ 단계별 프로젝트 산출물


1. 착수이전단계

RFP작성 및 발송 (RFP : 제안 요청서 Request For Proposal)

제안서

업체선정


2. 분석

요구사항 정의서

스토리보드(UI 설계서)

논리 ERD


3. 설계

물리 ERD

프로세스 설계서

개발상세설계서


4. 개발

프로그램소스

단위테스트시나리오

단위테스트결과서


5. 테스트

통합테스트 시나리오

통합테스트 결과서


6. 전환/이행

전환/이행 계획서

오픈시나리오


7. 오픈 및 안정화

시스템 안정화


비고) 주간보고/회의록/WBS진척관리(프로젝트 일정관리 Work Breakdown Structure)/이슈/RISK관리/프로젝트변경관리



■ 데이터 모델 다이어그램


표기법



부분 표기법



관계도






■ 회원가입 설계



네이버회원가입을 예시로 가짐


## 약관동의


            



네이버는 이렇게 개인회원과 단체 회원가입 2가지가 있다.

이런 회원가입폼은 디자이너가 만들어주지만 그렇지 않을 수도 있다.


이 화면을 보고 Entity를 정의해보자. Entity란 속성이라고 했다. 예를들어 공지사항이라는 엔티티가 있다. 이 안의 속성들을 정의하자면 게시번호, 제목, 내용, 작성자, 조회수 등 을 볼 수 가 있다. 여기 회원가입 폼에서 생각을 한 번 해보자. 항목을 뽑아내는것이 중요하다.


개인을 기준으로 보면 (어차피 단체도 비슷하므로) 크게 3가지로 볼 수 가 있다. 

1. 약관 2. 약관동의 3. 약관적용구분코드


이렇게 3가지의 엔티티가 나올 수가 있는데 하나씩 살펴보자.


1. 약관

약관 entity는 말 그대로 화면에 표시되는 약관들을 관리한다.


Entity

약관 

약관항목 

2

적용일자 

약관내용 

필수여부 

약관적용구분(개인/단체/공통)

6

조회순서 

사용여부 


2. 약관동의 


Entity

약관동의 

아이디 

약관항목 

동의여부 

동의일시 


약관동의에서 약관항목이 필요한 이유는 고객의 약관이 시간이 지나서 변경되었는데 나 한적없다 이런식으로 나온다면 법률적으로 따질 수 있기 때문이다.

최대한 정보를 정확하게 남겨야한다.



3. 약관적용구분코드


코드

약관적용구분 

10 

개인 

20 

단체 

30 

공통 




## 회원가입


사실 모델링은 답이 없으므로 관리를 편하게 할 수 있는 최대한의 방법을 찾는것이 중요하다.





엔티티는 회원정보가 되겠다. 표시된 것은 꼭 들어가야 하는 필수 항목이다.



엔티티

회원정보 

고객번호 

아이디 

비밀번호 

회원구분 

이름/단체 

성별 

생년월일 

이메일 

국가번호 

10 

휴대전화번호 

11 

단체대표자명 

12 

단체종류 

13 

가입일시 

14 

탈퇴여부 

15 

탈퇴사유 

16 

탈퇴일시 

   

이런식으로 특정 항목은 코드로 관리한다.


오른쪽 이 코드에 대한 내용도 테이블로 관리를 해야 되는데 2가지로 나누어볼 수 있다.

위에 회원구분, 성별.. 뭐 이렇게 대표헤더로 나눈 것 1개 그에 따른 세부 코드들을 포함하는 것 `1개 이렇게 2개로 나눌 수 있다.


이러한 코드테이블은 어느회사나 다 있다. 다시 한번 말하지만 모델링은 엔티티를 뽑아내는 것이 제일 중요하다. 그리고 코드로 뽑아내야한다.

코드는 기본적으로 3자리로 만든다. 다음시간에 만들어보면서 볼 것이다. 


 엔티티

공통코드Master 

코드구분 

코드구분명 

코드길이 



엔티티

공통코드Detail 

코드구분 

코드 

코드명 

4

부연설명 



참고사항 ) 디비하나로 외부 내부에서 같이 조회해야하기 때문에 (사용자화면과 관리화면) 데이터를 넣을 때 기본 값만 넣어놓고 실제 스크립트나 자바안에서 처리를 하는 것이 좋다. 즉 코드로 빼는 것이 좋다는 말이다.


다음 번에는 모델링 툴인 eXERD로 직접 만들어볼 것이다.








반응형