의무기록 컨텐츠의 DB 관리 | 마이메르시 MyMerci
제안하기
0 / 2000

의무기록 컨텐츠의 DB 관리

part5. 의무기록 컨텐츠의 DB 관리

1. 데이터베이스의 개념과 구조

(1) 데이터베이스와 데이터베이스 관리시스템

① 데이터베이스의 정의

데이터베이스는 여러 사용자가 공용으로 사용할 목적으로 통합하여 저장한 운영 데이터의 집합이다.

통합된 데이터는 중복을 배제한 데이터라는 뜻이다.

저장된 데이터는 컴퓨터가 접근할 수 있는 저장매체에 보관된 데이터라는 뜻이다.

운영 데이터는 조직의 업무 수행에 반드시 필요한 데이터라는 뜻이다.

공용 데이터는 여러 사용자가 함께 사용하는 데이터라는 뜻이다.

② 파일 시스템의 한계

파일 시스템은 응용 프로그램마다 파일을 따로 두므로 같은 자료가 여러 곳에 중복 저장된다.

중복된 자료 사이에 값이 어긋나는 불일치가 발생한다.

파일의 구조가 바뀌면 응용 프로그램도 고쳐야 하는 데이터 종속성이 생긴다.

③ 데이터베이스 관리시스템의 기능

정의 기능은 데이터의 형식과 구조, 제약조건을 명세하는 기능이다.

조작 기능은 데이터를 삽입, 삭제, 수정, 검색하는 기능이다.

제어 기능은 무결성 유지, 보안과 권한 관리, 동시성 제어, 회복을 담당하는 기능이다.

④ 데이터베이스의 특징

실시간 접근성은 사용자의 질의에 즉시 응답할 수 있다는 성질이다.

계속적인 변화는 삽입, 삭제, 수정을 통해 내용이 계속 달라진다는 성질이다.

동시 공용은 여러 사용자가 같은 자료를 동시에 이용할 수 있다는 성질이다.

내용에 의한 참조는 저장 위치가 아니라 자료의 내용으로 자료를 찾는다는 성질이다.

⑤ 핵심 요약표

구분내용
통합된 데이터중복을 배제한 데이터
저장된 데이터컴퓨터가 접근 가능한 매체에 보관된 데이터
운영 데이터업무 수행에 반드시 필요한 데이터
공용 데이터여러 사용자가 함께 사용하는 데이터

📌 실전 체크 포인트!

데이터베이스의 네 가지 정의 요소: 통합 · 저장 · 운영 · 공용

데이터베이스의 네 가지 특징: 실시간 접근성 · 계속적인 변화 · 동시 공용 · 내용에 의한 참조

DBMS의 세 기능: 정의 · 조작 · 제어

파일 시스템의 두 문제는 데이터 중복과 데이터 종속성이다.

(2) 3단계 스키마와 데이터 독립성

① 스키마의 개념

스키마는 데이터베이스의 구조와 제약조건에 관한 명세를 말한다.

미국국가표준협회(ANSI)의 ANSI/X3/SPARC 위원회가 1975년 제안한 3단계 구조에 따라 스키마를 외부, 개념, 내부로 나눈다.

② 세 단계

외부 스키마는 개별 사용자나 응용 프로그램이 보는 관점의 구조로, 서브 스키마 또는 뷰라고도 한다.

개념 스키마는 조직 전체의 관점에서 데이터베이스 전체를 정의한 구조이며 데이터베이스에 하나만 존재한다.

내부 스키마는 데이터가 저장장치에 실제로 저장되는 방법을 정의한 구조이며 하나만 존재한다.

③ 데이터 독립성

논리적 독립성은 개념 스키마가 바뀌어도 외부 스키마와 응용 프로그램이 영향을 받지 않는 성질이다.

물리적 독립성은 내부 스키마가 바뀌어도 개념 스키마가 영향을 받지 않는 성질이다.

④ 데이터 사전과 메타데이터

메타데이터는 데이터를 설명하는 데이터로, 데이터의 의미와 형식, 관계를 기술한다.

데이터 사전은 데이터베이스에 저장된 데이터에 관한 정보를 모아 둔 것으로 시스템 카탈로그라고도 한다.

데이터 사전에는 테이블과 속성의 정의, 제약조건, 인덱스, 사용자 권한 등이 담긴다.

사용자는 시스템 카탈로그를 SELECT로 검색할 수 있을 뿐 INSERT, UPDATE, DELETE로 직접 갱신할 수 없다.

갱신은 데이터 정의어가 실행될 때 데이터베이스 관리시스템이 자동으로 수행한다.

⑤ 핵심 비교표

스키마관점특징
외부 스키마개별 사용자·응용 프로그램서브 스키마 또는 뷰, 여러 개 존재
개념 스키마조직 전체데이터베이스에 하나만 존재
내부 스키마저장장치실제 저장 방법의 정의, 하나만 존재

📌 실전 체크 포인트!

스키마 3단계: 외부 · 개념 · 내부. 개념 스키마는 하나만 존재한다.

논리적 독립성은 개념과 외부 사이, 물리적 독립성은 내부와 개념 사이의 문제다.

데이터 사전은 시스템 카탈로그라고도 하며 메타데이터를 담는다.

시스템 카탈로그는 사용자가 직접 갱신할 수 없고 DDL 실행 시 시스템이 자동 갱신한다.

2. 관계형 데이터베이스

(1) 릴레이션의 구조

① 구성 요소

릴레이션은 행과 열로 이루어진 이차원 표 형태의 자료 구조이며 테이블이라고도 한다.

속성은 릴레이션의 열에 해당하며 필드라고도 한다.

튜플은 릴레이션의 행에 해당하며 레코드라고도 한다.

도메인은 하나의 속성이 가질 수 있는 원자값들의 집합이다.

② 릴레이션의 특성

한 릴레이션 안에 같은 튜플이 두 번 나타나지 않는다.

튜플 사이에는 순서가 없다.

속성 사이에도 순서가 없다.

모든 속성값은 더 이상 나눌 수 없는 원자값이다. 이 성질이 제1정규형의 근거가 된다.

③ 차수와 카디널리티

차수는 릴레이션이 가진 속성의 개수다.

카디널리티는 릴레이션이 가진 튜플의 개수다.

속성의 수는 잘 바뀌지 않지만 튜플의 수는 자료가 쌓이면서 계속 변한다.

④ 핵심 요약표

용어대응의미
릴레이션테이블행과 열로 이루어진 이차원 표
속성열, 필드릴레이션의 항목
튜플행, 레코드릴레이션의 개별 자료
도메인값의 범위속성이 가질 수 있는 원자값들의 집합
차수속성의 개수열의 수
카디널리티튜플의 개수행의 수

📌 실전 체크 포인트!

차수는 속성(열)의 개수, 카디널리티는 튜플(행)의 개수다.

속성은 열·필드, 튜플은 행·레코드로 대응한다.

릴레이션의 특성 네 가지: 튜플의 유일성 · 튜플 순서 무관 · 속성 순서 무관 · 속성값의 원자성

(2) 키와 무결성 제약

① 키의 종류

슈퍼키는 튜플을 유일하게 식별할 수 있는 속성 또는 속성의 집합이다.

후보키는 슈퍼키 가운데 더 이상 줄일 수 없는 최소성을 갖춘 키다.

기본키는 후보키 가운데 대표로 선정한 키다.

대체키는 후보키 가운데 기본키로 선정되지 않은 나머지 키다.

외래키는 다른 릴레이션의 기본키를 참조하는 속성이며 널 값을 가질 수 있다.

② 무결성 제약

개체 무결성은 기본키를 구성하는 속성이 널 값을 가질 수 없고 중복될 수 없다는 제약이다.

참조 무결성은 외래키의 값이 참조하는 릴레이션의 기본키 값과 일치하거나 널이어야 한다는 제약이다.

도메인 무결성은 속성의 값이 정해진 도메인에 속해야 한다는 제약이다.

③ 핵심 비교표

정의
슈퍼키튜플을 유일하게 식별하는 속성 또는 속성 집합
후보키유일성과 최소성을 모두 갖춘 키
기본키후보키 가운데 대표로 선정한 키
대체키기본키로 선정되지 않은 나머지 후보키
외래키다른 릴레이션의 기본키를 참조하는 속성

📌 실전 체크 포인트!

슈퍼키는 유일성만, 후보키는 유일성과 최소성을 모두 갖춘다.

기본키는 널 값을 가질 수 없다. 이것이 개체 무결성이다.

외래키는 참조하는 기본키 값과 일치하거나 널이어야 한다. 이것이 참조 무결성이다.

3. 데이터 모델링과 정규화

(1) 데이터 모델링

① 설계 단계

개념적 설계는 현실 세계의 요구사항을 개체와 관계로 표현하는 단계이며 개체-관계 다이어그램을 작성한다.

논리적 설계는 개념적 모형을 특정 데이터베이스 모형에 맞는 논리 구조로 변환하는 단계이며 정규화를 수행한다.

물리적 설계는 저장 구조, 인덱스, 접근 경로를 정하는 단계다.

② 개체-관계 다이어그램

개체-관계 다이어그램은 개체, 속성, 관계로 데이터 구조를 표현한 그림이다.

첸(Peter Chen)이 1976년 제시한 표기법에서 개체는 사각형, 속성은 타원, 관계는 마름모로 나타낸다.

실무에서 널리 쓰이는 까마귀발(Crow's Foot) 표기법에서는 속성을 사각형 안에 목록으로 적고 관계를 선과 까마귀발 기호로 나타낸다.

관계에는 일 대 일, 일 대 다, 다 대 다의 대응 관계가 표시된다.

③ 핵심 요약표

단계산출물과 활동
개념적 설계개체와 관계의 도출, 개체-관계 다이어그램 작성
논리적 설계논리 구조로의 변환, 정규화 수행
물리적 설계저장 구조, 인덱스, 접근 경로의 결정

📌 실전 체크 포인트!

개체-관계 다이어그램은 개념적 설계 단계의 산출물이다.

사각형·타원·마름모 표기는 첸 표기법이며, 실무에서는 까마귀발 표기법이 널리 쓰인다.

정규화는 논리적 설계 단계에서 수행한다.

(2) 이상현상과 정규화

① 이상현상

삽입 이상은 자료를 넣을 때 원하지 않는 값까지 함께 넣어야 하거나, 다른 자료가 없어 삽입 자체가 불가능한 문제다.

삭제 이상은 자료를 지울 때 지우지 말아야 할 값까지 함께 지워지는 문제다.

갱신 이상은 중복된 값 가운데 일부만 고쳐져 자료가 어긋나는 문제다.

이 세 가지는 릴레이션에 여러 개념이 뒤섞여 있을 때 발생한다.

② 함수 종속

속성 X의 값이 정해지면 속성 Y의 값이 하나로 정해질 때 Y는 X에 함수적으로 종속된다고 하고 X를 결정자, Y를 종속자라 한다.

부분 함수 종속은 복합키의 일부 속성만으로도 다른 속성이 결정되는 경우다.

완전 함수 종속은 복합키 전체가 있어야 다른 속성이 결정되는 경우다.

이행적 함수 종속은 X가 Y를 결정하고 Y가 Z를 결정할 때 X가 Z를 결정하게 되는 경우다.

③ 정규화의 단계

제1정규형은 모든 속성의 값이 원자값이어야 한다는 조건을 만족하는 형태다.

제2정규형은 제1정규형을 만족하면서 부분 함수 종속을 제거하여 기본키가 아닌 모든 속성이 기본키에 완전 함수 종속되는 형태다.

제3정규형은 제2정규형을 만족하면서 기본키가 아닌 모든 속성이 기본키에 이행적으로 함수 종속되지 않는 형태다.

보이스-코드 정규형은 제3정규형을 만족하면서 모든 결정자가 후보키인 형태이며 강한 제3정규형이라고도 한다.

제4정규형은 다치 종속을 제거한 형태다.

제5정규형은 조인 종속을 제거한 형태다.

④ 정규화와 반정규화

정규화의 목적은 중복을 제거하여 이상현상을 없애고 자료의 일관성을 유지하는 것이다.

정규화를 진행하면 릴레이션의 수가 늘어나 조인이 많아지고 조회 성능이 떨어질 수 있다.

반정규화는 성능을 위해 의도적으로 중복을 허용하거나 릴레이션을 합치는 것이다.

⑤ 핵심 비교표

단계조건
제1정규형모든 속성의 값이 원자값
제2정규형부분 함수 종속 제거, 기본키에 완전 함수 종속
제3정규형기본키가 아닌 속성이 기본키에 이행적으로 종속되지 않음
보이스-코드 정규형모든 결정자가 후보키(강한 제3정규형)
제4정규형다치 종속 제거
제5정규형조인 종속 제거

📌 실전 체크 포인트!

이상현상 세 가지: 삽입 이상 · 삭제 이상 · 갱신 이상

정규형 순서 대구 도부이결다조: 도메인 원자값 – 부분 함수 종속 제거 – 이행적 함수 종속 제거 – 결정자가 후보키 – 다치 종속 제거 – 조인 종속 제거

제3정규형의 기준점은 기본키다. 기본키가 아닌 속성이 기본키에 이행적으로 종속되지 않아야 한다.

반정규화는 성능을 위해 의도적으로 중복을 허용하는 것이다.

4. SQL과 데이터 활용

(1) SQL의 분류

① 데이터 정의어(DDL)

데이터 정의어는 데이터베이스의 구조를 정의하는 명령이다.

CREATE는 테이블·뷰·인덱스 등의 객체를 생성한다.

ALTER는 이미 만들어진 객체의 구조를 변경한다.

DROP은 객체를 구조까지 완전히 삭제한다.

TRUNCATE는 객체의 구조는 남기고 그 안의 모든 행을 삭제한다.

② 데이터 조작어(DML)

데이터 조작어는 저장된 자료를 다루는 명령이다.

SELECT는 자료를 검색하고, INSERT는 삽입하며, UPDATE는 수정하고, DELETE는 삭제한다.

DELETE는 행을 삭제하는 데이터 조작어이고, DROP은 객체 자체를 삭제하는 데이터 정의어다.

③ 데이터 제어어(DCL)와 트랜잭션 제어어(TCL)

데이터 제어어는 사용자의 권한을 다루는 명령으로 GRANT와 REVOKE가 있다.

트랜잭션 제어어는 트랜잭션의 확정과 취소를 다루는 명령으로 COMMIT, ROLLBACK, SAVEPOINT가 있다.

COMMIT은 트랜잭션의 결과를 데이터베이스에 영구적으로 반영하는 명령이다.

ROLLBACK은 트랜잭션의 결과를 취소하고 이전 상태로 되돌리는 명령이다.

SAVEPOINT는 트랜잭션 안에 되돌아갈 지점을 지정하는 명령이다.

SQL을 세 계열로 나누는 전통적인 구분에서는 COMMIT, ROLLBACK, SAVEPOINT를 데이터 제어어에 함께 포함시키기도 한다.

④ 권한의 부여와 회수

GRANT는 사용자에게 특정 객체에 대한 권한을 부여하는 명령이다.

REVOKE는 부여한 권한을 회수하는 명령이다.

GRANT에 WITH GRANT OPTION을 붙이면 권한을 받은 사용자가 그 권한을 다시 다른 사용자에게 부여할 수 있다.

REVOKE의 CASCADE는 회수하려는 권한에 딸려 부여된 권한까지 함께 회수하는 방식이다.

REVOKE의 RESTRICT는 딸려 부여된 권한이 있으면 회수를 수행하지 않는 방식이다.

의무기록 데이터베이스에서 접근권한 관리는 이 두 명령으로 이루어진다.

⑤ 핵심 요약표

계열명령기능
DDLCREATE, ALTER, DROP, TRUNCATE구조의 생성·변경·삭제
DMLSELECT, INSERT, UPDATE, DELETE자료의 검색·삽입·수정·삭제
DCLGRANT, REVOKE권한의 부여·회수
TCLCOMMIT, ROLLBACK, SAVEPOINT트랜잭션의 확정·취소

📌 실전 체크 포인트!

권한을 주는 명령은 GRANT, 거두는 명령은 REVOKE다.

SELECT는 DDL이 아니라 DML이다.

DELETE는 DML, DROP과 TRUNCATE는 DDL이다.

COMMIT · ROLLBACK · SAVEPOINT는 트랜잭션 제어어(TCL)로 분류한다.

(2) SELECT 문의 구성

① 작성 순서와 실행 순서

SELECT 문은 SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY의 순서로 작성한다.

실제 처리는 FROM, WHERE, GROUP BY, HAVING, SELECT, ORDER BY의 순서로 이루어진다.

SELECT 절에서 붙인 별칭을 WHERE 절에서 쓸 수 없고 ORDER BY 절에서는 쓸 수 있는 것은 이 실행 순서 때문이다.

WHERE는 개별 행을 걸러내는 조건이다.

GROUP BY는 지정한 속성의 값이 같은 행을 묶는다.

HAVING은 묶인 그룹을 걸러내는 조건이다.

ORDER BY는 결과를 정렬하며 오름차순은 ASC, 내림차순은 DESC로 지정한다. 생략하면 오름차순이다.

② WHERE와 HAVING의 구별

WHERE 절에는 집계 함수를 쓸 수 없다.

HAVING 절에는 집계 함수를 쓸 수 있다.

집계 함수의 값은 그룹으로 묶은 뒤에 산출되므로 그보다 앞서 처리되는 WHERE에서는 참조할 수 없다.

HAVING은 GROUP BY 없이도 쓸 수 있으며, 이때는 테이블 전체가 하나의 그룹이 된다.

③ 집계 함수

COUNT는 행의 개수, SUM은 합계, AVG는 평균, MAX는 최댓값, MIN은 최솟값을 구한다.

COUNT(*)는 널 값을 포함한 전체 행의 개수를 센다.

COUNT(컬럼명)은 그 컬럼의 값이 널이 아닌 행의 개수를 센다.

SUM, AVG, MAX, MIN은 널 값을 제외하고 계산한다.

AVG는 널 값을 분모에서도 제외하므로 널이 0으로 계산되지 않는다.

집계 함수는 GROUP BY와 함께 쓰여 그룹별 값을 산출한다.

GROUP BY 없이 쓰면 테이블 전체를 하나의 그룹으로 보아 하나의 값을 산출한다.

④ 조인

조인은 두 개 이상의 테이블을 연결하여 조회하는 것이다.

내부 조인(INNER JOIN)은 양쪽 모두에 대응하는 값이 있는 행만 결과에 포함한다.

외부 조인(OUTER JOIN)은 대응하는 값이 없는 행도 결과에 포함하고, 짝이 없는 쪽의 속성은 널 값으로 채운다.

왼쪽 외부 조인(LEFT OUTER JOIN)은 왼쪽 테이블의 행을 모두 포함한다.

오른쪽 외부 조인(RIGHT OUTER JOIN)은 오른쪽 테이블의 행을 모두 포함한다.

완전 외부 조인(FULL OUTER JOIN)은 양쪽 테이블의 행을 모두 포함한다.

교차 조인(CROSS JOIN)은 조건 없이 두 테이블의 모든 행을 짝지어 N×M개의 행을 만드는 카티션 프로덕트(Cartesian product)다.

자체 조인(SELF JOIN)은 하나의 테이블을 자기 자신과 조인하는 것으로 별칭을 붙여 구분해야 한다.

⑤ 핵심 비교표

기능적용 시점
FROM조회 대상 테이블을 지정가장 먼저
WHERE개별 행을 걸러냄 (집계 함수 사용 불가)그룹으로 묶기 전
GROUP BY값이 같은 행을 묶음행을 묶는 단계
HAVING묶인 그룹을 걸러냄 (집계 함수 사용 가능)그룹으로 묶은 뒤
SELECT출력할 속성을 지정HAVING 다음
ORDER BY결과를 정렬마지막

📌 실전 체크 포인트!

작성 순서: SELECT – FROM – WHERE – GROUP BY – HAVING – ORDER BY

실행 순서: FROM – WHERE – GROUP BY – HAVING – SELECT – ORDER BY

WHERE는 행을, HAVING은 그룹을 걸러낸다. 이 차이가 가장 자주 나온다.

COUNT(*)는 널을 포함하고, COUNT(컬럼)과 나머지 집계 함수는 널을 제외한다.

ORDER BY에서 정렬 방식을 생략하면 오름차순이다.

(3) 데이터웨어하우스와 데이터마트

① 데이터웨어하우스

데이터웨어하우스는 의사결정을 지원하기 위해 여러 원천의 자료를 통합하여 축적한 데이터베이스다.

인몬(Bill Inmon)은 데이터웨어하우스를 주제 지향적(subject-oriented), 통합적(integrated), 시계열적(time-variant), 비휘발적(nonvolatile)인 자료의 집합으로 정의하였다.

주제 지향적이라는 것은 업무 처리 단위가 아니라 분석 주제를 중심으로 자료를 구성한다는 뜻이다.

통합적이라는 것은 서로 다른 원천의 자료를 일관된 형식으로 맞추어 담는다는 뜻이다.

시계열적이라는 것은 특정 시점의 자료를 시간에 따라 축적한다는 뜻이다.

비휘발적이라는 것은 적재와 조회만 이루어지고 이미 적재된 자료의 갱신·삭제는 일어나지 않는다는 뜻이다.

② 추출·변환·적재(ETL)

추출(Extract)은 원천 시스템에서 필요한 자료를 뽑아내는 단계다.

변환(Transform)은 뽑아낸 자료를 일관된 형식과 코드 체계로 맞추고 오류를 정제하는 단계다.

적재(Load)는 변환된 자료를 데이터웨어하우스에 저장하는 단계다.

데이터웨어하우스의 통합적 특성은 이 추출·변환·적재 과정을 통해 구현된다.

③ 데이터마트와 분석

데이터마트는 특정 부서나 주제에 맞추어 데이터웨어하우스의 일부를 떼어 구성한 것이다.

온라인 분석처리(OLAP)는 다차원으로 구성된 자료를 여러 각도에서 조회하고 요약하는 방식이다.

데이터마이닝은 대량의 자료에서 규칙이나 패턴을 찾아내는 분석 기법이다.

④ 온라인 분석처리의 연산

롤업(Roll-up)은 요약 수준을 높여 상위 차원으로 집계하는 연산이다.

드릴다운(Drill-down)은 요약 수준을 낮추어 하위 차원의 상세 자료로 내려가는 연산이다.

슬라이싱(Slicing)은 하나의 차원을 고정하여 단면을 잘라 보는 연산이다.

다이싱(Dicing)은 두 개 이상의 차원에 조건을 걸어 부분 집합을 잘라 보는 연산이다.

피벗(Pivoting)은 분석의 축을 바꾸어 자료를 다른 방향에서 보는 연산이다.

⑤ 핵심 요약표

특징내용
주제 지향적분석 주제를 중심으로 자료를 구성
통합적서로 다른 원천의 자료를 일관된 형식으로 통합
시계열적시점별 자료를 시간에 따라 축적
비휘발적적재와 조회만 이루어지고 갱신·삭제는 일어나지 않음

📌 실전 체크 포인트!

데이터웨어하우스의 네 가지 특징: 주제 지향적 · 통합적 · 시계열적 · 비휘발적

데이터마트는 데이터웨어하우스의 일부를 특정 부서나 주제에 맞게 구성한 것이다.

OLAP 연산 다섯 가지: 롤업 · 드릴다운 · 슬라이싱 · 다이싱 · 피벗

슬라이싱은 한 개 차원, 다이싱은 두 개 이상 차원을 기준으로 잘라 본다.

다음 이론을 계속 학습하려면 로그인하세요.

로그인하고 계속 학습
컨텐츠를 그만볼래?

필기노트, 하이라이터, 메모는 잘 쓰고 있어?

내보내줘
어떤 폴더에 저장할래?

컨텐츠 노트에는 총 0개의 폴더가 있어!

폴더 만들기
컨텐츠 만들기
만들기
신고했어요.

운영진이 검토할게요!

해당 유저를 차단했어요.

마이페이지에서 차단한 회원을 관리할 수 있어요.