데이터베이스
위키백과 ― 우리 모두의 백과사전.
데이터베이스(Database, 문화어: 자료묶음체계)는 여러 응용 시스템들의 통합된(integrated) 정보들을 저장하여(stored) 운영할(operatable) 수 있는 공용(shared) 데이타들의 묶음이다.
목차 |
[편집] 데이타베이스 설계
데이타베이스 설계절차로는 먼저 데이타모델링 위한 개념적설계,논리적설계와 물리적설계 거치게된다.
- 개념적설계:현실세계를 인간이 이해할 수 있는 정보모델링을 일컫는다(시스템 독립적-system independent).
- 논리적설계:정보모델링을 통한 컴퓨터가 이해할 수 있는 논리적인 데이타모델링(시스템 의존적-system dependent).
- 물리적설계:저장장치 구현을 위한 데이타의 구조화(system dependent).
//세계에서 가장 많이쓰이는 데이타모델로는 관계형데이타 모델(relational datamodel)이 있으며, 그 질의어는 1974년 IBM 연구소에서 만든 SQL(sructured query language(원어(SEQUEL):structured english query language)이다. 이 언어는 수학적 관계 대수와 관계 해석(relational calculus)을 기초로 하고있다. 데이타모델은 데이타를 조작키위한 연산집합을 가져야한다, 왜냐면 그는 데이타베이스 구조와 제약조건을 정의하기 때문이다. 즉, 관계 데이타모델 연산집합(a set of operations)은 관계대수로 표현되고, 그 연산은 사용자에게 여러 질의를 가능케하여 준다.//
[편집] 데이터베이스 모델
실제적인 데이타베이스 구현을위한 현재 몇몇 개념화된 논리적 데이타 모델은 다음과같다:
[편집] 관계데이타 모델(relatinional datamodel)
관계 데이타모델은 데이타 모델중에서 가장 개념이 간단한 모델이다. IBM연구소에서 근무하던 E.F.Codd가 1970년제안했다.이 모델은 릴레이션의 수학적인 이론을 기반으로 한다.Codd가 수학자였기 떄문에 수학분야,특히 집합론과 논리분야의 개념을 사용했다. 데이타모델을 개발하기 위해서,테이블관계로 묘사하는 이론적 모델과정이 발생하는데 이를 객체관계 모델(entity relational model)이라고 한다. 이 관계 데이타베이스를 위한 설계과정은 이론적으로 관계수학에 기초한 실지 구현이라 보면된다. 현실세계는 개체관계 그림(diagram)으로 표현되며,개체와 그 관계는 각기 사각과 선으로 그려진다.
[편집] 네트웍데이타 모델(network datamodel)
[편집] 계층데이타 모델(hierarchical datamodel)
[편집] 객체지향데이타 모델(object oriented datamodel)
[편집] 객체관계데이타 모델(object relatinal datamodel)
[편집] 데이타베이스 관리시스템 선택(DBMS)
데이타베이스 설계후 데이타베이스 관리시스템이 선택되어져야 한다.여러가지 DBMS가 존재하는데...
[편집] DBMS 언어선택(DBMS Language)
데이타베이스 언어에는 정의어(DDL:data definition language),조작어(data manipulation language),제어어(data control language)로 구성되어 있다.
[편집] 정의어(DDL)
[편집] 조작어(DML)
[편집] 제어어(DCL)
[편집] 개체무결성(Entity Integrity)과 참조무결성(Referential Integrity)
[편집] 트랜젝션(Transaction)
트랜젝션(transaction)은 하나의 논리적 단위를 구성하는 db연산의 모임이다.동시에 여러 트랜젝션이 수행되기 위해서 db의 일관성이 보장되어야하며 이를 위해서 동시성제어(concurrency control)와 회복제어(recovery control)를 위한 모듈(module)이 있으며 이 둘을 합쳐서 트랜젝션 관리 모듈(transaction management module)이라고 한다.
- 1. 동시성제어 모듈(concurreny control module):db 일관성을 유지하기위하여 동시에 수행되는 트랜젝션들간의 상호작용 제어한다.
- 2. 회복제어 모듈(recovery control module):db 일관성을 유지하기 위하여 갱신중 시스템장애에도 db의 기존상태가 유지된다.
트랜젝션은 다음과 같은 네가지 중요 특성을(ACID특성) 가진다.
- 1.원자성(Atomicity):한 트랜젝션내 모든 연산은 완전히 수행되거나 완전히 않아야한다.
- 2.일관성(consistency):한 트랜젝션 수행후 db는 한 일관된 상태를 유지해야 한다.
- 3.고립성(isolation):한 트랜젝션이 완료되기 전에는 같은 데이타 를 다른 트랜젝션이 접근해서는 안된다.
- 4.영속성(durability):한 트랜젝션이 완료되면 갱신데이타는 db에 반영(기록)된다.
트랜젝션 스케줄링(transaction scheduling): 트랜젝션들의 연산들을 실행하는 순서이며 직렬스케일줄링(serial scheduling)과 비직렬스케줄링(nonserial scheduling),직렬가능한 스케줄링(serializable scheduling)개념이 있다.
- 1.serial scheduling:트랜젝션 연산들을 각 트랜젝션별로 연속적으로 실행하는 방법
- 2.nonserial scheduling:트랜젝션 연산들을 상호적(interleaving)으로 병행 실행시키는 밥법
- 3.serializable schedlung:nonserial schedule S가 항상 serial schedule SS에 대해서 동일한 정확한 결과일때 S를 직렬가능하다고 한다.
직렬가능 트랜젝션을 보장키 위한 규약(protocol)이 있는데 locking방법과 timestamp이 그것이다.
[편집] 동시성제어와 회복(Concurrency- and RecoveryControl)
[편집] 데이터베이스 자료구조
[편집] 인덱싱
데이터베이스는 흔히 다음과 같은 ACID 규칙을 만족해야 한다.
- 원자성 (原子性, Atomicity): 한 트랜잭션의 모든 작업이 수행되든지, 아니면 하나도 수행되지 않아야 한다. 트랜잭션이 제대로 실행되지 않았으면 롤백(roll back)한다.
- 일관성 (一貫性, Consistency): 모든 트랜잭션은 데이터베이스에서 정한 무결성 (無缺性, integrity) 조건을 만족해야 한다.
- 격리성 (隔離性, Isolation): 두 개의 트랜잭션이 서로에게 영향을 미칠 수 없다. 트랜잭션이 실행되는 동안의 값은 다른 트랜잭션이 접근할 수 없어야 한다.
- 내구성 (耐久性, Durability): 트랜잭션이 성공적으로 끝난 후에는, (시스템 failure가 일어나더라도) 그 결과가 데이터베이스에 계속 유지되어야 한다.
병행제어 (竝行制御, concurrency control)는 트랜잭션을 안전하게 처리하고 ACID 규칙을 만족시키는 기술이다.
[편집] 참고문헌(references)
Elmasri, Navathe:Fundamentals of database systems,addision wesley.
[편집] 바깥고리
![]() |
이 문서는 컴퓨터에 관한 토막글입니다. 서로의 지식을 모아 알차게 문서를 완성해 갑시다. |
분류: 정리가 필요한 문서 | 컴퓨터 토막글 | 컴퓨터 | 데이터베이스