정보는 중요한 자원으로 인식되는 수준을 넘어 그 자체가 핵심적인 권력이 되는 사회가 되어 가고 있다.
정보를 사용하고 분석하는 과정을 살펴보면 그 중심에는 데이터베이스라는 소프트웨어가 존재하는 것을 확인 할 수 있다
데이터베이스는 데이터의 집합을 뜻한다.
업무를 사람의 힘으로 직접 처리하기에는 많은 자원(인력 및 시간)이 요구된다. 하지만 컴퓨터와 데이터베이스를 이용하면 이 작업을 신속하고 효과적으로 처리할 수 있다.
1960년대부터 연구되어 온 데이터베이스 관리시스템(DBMS : DataBaseManagement System)
DBMS란 '한 조직의 연관된 데이터 집합을 다수의 사용자가 공용으로 사용하기 위해 통합저장하는 소프트웨어 패키지'이다.
DBMS와 함께 사용자에게 애플리케이션이 포함된 일체의 시스템을 데이터베이스 시스템(Database System)이라고 한다.
파일처리시스템
파일을 사용하여 데이터를 관리하는 방식을 파일처리시스템(file processing system)이라고 한다.
파일처리시스템이란 운영체제의 지원으로 여러 파일에 나누어 정보를 영구 저장하고 운영하는 시스템을 말한다.
파일처리시스템은 데이터의 종속, 데이터의 중복, 데이터의 무결성 훼손, 동시 접근 이상과 같은 심각한 문제점을 안고있다.
데이터의 종속
파일 처리 시스템에서는 파일들이 특정 프로그램에 종속된다.
저장된 Data가 특정 H/W에서 혹은 S/W만 사용될 수 있도록 제한되는 문제
데이터 독립성은 논리적 데이터 독립성(logical data independency) 과 물리적 데이터 독립성(physical data independency)으로 구분된다.
논리적 데이터 독립성이란 데이터의 논리적 구조가 변하더라도 그에 따른 프로그램의 구조가 변경되지 않는 것을 의미한다.
물리적 데이터 독립성이란 보조기억장치와 같이 파일과 관련된 물리적인 시스템 구조가 변경되더라도 프로그램은 그대로 유지하는 것을 의미한다.
데이터의 중복
파일 처리 시스템을 사용할 경우 정보가 여러 파일에 중복적으로 저장될 수 있다.
데이터가 여러파일에 중복되어 저장되는 문제를 데이터의 중복성이라고 한다.
①일관성(consistency) 문제
②보안성(security) 문제
: 같은 내용의 데이터에 대해서는 똑같은 수준의 보안이 유지되어야한다, 그러나 같은 데이터가 중복되어 저장되는 경우에는 동일한 수준의
③경제성(economics) 문제
뷰(개념적스키마),뷰(개념적스키마),뷰(개념적스키마) | 개념적 단계 : 데이터 베이스의 일부분만 기술한다.
↑ ↑ ↑ |
논리적 스키마 | 논리적 단계 : 데이터베이스의 전체 구조를 추상화하는 단계
↑ |
물리적 스키마 | 물리적 단계 : 물리적인 데이터 구조를 구체적으로 기술함(가장 낮은 추상화 단계)
인스턴스와 스키마
데이터베이스에 저장된 정보 집합을 인스턴스(instance)라고 한다.
시간이 지남에 따라 달라지는 반면,
데이터가 저장되는 형식을 결정하는 전반적인 구조는 드물게 변경되는데 이를 데이터베이스 스키마(schema)라고 한다.
데이터 모델
중요한 데이터를 선별하여 체계화된 구조로 데이터베이스화할 방법이 필요하다.
데이터베이스를 체계적인 구조로 표현하기 위해 사용 할 수 있는 개념의 집합을 데이터 모델(data model)이라고한다.
더 자세히 말하자면
'데이터 타입, 데이터 연산, 데이터의 의미 및 일관성 제약조건을 명시하기 위해 사용할 수 있는 개념들의 집합'이다.
여기선 모델 두 개만 살펴 볼 예정이다.
① 관계형 모델 : 관계형 모델은 가장 많이 사용되는 모델이다, 표 형태로 데이터를 저장 관리하며 테이블집합으로 데이터 구조를 정의한다.
② 개체-관계 모델 : 개체-관계(ER : Entity-Relationship) 모델은 개체(Entity)라 불리는 기본 객체와 개체간의 관계(relationship)의 집합으로 표현된다.
데이터 모델링
데이터 모델링이란 실세계의 일부분을 DBMS가 지원하는 데이터 모델의 형태로 나타내는 과정을 의미한다.
데이터베이스 언어
DBMS는 사용자가 데이터베이스를 쉽게 다룰 수 있도록 언어형태의 인터페이스를 제공한다.
1) 데이터 정의 언어( DDL : Data Definition Language )
스키마를 정의하기 위한 언어로, 데이터 모델에 따라 애플리케이션 프로그램이 요구하는 데이터의 논리적 구성이나 특징을 규정한다.
데이터가 기억장치에 저장되도록 데이터의 물리적 구성을 규정한다.
데이터의 물리적 구성과 논리적 구성간의 사상을 규정한다. ( 물리적구성을 논리적구성으로 변환 할 수 있도록 )
여기서 중요한 것은 참조 무결성인데 정확하게 연결되었는지 보증하는것인데, 어디서 참조 할 때 참조하는 값이 실제 존재하여야한다.
2) 데이터 조작 언어( DML : Data Manipulation Language )
데이터 조작언어는 구조화된 데이터에 사용자가 접근 및 조작을 할 수 있도록 지원하는 언어를 뜻한다.
인터페이스를 위해 데이터 조작 기능은 다음과 같은 조건을 만족해야한다.
1. 데이터 조작 기능은 사용하기 쉬워야한다.
2. 데이터 조작기능은 정확하고 완전해야한다.
3. 데이터 조작 기능을 통한 사용자의 요청은 시스템 내부에서 효율적으로 처리되어야한다.
질의(query)란 원하는 정보를 획득하기 위한 요청 명령문이다. - DML은 정보를 획득하기 위한 명령어를 포함하는데, 이를 질의 언어라고 한다.
기술적으론 서로 다른 용어이다.(DML과 질의언어)
데이터베이스 관리 시스템의 구성요소
DBMS 구성요소는 크게 저장 관리자와 질의 처리기로 구분된다.
1. 저장 관리자
- 권한 및 무결성 관리자 : 무결성 제약조건을 만족하는지 검사하고 사용자의 데이터 접근검사
- 트랜잭션 관리자 : 시스템 오류가 발생하더라도 데이터베이스의 일관성을 유지하고 동시 트랜잭션 실행이 충돌을 일으키지 않도록 보장한다.
- 파일 관리자 : 디스크 저장장치의 공간 할당과 디스크에 저장된 정보 표현에 사용되는 데이터 구조를 관리한다.
- 버퍼 관리자 : 메인 메모리의 어떤 데이터를 캐시할지 결정하는 일을 담당한다.
저장 관리자는 시스템의 물리적 구현의 한 부분으로 다양한 데이터 구조를 구현한다.
- 데이터 파일 : 데이터베이스 자체를 저장한다.
- 데이터 사전 : 데이터베이스 구조(데이터베이스의 스키마)에 관한 메타데이터를 저장한다.
- 인덱스 : 빠른 데이터 접근을 가능하게 한다.
2. 질의 처리기
질의 처리기(query processor)는 사용자가 시스템 지식 없이 개념적 단계에서 작업을 할 수 있도록 지원하는 중요한 역할을 수행한다.
질의 처리기의 구성은 다음과 같다.
- DDL 인터프리터 : DDL 명령문을 해석하고 데이터 사전에 정의를 기록한다.
- DML 컴파일러 : DML 명령문을 질의 실행 엔진(query evaluation engine)이 이해할 수 있는 원시 수준 명령어로 구성된 실행 계획(evaluation plan)으로 번역한다.
- 질의 실행 엔진 : DML 컴파일러가 생성한 로우레벨 명령어를 실행한다.
트랜잭션 관리
트랜잭션이란 하나의 논리 작업을 수행하는 일련의 명령문의 집합을 뜻한다.
트랜잭션은 ACID라고 불리는 네 가지 특징을 만족해야 한다.
- 원자성(Atomicity) : 트랜잭션에 포함된 모든 명령어가 처리되든지, 그렇지 않다면 어떤 명령어도 처리되지 않아야한다. (원자적)
- 일관성(Consistency) : 트랜잭션이 수행되는 과정에서 데이터베이스는 일시적으로 비일관적 상태로 변할 수 있어도, 트랜잭션 수행이 완료되면 다시 일관적인 상태로 돌아와야한다.
- 고립성(Isolation) : 하나의 트랜잭션은 수행되는 과정에서 다른 트랜잭션에 의한 방해를 받지 않아야한다.
- 지속성(Durability) : 트랜잭션 수행이 종료되면 그 결과는 데이터베이스의 소프트웨어/하드웨어적 오류에도 영구적으로 기록되어야 한다.
데이터베이스 시스템 아키텍처
중앙집중식(centralized) 방식과 클라이언트-서버 방식이 있다.
중앙집중식 데이터베이스 관리 시스템 구조는 모든 처리가 중앙의 메인프레임 컴퓨터에서 수행되어야한다.
따라서 전체적인 성능은 하락할 수 밖에 없다.
클라이언트-서버 구조는 클라이언트(단일 사용자 컴퓨터)에서 표현, 계산, 연결, 데이터베이스 서비스 요청 등을 자체적으로 수행한다.
애플리케이션 프로그램의 부하를 분산하고 이식성을 증가시키며 유지보수비용을 절감하는 장점이 있다.
2계층 클라이언트-서버 구조에서는 애플리케이션에서 모든 정보를 내포하고 있다. 질의와 트랜잭션은 서버측에 남아있다.
3계층 클라이언트-서버 구조에서는 클라이언트와 데이터베이스 서버 사이에 중간단계를 새롭게 추가 한 것이다.
클라이언트에서는 GUI와 비즈니스 규칙같은것을 내포하고, 애플리케이션 서버에서 자료를 처리한다.
'컴퓨터과학 > 데이터베이스' 카테고리의 다른 글
Oracle DB 오류 (1) | 2021.04.01 |
---|---|
데이터베이스 개관 (0) | 2019.03.17 |