의료정보시스템과데이터베이스 - 서울의대의료정보학강좌 - 20050907 PsyBase 10 데이터베이스의활용 통신 교통 물류 재정 지식경영 문헌정보 사회사업 국방 교육 과학연구 30 년여의짧은연구역사 1000 억불시장의형성 1995 년서울대학교병원신경정신과에서사용되기시작된국내최초의전자의무기록 PsyBase 10 의무기록의하부구조와표면구조 What is the unified view of records? 자료, 정보, 지식 행정기록 의무기록 간호기록 Data 계좌기록 보험기록 Information 전자의무기록하부구조 Knowledge
Data, Data Structure, Abstraction, Knowledge Representation, & Formalism Is_a Grumpy likes Happy Is_a s Grumpy likes Happy Grumpy Happy Is_a likes Happy 파일시스템의문제점 중복 redundancy 일관성부재 inconsistency 모델링불가능 : 나이 : -3 접근성및질의인터페이스 : access & query 파편화 : fragmented, non-integrity 공유? 참조무결성 : reference integrity, constraints 안전성 : safety: system failure, access control DBMS (Database Management System) Database is NOT DBMS Database system: Schema: external, conceptual, internal Database Database Language: DDL definition DCL - control DML - manipulation DBMS 새로운데이터베이스 : Challenge 방대한데이터 복잡한자료형 확장형자료형 멀티미디어 논리연산디비 분산형데이터처리 병렬형데이터처리 데이터베이스의요구사항 Efficiency: 자료접근및갱신의효율적수행 Resilience: 하드웨어작동불량이나소프트웨어에러에도불구하고자료의무결성을손상하지않고견딜수있는능력 Access control: 복수사용자의동시접속이가능해야하며이러한과정의일관성이유지되어야한다 사용자의접근위계질서통제가가능해야한다 Persistence: 자료에접근하는응용프로그램의동작방식에무관하게장기적으로자료의무결성이유지되어야한다
데이터베이스발달사 Hierarchical ( 계층형 ): root nodes - leaves Network ( 네트웍형 ) DAG (directed acyclic graph) 환자환자환자 CODASYL(Conference on Data Systems Language) Relational ( 관계형 ) 나이 성별 맥박 심장 혈압 Object-oriented oriented ( 객체지향형 ) 계층형및네트웍형 네트웍형디비의단점 환자환자환자 특정한질의에대한답을구하기위해서는나무구조나네트웍구조를항해하기위한 나이 성별맥박 매우복잡한프로그램을작성해야한다 ( 예 ) 혈압이 140 이상인 30 세이상남자환자는? 심장 혈압 자료구조를변경해야하는경우 ( 새로운자료를추가할때마다생기는일로서 ) 응용프로그램을그에맞추어수정해야한다 즉, 자료조작 ( 접근, 검색, 갱신등 ) 이자료구조에종속 과다한데이터관리비 관계형데이터베이스의시작 E F Codd in 1970-72 72 Tabular data structure (relations) High level non-procedural(declarative) query language (predicates) Query optimizer 즉, 자료구조에독립적인자료처리 ( 질의 ) 언어체계 Abstraction Barrier 프로그래머생산성향상및최종사용자의직접적인자료접근가능 개체 (Entity) 와속성 (Attribute) 나이 환자개체환자환자환자 성별 심장 개체 속성 값-- 30 맥박 혈압 개체 : 정보의기본단위 속성 : 개체를기술하는특성 값 : 속성의값
관계 (Relationship) ER Modeling 개체 (Entity) - 관계 (Relationship) 환자 사람 주치의사 의사 개념적데이터모델링 개체와개체사이의관계를 E-R diagram 으로표현 E-R Diagram 의기본요소 Relational Model 로쉽게연결됨 개체 (entity) 관계 (relationship) 속성 (attribute) Entity Relationship Modeling Entity Relationship Modeling 환자 _ 이름환자 _ ID 환자-주소환자-우편번호 의사 _ID 의사 _ 이름 소속과 년도학생강좌성적 수강 학점이름장소시간 강좌 학생교수요일횟수 개설 년도 교수 강좌 환자외래진료의사 학생 지도 교수 학번이름학과학년 학과이름직책직급 Entity Relationship Diagram CONTAINS ACCOUNT CHARGE USES PATIENT Pt ID name birth date X-RAY EQUIPMENT READS TREATS COST PHYSICIAN CONSISTS OF MAKES ORDERS EXAM PROFESSIONAL 관계 ( 테이블, Relation) 와레코드 고유번호의사성명환자병록번호환자명 Relation (or Table) Tuple (or Record or Instance) Attribute
주키와보조키 (Primary & Secondary keys) Identifier Primary key: uniquely identify Secondary key: identify (ex Foreign key) 고유번호의사성명병동환자병록번호환자명 123456 홍길동 12 2432554325 김이순 432521 이몽룡 12 4331215955 향단이 532665 초롱이 13 5385358859 한림대 123456 홍길동 13 1243255432 동아리 관계형데이터베이스의예 관계형데이터베이스의예 What s s wrong with this table 고유번호의사성명병동환자병록번호환자명 고유번호 의사성명 담당의병동환자번호 123456 홍길동 12 2432554325 김이순 432521 이몽룡 12 4331215955 향단이 532665 초롱이 13 5385358859 한림대 123456 홍길동 13 12432554325 동아리 123456 홍길동 432521 이몽룡 532665 초롱이 123456 12 132114324 432521 12 559435255 532665 13 582860436 123456 14 998140944 관계형데이터베이스의예 스키마 (Schema) Doctor(Doctor_id Doctor_id,, Doctor_name, Doctor_address, DateOfBirth,, Department) 담당의병동환자번호 123456 12 132114324 432521 12 559435255 532665 13 582860436 123456 14 998140944 환자번호환자명나이성별주소 132114324 홍길동 30 m 559435255 이몽룡 19 m 582860436 초롱이 22 f 998140944 Patient(Patient_id Patient_id,, Patient_name, Patient_address, Patient_phone, DateOfBirth,, Sex) Doctor_Patient(Doctor_id, Doctor_id, Patient_id)
Entity Relationship Diagram CONTAINS ACCOUNT CHARGE USES PATIENT Pt ID name birth date X-RAY EQUIPMENT READS TREATS COST PHYSICIAN CONSISTS OF MAKES ORDERS EXAM PROFESSIONAL 데이터베이스정규화 1NF 2NF 3NF 4NF 5NF 개체무결성 (entity integrity): 기본키는각레코드의기본이되므로 null 값을가질수없다 참조무결성 (referential integrity): 외래키는참조되는테이블에존재하는값이어야한다 도메인무결성 (domain integrity): 속성값은해당속성이소유할수있는속성값을가져야한다 ( 예 : 0< 나이 < 200) 사용자정의무결성 (general integrity): 의료정보학학점은 A, B, C, D, F 로? Schema Modifications DBMS Overview Queries Modifications Query Processor Storage Data Metadata Transaction 구조화질의언어 SQL: Structured Query Language 구조화질의언어 SQL: Structured Query Language Relational algebra 관계대수 Relational calculus 관계함수 Select 행 (R WHERE Condition) Project 열 (R [A1, A2]) Join 두 R의결합 (R JOIN(A1 = B1) S) 한질의의결과도역시관계 (Relation; table) 이다 그러므로 closer 가생기고, 즉, 연속적인연산이가능하다 이러한질의가자료구조에무관하다 자료의참조무결성을유지할수있다
구조화질의언어 SQL: Structured Query Language 의사 ( 면허번호, 성명, 소속과, 생년월일, 성별 ) 담당의사 ( 의사번호, 병록번호, 환자명 ) { 의사 JOIN( 면허번호 = 의사번호 ) 담당의사 }[ 성명, 병록번호 ] SELECT 성명, 병록번호 FROM 의사, 담당의사 WHERE 의사 면허번호 = 담당의사 의사번호 트랜잭션 (Transaction) a a sequence of operations that must appear atomic when executed otherwise, inconsistent database state results Concurrency control: 각트랜잭션을독립실행 Recovery: 각트랜잭션은 all or none serializability & schedulers 관계형데이터베이스의발달 High-level relational query languages Query optimization: high-level language into planed series Theory eliminating redundancy and certain logical anomalies Pages to minimized the cost of access Buffer management algorithms Indexing techniques 분산데이터베이스 Distributed Business is being more and more distributed Distributed vs fragmented W3EMRS: The 1 st Generation W3EMRS: The 1st Generation