데이터 모델링 정의 및 절차
정보시스템 구축의 대상이 되는 업무 내용을 분석하여 이해하고 약속된 표기법에 의해 표현하는걸 의미
요구사항 분석
어떠한 업무를 시작하기 전에, 해당하는 업무에 대해서 파악하는 단계
개념적 설계
내가 하고자 하는 일의 데이터 간의 관계를 구상하는 단계
ERD 도형의 의미
논리적 설계
엔터티 중심의 상위 수준의 엔터티 중심의 모델이 완성되면, 구체화된 업무중심의 데이터 모델을 만들어 내는 것
물리적 설계
최종적으로 데이터를 관리할 데이터 베이스를 선택하고, 선택한 데이터 베이스에 실제 테이블을 만드는 작업
서울시 병의원 정보 모델링 하기
데이터 현황
요구사항 분석
1.
병원분류명이 총 몇가지 인지?
2.
병원분류별로 몇개씩 있는지? ex) 의원:x개 치과병원:y개 한방병원:z개 …
3.
병원 분류가 몇가지 인지?
4.
서울의 구별로 각 병원이 몇개 있는지 ex) 서울시 금천구 의원, 한방병원, 치과병원, .. 이 각 몇개인지?
5.
구별로 병원이 가장 많은 구는?
6.
이비인후과(0), 외과(1), 내과(2), 소아과(3), 피부과, 성형외과 는 각 몇개인지(category)
개념적 설계
개념적 설계(ERD) 예시
논리적 설계
컬럼명 | 설명 | Type | ex |
id(Pk) | VARCHAR(8) | A1120837 | |
address | 전체 주소 | VARCHAR(90) | ~~ |
district | 서울특별시 00구 | VARCHAR(15) | 서울특별시 강남구 |
category | ...나중에 추가 작성병원분류
c | VARCHAR(1) | A: 종합병원
B: 병원
C: 의원
D: 요양병원
E: 한방병원
G: 한의원
I: 기타
M: 치과병원
N: 치과의원
R: 보건소 |
emergency_room | 응급실운영여부
1 운영
2 운영안함 | INT | 1 또는 2 |
name | 해당 병원의 이름 | VARCHAR(40) | 가로수치과의원 |
subdivision | 세부 분과
피부과, 성형외과, 외과, 내과, 소아과, 가정의학과, 치과, 등 | VARCHAR(10) | 피부과
흉부외과
영상의학과 |
논리적 설계 예시
물리적 설계
테이블 만들기
CREATE TABLE `likelion-db`.`seoul_hospital` (
`id` VARCHAR(8) NOT NULL,
`address` VARCHAR(90) NOT NULL COMMENT '전체 주소',
`district` VARCHAR(15) NOT NULL COMMENT '서울시 00구',
`category` VARCHAR(1) NOT NULL COMMENT '병원분류\nC의원\nE한방병원\nN치과의원\n...나중에 추가 작성\n',
`emergency_room` INT NOT NULL COMMENT '응급실운영여부\n1 운영\n2 운영안함\n',
`name` VARCHAR(40) NOT NULL COMMENT '해당 병원의 이름',
`subdivision` VARCHAR(10) NULL COMMENT '세부 분과\n피부과, 성형외과, 외과, 내과, 소아과, 가정의학과, 치과, 등\n',
PRIMARY KEY (`id`));
SQL
복사
테이블 데이터 삽입
NSERT INTO `likelion-db`.`seoul_hospital`
(`id`,
`address`,
`district`,
`category`,
`emergency_room`,
`name`,
`subdivision`)
VALUES
('A1120837',
'서울특별시 금천구 벚꽃로 286 삼성리더스타워 111~114호 (가산동)',
'서울특별시 금천구',
'C',
2,
'가산기대찬의원',
null);
SQL
복사
참고 - sublime text를 이용한 SQL문 실행