3. 데이터베이스 시스템의 구성
교육 목표 데이터베이스의 주요 용어를 구분할 수 있다 3단계 스키마와 매핑을 설명할 수 있다. 데이터베이스의 각 구성요소를 설명할 수 있다. 최신의 데이터베이스 운영 환경의 출현 배경과 해결 방안을 설명할 수 있다. 금오공과대학 컴퓨터공학부 컴퓨터공학전공
데이터베이스 시스템 데이터베이스? 데이터베이스 관리시스템? 데이터베이스 시스템? 구성 요소 “데이터를 데이터베이스로 저장 관리하여 정보를 생성하는 컴퓨터 중심 시스템” 구성 요소 3단계 데이터베이스(DB) 데이터 언어(Data Language) 사용자(User) 데이터베이스 관리 시스템(DBMS) 데이터베이스 관리자(DBA) 데이터베이스 컴퓨터(Database Computer) 금오공과대학 컴퓨터공학부 컴퓨터공학전공
3단계 데이터베이스 데이터베이스의 3단계 표현 스키마 데이터베이스에 대한 관점(View) : 개인, 기관 전체, 저장장치 외부 단계 개념 단계 내부 단계 스키마 데이터베이스의 구조(데이터 객체, 관계)와 제약조건의 명세 3단계 데이터베이스 구조 외부 스키마 (external schema) 개념 스키마 (conceptual schema) 내부 스키마 (internal schema) 금오공과대학 컴퓨터공학부 컴퓨터공학전공
▶ 스키마 외부 스키마(external schema) 개념 스키마(conceptual schema) 개개 사용자 관점에서의 데이터베이스 정의 전체 데이터베이스의 한 논리적인 부분 개념 스키마(conceptual schema) 범 기관적인 관점에서의 데이터베이스 정의 모든 응용에 대한 전체적인 통합된 데이터 구조 보통 그냥 “스키마” 라고도 함. 내부 스키마(internal schema) 저장장치 관점에서의 데이터베이스 정의 개념 스키마에 대한 저장구조를 정의 금오공과대학 컴퓨터공학부 컴퓨터공학전공
3 단계 학생 데이터베이스 예 외부 스키마 1 (학적과) 외부 스키마 2 (학생과) 개념 스키마 내부 스키마 ST Sn INT Name CHAR(10) Grade INT Dept CHAR(5) STUDENT Sno PIC 9(4) Sname PIC X(10) Year PIC 9(2) Addr PIC X(44) STUDENT Snumber INTEGER Name CAHR(10) Year SMALLINT Grade SMALLINT Dept CHAR(5) Address CHAR(44) 개념 스키마 STORED-STUDENT LENGTH = 71 prefix BYTE(4) OFFSET = 0 Sno BYTE(4) OFFSET = 4 INDEX = STINDX Sname BYTE(4) OFFSET = 8 Syear BYTE(4) OFFSET = 18 Sgrade BYTE(4) OFFSET = 20 Sdept BYTE(4) OFFSET = 22 Saddr BYTE(4) OFFSET = 27 내부 스키마 금오공과대학 컴퓨터공학부 컴퓨터공학전공
▶ 3 단계간의 사상(Mapping) 외부/개념 단계간의 사상 개념/내부 단계간의 사상 ☞ Note 외부 스키마와 개념 스키마간의 대응 관계 정의 응용 인터페이스(application interface) 논리적 데이터 독립성을 제공 개념/내부 단계간의 사상 개념 스키마와 내부 스키마간의 대응 관계 정의 저장 인터페이스(storage interface) 물리적 데이터 독립성을 제공 ☞ Note 3단계간의 사상 ⇒ 데이터 독립성(data independency)의 구현방법 스키마는 컴파일되어 데이터 사전 (카탈로그)에 저장 스키마 다이어그램 ⇒ 스키마의 그래픽 형태로 표현 금오공과대학 컴퓨터공학부 컴퓨터공학전공
3 단계간의 사상(Mapping) 외부 단계 .... 외부 / 개념 사상 ( 응용 인터페이스 ) 개념 단계 개념 / 내부 사상 스키마 1 외부 스키마 .... 2 외부 스키마 n 외부 / 개념 사상 ( 응용 인터페이스 ) 개념 단계 개념 스키마 개념 / 내부 사상 ( 저장 인터페이스 ) 내부 단계 내부 스키마 저 장 데이터베이스 금오공과대학 컴퓨터공학부 컴퓨터공학전공
▶ Note 데이터 사전 (data dictionary) 데이터 디렉토리(data directory) 데이터베이스 관리자(DBA)의 도구 시스템 내의 모든 객체들에 대한 정의나 명세에 관한 정보를 수록 시스템 데이터베이스, 메타 데이터 시스템 카탈로그(catalog)라고도 함 데이터 디렉토리(data directory) 데이터 사전에 수록된 데이터를 참조하는데 필요한 정보를 수록 차이점 데이터 사전: 사용자와 시스템 모두 사용 데이터 디렉토리: 시스템만 사용 금오공과대학 컴퓨터공학부 컴퓨터공학전공
데이터 언어(Data Language) 데이터 정의어 정의 내용 “ 데이터베이스의 정의, 조작, 제어를 위한 시스템과의 통신수단” 데이터 정의어 (DDL : Data Definition Language) 데이터베이스의 정의 및 수정 정의 내용 논리적 데이터 구조의 정의 스키마, 외부 스키마의 기술 물리적 데이터 구조의 정의 내부 스키마 기술 데이터 저장 정의어 (Data Storage Definition Language) 논리적 데이터 구조와 물리적 데이터 구조 간의 사상 정의 금오공과대학 컴퓨터공학부 컴퓨터공학전공
▶ 데이터 조작어(1) 절차적(procedural) DML (DML : Data Manipulation Language) 사용자 (응용 프로그램)와 DBMS 사이의 통신 수단 데이터 처리 연산의 집합 (데이터의 검색, 삽입, 삭제, 변경 연산) 절차적(procedural) DML 저급어 what과 how를 명세 한번에 하나의 레코드만 처리 응용 프로그램 속에 삽입(embedded)되어 사용 DML 예비 컴파일러에 의해 처리 왜 절차적 DML이 필요한가? 금오공과대학 컴퓨터공학부 컴퓨터공학전공
▶ 데이터 조작어(2) 비절차적(non-procedural) DML ☞ Note 고급어 what만 명세(declarative) 한번에 여러 개의 레코드 처리 질의어 (Query Language) 독자적, 대화식 사용 : 커맨드 타입 프로그램의 추상적 표현 ☞ Note 데이터 부속어(DSL, Data Sublanguage) 호스트 프로그램 속에 삽입되어 사용되는 DML 데이터 언어의 완전성 Completeness of data language 사용자가 원하는 어떤 객체도 추출할 수 있고 관계도 표현할 수 있는 능력 금오공과대학 컴퓨터공학부 컴퓨터공학전공
▶ 데이터 제어어 DCL : Data Control Language 공용 데이터베이스 관리를 위해 데이터 제어를 정의하고 기술 데이터 제어 내용 데이터 보안(security) 데이터 무결성(integrity) 데이터 회복(recovery) 병행 수행(concurrency) 관리 목적으로 데이터베이스 관리자(DBA)가 사용 금오공과대학 컴퓨터공학부 컴퓨터공학전공
사용자(User) 데이터베이스를 이용하기 위해 접근하는 사람 일반 사용자(end user) 비절차적 DML(질의어)을 통해서 데이터베이스를 접근 menu, form, graphics 데이터의 삽입, 삭제, 갱신, 검색 응용 프로그래머(application programmer) 호스트 언어 + DML(DSL)을 통해서 데이터베이스를 접근 PL/I, COBOL, PASCAL, C, Java 데이터베이스 관리자 (DBA) DDL과 DCL 을 통해 DB를 정의하고 제어하는 사람 금오공과대학 컴퓨터공학부 컴퓨터공학전공
데이터베이스 관리 시스템(DBMS) 사용자의 요구에 따라 데이터베이스에 대한 모든 연산을 수행 1. 사용자의 접근 요구를 접수/분석 2. 시스템이 이해할 수 있는 형태로 요구를 변환 3. 외부/개념/내부/저장 구조간의 사상을 수행 4. 저장 데이터베이스에 대해 연산을 실행 금오공과대학 컴퓨터공학부 컴퓨터공학전공
▶ DBMS의 구성요소(3) DBMS 일반사용자 응용프로그래머 데이터베이스 관리자 질의어 DML/응용프로그램 DDL/스키마 질의어 처리기 DML 예비컴파일러 DDL컴파일러 DML컴파일러 런타임 데이터베이스 처리기 트랜잭션 관리자 저장 데이터 관리자 DBMS 저장 데이터베이스 카탈로그 (데이터사전) 금오공과대학 컴퓨터공학부 컴퓨터공학전공
▶ DBMS의 구성요소(1) DDL 컴파일러 질의어 처리기 예비 컴파일러 DML 컴파일러 메타 데이터: 파일의 이름과 크기, 데이터 아이템의 이름과 타입, 저장 세부 사항, 스키마 간의 사상 정보, 제약 조건 질의어 처리기 질의문을 파싱, 분석, 컴파일하고 목적 코드를 생성 예비 컴파일러 응용 프로그램에 삽입된 DML을 추출하고 그 자리에 procedure call로 대체 추출된 DML은 DML 컴파일러로 전달 DML 컴파일러 DML 명령어를 목적 코드로 변환 금오공과대학 컴퓨터공학부 컴퓨터공학전공
▶ DBMS의 구성요소(2) 런타임 데이터베이스 처리기 트랜잭션 관리자 저장 데이터관리자 실행 시간에 데이터베이스를 접근 데이터베이스 연산을 수행 트랜잭션 관리자 무결성과 권한 제어 병행제어와 회복 작업 저장 데이터관리자 디스크에 있는 데이터베이스 접근을 제어 기본 OS 모듈(화일관리자, 디스크관리자)을 이용 금오공과대학 컴퓨터공학부 컴퓨터공학전공
데이터베이스 관리자(DBA) DBA의 업무 데이터베이스 시스템의 관리운영에 대한 모든 책임을 지고 있는 사람 데이터베이스 설계와 운영 데이터베이스의 구성요소를 결정 스키마 정의 저장구조와 접근 방법 설정 보안 정책 수립, 권한부여, 유효성 검사 예비(backup), 회복(recovery) 절차의 수립 데이터베이스의 무결성 유지 성능 향상과 새로운 요구에 대응한 데이터베이스의 재구성 데이터 사전의 유지 관리 금오공과대학 컴퓨터공학부 컴퓨터공학전공
▶ DBA의 업무 행정 및 불평 해결 시스템 감시 및 성능 분석 데이터의 표현과 시스템의 문서화에 표준 설정 사용자의 요구 및 불평 해결 시스템 감시 및 성능 분석 시스템 성능의 분석 자원의 이용도, 병목 현상, 장비 성능 등 사용자 요구의 변화, 데이터 사용 추세, 각종 통계의 종합 분석 금오공과대학 컴퓨터공학부 컴퓨터공학전공
하드웨어 : 데이터베이스 컴퓨터 대규모 데이터베이스 (VLDB) GB(gigabyte) : 1024MB TB(terabyte) : 1024GB PB(petabyte) : 1024TB EB(exabyte) : 1024PB kilo- mega- giga- tera- peta- exa- zetta- yotta- hella 데이터베이스 기능만을 효율적으로 수행하기 위한 특수한 목적의 하드웨어 backend processor 지능형 저장 장치 내용식(associative) 메모리 병렬 처리(parallel processing) 금오공과대학 컴퓨터공학부 컴퓨터공학전공
RAC(Real Application Cluster) Failover System Active - Passive System Active – Active System Linux 상에서의 RAC의 장점 Oracle9i Real Application Clusters를 도입하면, 증가된 수요에 대응하여 규모를 변경할 필요가 있을 경우, 새 노드를 사용하기 위해 애플리케이션을 변경하지 않고도 기존 클러스터에 노드를 추가함으로써 이를 간단히 해결할 수 있습니다. 또한 하드웨어 고장 시, 수동 조작에 의하지 않고 자동으로 로드 밸런스되어 다른 노드로 분산됩니다. 금오공과대학 컴퓨터공학부 컴퓨터공학전공
금오공과대학 컴퓨터공학부 컴퓨터공학전공
NAS and SAN Storage System RAID NAS (Network Attached Storage) SAN (Storage Area Network) 금오공과대학 컴퓨터공학부 컴퓨터공학전공
데이터베이스 시스템 구성도 질의어 질의어 저 장 데이터베이스 사용자 1 사용자 2 사용자 3 사용자 n DML/ 응용프로그램 …. 질의어 질의어 사용자 인터페이스 …. 외부 스키마 1 외부 스키마 2 외부 스키마 m 개념 스키마 DBMS 내부 스키마 저 장 데이터베이스 금오공과대학 컴퓨터공학부 컴퓨터공학전공
교육 목표 데이터베이스의 주요 용어를 구분할 수 있다 3단계 스키마와 매핑을 설명할 수 있다. 데이터베이스의 각 구성요소를 설명할 수 있다. 최신의 스토리지 시스템의 출현 배경과 해결 방안을 설명할 수 있다. 금오공과대학 컴퓨터공학부 컴퓨터공학전공