반응형

데이터베이스

 데이터베이스는 조직체에서 공유해서 사용하는 운영 데이터(Operaion Data)들을  구조적으로 통합하여 저장하는 데이터의 모임이다.

 

이러한 데이터베이스는 다음과 같은 특징을 가진다.

  1. 동시 공유
  2. 중복 최소화
  3. 자기기술

동시 공유는 데이터베이스에 접근하는 사용자에게 동시에 공유된 데이터를 할당할 수 있다는 의미이다.

 

중복 최소화는 저장 공간의 낭비 줄이고 정보 불일치의 문제를 해결하기 위해 수행되는 작업이다. 여기서 정보 불일치란, 중복된 정보들의 경우 어느 하나만 수정되었을 때 변경되지 않은 나머지 정보들과의 내용이 달라지므로 발생할 수 있는 심각한 문제를 의미한다.

 

자기기술은 실질적으로 필요한 정보 뿐 아니라 해당 데이터와 관련된 메타 데이터를 자동으로 관리하여 데이터베이스의 성능과 안정성을 유지하는 데에 필요한 작업이다.

 

데이터베이스의 구조

 데이터베이스는 다시 시스템 카탈로그데이터베이스로 나뉠 수 있다. 시스템 카탈로그저장된 데이터의 메타 데이터와 스키마 정보를 저장하는 장치이다.

 

데이터베이스 관리 시스템(DBMS)

 DBMS(DataBase Management System)은 데이터베이스와 사용자 사이의 인터페이스(연결) 역할을 수행한다.

 

이러한 DBMS는 다음과 같은 기능들을 수행하는 소프트웨어이다.

  1. Definition(정의): 새로운 DB 생성, DB의 구조를 명세
  2. Manipulatino(조작): 데이터 질의, 수정
  3. Control(보호): 시스템의 고장, 권한 없는 사용자의 접근으로부터 보호
  4. 동시 공유 지원: 여러 사용자가 동시에 DB에 접근하는 것 제어

 

하드웨어

  • 보조기억장치
  • 주기억장치
  • 중앙처리장치

 데이터베이스 시스템에는 위와 같은 장치가 필요하다. 정보 자체는 하드디스크와 같은 보조기억장치에 저장되며, DBMS에서 원하는 정보를 찾기 위해서는 주기억장치로 불러들이는 작업이 필요하다. 최종적으로 원하는 연산을 수행하기 위해서는 중앙처리장치가 필요하다.

 

요구사항 1. DBMS가 제공해야 하는 기능

  1. 데이터 독립성: 프로그램과 데이터가 독립적이다.
  2. 효율적인 데이터 접근: 빠르고 정확한 정보 검색
  3. 동시 접근
  4. 백업과 회복
  5. 쉬운 질의어
  6. 다양한 사용자 인터페이스

 데이터베이스 시스템에서의 요구사항 중 첫 번째로 DBMS가 제공해야 하는 기능에 대해 알아보면 위와 같다. 앞에서도 DBMS의 기능에 대해 간단히 알아보았지만 여기서 보다 자세히 기술하였다.

 

요구사항 2. 사용자가 DBMS를 활용할 때 필요한 능력

  1. 일관성 유지: 중복을 줄이고 정규화해야 한다.
  2. 데이터 무결성: 저장된 데이터가 현실세계의 내용을 정확하게 표현해야 한다.
  3. 데이터 보안

 

파일 시스템에서의 데이터 관리

 파일 시스템은 기존에 일반적으로 사용하던 방식이다. 파일에 접근하는 방식은 응용 프로그램마다 다르게 표현되기 때문에 응용 프로그램의 의존도가 높다.

 

프로그램의 의존도가 높다 함은 위 그림과 같이 데이터들이 프로그램마다 따로 종속되어 있기 때문에 데이터의 일관성을 유지하기 어렵다는 의미이다.

 

DBMS에서의 데이터베이스 관리

 파일 시스템과 달리, DBMS에서 관리하는 데이터베이스는 다음과 같은 특징을 지닌다.

  1. 데이터를 여러 사용자와 프로그램이 공유함
  2. 데이터 접근 경로를 제공하여 질의를 빠르게 수행함
  3. 권한 없는 사용자로부터의 접근을 보호함
  4. 사용자 유형에 맞는 다양한 인터페이스를 제공함
  5. 데이터 간의 복잡한 관계를 표현함
  6. 무결정 제약 조건을 자동으로 유지함
  7. 시스템에 고장이 발생했을 때 이전 상태로 회복함
  8. 데이터와 프로그램 간의 독립성이 존재함

 

DBMS의 장점

 이러한 DBMS를 사용했을 때 얻을 수 있는 이점에는 다음과 같이 있다.

  1. 중복성과 불일치성 감소: 자동으로 처리해주기 때문
  2. 응용 시스템 개발, 유지, 확장 비용 감소: 데이터와 프로그램 간 독립성 때문
  3. 표준화 시행 용이: 데이터 사용처 분석 가능하기 때문
  4. 보안 향상
  5. 무결성 향상
  6. 조직체의 요구사항을 종합적으로 파악 가능: 분석 가능하기 때문
  7. 고장으로부터 DB 회복 가능
  8. 여러 사용자와 프로그램에서 접근 가능
  9. 데이터베이스의 공유

 


데이터 모델

 데이터 모델이란, 데이터베이스의 구조를 기술할 때 사용되는 개념들의 집합을 의미한다. 이때 연산자와 무결성 제약조건 또한 데이터 모델에 포함된다.

 

데이터 모델을 설계할 땐 사용자에겐 위 그림과 가팅 내부의 복잡한 과정을 가리고, 직관적인 View 만을 제공하는 데이터 추상화 작업을 수행해야 한다.

 

데이터 모델은 다음과 같이 2가지로 분류될 수 있다. 참고로, 이 장에서는 고수준 데이터 모델에 대해 중점적으로 살필 것이다.

  1. 고수준(개념적) 데이터 모델 - Conceptual Data Model
  2. 표현(구현) 데이터 모델 - Representation(Implementation) Data Model

 

고수준(개념적) 데이터 모델은 데이터베이스의 전체적인 구조를 사람이 인식하는 것과 유사하게 명시하는 것을 의미한다. 이에 대한 예시가 위 그림에서 나타난 개체-관계(ER: Entity-Relationship) 데이터 모델이다.

 

관계 DBMS

 관계 DBMS는 미국 IBM 연구소에서 진행된 System R과 캘리포니아 버클리대에서 진행된 Ingres 프로젝트에서 만들어졌다.

 

이 시스템은 수학적 개념으로부터 출발했기 때문에 모델이 간단하여 이해하기 쉽다는 장점이 있다. 또한, 사용자가 자신이 원하는 것(What)에 대해서만 명시해도, DBMS가 스스로 데이터가 어디에 있고 어떻게 접근해야 하는지를 결정 및 수행하는 최적화가 적용되어 있다는 장점이 있다.

 

이러한 시스템의 예로는 MS SQL Server, Sybase, DB2, MySQL, MS Access 등이 있다.

 

객체지향 DBMS

 객체지향 DBMS는 1980년대 후반 들어 등장한 개념이다.

 

이 시스템은 데이터와 프로그램을 그룹화하여 복잡한 객체를 이해하기 쉽고, 유지 및 변경이 쉽다는 장점이 있다.

 

객체-관계 DBMS

 관계 DBMS에 '객체지향' 개념을 적용한 모델이다.

 

이 시스템의 예에는 오라클, Informix Universal Server 등이 있다.

 


스키마와 인스턴스

 스키마(Schema)는 데이터베이스의 구조를 의미하며, 잘 변하지 않는다는 특징이 있다. 이 스키마에는 데이터베이스의 모든 필요사항을 표현할 수 있도록 설계한다. 스키마는 내포(Intension)라고도 불린다.

 

 인스턴스(Instance)는 특정 시점의 데이터베이스의 내용을 의미하며, 시간이 지남에 따라 계속해서 바뀐다는 특징이 있다. 인스턴스는 외면(Extension)이라고도 불린다.

 


DDL(Data Definition Language)

 DDL은 데이터 정의어라고도 불리며, 데이터베이스의 스키마를 정의할 때 사용한다.

 

CREATE TABLE    //데이터 구조 생성
ALTER TABLE     //데이터 구조 변경
DROP TABLE      //데이터 구조 삭제
CREATE INDEX    //인덱스 정의

DDL에는 위와 같이 존재하며, 이를 입력할 떄 DBMS는 사용자가 정의한 스키마에 대한 명세를 시스템 카탈로그에 저장한다.

 

DML(Data Manipulation Language)

 DML은 데이터 조작어라고도 불리며, 데이터베이스의 인스턴스 내에서 원하는 데이터를 검색, 수정, 삽입, 삭제할 때 사용한다.

 

SELECT    //검색
UPDATE    //수정
DELETE    //삭제
INSERT    //삽입

이러한 DML에는 절차적 언어와 비절차적 언어가 있는데, SQL은 대표적인 비절차적 언어이다.

 

데이터 조작어는 대화식으로 입력되어 수행되거나, 고급 프로그래밍 언어로 작성된 프로그램 안에서 사용되기도 한다.

 

DCL(Data Control Language)

 DCL은 데이터 제어어라고도 불리며, 데이텁에ㅣ스 트랜잭션을 명시하고, 권한을 부여하거나 취소하는 작업을 수행하는 데에 사용한다. 본 장에서는 많이 취급하지 않았다.

 


데이터베이스 설계자(DB Designer)

 데이터베이스 설계자는 ERWin 등의 case 도구를 이용하여 데이터베이스 설계를 담당하는 사용자이다.

 

이들은 주로 DDL을 사용하며, 데이터베이스의 일관성을 유지하기 위해 정규화를 수행한다.

 

응용 프로그래머

 응용 프로그래머는 데이터베이스 위에서 고객 관리, 인사 관리, 재고 관리 등이나 인터페이스를 구현하는 사용자이다.

 

이들은 주로 DML을 사용하며, 이들이 작성한 프로그램은 최종 사용자들이 반복해서 사용하므로 기작성 트랜잭션(Canned transaction)이라 부르기도 한다.

 

데이터베이스 관리자(DBA: DB Adminisrator)

 DBA는 데이터베이스 스키마를 생성하고 유지하는 사람, 혹은 팀이다. 이들이 수행하는 역할은 다음과 같다.

  1. DB 스키마 생성 및 수정
  2. 무결성 제약조건 명시
  3. 권한 관리
  4. 저장 구조 및 접근 방법고 같은 물리적 스키마 정의 (?)
  5. 백업과 회복 수행
  6. 표준화 시행

 

최종 사용자(End User)

 데이터베이스를 사용하는 사람이다. 이들은 데이터베잇 질의어(SQL)를 사용하여 매번 다른 정보를 찾는 캐주얼 사용자와 기작션 트랜잭션을 주로 수행하는 초보 사용자로 구분된다.

 

오퍼레이터(Operator)

 오퍼레이터는 DBMS가 운영되고 있는 컴퓨터 시스템과 전산실을 관리하는 관리자이다.

 

지금까지 학습한 데이터 관련 언어의 종류와 종사자의 관계를 그림으로 나타내면 위와 같다.

 


ANSI/SPARC 아키텍쳐

 ANSI/SPARC 아키텍쳐는 상용 DBMS 구현에서 사용하는 일반적인 아키텍쳐이다.

 

이 아키텍쳐는 위 그림과 같이 외부, 개념적, 물리적 단계(뷰)로 이루어져 있다.

 

 첫 번째로 '각 사용자의 뷰'라고 불리는 외부 단계가 있다. 이 단계에는 최종 사용자와 응용 프로그래머가 주로 접근하며, 이들은 DB의 일부분에만 관심을 가진다. '각 사용자의 뷰'라고 불리는 이유는 동일한 개념 단계로부터 다양한 뷰가 제공될 수 있기 때문이라고 한다.

 

 두 번째로 '사용자의 공동체 뷰'라고 불리는 개념 단계가 있다. 이 단계는 조직테의 정보 모델이다. 즉, 물리적인 구현은 고려하지 않으면서 조직체 전체에 대해 구현한 스키마를 포함한다는 의미이다.

 

이 단계에서는 데이터베이스에 어떤 데이터가 저장되어 있으며, 데이터 간에는 어떤 관계가 존재하고, 어떤 제약조건들이 명시되어 있는지를 기술한다. 

 

데이터베이스마다 오직 하나의 개념 스키마가 존재한다는 특징이 있다.

 

 마지막으로 '물리적 뷰', '저장 뷰'라고 불리는 내부 단계가 있다. 이 단계는 실제적인, 물리적인 데이터 구조에 관한 스키마로, 데이터베이스에 어떤 데이터가 어떻게 저장되어 있는가를 기술한다. 

 

이를 위해 '인덱스'와 '해싱'과 같은 접근 경로, 데이터 압축 등을 기술한다.

 

데이터 독립성

 위와 같이 나뉘는 이유는 데이터 독립성을 취하기 위함이다. 데이터 독립성이란, 특정 단계에서의 변화를 다른 단계에서 알아채지 못하는 특성을 말한다.

 

더 전문적으로 말하자면, 특정 단계의 스키마 정의에 영향을 주지 않으면서 다른 단계의 스키마 정의를 변경할 수 있는 특성을 의미한다.

 

이러한 데이터 독립성은 위와 같이 2가지로 나눌 수 있다.

 

물리적 데이터 독립성(Physical Data Independence)

 물리적 데이터 독립성은 내부 스키마의 변화가 개념 스키마에 영향을 미치지 않는 특성이다. 자연스럽게 외부 스키마에도 영향을 미치지 않게 된다.

 

논리적 데이터 독립성(Logical Data Independence)

 논리적 데이터 독립성은 개념 스키마의 변화가 외부 스키마에 영향을 미치지 않는 특성이다. 이를 위해서는 기존의 외부 스키마에 영향을 미치지 않고 응용 프로그램을 다시 작성할 필요 없이 개념 스키마에 대한 수정이 가능해야 한다.

반응형

+ Recent posts