Data model, schema, instance
데이터 모델, 스키마, 인스턴스
2.1 데이터 모델, 스키마, 인스턴스
데이터 모델 : 필수적인 특징만을 강조하는 추상화를 위한 도구, 데이터 구조를 명시하기 위해 사용할 수
있는 개념들의 집합으로 대부분 검색과 갱신을하는 기본연산들을 포함한다.
DB구조 : 데이터 타입, 관계, 제약조건을 의미
2.1.1 데이터 모델의 분류
저수준(물리적)데이터 모델 : 어떻게 데이터가 저장되는지를 제공
표현(구현)데이터 모델 : 사용자들이 쉽게 이해할 수 있는 개념을 제공
고수준(개념적)데이터 모델 : 많은 사용자들이 데이터를 인식하는 방식에 대한 개념 제공
고수준(개념적)데이터모델 : entity(사원이나 프로젝트 같은 실세계의 객체나 개념을 나타냄),
attribute(사원이 이름이나 급여 같은 entity의 특성), relationship(사원과 프로젝트 사이의 관계처럼 entitiy들
사이의 연관성)
2.1.2 스키마, 인스턴스, 데이터베이스 상태
DB schema : DB 기술(description)으로 자주 변경되지 않는다. 대부분은 도식적으로 스키마를 표현하는 표기법을 갖는데 이를 스키마 다이어그램이라 한다.(실제 인스턴스는 표현하지 않고 레코드 타입의 구조를 나타냄)
DB 상태 : 어떤 특정 시점에 DB에 들어있는 data(레코드를 변경할 때 DB는 다른 상태로 바뀜)
새로운 DB를 정의할 때 DB schema만
DBMS에 명시, DB에 data가
처음으로 적재될 때 초기상태로 됨
2.2 3단계-스키마 아키텍처와
데이터 독립성
2.2.1 3단계-스키마 아키텍처
내부단계(internal level) : 내부 스키마를 가지며 이 스키마는 DB의 물리적 저장 구조 기술
개념단계(conceptual level) : 개념 스키마를 가지며 이 스키마는 모든 사용자를
위한 DB구조 기술(제약조건 등)
외부단계(external level) : 외부 스키마와 사용자 view를 가지며 이 스키마는 특정 user group이 관심을 갖는
DB 기술(나머지은폐)
사상(mapping) : 단계들 간 요구와 접근 결과를 변환하는 과정
2.2.2 데이터 독립성 : 고수준의
스키마를 변경할 필요없이, DBS의 어떤 단계에서 스키마를 변경할 수 있는 능력
논리적 데이터 독립성 : 외부스키마나 응용 프로그램들을 변경하지 않으면서 개념 스키마를
변경
물리적 데이터 독립성 : 개념스키마를 변경하지 않으면서 내부스키마를 변경
DBMS의 catalog는 여러 단계 사이에서 요구와 데이터를 mapping하는 방법에 대한 정보 포함
2.3 DB언어와 interface
2.3.1 DBMS 언어
DDL(data definition language) : 스키마들을 명시
SDL(storage Defintion Language) : 내부스키마를 나타냄 (오늘날의 DBMS는 SDL이 거의 없다)
VDL(View Defintion Language) : 3단계-스키마 아키텍처를 이용하여
사용자 뷰를 명시, 개념스키마들 사이의 맵핑
대부분의 DBMS DDL이 개념 스키마와 외부 스키마를 정의하는데 사용
DML(data manipulation language) : 데이터의
검색 삽입 삭제 수정 조작하는 언어
고수준(비절차적) DML : 복잡한 DB 연산을 간단하게 나타냄, 한번에 레코드 집합(선언적)
저수준(절차적) DML : 범용 프로그래밍 언어에
삽입하여 나타냄, 한번에 한 레코드
두 DML모두 범용 프로그래밍 언어 내에 DML이
삽입된 경우 프로그래밍 언어는 호스터언어, DML은 데이터 부속어라 하며 고수준 데이터 조작어가 대화식으로
진행되면 질의어라고 부른다
SQL(Structure Query Language) : DB와의 소통 수단으로 DDL과 DML의 융합, 제약조건 명시 외에 많은 기능
2.4 데이터베이스 시스템 환경
2.4.1 DBMS 구성 모듈
DB와 DBMS catalog는 디스크에 저장되어 있으며 OS로 디스크에 접근
buffer 관리 모듈 : 많은 DBMS는 성능에
영향을 미치기 때문에 디스크 입출력을 스케쥴
저장 데이터 관리자 모듈 : 디스크에 저장되어 있는
DBMS의 정보(DB, catalog)에 대한 접근 제어
DDL compiler : DDL로 명시된 스키마 정의들을 처리, 스키마들에 대한 정보(meta-data)를 DBMS catalog에 저장
catalog : DBMS 모듈들이 필요로 하는 파일의 정보, 제약조건을 포함(DBMS가 정보가 필요할 때 접근하는곳)
대화식질의 interface : 질의 컴파일러(질의들을
파싱하고 데이터원소들이 정확한가 입증하고 내부 형태로 컴파일 + 질의 최적화기(연산들을 재배치하고 중복제거, 적절할 알고리즘과 인덱스를 선택)
precomiler : 호스트 언어로 작성된 응용프로그램에서 DML 명령들을 추출하여 DB접근을 위한 목적코드(object code)로 컴파일 하기 위해서
DML compiler로 보내고 프로그램에서 DML 명령을
제외한 나머지 부분은 호스트언어 compiler로 보낸다.
Runtime DB processor : 특권 명령, 실행가능 질의 계획, 미리 작성된 트랜잭션등을 수행, system catalog, 저장데이터
관리자와 함께 작동)
동시성 제어 모듈 : 제약조건을 침해하지 않으면서 트랜잭션이 잘 수행되도록 한다.
회복 모듈 : DB의 일관성, 트랜잭션의 원자성, 지속성을 유지
동시성 제어 모듈과 회복 모듈은 TR관리를 위해서
runtrim DB processor와 통합하여 동작한다.
2.4.2 DBS utilities : DBA가 DBS를 관리하는 것을 도와줌
적재(loading) : 기존의 data file을 DB에 적재
백업(backup) : 저장매체에 DB의 copy를 만듦
파일 재조직(file reorganization) : DB의 파일 구조를 다른 파일 구조로
재조직, 새로운 접근경로 형성(성능향상)
성능 모니터링(performance monitoring) : 사용통계를 DBA에게 전달
2.4.3 도구, 응용, 환경, 통신 장비
케이스 도구 : DBS를 설계하는 과정에 사용
데이터 사전(저장소) 시스템 :
응용개발환경, 통신 소프트웨어가 있다.
2.5 DBMS를 위한 중앙집중식과 클라이언트/서버 아키텍처
2.5.1 중앙집중식 DBMS 아키텍처
2.5.2 기본적인
client/server 아키텍처
client : 사용자 인터페이스와, 자체 처리 능력을 제공
server : 클라이언트 컴퓨터에게 서비스들을 제공할 수 있는 hw, SW
2.5.3 DBMS를 위한 2-층 client/server architecture : client handles, server handles, API 제공
2.5.4 웹 응용들을 위한 3-층 client/server architecture
2.6 DBMS의 분류 (DBMS를
분류하기 위해 여러 기준이 사용)
1. data model : 가장 많이 사용하는건 관계 데이터모델,
2. 사용자 수
3. 사이트 수
4. 비용
5. 범용, 특수목적 DBMS
'SW > Database MySQL' 카테고리의 다른 글
Entity-relation을 사용한 conceptual data modeling (0) | 2017.09.05 |
---|---|
sql의 데이터 정의와 타입 (0) | 2017.09.05 |
basic relation model (기본 관계 모델) (0) | 2017.09.05 |
database 기초상식 (0) | 2017.09.05 |
JOIN (0) | 2017.09.05 |