반응형
DB모델링
DB모델링을 하기 위해선 요구분석을 제일 먼저 해야 합니다. 제일 처음에 그들이 원하는 데이터베이스에 대해서 분석을 한다는
과정입니다.
예를 들어 데이터베이스를 만들어 달라고 한 병원이 근무하는 의사의 이름, 직급, 소속정보를 관리해야 하며, 환자의 경우 이름, 성별, 생년월일과 연락처 정보가 주요하게 다루어지며, 진료담당의가 할당되며, 진료일자, 진료시각,병명,처방전이 빈번히 활용된다는 요구를 했습니다.
1. 의사는 이름, 직급,소속정보만 관리한다.
2. 환자는 이름, 성별, 생년월일, 연락처 정보만 관리한다.
3. 한 사람의 의사가 한사람의 환자를 진료한다.
4. 진료시 진료일자, 진료시각, 병명, 처방전만 기록한다.
라고 요구를 간단히 분석 할 수 있습니다.
그러면 위의 의사와 환자와 진료의 관계에서 key가 존재하는가 ? 알아봐야합니다.
식별자는 다른 테이블과(의사의 식별자는 환자와 구별이 되는 속성이겠죠) 구별이 되어야 합니다. 의사의 이름,직급,소속중 중복되지 않는 식별자를 정해주어야 합니다. 위에서는 특별히 식별자가 보이질 않네요. 예를 들어, 학번이나 사번, 사용자 ID라고 생각하시면 됩니다. 속성 중에 위와 같이 식별자가 없을 시, 식별자 역할을 할 유일한 식별자 속성을 만들어야 합니다!
* 주민번호는 식별자로 불가능 합니다. 이유는 식별자는 외부로 노출이 되기 때문이죠^^
그럼 의사의 속성에는 이름, 직급, 소속 이외에도 의사ID 라는 속성을 만들어야 합니다.
모델 검증
의사 ID | 성명 | 성별 | 생년월일 |
0001 | 홍길동 | M | 1976-05-34 |
0002 | 황진이 | F | 1988-04-54 |
0003 | 또치 | M | 1982-10-26 |
위와 같이 식별자는 의사 ID를 가지게 되고, ID에 따라서 다른 값들도 서로 식별이 가능해 졌습니다.
만약 이름을 식별자로 했다면, 홍길동이 2명이 있다면, 식별을 할 수가 없겠죠. 때문에 ID를 생성해주는 것입니다.
위와 같은 식으로 진료ID를 가진 진료자와, 환자ID를 가진 환자 테이블을 만든 뒤에 진료테이블에 외래키(다른 테이블에 있는 식별자)
의사 ID와 환자ID를 외래키로 진료테이블에 넣어주게 되면 물리적 테이블은 3개지만, 진료테이블하나로 다 관리가 가능해지는 것입니다^^
이해가 가시나요 ?
다음시간에 또 오겠습니다!
반응형
'옛글 > Database이야기' 카테고리의 다른 글
제로보드xe Mysql DB 날짜 형식 varchar로 변환 작업 (0) | 2010.11.17 |
---|---|
DATABASE 도서"운명적 존재를 위한 데이터 베이스 설계" 추천 (0) | 2010.10.28 |
데이터베이스에 대한 이야기 - 세번째 시간 (0) | 2010.10.28 |
MS-SQL 무작정 따라하기 - 네번째 (쿼리 정리2) (0) | 2010.10.28 |
MS-SQL 무작정 따라하기 -두번째 시간 (0) | 2010.10.28 |