데이터 베이스
데이터베이스 ch2 : Database system & architecture
만능성구
2020. 10. 1. 16:35
728x90
데이타 모델, 스키마, 인스턴스
- 데이타 모델
- 데이타 타입, 관계, 제약 조건들을 명시하기 위해 사용할 수 있는 개념들의 집합
- 데이타베이스에서 검색과 갱신을 수행하는 기본 연산들의 집합을 포함
- 점차 DB 응용의 동적 측면 또는 행동이 데이타 모델에 포함됨
- 사용자 정의 연산(user defined operation): (예) COMPUTE_GPA
데이타 모델의 분류
- 저수준 또는 물리적 데이타 모델 # FILE
- 어떻게 데이타가 컴퓨터에 저장되는지의 세부 사항을 명시하는 개념을 제공
- 고수준 또는 개념적 데이타 모델 # ER(Entity relation), ERR(Extended entity relation), OOM(Object oriented model)
- 사용자들이 데이타를 인식하는 방식에 대한 개념을 제공
- 세상은 이래야 한다.
- 표현 (또는 구현) 데이타 모델
- 고수준 모델과 저수준 모델 사이에 존재
- 일반 사용자들이 이해할 수 있는 개념을 제공
- 데이타 저장 구조의 세부 사항을 은폐하지만 컴퓨터 상에서 직접 구현 가능함
- 상용 DBMS에서 많이 사용함
스키마, 인스턴스, 데이타베이스 상태
- 데이타베이스 스키마 (또는 메타데이타)
- 데이타베이스에 대한 기술
- 데이타베이스 설계 과정에서 명시하며 자주 변경되지 않음
- relation, |Name|Student_number|Class|Major|
- CreateReadUpdateDelete
- 스키마 다이어그램
- 데이타베이스 스키마를 도식화한 것
- 레코드 타입의 이름, 데이타 항목의 이름, 일부 제약 조건 유형들과 같은 스키마의 일부 관점만을 나타냄
- 데이타베이스 상태(Database State)
- 어커런스(Occurrence)나 인스턴스(Instance)들의 집합이라고도 함
- 어떤 특정 시점에 데이타베이스에 들어 있는 데이타
- 데이타베이스에 갱신 연산이 수행될 때마다 새로운 다른 데이타베이스 상태를 가짐
- DBMS는 데이타베이스 상태가 스키마에 명시된 구조와 제약조건을 만족하는 유효한 상태임을 보장하는 책임을 일부 가짐
- 내포와 외연
- 일반적으로 스키마는 내포(intension)라 하고, 데이타베이스 상태는 외연(extension)이라 함
3단계-스키마 아키텍처
- 3단계-스키마 아키텍처의 목적
- 사용자의 응용과 물리적 데이타베이스의 분리가 목적임
- 3단계-스키마 아키텍처
- 1. 내부 단계
- 2. 개념 단계
- 3. 외부단계 또는 뷰 단계
- 내부 단계
- 내부 스키마를 가지며, 내부 스키마는 물리적 데이타 모델을 사용
- 데이타 저장구조의 세부 사항과 데이타베이스에 대한 접근 경로를 기술
- 개념 단계
- 개념 스키마를 가지며, 이는 전체 사용자를 위한 데이타베이스의 구조를 기술함
- 엔티티, 데이타 타입, 관계, 사용자 연산, 제약 조건들을 나타내는데 중점
- 외부 단계 또는 뷰 단계
- 외부 스키마나 사용자 뷰들을 포함
- 특정 사용자 그룹이 관심을 갖는 부분을 나타내고 나머지는 은폐함
- 사상(Mapping)
- 외부 스키마를 참조하여 사용자가 데이타를 요구하면 이를 데이타베이스 내에서 개념 스키마에 대한요구로 변환하고, 다시 내부 스키마에 대한 요구로 변환 과정을 거쳐 저장된 데이타베이스에 접근하여 데이타를 추출한 후 사용자의 뷰와 일치하도록 재구성하는 과정
데이타 독립성(Data Independence)
- 논리적 데이타 독립성(Logical Data Independence)
- 외부 스키마나 응용 프로그램을 변경하지 않으면서 개념 스키마를 변경할 수 있는 능력 (성질)
- 물리적 데이타 독립성(Physical Data Independence)
- 개념 스키마를 변경하지 않으면서 내부 스키마를 변경할 수 있는 능력 (성질)
DBMS 언어
- 데이타 정의어(DDL: Data Definition Language)
- 개념 스키마와 내부 스키마를 정의
- 저장구조 정의어와 뷰정의어
- 어떤 DBMS에서는 저장구조 정의어(SDL: Storage Definition Language)를 사용하여 내부 스키마를나타내고, 뷰 정의어(VDL: View Definition Language)를 사용하여 뷰를 명시하거나 개념 스키마 사이의 사상을 나타냄
- 데이타 조작어(DML: Data Manipulation Language)
- 데이타를 검색, 삽입, 삭제, 수정하기 위한 조작 언어
- DML 명령어는 범용 프로그래밍 언어에 삽입되어 사용될 수 있고, 이때 범용 프로그래밍 언어를 호스트 언어라 하고, 삽입된 DML 명령어를 데이타 부속어라 함
DBMS 구성모듈
데이타베이스 시스템 유틸리티
- 데이타베이스 유틸리티
- DBMS는 데이타베이스 관리자의 데이타베이스 시스템 운영을 도와줌
- 적재
- 데이타 화일을 자동적으로 데이타베이스 화일의 형식으로 변환해서 저장함
- 백업
- 전체 데이타베이스를 테이프에 복사하여 데이타베이스의 백업 사본을 만듦
- 화일 재조직
- 성능 향상을 위해 데이타베이스 화일 구조를 다른 화일 구조로 재조직함
- 성능 모니터링
- 데이타베이스의 사용을 모니터해서 사용 통계를 데이타베이스 관리자에게 제공함
- 이 정보는 관리자가 데이타베이스 성능을 향상시키기 위해서 화일들을 재조직할 것인지를 결정하는데 사용됨
- 데이타 사전 시스템 (data dictionary system)
- 스키마와 제약 조건들에 관한 카탈로그 정보와 설계 결정, 사용 표준, 응용 프로그램 기술, 사용자 정보 등과 같은 정보를 저장
DBMS를 위한 중앙집중식과 클라이언트/서버 아키텍처
- 중앙집중식 DBMS 아키텍처
- 기본적인 클라이언트/서버 아키텍처
- DBMS를 위한 2-층 클라이언트/서버 아키텍처
- 웹 응용들을 위한 3-층 클라이언트/서버 아키텍처
중앙집중식 DBMS 아키텍처
- 메인프레임과 터미널을 사용
- 터미널이 PC와 워크스테이션으로 대치됨
- 중앙집중식 DBMS
클라이언트-서버 아키텍처
- 특정 기능을 갖는 특별한 서버를 지정
- 파일 서버, 프린터 서버, 웹 서버, 전자 우편 서버 등
- 클라이언트: 지역 응용들을 수행하기 위한 처리 기능뿐만 아니라 서버 들을 이용하기 위한 인터페이스
2-층 클라이언트-서버 아키텍처
- 중앙집중식 RDBMS가 클라이언트-서버 아키텍처로 바뀌고 있음
- 서버: 질의와 트랜잭션 기능: 질의 서버(트랜잭션 서버), SQL 서버(RDBMS의 경우)
- 클라이언트: User interface program과 App. Program 수행
- ODBC(Open Database Connectivity) API, JDBC # driver, ex) python --> pymysql
- 서버 단계: 데이타 저장, 동시성 제어와 회복, 버퍼링(캐싱) 등
- 클라이언트 단계: 사용자 인터페이스, 데이터 사전, # catalog 버퍼 내의 데이터로부터 복잡한 객체를 구성
웹 응용들을 위한 3-층 클라이언트/서버 아키텍처
- 클라이언트와 데이타베이스 서버 사이에 응용 서버 또는 웹 서버를 추가
- 이 서버는 데이타베이스 서버에 저장된 비즈니스 규칙(프로시저 또는 제약조건)들을 저장함으로써 중간 역할을 수행함
- 비즈니스 규칙은 일반적으로 데이터를 접근하는데 사용됨
DBMS의 분류
- DBMS의 분류 기준
- 데이타 모델 : 관계, , 객체지향, 객체관계 등
- Legacy: 네트워크, 계층
- Currently: 관계, 객체지향, 객체관계
- Recently, NOSQL systems:
- document based: JSON을 데이터 모델로 사용
- column-based: 레코드의 컬럼 단위로 저장
- graph-based: 객체와 관계를 저장
- key-value based: 키와 객체로 구성, 키가 주어지면 빠르게 객체에 접근
- Native XML DBMS: XML 모델을 데이터 모델로 사용
- 사용자의 수 : 단일 사용자, 다수 사용자 시스템
- 사이트의 수 : 중앙집중식, 분산 DBMS (동질 분산 DBMS 또는 이질 분산 DBMS)
- 범용 또는 특수 목적용
- 관계 모델
- 데이터베이스는 테이블들의 모임으로 구성
- 고급 질의어를 제공하고 제한된 형태의 사용자 뷰를 지원
- 네트워크 모델
- 데이터를 레코드 타입들로 나타냄
- 계층 모델
- 데이터를 계층적 트리 구조로 나타냄
- 객체지향 모델
- 객체, 객체의 속성, 연산으로 데이터베이스를 정의
- 같은 구조와 행위를 갖는 객체들은 한 클래스에 속하고 클래스들은 계층 또는 비순환 그래프로 조직됨
- 메소드라고 하는 미리 정의된 프로시저들이 클래스의 연산을 나타냄
- 객체-관계 모델
- 관계 모델에 객체지향 모델의 개념을 도입하여 확장함
728x90