반응형
ShakeJ
MNWorld
ShakeJ
전체 방문자
오늘
어제
  • 카테고리 N
    • Contact
    • 🤔그냥이야기
    • 📷사진이야기
    • 제주도에서 한달을 살아보았다
    • 옛글 N
      • 👇Blog
      • 공지사항
      • 이슈 N
      • 생각들
      • 👇취미
      • 건프라
      • 👇Review
      • 노래리뷰
      • 영화리뷰
      • 👇Travel Story
      • 2011 도쿄여행기
      • 2013 Google IO
      • 2013 Jeju
      • 2014 HONGKONG
      • 2014 Jeju
      • 2014 Sanfransis..
      • 2015 Lombok
      • 2016 HONGKONG
      • 2017 Saigon
      • 국내여행기
      • Photo Story
      • Growth
      • 👇Server
      • Ruby on the Rai..
      • Frontend
      • FullStack (MEAN..
      • Ubuntu
      • 👇Android
      • 안드로이드 프로그래밍
      • 번역본
      • 내어플이야기
      • 코드창고
      • 👇iOS
      • 아이폰 프로그래밍
      • 맥북 이야기
      • 👇Microsoft
      • ASP.NET
      • Silverlight
      • 윈도우 이야기
      • 👇IT Story
      • 모바일 이야기
      • 하드웨어 이야기 N
      • 네트워크 이야기
      • 프로그래밍이야기
      • Database이야기
      • 클라우드이야기
      • 프론트 이야기
      • 마케팅이야기
      • 그래픽 작업
      • 블로그 팁

블로그 메뉴

  • GuestBook

공지사항

인기 글

태그

  • 블로그 잡담
  • asp.net
  • 배너교환
  • 블로그 초보
  • 티스토리
  • 블로그 운영하면서
  • 블로그 처음
  • 블로그 꾸미기
  • 블로그 팁
  • 무료배너제작
  • 서울 출사지
  • 배너무료제작
  • 초대장
  • MNWorld
  • 티스토리 팁
  • 블로그 운영
  • D40 사진
  • shakej
  • 블로그 관련
  • 블로그 만들기
  • 안드로이드 어플 추천
  • 블로그 시작하기
  • 랩
  • iOS 프로그래밍
  • 블로그 이야기
  • 풍경사진
  • 윈도우폰7
  • 티스토리 초대장
  • 블로그 운영하기
  • 배너제작

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
ShakeJ

MNWorld

옛글/Database이야기

데이터 베이스에 대한 이야기 - 네번째 시간

2010. 10. 28. 17:36
반응형














DB모델링

DB모델링을 하기 위해선 요구분석을 제일 먼저 해야 합니다. 제일 처음에 그들이 원하는 데이터베이스에 대해서 분석을 한다는

과정입니다.

예를 들어 데이터베이스를 만들어 달라고 한 병원이 근무하는 의사의 이름, 직급, 소속정보를 관리해야 하며, 환자의 경우 이름, 성별, 생년월일과 연락처 정보가 주요하게 다루어지며, 진료담당의가 할당되며, 진료일자, 진료시각,병명,처방전이 빈번히 활용된다는 요구를 했습니다.

1. 의사는 이름, 직급,소속정보만 관리한다.
2. 환자는 이름, 성별, 생년월일, 연락처 정보만 관리한다.
3. 한 사람의 의사가 한사람의 환자를 진료한다.
4. 진료시 진료일자, 진료시각, 병명, 처방전만 기록한다.

라고 요구를 간단히 분석 할 수 있습니다.

그러면 위의 의사와 환자와 진료의 관계에서 key가 존재하는가 ? 알아봐야합니다.

식별자는 다른 테이블과(의사의 식별자는 환자와 구별이 되는 속성이겠죠) 구별이 되어야 합니다. 의사의 이름,직급,소속중 중복되지 않는 식별자를 정해주어야 합니다. 위에서는 특별히 식별자가 보이질 않네요. 예를 들어, 학번이나 사번, 사용자 ID라고 생각하시면 됩니다. 속성 중에 위와 같이 식별자가 없을 시, 식별자 역할을 할 유일한 식별자 속성을 만들어야 합니다!


* 주민번호는 식별자로 불가능 합니다. 이유는 식별자는 외부로 노출이 되기 때문이죠^^

그럼 의사의 속성에는 이름, 직급, 소속 이외에도 의사ID 라는 속성을 만들어야 합니다.


의사: 의사ID, 이름, 직급, 소속
진료: 진료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
    추천글👇
    • [📷사진이야기] 붉은 호치민의 노을
    ShakeJ
    ShakeJ

    티스토리툴바