1.1 데이터베이스 시스템 개요
KEYWORD : 데이터베이스, 정보, DBMS, 데이터베이스 스키마, 데이터베이스 상태, 데이터베이스 정보, 시스템 카탈로그
1. 데이터베이스의 정의
데이터베이스는 조직체의 응용 시스템들이 공유해서 사용하는 운영 데이터(operational data)들이 구조적으로 통합된 모임이다. 데이터베이스의 구조는 사용되는 데이터 모델에 의해 결정된다.
2. 데이터 vs 정보
데이터 : 현실 세계에서 측정하고 수집한 사실이나 값
정보 : 어떠한 목적이나 의도에 맞게 데이터를 가공 처리한 것
3. 데이터베이스의 특징
- 데이터의 대규모 저장소로서 여러 부서에 속하는 여러 사용자에 의해 동시에 사용됨
- 모든 데이터가 중복을 최소화하면서 통합됨
- 한 조직체의 운영 데이터뿐만 아니라 그 데이터에 관한 설명(데이터베이스 스키마 또는 메타데이터)까지 포함
- 프로그램과 데이터 간의 독립성이 제공됨
- 효율적으로 접근이 가능하고 질의를 할 수 있음
4. 용어 정의
데이터베이스 관리 시스템(DBMS) : 데이터베이스를 정의하고, 질의어를 지원하고, 리포트를 생성하는 등의 작업을 수행하는 소프트웨어
데이터베이스 스키마 : 전체적인 데이터베이스 구조를 뜻하며 자주 변경되지는 않음. 데이터베이스의 모든 가능한 상태를 미리 정의. 내포(intension)라고 부른다.
데이터베이스 상태 : 특정 시점의 데이터베이스의 내용을 의미하며, 시간이 지남에 따라 계속해서 바뀜. 외연(extension)이라고 부른다.
5. 데이터베이스 시스템(DBS)의 구성 요소

- 조직체의 응용 시스템들이 사용하는 운영 데이터들이 구조적으로 통합된 모임
- 시스템 카탈로그(또는 데이터 사전)와 저장된 데이터베이스로 구분할 수 있음
- 시스템 카탈로그(system catalog)는 데이터베이스의 스키마 정보를 유지

- DBMS
- 사용자가 새로운 데이터베이스를 생성하고, 데이터베이스의 구조를 명시할 수 있게 하고, 사용자가 데이터를 효율적으로 질의하고 수정할 수 있도록 하며, 시스템의 고장이나 권한이 없는 사용자로부터 데이터를 안전하게 보호하며, 동시에 여러 사용자가 데이터베이스를 접근하는 것을 제어하는 소프트웨어 패키지
- 데이터베이스 언어라고 부르는 특별한 프로그래밍 언어를 한 개 이상 제공SQL은 여러 DBMS에서 제공되는 사실상의 표준 데이터베이스 언어

- 사용자
- 데이터베이스 사용자는 여러 부류로 나눌 수 있음
- 하드웨어
- 데이터베이스는 디스크와 같은 보조 기억 장치에 저장되며, DBMS에서 원하는 정보를 찾기 위해서는 디스크의 블록들을 주기억 장치로 읽어들여야 하며, 계산이나 비교 연산들을 수행하기 위해 중앙 처리 장치가 사용됨
- DBMS 자체도 주기억 장치에 적재되어 실행되어야 함
- 데이터베이스 시스템의 요구사항
- 데이터 독립성
- 효율적인 데이터 접근
- 데이터에 대한 동시 접근
- 백업과 회복
- 중복을 줄이거나 제어하며 일관성 유지
- 데이터 무결성
- 데이터 보안
- 쉬운 질의어
- 사용자 인터페이스
1.2 화일 시스템 vs DBMS
KEYWORD : 화일 시스템, DBMS, 프로그램-데이터 독립성
1. 화일 시스템을 사용한 기존의 데이터 관리
- 화일 시스템은 DBMS가 등장하지 않았을 때인 1960년대부터 사용되어 왔음
- 화일의 기본적인 구성요소는 순차적인 레코드들
- 한 레코드는 연관된 필드들의 모임
- 화일을 접근하는 방식이 응용 프로그램 내에 상세하게 표현되므로 데이터에 대한 응용 프로그램의 의존도가 높음

- Employess 화일에 사원의 휴대폰 번호 추가하려면 : Employee 화일의 레코드를 하나씩 읽어서, 휴대폰 번호 필드를 추가한 레코드를 새로운 Employee 화일에 기록하는 프로그램을 작성 -> 기존 Employee 화일을 사용하던 모든 응용 프로그램을 찾아서 휴대폰 번호 필드를 추가해야 함
- 화일 시스템의 단점
- 데이터가 많은 화일에 중복해서 저장됨
- 다수 사용자들을 위한 동시성 제어가 제공되지 않음
- 보안 조치가 미흡
- 회복 기능이 없음
- 프로그램-데이터 독립성이 없으므로 유지보수 비용이 많이 소모됨
- 화일을 검색하거나 갱신하는 절차가 상대적으로 복잡하기 때문에 프로그래머의 생산성이 낮음
- 데이터의 공유와 융통성이 부족
2. DBMS를 사용한 데이터베이스의 관리
- 여러 사용자와 응용 프로그램들이 데이터베이스를 공유
- 사용자의 질의를 빠르게 수행할 수 있는 인덱스 등의 접근 경로를 DBMS가 자동적으로 선택하여 수행
- 권한이 없는 사용자로부터 데이터베이스를 보호
- 여러 사용자에 적합한 다양한 인터페이스를 제공
- 데이터 간의 복잡한 관계를 표현하며, 무결정 제약조건을 DBMS가 자동으로 유지
- 시스템이 고장나면 데이터베이스를 고장 전의 일관된 상태로 회복시킴
- 프로그램-데이터 독립성(program-data independence) 프로그램에 영향을 주지 않으면서 데이터베이스 구조를 변경할 수 있음
3. 화일 시스템 vs DBMS
| 화일 시스템 방식 | DBMS 방식 |
|---|
| 데이터에 대한 물리적 접근만 조정한다. | 데이터에 대한 물리적 접근과 논리적인 접근을 모두 조정한다 |
| 동일한 화일을 두 개 이상의 프로그램이 동시에 접근할 수 없다. | 동일한 데이터를 다수 사용자가 동시에 접근할 수 있다. |
| 데이터가 비구조적이며, 중복성과 유지보수 비용이 높다. | 데이터가 구조화되어 있으며, 중복성과 유지보수 비용이 낮다. |
| 어떻게 프로그램이 기록한 데이터는 다른 프로그램에서 읽을 수 없는 경우가 많다. | 접근 권한이 있는 모든 프로그램이 데이터를 공유한다. |
| 데이터에 대한 접근은 미리 작성된 프로그램을 통해서만 가능하다. | 질의어를 사용하여 데이터에 대한 융통성 있는 접근이 가능하다. |
| 각 응용 프로그램마다 화일이 따로 있으므로 데이터가 통합되어 있지 않다. | 데이터가 중복을 배제하면서 통합되어 있다. |
4. DBMS 선정시 고려 사항
- 기술적 요인DBMS에 사용되고 있는 데이터 모델, DBMS가 지원하는 사용자 인터페이스, 프로그래밍 언어, 응용 개발 도구, 저장 구조, 성능, 접근 방법 등
- 경제적 요인소프트웨어와 하드웨어 구입 비용, 유지 보수 비용, 직원들의 교육 지원 등
5. DBMS의 장단점
장점
- 중복성과 불일치가 감소됨
- 시스템을 개발하고 유지하는 비용이 감소됨
- 표준화를 시행하기가 용이
- 보안이 향상됨
- 무결성이 향상됨
- 조직체의 요구사항을 식별할 수 있음
- 다양한 유형의 고장으로부터 데이터베이스를 회복할 수 있음
- 데이터베이스의 공유와 동시 접근 가능
단점
- 추가적인 하드웨어 구입 비용이 들고, DBMS 자체의 구입 비용도 상당히 비쌈
- 직원들의 교육 비용도 많이 소요됨
- 비밀과 프라이버시 노출 등의 단점이 존재할 수 있음
- 초기의 투자 비용이 너무 클 때, 오버헤드가 많이 들 때, 응용이 단순하고 잘 정의되었으며 변경되지 않을 것으로 예상될 때, 엄격한 실시간 처리 요구사항이 있을 때, 데이터에 대한 다수 사용자의 접근이 필요하지 않을 때는 DBMS를 사용하지 않는 것이 바람직할 수 있음