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 schemaDBMS에 명시, DBdata가 처음으로 적재될 때 초기상태로 됨

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) : 저장매체에 DBcopy를 만듦
파일 재조직(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

database 기초상식

1

1.1

DATA = 알려진 사실로부터 의미를 가지고 기록될 수 있다, 가공되기 전의 정보


INFORMAITION = DATA
를 가공한것


DB = 서로 연관된 데이터들의 모임, 특정한 의미를 가짐, 실세계의 일부분


DBS = DB + DBMS + USER&APLLICATION PROGRAM


DBMS = DB를 정의 구축 조작 공유


정의 : DB에 저장되는 DATA에 필요한 데이터 타입, 구조, 제약조건들을 명시
->DB
의 정의, 설명하는 정보는 DBMS에 의해 meta-data(카탈로그 형태)로 저장


구축 : DBMS가 관리하는 저장소에 데이터를 저장하는 과정


조작 : 데이터를 검색하기 위한 질의, 갱신, 리포트 생성 기능 포함


공유 : 여러 userprogram data에 동시 접근



1.2 DB 설계 단계


요구사항 분석 -> 개념설계 -> 논리적 설계 -> 물리적 설계 -> 수행 


(
개념설계에서 논리적설계로 가는데에는 정규화가 필요)


DB는 여러 개의 파일로 구성되며, 각 파일은 동일한 유형의 data record들을 저장


DB
를 정의 하기 위해서는 각 파일의 레코드 구조를 명시 각 레코드에 저장되는 데이터 항목의 타입을 지정



1.3 DB의 특징


파일처리방식 : 중복이 있다(memory낭비, 중복된 항목을 고칠땐 일일히 고쳐하기에 overhead발생)


DB : data를 한번만 저장, DBS의 자기기술성, program-data 격리, 추상화, data의 다중 view, 공유, 다수트랜잭션


1.3.1 DBS의 자기 기술성


DBS
DB뿐 아니라, DB에 대한 구조와 제약조건에 대한 완전한 정의를 가짐


DB
에 대한 정의는 DB에 속하는 각 파일들의 구조, 타입, 제약조건 명시


이 정의는 DBMS catalog에 저장되며 저장된 정보를 meta-data라 함 =>DB의 구조 기술


1.3.2 program-data의 격리, 데이터 추상화


데이터 파일의 구조가 응용 프로그램과 분리되어 DBMS catalog에 저장되어있어 DBMS를 접근하는 프

로그램은 고칠 필요가 없다. => program-data의 독립성


객체지향DB, 객체관계DB는 데이터에 대한 연산(함수orMETHOD)까지 DB 정의의 일부로 나타냄


연산 = 인터페이스(연산의 이름, 매개변수의 데이터타입) + 구현(인터페이스와 별도)


프로그램에서는 연산의 구현 내용을 몰라도 연산의 이름과 매개변수들을 사용하여 연산을 수행할 수 있다. =>program-opertaion 독립성


데이터 추상화 : 위의 두개의 독립성을 제공하는 성질을 의미


DBMS
는 사용자에게 데이터에 대한 개념적인 표현을 제공


data model :
추상화의 한 종류(상세정보를 숨김)


1.3.3 데이터에 대한 다중 뷰의 제공


VIEW : DB의 일부이거나, DB로부터 유도되는 가상 데이터이지만 실제로 DB에 저장되진 않는다.


다수사용자용 DBMS는 여러 사용자들이 자신의 뷰를 정의할 수 있도록 하는 기능을 제공


1.3.4 데이터의 공유와 다수 사용자 트랜잭션 처리


다수사용자용 DBMS는 여러 사용자가 동시에 DB에 접근할 수 있는 DB이다.


동시성제어 소프트웨어가 데이터를 동시에 변경할때에도 데이터 일관성을 유지시켜준다.


트랜잭션 : 한 번 이상의 DB접근을 포함하는 프로그램이나 프로세스를 수행하는 것


DBMS
는 트랜잭션의 몇가지 성질(고립성, 원자성)을 강제로 지킴


고립성 : 트랜잭션끼리 고립되어 수행되는것처럼 보이도록


원자성 : 트랜잭션 내의 모든 DB연산들이 수행완료 아니면 수행되지 않음



1.4 DBMS의 장점


1.4.1 중복성 제어


중복성은 논리적으로는 한번의 변경이지만 중복된 횟수만큼 반복해서 변경해야하므로 메모리의 낭비를 초래한다

또한 데이터의 불일치(실수할가능성) -> data DB에 한번만 저장되어야 한다.(정규화)


1.4.2 권한이 없는 접근의 통제


DBMS
는 이를 위하여 보안과 권한이라는 서브시스템을 가진다.


1.4.3 프로그램 객체를 위한 지속성 기억 공간 제공


지속성 객체란 프로그램의 수행이 끝난 후에도 DB에 영구적으로 남아있는 것.


1.4.4 효율적인 질의 처리를 위한 저장구조와 탐색기법 => 인덱스, 버퍼링, 캐쉬, 질의처리 최적화


1.4.8 무결성 제약조건의 시행


DBMS
는 무결성 제약조건들을 정의하고 검사하는 기능을 갖는다.


참조 무결성 제약조건 : 다른 파일의 레코드끼리 연관성을 갖는다.


키 제약조건 : 데이터 항목의 값들이 유일해야 한다.


이런 제약조건을 비즈니스룰 이라 부른다.


1.4.9 규칙을 사용한 추론과 수행


어떤 DBS에서는 DB에 저장되어 있는 사실로부터 새로운 정보를 추론하는 연역적 규칙을 정의할 수 있

이러한 기능을 가진 DBS를 연역 DBS라 부른다.


트리거 : DB연산이 제약조건을 침해하였을때, 실행되는 SQL


저장된 절차 : 많은 프로그램과 사용자들을 위해 미리 컴파일된 SQL문들


능동 DBS : 어떤 이벤트가 일어났을 때 자동으로 수행되는 능동 규칙


1.4.10 DB사용에 함축된 또 다른 의미


표준강화, 응용 개발 시간의 단축, 융통성, 최신 정보의 가용성, 규모의 경제성

'SW > Database MySQL' 카테고리의 다른 글

Entity-relation을 사용한 conceptual data modeling  (0) 2017.09.05
sql의 데이터 정의와 타입  (0) 2017.09.05
basic relation model (기본 관계 모델)  (0) 2017.09.05
Data model, schema, instance  (0) 2017.09.05
JOIN  (0) 2017.09.05

'dbms'에 해당되는 글 2건

1 →