4. 데이터베이스 개요
가. 데이터베이스
데이터베이스는 사람들이 관심을 가지고 있는 데이터를 모아둔 것이다.
일상생활에서 자주 접할 수 있는 데이터베이스의 예로는 은행의 고객 자료의 데이터
베이스나 학교에서 학생 자료 데이터베이스, 도서관에서의 도서 데이터베이스 등이
있다. 이러한 예에서 보는 것처럼 하나의 데이터베이스에는 서로 관련된 데이터들이
컴퓨터가 처리할 수 있는 형태로 저장되어 있으며 이렇게 저장된 데이터는 사용자의
물음에 대해 대답할 수 있어야만 의미를 가질 수 있다.
도서관 데이터베이스를 예로 든다면, 데이터베이스에는 현재 도서관에 있는
책들에 대한 데이터 즉 작가, 출판년도, 도서명 등등의 데이터들이 저장되어 있으며
사용자는 자신이 찾고자 하는 책에 관한 정보를 데이터베이스로부터 추출해낼 수
있다. 즉, 데이터베이스는 데이터를 보관하고 사용자에 물음에 대답하는
시스템이다.
데이터베이스에 저장된 데이터는 끊임없이 변화한다. 예를 들어 도서관의 경우
새로운 책이 들어올 때마다 새로운 도서에 대한 데이터가 저장되어야 하고 책이
대출되었을 때나 반납되었을 때 대출과 반납에 대한 정보가 저장되어야 한다.
데이터베이스는 이러한 외부의 변화에 맞추어 적절히 저장된 데이터를 변경시킬 수
있어야 하며, 즉 데이터베이스는 새로운 데이터를 저장하거나 기존의 데이터를
삭제, 변경시키는 작업을 저장된 데이터가 일관성을 유지하도록 관리되어야 한다.
나. 데이터베이스 관리시스템
데이터베이스를 생성하고, 관리하며, 데이터로부터 사용자의 물음에 대한 대답을
추출하는 프로그램의 집합을 데이터베이스 관리시스템(DBMS, Database Management
System)이라 한다. 데이터베이스 관리 시스템의 첫 번째 목표는 바로 데이터를
저장하고 이 데이터로부터 유용한 정보를 얻어내기 위한 효율적이면서도 편리한
방법을 사용자에게 주는데 있다.
데이터베이스 관리 시스템이 데이터를 관리하기 위해서는 저장할 데이터의 구조를
정의해야 하며, 이렇게 정의된 구조에 따라 효율적으로 데이터를 저장해야 한다.
또한 이렇게 저장된 데이터로부터 좀 더 빠르게 정보를 추출할 수 있기 위한
방법들을 제공해야 한다.
실제로 데이터를 관리하는 데 있어서는 여러 문제점이 발생하게 된다. 예를 들어
학사 관리 데이터베이스에서 학생의 출생년도가 1800인 데이터가 있다거나 또는
학생의 소속 학과가 실제로 존재하지 않는 학과로 되어있는 경우, 또한 학번이 같은
사람이 둘 이상 있는 것과 같이 잘못된 데이터가 데이터베이스에 저장될 경우
이로부터 얻은 정보는 아무런 의미가 없게 된다. 이와 같은 잘못된 데이터가
데이터베이스에 저장되는 것을 막는 것 또한 데이터베이스가 해야 할 일들 중
하나이다.
보통의 경우에 데이터베이스는 동시에 여러 사람들이 사용하게 되며, 이렇게 하나에
데이터베이스가 동시에 여러 장소에서 사용될 경우, 한명의 사용자가 사용할 때와는
다른 문제점을 발생시킬 수도 있다. 데이터베이스를 효율적으로 사용하기 위해서는
이처럼 동시에 데이터베이스에 접근하는 것을 가능하도록 해야 하며, 이때에 발생할
수 있는 문제를 데이터베이스 관리 시스템이 해결해야 한다.
다. 개체-관계 모델
데이터베이스를 설계하는 과정에서 가장 먼저 해야 할 일은 사용자가 관심이 있는
데이터는 무엇이며 그 데이터로부터 얻고자 하는 정보는 무엇인지에 관해 조사하는
것이다. 이러한 과정을 사용자의 요구분석이라고 하는데 이 단계에서는 사용자가
요구하는 실세계의 데이터를 분명하고 이해하기 쉽게 나타내어 다음 단계에서
사용자의 요구에 맞는 데이터베이스를 만들 수 있도록 해야 한다.
이렇게 현실세계의 수많은 데이터 중에서 관심의 대상이 되는 데이터만을 추려내어
추상적 형태로 나타내는 것을 데이터 모델링이라고 한다. 언어가 가지고 있는
모호성 때문에 보통의 언어보다 좀 더 형식화되고 다이어그램 등을 사용하여
표현하게 되는데 이를 개체-관계 모델이라 한다.
라. 관계형 데이터베이스
관계형 데이터베이스는 모든 데이터들을 테이블과 같은 형태로 나타내어 저장하는
데이터베이스이다. 일상생활에서 데이터를 정리하여 표현할 때 흔히 표와 같은
방법을 사용하게 되는데, 관계형 데이터베이스는 이 '표'의 개념을 사용해서
데이터를 구성하는 방법을 사용하고 있다.
예를 들어 고객들의 주소와 전화번호를 정리할 때 표, 즉 테이블을 사용한다면,
첫 번째 열은 이름, 두 번째 열은 주소, 세 번째 열은 전화번호를 써서 나타낼 수
있다.
개체-관계 모델에서 정의한 데이터들을 실제로 관계형 데이터베이스를 사용하여
저장하기 위해서는 개체-관계 모델을 테이블로 변환시키는 과정이 필요하다. 즉
개체-관계 모델은 실제 데이터베이스와는 상관없이 저장하고자 하는 데이터를
정의한 것이며, 테이블은 데이터를 관계형 데이터베이스에서 실제로 표현하는
방법이다. 관계형 데이터베이스에서는 단순히 데이터를 테이블의 형태로 나타낼
뿐만 아니라 저장된 데이터로부터 원하는 정보를 추출할 수 있는 방법을 정의하고
있다.
5. 데이터베이스 보안
가. 데이터베이스 보안 정의
데이터베이스 보안은 데이터베이스에 저장되어 있는 데이터에 대하여 인가되지 않은
접근, 의도적인 데이터의 변경이나 파괴 및 데이터의 일관성을 저해하는 우발적인
사고 등으로부터 데이터 혹은 데이터베이스를 보호하는 것이다.
나. 데이터베이스 보안 위협 요소
아래 [표 4-38]은
데이터베이스 보안의 위협 요소에 대한 설명이다.

다. 데이터베이스 보안 요구 사항
font>
아래 [표 4-39]는 데이터베이스의 안전한 보안을 위해 필요한
보안 요구 사항이다.

라. 데이터베이스 보안 구현
font>
데이터베이스 보안은 접근 통제(Access Control)를 통해서 이루어진다.
데이터베이스에 대한 접근 통제란 정당한 권한을 부여 받은 사용자에게만 데이터를
이용할 수 있게 하는 것으로 아래 [표 4-40]과 같이 크게 사용자 인증
(Authentication)과 권한 부여(Authorization) 과정으로 구성되며 데이터 기밀성을
위해 암호화(Encryption)과정이 같이 수행된다.
