데이터베이스 시스템 개념과
Chap. 2
아키텍처
데이터 모델
데이터베이스 인터페이스
내 용
DBMS 구조
데이터베이스 아키텍처
데이터베이스 유틸리티
실세계 데이터를 어떤 구조로 저장하고, 어떤 연산으로 관리할 것인가 ? 데이터 모델 = 저장구조와 연산을 의미함
이 강좌에서는 관계형 모델을 가정함
데이터 모델
학생(학번, 이름, 전화, 학과, 키, ) 학과(학과명, 전화, 사무실위치, )
실세계 정보
학과(학과명, 전화, 사무실위치, ) 도서(도서명, 출판사, 저자, )
학생
학과
학과명 전화번호
이름
학생
학과
저자 도서
관계형모델 테이블 구조 계층형모델 망형모델
SQL 연산
외부모델 (외부 뷰)
– 각 사용자가 필요로 하는 “테이블의 일부 (뷰)”
예: 인사과 직원은 인사관련 테이블 (인사-뷰) 사용 자재과 직원은 자재관련 테이블 (자재-뷰) 사용
개념모델
데이터 모델 – 3단계
대리점 최종 사용자
개념모델
– DB 내의 전체 테이블 집합 (전체 DB 구조) – 외부모델을 내부모델로 매핑하는 역할
내부모델 (저수준 또는 물리적 데이터 모델)
– 디스크 저장구조를 명시함
예: 학생 테이블은 1번 시스크 300번지부터
12000번지까지 저장되며, 이름 필드는 1번 디스크 500번지부터 550번지까지 저장되어 있음
자동차 공장 대리점 정비소
• 외부 모델 혹은 뷰
특정 사용자의 관심부분을 뷰로 제공 나머지는 각 사용자로부터 은폐함
데이터 모델 – 3단계
외부스키마
•개념 모델
데이터베이스 내 전체 테이블들의 집합
• 내부 모델
디스크 저장구조의 세부 사항과 DB에 대한 접근 경로(인덱스)들의 집합
(데이터 저장위치, 검색도구 등)
관계형 DBMS의 3단계 모델은 뛰어난 데이터 독립성을 제공함
모델간 사상
– 사용자가 외부 스키마 (뷰)를 참조하여 데이터를 요구하면 이를 데이터베이스 내에서 개념 스키마에 대한 요구로 변환하고, 다시 내부 스키마에 대한 요구로의 변환 과정을 거쳐 해당 디스크에 접근하여 데이터를 추출한 후 사용자에게 뷰의
데이터 모델 - 데이터 독립성
형태로 제공하는 과정
데이터 독립성 - 정의
– 상위 수준의 스키마를 변경할 필요 없이 하위 수준의 스키마를 변경할 수 있는 성질로써 저장구조가 변경되어도 뷰 사용자는 영향을 받지 않는 성질
– 사용자 편의성, 응용의 안정성 등 데이터베이스의 지속적인 발전을 위해 중요한 성질임
– 파일 시스템의 경우 파일의 구조가 변경되면 이를 사용하는 응용 프로그램에서 심각한 영향을 받게 됨 (DB 출현의 동기)
데이터베이스 언어
– 데이터 정의어(DDL: Data Definition Language)
• 테이블이나 인덱스 및 뷰를 생성하고 삭제하는 명령어
– 데이터 조작어(DML: Data Manipulation Language)
• 데이터를 삽입, 삭제, 수정하기 위한 조작 언어
데이터베이스 인터페이스
– 질의어 (Query)
• SQL (Structured Query Language)
Database
DBMS
DDL
DML
(SQL)SQ
L
GUI 인터페이스
– 브라우징을 위한 메뉴 기반 인터페이스 – 폼 기반 인터페이스
– 그래픽 사용자 인터페이스
데이터베이스 인터페이스
– 그래픽 사용자 인터페이스 – 자연어 인터페이스
– 초보자를 위한 인터페이스
– 데이터베이스 관리자를 위한 인터페이스
데이터베이스 인터페이스 - GUI
• MS ACCESS GUI (테이블 만들기)
데이터베이스 인터페이스 – 예 (폼 보고서)
저장 데이터 관리자
– 디스크에 저장되어 있는 DB(데이터베이스 또는 카탈로그)에 대한 접근을 제어
데이터 정의어 컴파일러
– 데이터 정의어로 명시된 스키마 정의들을 처리
– 스키마들에 대한 정보(메타 데이터)를 DBMS 카탈로그 안에 저장
런타임 데이터베이스 처리기 (run-time database processor)
– 수행시 데이터베이스 접근을 처리
DBMS 구성모듈
– 수행시 데이터베이스 접근을 처리
질의 컴파일러
– 대화식으로 입력된 고수준 질의들을 처리
프리 컴파일러
(precompiler)– 호스트 프로그래밍 언어로 작성된 응용 프로그램에서 데이터 조작어 명령들을 추출
데이터 조작어 컴파일러
– 데이터 조작어 명령들을 데이터베이스 접근을 위한 목적 코드로 컴파일
DBMS 구성모듈
질의처리기
저장관리기
Client-Server 아키텍처
– 사용자수가 많아지면 서버의 성능이 급격하게 저하됨
– 서버 측에서 모든 사용자의 연결정보를 가지고 있어야 하며, 연결상태를 유지해야 함 (부담)
– 예: 수강신청 DB와 수강신청 프로그램 및 사용자 화면(client)
데이터베이스 아키텍처
응용 서버 DB 서버
Database
PC WS … PC
서버
(응용 프로그램 서버와 데이터베이스 서버)
GUI / 자료입출력 / 간단한 계산 등
3-tier Architecture
– 서버를 기능에 따라 분리함 (응용서버, DB서버)
– 응용서버를 여러 개 둘 수 있으며, DB는 필요할 때만 (클라이언트가 모르게) 연결하므로 보안강화, 성능향상 (대용랑 DB, 사용자가 많을 때 사용)
데이터베이스 아키텍처
Gui Web GUI
Gui Web GUI
…
물건을 배송하는 문제로 비유하면, 직접 내가 배달 할 수도 있고
(클라이언트/서버방식)
택배 회사를 통해서 배달 할 수도 있다
(3-tier 방식)
물건 수량이 적고 그 횟수가 적다면 직접 배달하는 것이 빠르고 저렴한 방법이겠지만, 물건량이 많고 횟수가 빈번하다면
택배회사와 계약을 맺는 것이 빠르고 비용절감