제 2 장 데이터베이스 시스템 개념과 아키텍처 Fundamentals of Database Systems 제 2 장 데이터베이스 시스템 개념과 아키텍처 Fundamentals of Database Systems R. A. Elmasri and S. B. Navathe © 2005 황규영 홍의경 음두헌 박영철 김진호 조완섭
Fundamentals of Database Systems 목 차 2.1 데이터 모델, 스키마, 인스턴스 2.2 3단계-스키마 아키텍처와 데이터 독립성 2.3 데이터베이스 언어와 인터페이스 2.4 데이터베이스 시스템 환경 2.5 DBMS를 위한 중앙집중식과 클라이언트/서버 아키텍처 2.6 데이터베이스 관리 시스템의 분류 2.6 요약 Ch2 Fundamentals of Database Systems
Fundamentals of Database Systems 2.1 데이터 모델, 스키마, 인스턴스 데이터 모델 데이터베이스 구조(데이터 타입, 관계, 제약 조건)들을 명시하기 위해 사용할 수 있는 개념들의 집합 데이터베이스에서 검색과 갱신을 수행하는 기본 연산(삽입, 삭제, 갱신, 검색)들의 집합을 포함 점차 DB 응용의 동적 측면 또는 행동이 데이터 모델에 포함됨 사용자 정의 연산(user defined operation) (예) COMPUTE_GPA Ch2 Fundamentals of Database Systems
Fundamentals of Database Systems 2.1.1 데이터 모델의 분류 저수준(물리적) 데이터 모델 어떻게 데이터가 컴퓨터에 저장되는지의 세부 사항을 명시하는 개념을 제공 하드웨어에 의존적, 일반이의 이해가 어려움 레코드 형식, 레코드 순서, 접근경로 정의 고수준(개념적) 데이터 모델 사용자들이 데이터를 인식하는 방식에 대한 개념을 제공 하드웨어에 독립적, 일반이의 이해가 쉬움 Entity Relationship Diagram: 개체, 속성, 관계 표현(구현) 데이터 모델 고수준 모델과 저수준 모델 사이에 존재 일반 사용자들이 이해할 수 있는 개념을 제공 데이터 저장 구조의 세부 사항을 은폐하지만 컴퓨터 상에서 직접 구현 가능함 상용 DBMS에서 많이 사용함 – 관계모델이 대표적임 (계층/네트워크 모델은 과거에 많이 이용됨) Ch2 Fundamentals of Database Systems
Fundamentals of Database Systems 2.1.2 스키마, 인스턴스, 데이터베이스 상태 데이터베이스 스키마 (또는 메타데이터) 데이터베이스에 대한 기술(Description) 데이터베이스 설계 과정에서 명시하며 자주 변경되지 않음 스키마 다이어그램 데이터베이스 스키마를 도식화한 것 레코드 타입의 이름, 데이터 항목의 이름, 일부 제약 조건 유형들과 같은 스키마의 일부 관점만을 나타냄 Ch2 Fundamentals of Database Systems
Fundamentals of Database Systems [그림 2.1] 그림 1.2의 데이터베이스에 대한 스키마 다이어그램 Ch2 Fundamentals of Database Systems
Fundamentals of Database Systems 2.1.2 스키마, 인스턴스, 데이터베이스 상태 (cont.) 데이터베이스 상태 어커런스나 인스턴스들의 집합이라고도 함 어떤 특정 시점에 데이터베이스에 들어 있는 데이터 데이터베이스에 갱신 연산이 수행될 때마다 새로운 다른 데이터베이스 상태를 가짐 DBMS는 데이터베이스 상태가 스키마에 명시된 구조와 제약조건을 만족하는 유효한 상태임을 보장하는 책임을 일부 가짐 내포와 외연 일반적으로 스키마는 내포(intension)라 하고, 데이터베이스 상태는 외연(extension)이라 함 Ch2 Fundamentals of Database Systems
Fundamentals of Database Systems 2.2 3단계-스키마 아키텍처와 데이터 독립성 2.2.1 3단계-스키마 아키텍처 2.2.2 데이터 독립성 Ch2 Fundamentals of Database Systems
Fundamentals of Database Systems 2.2.1 3단계-스키마 아키텍처 3단계-스키마 아키텍처의 목적 사용자의 응용과 물리적 데이터베이스의 분리가 목적임 3단계-스키마 아키텍처 1. 내부(Internal) 단계 – 내부 스키마 2. 개념(Conceptual) 단계 – 개념 스키마 3. 외부(External) 또는 뷰 단계 – 외부 스키마 또는 사용자 뷰 사상 (Mapping) 외부 스키마를 참조하여 사용자가 데이터를 요구하면 이를 데이터베이스 내에서 개념 스키마에 대한 요구로 변환하고, 다시 내부 스키마에 대한 요구로 변환 과정을 거쳐 저장된 데이터베이스에 접근하여 데이터를 추출한 후 사용자의 뷰와 일치하도록 재구성하는 과정 Ch2 Fundamentals of Database Systems
Fundamentals of Database Systems 2.2.1 3단계-스키마 아키텍처(cont.) 내부 단계 내부 스키마를 가지며, 내부 스키마는 저수준(물리적) 데이터 모델 사용 데이터 저장구조의 세부 사항과 데이터베이스에 대한 접근 경로를 기술 개념 단계 개념 스키마를 가지며, 개념 스키마는 표현(구현) 데이터 모델 사용 개념 스키마는 전체 사용자를 위한 데이터베이스의 구조를 기술함 엔티티, 데이터 타입, 관계, 사용자 연산, 제약 조건들을 나타내는데 중점 개념 스키마는 고수준 데이터 모델을 이용한 개념 스키마 설계를 기반으로 함 외부 단계 또는 뷰 단계 외부 스키마나 사용자 뷰들을 포함하며, 표현(구현) 데이터 모델 사용 특정 사용자 그룹이 관심을 갖는 부분을 나타내고 나머지는 은폐함 외부 스키마나 사용자 뷰는 고수준 데이터 모델을 이용한 외부 스키마 설계를 기반으로 함 Ch2 Fundamentals of Database Systems
Fundamentals of Database Systems 사용자에게 데이터베이스가 보여지는 구조 기술 Mapping 논리적 데이터 독립성 데이터베이스 구조 기술 물리적 데이터 독립성 물리적 저장 구조 기술 [그림 2.2] 3단계 스키마 아키텍처 Ch2 Fundamentals of Database Systems
Fundamentals of Database Systems 2.2.2 데이터 독립성 논리적 데이터 독립성 외부 스키마나 응용 프로그램을 변경하지 않으면서 개념 스키마를 변경할 수 있는 능력 (성질) 물리적 데이터 독립성 개념 스키마를 변경하지 않으면서 내부 스키마를 변경할 수 있는 능력 (성질) Ch2 Fundamentals of Database Systems
Fundamentals of Database Systems 2.3 데이터베이스 언어와 인터페이스 2.3.1 DBMS 언어 2.3.2 DBMS 인터페이스 Ch2 Fundamentals of Database Systems
Fundamentals of Database Systems 2.3.1 DBMS 언어 데이터 정의어(DDL: Data Definition Language) 개념 스키마와 내부 스키마를 정의 저장구조 정의어와 뷰정의어 어떤 DBMS에서는 저장구조 정의어(SDL: Storage Definition Language)를 사용하여 내부 스키마를 나타내고, 뷰 정의어(VDL: View Definition Language)를 사용하여 뷰를 명시하거나 개념 스키마 사이의 사상을 나타냄 데이터 조작어(DML: Data Manipulation Language) 데이터를 검색, 삽입, 삭제, 수정하기 위한 조작 언어 DML 명령어는 범용 프로그래밍 언어에 삽입되어 사용될 수 있고, 이때 범용 프로그래밍 언어를 호스트 언어라 하고, 삽입된 DML 명령어를 데이터 부속어라 함 Ch2 Fundamentals of Database Systems
Fundamentals of Database Systems 2.3.2 DBMS 인터페이스 브라우징을 위한 메뉴 기반 인터페이스 폼 기반 인터페이스 그래픽 사용자 인터페이스 자연어 인터페이스 초보자를 위한 인터페이스 데이터베이스 관리자를 위한 인터페이스 Ch2 Fundamentals of Database Systems
Fundamentals of Database Systems 2.4 데이터베이스 시스템 환경 2.4.1 DBMS 구성모듈 2.4.2 데이터베이스 시스템 유틸리티 2.4.3 도구, 응용 환경, 통신 장비 Ch2 Fundamentals of Database Systems
Fundamentals of Database Systems 2.4.1 DBMS 구성 모듈 저장 데이터 관리자 디스크에 저장되어 있는 DBMS의 정보(데이터베이스 또는 카탈로그)에 대한 접근을 제어 데이터 정의어 컴파일러 데이터 정의어로 명시된 스키마 정의들을 처리 스키마들에 대한 정보(메타 데이터)를 DBMS 카탈로그 안에 저장 런타임 데이터베이스 처리기(run-time database processor) 수행시 데이터베이스 접근을 처리 질의 컴파일러 대화식으로 입력된 고수준 질의들을 처리 프리컴파일러(precompiler) 호스트 프로그래밍 언어로 작성된 응용 프로그램에서 데이터 조작어 명령들을 추출 데이터 조작어 컴파일러 데이터 조작어 명령들을 데이터베이스 접근을 위한 목적 코드로 컴파일 Ch2 Fundamentals of Database Systems
Fundamentals of Database Systems [그림 2.3] DBMS의 구성요소. 점선은 저장 데이터 관리자의 제어를 통해 접근하는 것을 나타냄 Ch2 Fundamentals of Database Systems
Fundamentals of Database Systems 2.4.2 데이터베이스 시스템 유틸리티 데이터베이스 유틸리티 DBMS는 데이터베이스 관리자의 데이터베이스 시스템 운영을 도와줌 적재 데이터 화일을 자동적으로 데이터베이스 화일의 형식으로 변환해서 저장함 백업 전체 데이터베이스를 테이프에 복사하여 데이터베이스의 백업 사본을 만듦 화일 재조직 성능 향상을 위해 데이터베이스 화일 구조를 다른 화일 구조로 재조직함 성능 모니터링 데이터베이스의 사용을 모니터해서 사용 통계를 데이터베이스 관리자에게 제공함 이 정보는 관리자가 데이터베이스 성능을 향상시키기 위해서 화일들을 재조직할 것인지를 결정하는데 사용됨 Ch2 Fundamentals of Database Systems
Fundamentals of Database Systems 2.4.2 데이터베이스 시스템 유틸리티(cont.) 데이터 사전 시스템 (data dictionary system) 스키마와 제약 조건들에 관한 카탈로그 정보와 설계 결정, 사용 표준, 응용 프로그램 기술, 사용자 정보 등과 같은 정보를 저장 DBMS 카탈로그와 유사하나 더 다양한 정보를 가짐 DBMS 소프트웨어보다는 주로 사용자가 접근 데이터 저장소 (data repository system) 혹은 정보 저장소(information repository)라고도 함 데이터 디렉토리(또는 능동 데이터 사전) 사용자와 DBMS 소프트웨어 모두가 사용하는 통합된 카탈로그/데이터 사전 (수동 데이터 사전은 사용자만 이용하는 데이터 사전을 의미) Ch2 Fundamentals of Database Systems
Fundamentals of Database Systems 2.4.3 도구, 응용, 통신 장비 CASE (Computer-Aided Software Engineering) 도구 데이터베이스 시스템을 설계하는 과정에서 사용됨 응용 개발 환경 - PowerBuilder 시스템 통신 소프트웨어와 통신 장비를 사용하여 데이터베이스 시스템 사이트로부터 멀리 떨어진 컴퓨터 터미널, 워크스테이션, 마이크로 컴퓨터나 소형 컴퓨터에서 데이터베이스를 접근하는 것이 가능함 DB/DC 시스템 : DBMS와 데이터 통신 시스템의 결합체 Ch2 Fundamentals of Database Systems
2.5 DBMS를 위한 중앙집중식과 클라이언트/서버 아키텍처 2.5.2 기본적인 클라이언트/서버 아키텍처 2.5.3 DBMS를 위한 2-층 클라이언트/서버 아키텍처 2.5.4 웹 응용들을 위한 3-층 클라이언트/서버 아키텍처 Ch2 Fundamentals of Database Systems
Fundamentals of Database Systems 2.5.1 중앙집중식 DBMS 아키텍처 중앙집중식 DBMS 아키텍처 (그림 2.4 참고) 메인프레임과 터미널을 사용: 모든 일은 메인프레임에서 진행되고 데이터를 입력하고 필요한 정보를 출력하여 표시해주는 일만을 터미널이 수행 터미널이 PC와 워크스테이션으로 대치됨 중앙집중식 DBMS Ch2 Fundamentals of Database Systems
Fundamentals of Database Systems [그림 2.4] 물리적인 중앙집중식 아키텍처 Ch2 Fundamentals of Database Systems
Fundamentals of Database Systems 2.5.2 기본적인 클라이언트/서버 아키텍처 클라이언트-서버 아키텍처 (그림 2.5, 2.6 참고) 특정 기능을 갖는 특별한 서버를 지정 파일 서버, 프린터 서버, 웹 서버, 전자 우편 서버 등 클라이언트: 지역 응용들을 수행하기 위한 처리 기능뿐만 아니라 서버 들을 이용하기 위한 인터페이스 Ch2 Fundamentals of Database Systems
[그림 2.5] 논리적인 2-층 클라이언트/서버 아키텍처 Ch2 Fundamentals of Database Systems
[그림 2.6] 물리적인 2-층 클라이언트/서버 아키텍처 Ch2 Fundamentals of Database Systems
DBMS를 위한 클라이언트-서버 아키텍처 2.5.3 DBMS를 위한 2-층 클라이언트/서버 아키텍처 중앙집중식 RDBMS가 클라이언트-서버 아키텍처로 바뀌고 있음 서버: 질의와 트랜잭션 기능 질의 서버, 트랜잭션 서버, SQL 서버 클라이언트: User interface program과 App. Program 수행 ODBC(Open Database Connectivity) API, JDBC 객체지향 DBMS는 대부분 처음부터 클라이언트-서버 아키텍처로 개발됨 서버 단계: 데이터 저장, 동시성 제어와 회복, 버퍼링과 캐싱 등 클라이언트 단계: 사용자 인터페이스, 데이터 사전, 버퍼 내의 데이터로부터 복잡한 객체를 구성 Ch2 Fundamentals of Database Systems
3-층 클라이언트-서버 아키텍처 (그림 2.7 참고) 2.5.4 웹 응용들을 위한 3-층 클라이언트/서버 아키텍처 3-층 클라이언트-서버 아키텍처 (그림 2.7 참고) 클라이언트와 데이터베이스 서버 사이에 응용 서버 또는 웹 서버를 추가 이 서버는 데이터베이스 서버에 저장된 비즈니스 규칙(프로시저 또는 제약조건)들을 저장함으로써 중간 역할을 수행함 비즈니스 규칙은 일반적으로 데이터를 접근하는데 사용됨 Ch2 Fundamentals of Database Systems
2.5.4 웹 응용들을 위한 3-층 클라이언트/서버 아키텍처 (Cont.) 2.5.4 웹 응용들을 위한 3-층 클라이언트/서버 아키텍처 (Cont.) [그림 2.7] 논리적인 3-층 클라이언트/서버 아키텍처 Ch2 Fundamentals of Database Systems
Fundamentals of Database Systems 2.6 DBMS의 분류 DBMS의 분류 기준 데이터 모델 : 관계, 네트워크, 계층, 객체지향, 객체관계 등 사용자의 수 : 단일 사용자, 다수 사용자 시스템 사이트의 수 : 중앙집중식, 분산 DBMS (동질 분산 DBMS 또는 이질 분산 DBMS) DBMS의 비용 접근 경로의 유형 범용 또는 특수 목적용 개념적(고수준) 데이터 모델: 개체-관계(Entity-Relationship) 모델 논리적(표현/구현) 데이터 모델: 관계, 네트워크, 계층, 객체 데이터 모델로 구분 관계 모델 데이터베이스는 테이블들의 모임으로 구성 그림 1.2와 유사 고급 질의어를 제공하고 제한된 형태의 사용자 뷰를 지원 Ch2 Fundamentals of Database Systems
Fundamentals of Database Systems 2.6 DBMS의 분류(cont.) 네트워크 모델 데이터를 네트워크(그래프) 구조로 나타냄, 다대다(m:n) 관계의 직접표현 불가 데이터를 레코드타입으로 나타냄 일대다(1:n)관계를 표현하는 화살표 이용 (Owner-Member 관계) 계층 모델 데이터를 계층적 트리 구조로 나타냄, 다대다(m:n) 관계의 직접표현 불가 일대다(1:n)관계를 표현하는 연결선 이용 (Parent-Child 관계) 객체지향 모델 객체, 객체의 속성, 연산으로 데이터베이스를 정의 같은 구조와 행위를 갖는 객체들은 한 클래스에 속하고 클래스들은 계층 또는 비순환 그래프로 조직됨 메소드라고 하는 미리 정의된 프로시저들이 클래스의 연산을 나타냄 객체-관계 모델 관계 모델에 객체지향 모델의 개념을 도입하여 확장함 Ch2 Fundamentals of Database Systems
Fundamentals of Database Systems [그림 2.8] 네트워크 데이터 모델의 표기법으로 나타낸 그림 2.1의 스키마 Ch2 Fundamentals of Database Systems
Fundamentals of Database Systems 2.7 요약 데이터 모델 고수준 또는 개념적 데이터 모델(개체관계) 데이터 모델들의 구현(레코드 기반, 객체지향) 저수준 또는 물리적 데이터 모델 스키마 외부 스키마, 개념 스키마, 내부 스키마 데이터베이스 상태 논리적, 물리적 데이터 독립성 DBMS가 지원하는 언어 데이터 정의어, 데이터 조작어 인터페이스 유형 DBMS 유틸리티 데이터베이스 응용들을 위한 2-층, 3-층 아키텍처 DBMS의 분류 Ch2 Fundamentals of Database Systems