컨텐츠 내용을 수정할 수 있습니다
관계형 데이터베이스는 자료를 표의 형태로 저장한다.
표를 릴레이션 또는 테이블이라 하고 가로줄을 튜플 또는 행, 세로줄을 속성 또는 열이라 한다.
기본키는 각 행을 유일하게 구별하는 속성으로 중복될 수 없고 비어 있을 수 없다.
외래키는 다른 테이블의 기본키를 참조하는 속성으로 테이블 사이를 연결한다.
환자 테이블의 기본키는 등록번호이며 환자의 인적사항을 담는다.
진료 테이블은 등록번호를 외래키로 두어 환자 테이블과 연결된다.
진단 테이블은 진료번호를 외래키로 두고 진단코드를 담는다.
데이터 정의어(DDL)는 테이블과 같은 구조를 만들고 바꾸고 지우는 명령이다.
데이터 조작어(DML)는 자료를 조회하고 넣고 고치고 지우는 명령이다.
데이터 제어어(DCL)는 권한을 주고 거두는 명령이다.
트랜잭션 제어어(TCL)는 작업을 확정하거나 되돌리는 명령이며 교재에 따라 데이터 제어어에 포함시키기도 한다.
| 분류 | 명령어 | 기능 |
|---|---|---|
| 데이터 정의어(DDL) | CREATE, ALTER, DROP, TRUNCATE, RENAME | 구조를 만들고 바꾸고 삭제 |
| 데이터 조작어(DML) | SELECT, INSERT, UPDATE, DELETE | 자료를 조회 · 삽입 · 수정 · 삭제 |
| 데이터 제어어(DCL) | GRANT, REVOKE | 권한을 부여하고 회수 |
| 트랜잭션 제어어(TCL) | COMMIT, ROLLBACK, SAVEPOINT | 작업을 확정하거나 되돌림 |
DELETE 는 데이터 조작어로 조건에 맞는 행만 지울 수 있고 되돌릴 수 있다.
TRUNCATE 는 데이터 정의어로 모든 행을 지우되 테이블 구조는 남긴다.
DROP 은 데이터 정의어로 테이블의 구조까지 지운다.
결과가 비슷해 보이지만 TRUNCATE 는 DELETE 가 아니라 데이터 정의어에 속한다는 점이 자주 출제된다.
통계 산출을 위한 자료 추출에는 주로 SELECT 문을 사용한다.
보건의료정보관리자는 원자료를 바꾸지 않도록 조회 권한만으로 작업하는 것이 원칙이다.
운영 데이터베이스는 일상적인 업무 처리를 위한 데이터베이스다.
데이터웨어하우스는 여러 곳에 흩어진 자료를 주제별로 통합하여 시계열로 쌓아 둔 분석용 저장소다.
운영 데이터베이스에서 직접 통계를 뽑으면 업무 처리에 부담을 주므로 데이터웨어하우스를 따로 둔다.
병원의 임상 자료를 모아 둔 것을 임상데이터웨어하우스(CDW)라 한다.
데이터마트는 특정 부서나 목적에 맞게 데이터웨어하우스의 일부를 떼어 낸 것이다.
온라인분석처리(OLAP)는 여러 기준을 바꾸어 가며 자료를 들여다보는 다차원 분석 방법이다.
상위 항목에서 하위 항목으로 내려가며 보는 것을 드릴다운, 반대로 올라가며 보는 것을 롤업이라 한다.
뷰는 실제 자료를 갖지 않고 조회 결과만 보여 주는 가상의 테이블이다.
필요한 열만 보여 줄 수 있으므로 원자료를 보호하면서 최소한의 항목만 제공할 수 있다.
SELECT 절에는 조회할 열을 쓴다.
FROM 절에는 조회할 테이블을 쓴다.
WHERE 절에는 행을 걸러내는 조건을 쓴다.
GROUP BY 절에는 묶어서 집계할 기준 열을 쓴다.
HAVING 절에는 묶은 결과를 걸러내는 조건을 쓴다.
ORDER BY 절에는 정렬 기준을 쓴다.
작성 순서는 SELECT → FROM → WHERE → GROUP BY → HAVING → ORDER BY 이다.
처리 순서는 FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY 이다.
ORDER BY 가 가장 마지막에 처리되므로 SELECT 절에서 붙인 별칭을 정렬 기준으로 쓸 수 있다.
별표는 모든 열을 뜻한다.
DISTINCT 는 중복된 행을 하나로 묶어 보여 준다.
환자 테이블의 모든 열을 조회하려면 SELECT * FROM 환자; 와 같이 쓴다.
진료일을 최근 순으로 정렬하려면 SELECT * FROM 진료 ORDER BY 진료일 DESC; 와 같이 쓴다.
진료과별 환자 수를 구하려면 SELECT 진료과, COUNT(*) FROM 진료 GROUP BY 진료과; 와 같이 쓴다.
환자 수가 10명 이상인 진료과만 보려면 GROUP BY 진료과 HAVING COUNT(*) >= 10 을 덧붙인다.
비교 연산자는 같음, 같지 않음, 크다, 작다, 크거나 같다, 작거나 같다를 나타낸다.
논리 연산자 AND 는 두 조건을 모두 만족하는 행, OR 는 어느 하나를 만족하는 행을 고른다.
NOT 은 조건을 만족하지 않는 행을 고른다.
BETWEEN A AND B 는 A 이상 B 이하의 범위를 고르며 양 끝값을 포함한다.
IN 은 괄호 안에 나열한 값 가운데 하나와 일치하는 행을 고른다.
LIKE 는 문자열의 일부를 비교하며 백분율 기호는 임의의 여러 글자, 밑줄은 임의의 한 글자를 뜻한다.
진단코드가 I로 시작하는 행을 고르려면 LIKE 'I%' 와 같이 쓴다.
IS NULL 은 값이 비어 있는 행을, IS NOT NULL 은 값이 있는 행을 고른다.
NULL 은 등호로 비교할 수 없으므로 반드시 IS NULL 을 써야 한다.
| 조건 | 의미 |
|---|---|
| BETWEEN A AND B | A 이상 B 이하 (양 끝값 포함) |
| IN (값1, 값2, …) | 나열한 값 가운데 하나와 일치 |
| LIKE 'I%' | I 로 시작하는 문자열 (%는 여러 글자, _는 한 글자) |
| IS NULL | 값이 비어 있음 (= NULL 로는 비교 불가) |
ORDER BY 는 결과를 정렬하며 기본값은 오름차순이다.
ASC 는 오름차순, DESC 는 내림차순을 뜻한다.
오름차순은 작은 값에서 큰 값으로, 내림차순은 큰 값에서 작은 값으로 늘어놓는다.
여러 열을 쉼표로 나열하면 앞에 쓴 열을 먼저 기준으로 정렬한다.
COUNT 는 행의 수를, SUM 은 합계를, AVG 는 평균을 구한다.
MAX 는 최댓값을, MIN 은 최솟값을 구한다.
COUNT(*) 는 모든 행의 수를 세고 COUNT(열이름) 은 그 열이 비어 있지 않은 행의 수를 센다.
SUM 과 AVG 는 계산할 때 결측값을 제외한다.
AVG 의 분모는 결측이 아닌 값의 개수이므로 결측이 많으면 전체 건수로 나눈 평균과 달라진다.
GROUP BY 는 지정한 열의 값이 같은 행끼리 묶어 집계한다.
진료과별 환자 수를 구하려면 진료과로 GROUP BY 하고 COUNT 를 함께 쓴다.
WHERE 는 묶기 전의 행을 걸러내고 HAVING 은 묶은 뒤의 결과를 걸러낸다.
집계함수를 조건으로 쓰려면 WHERE 가 아니라 HAVING 을 써야 한다.
GROUP BY 를 쓰면 SELECT 절에는 묶는 기준이 된 열과 집계함수만 올 수 있다.
| 구분 | WHERE | HAVING |
|---|---|---|
| 걸러내는 시점 | GROUP BY 이전(개별 행) | GROUP BY 이후(묶인 집단) |
| 집계함수 사용 | 사용할 수 없음 | 사용할 수 있음 |
| 예 | 재원일수가 7 이상인 행만 | 환자 수가 10명 이상인 진료과만 |
조인은 두 개 이상의 테이블을 공통된 열을 기준으로 이어 붙이는 것이다.
환자 테이블과 진료 테이블을 등록번호로 이으면 환자의 인적사항과 진료 내용을 함께 볼 수 있다.
내부조인은 양쪽 테이블에 모두 있는 행만 결과에 남긴다.
외부조인은 짝이 없는 행도 남기고 짝이 없는 쪽은 비어 있는 값으로 채운다.
왼쪽 외부조인은 왼쪽 테이블의 행을 모두 남긴다.
오른쪽 외부조인은 오른쪽 테이블의 행을 모두 남긴다.
완전 외부조인은 양쪽 테이블의 행을 모두 남긴다.
환자 가운데 진료 기록이 없는 사람까지 보려면 외부조인을 써야 한다.
서브쿼리는 SELECT 문 안에 들어간 또 다른 SELECT 문이다.
평균 재원일수보다 긴 환자를 뽑는 것처럼 먼저 계산해야 조건을 만들 수 있을 때 사용한다.
UNION 은 두 조회 결과를 합치면서 중복을 없애고 UNION ALL 은 중복을 그대로 남긴다.
첫째, 요청자의 요구를 확인하여 통계의 목적과 활용 방법을 파악한다.
둘째, 지표의 정의를 확정하여 분자, 분모, 대상 기간, 제외 기준을 정한다.
셋째, 필요한 항목이 어느 자료원에 있는지 확인한다.
넷째, 추출 조건을 작성하여 자료를 뽑는다.
다섯째, 추출한 자료의 건수와 값을 검증한다.
여섯째, 승인 절차를 거쳐 요청자에게 제공하고 제공 내역을 기록한다.
전체 건수가 이미 알고 있는 값과 일치하는지 확인한다.
다른 방법으로 산출한 값과 비교하여 같은 결과가 나오는지 확인한다.
극단적으로 크거나 작은 값이 있는지 확인한다.
추출 조건과 산출식을 문서로 남겨 같은 결과를 다시 얻을 수 있게 한다.
결측값은 값이 입력되지 않은 것이다.
결측값을 그대로 두면 평균과 합계가 왜곡되므로 처리 방법을 미리 정해야 한다.
결측값이 많은 항목은 통계 산출에서 제외하거나 별도로 표시한다.
이상값은 다른 값과 크게 동떨어진 값이다.
이상값은 입력 오류일 수도 있고 실제 값일 수도 있으므로 원자료를 확인한 뒤 판단한다.
같은 환자의 같은 진료가 두 번 들어가지 않았는지 중복을 확인한다.
같은 뜻의 항목이 기관마다 다른 코드로 되어 있으면 표준 코드로 맞춘 뒤 집계한다.
분류 체계가 개정되면 이전 자료와 이후 자료의 코드가 달라지므로 연계표를 사용한다.
통계 목적에 필요한 최소한의 항목만 추출한다.
개인을 알아볼 수 있는 항목은 제거하거나 가명처리한다.
연구 목적으로 제공할 때에는 기관생명윤리위원회의 심의를 거친다.
제공한 자료의 항목, 건수, 제공 대상, 제공 일자를 기록으로 남긴다.
집계 결과라도 대상자 수가 매우 적으면 개인이 드러날 수 있으므로 주의한다.
이런 경우에는 구간을 넓히거나 해당 칸의 값을 표시하지 않는다.
대상자 수가 매우 적은 칸은 개인이 드러날 수 있으므로 표시하지 않는다.
귀무가설은 차이가 없다는 가설이다.
대립가설은 차이가 있다는 가설로 연구자가 밝히고자 하는 내용이다.
검정은 귀무가설이 옳다고 가정한 뒤 관찰된 결과가 나올 확률을 따지는 방식으로 이루어진다.
유의수준은 귀무가설이 옳은데도 기각하는 잘못을 허용하는 한계로 보통 0.05를 쓴다.
유의확률은 귀무가설이 옳다고 할 때 관찰된 결과 이상으로 극단적인 결과가 나올 확률이다.
유의확률이 유의수준보다 작으면 귀무가설을 기각한다.
제1종 오류는 옳은 귀무가설을 기각하는 잘못이다.
제2종 오류는 틀린 귀무가설을 기각하지 못하는 잘못이다.
귀무가설을 기각하지 못한 것을 귀무가설이 옳다고 증명된 것으로 보아서는 안 된다.
검정력은 틀린 귀무가설을 옳게 기각할 확률이다.
표본이 커질수록 검정력은 높아진다.
| 구분 | 내용 | 확률 |
|---|---|---|
| 제1종 오류 | 옳은 귀무가설을 기각함 | 알파(유의수준) |
| 제2종 오류 | 틀린 귀무가설을 기각하지 못함 | 베타 |
| 검정력 | 틀린 귀무가설을 옳게 기각함 | 1 - 베타 |
분석 방법은 결과변수가 연속형인지 범주형인지에 따라 갈린다.
결과변수가 연속형이면 t검정, 분산분석, 상관분석, 회귀분석을 쓴다.
결과변수가 범주형이면 카이제곱검정과 로지스틱 회귀분석을 쓴다.
비교하는 집단이 몇 개인지, 같은 대상을 반복 측정한 것인지도 함께 따진다.
두 집단의 평균을 비교할 때에는 독립표본 t검정을 쓴다.
세 집단 이상의 평균을 비교할 때에는 분산분석을 쓴다.
짝지어진 자료의 전후를 비교할 때에는 대응표본 t검정을 쓴다.
범주형 자료의 분포를 비교할 때에는 카이제곱검정을 쓴다.
두 연속형 변수 사이의 관계의 방향과 세기를 볼 때에는 상관분석을 쓴다.
한 변수로 다른 변수를 설명하거나 예측할 때에는 회귀분석을 쓴다.
결과가 발생과 미발생의 두 가지일 때에는 로지스틱 회귀분석을 쓴다.
로지스틱 회귀분석의 결과는 교차비(오즈비)로 나타내며 1보다 크면 위험이 높다는 뜻이다.
회귀분석에서 결정계수는 독립변수가 종속변수를 설명하는 정도를 0과 1 사이의 값으로 나타낸 것이다.
상관계수는 -1과 1 사이의 값을 갖는다.
양수이면 한 변수가 커질 때 다른 변수도 커지는 관계다.
절댓값이 1에 가까울수록 관계가 강하고 0에 가까울수록 관계가 약하다.
상관관계가 있다고 하여 인과관계가 있는 것은 아니다.
연속형이면서 정규분포를 따르는 자료에는 피어슨 상관계수를, 순서척도이거나 정규분포를 따르지 않는 자료에는 스피어만 상관계수를 쓴다.
t검정과 분산분석은 자료가 정규분포를 따른다는 전제 위에 쓰인다.
전제를 만족하지 않으면 비모수검정을 쓴다.
두 독립 집단은 맨휘트니 U검정, 대응 자료는 윌콕슨 부호순위검정, 세 집단 이상은 크루스칼왈리스 검정을 쓴다.
분산분석은 어느 집단 사이에 차이가 있는지 알려주지 않으므로 사후검정을 함께 시행한다.
카이제곱검정은 기대빈도가 5보다 작은 칸이 많으면 피셔의 정확검정을 쓴다.
| 상황 | 분석 방법 |
|---|---|
| 두 집단의 평균 비교 | 독립표본 t검정 (비모수: 맨휘트니 U검정) |
| 세 집단 이상의 평균 비교 | 분산분석 (비모수: 크루스칼왈리스 검정) |
| 같은 대상의 전후 비교 | 대응표본 t검정 (비모수: 윌콕슨 부호순위검정) |
| 범주형 자료의 분포 비교 | 카이제곱검정 (소표본: 피셔의 정확검정) |
| 두 연속형 변수의 관계 | 상관분석 (피어슨 · 스피어만) |
| 한 변수로 다른 변수를 예측 | 회귀분석 |
| 결과가 발생 · 미발생의 두 범주 | 로지스틱 회귀분석 (결과: 교차비) |
다음 이론을 계속 학습하려면 로그인하세요.
로그인하고 계속 학습필기노트, 하이라이터, 메모는 잘 쓰고 있어?
내보내줘운영진이 검토할게요!
마이페이지에서 차단한 회원을 관리할 수 있어요.