1. 데이터베이스 관리 시스템의 등장 배경
1.1 파일 중심 데이터 처리 시스템
- 개념
1960년대부터 사용된 데이터 처리 방식으로, 응용 프로그램마다 독립적인 파일을 유지하며 데이터를 운영체제의 파일로 저장. - 특징
- 응용 프로그램과 파일 구조가 밀접히 연관됨.
- 데이터 논리 구조와 물리 구조가 일치.
- 동일 데이터가 여러 파일에 중복 저장.
- 문제점
- 데이터 종속성: 데이터 구조 변경 시 응용 프로그램도 수정해야 함.
- 데이터 중복성: 동일 데이터의 중복으로 비효율 발생.
- 동시성 제어 및 회복 기능 부족.
- 데이터의 무결성 및 일관성 유지 어려움.
1.2 데이터 중복성(Data Redundancy) 의 문제
- 정의
같은 데이터가 여러 파일에 중복 저장되는 현상. - 문제점
- 일관성(Consistency): 동일한 데이터를 모든 파일에서 동기화 유지.
- 보안성(Security): 데이터의 보안 수준을 일정하게 유지.
- 경제성(Economics): 저장 공간 낭비.
- 무결성(Integrity): 데이터 정확성 및 신뢰성 저하.
1.3 데이터 종속성(Data Dependency) 의 문제
- 정의
데이터와 응용 프로그램 간의 상호 의존 관계를 의미하며, 데이터 구성 방식, 형식, 접근 방법이 변경될 경우 관련 응용 프로그램도 수정이 필요한 상태를 말함. - 문제점
- 유연성 부족: 데이터 구조 변경 시 관련된 모든 프로그램을 수정해야 함.
- 관리 어려움: 동일한 데이터 구조를 사용하는 여러 프로그램을 일일이 관리해야 함.
- 비효율성: 프로그램과 데이터의 강한 연결로 인해 유지보수 및 개발 작업이 복잡해짐.
- 예시
- 고객 관리 프로그램과 서비스 관리 프로그램이 동일한 고객 데이터를 사용하더라도, 데이터 형식이 다를 경우 각각 별도로 구현 및 수정해야 하는 문제가 발생함.
- 개선 필요성
이와 같은 데이터 종속성 문제를 해결하기 위해 데이터베이스관리시스템(DBMS)가 도입되었으며, 데이터와 프로그램 간의 독립성을 보장하여 유지보수와 효율성을 향상시킴.
2. 데이터베이스 관리 시스템(DBMS)
2.1 DBMS 정의
- 데이터베이스와 사용자 또는 응용 프로그램 사이에서 데이터를 효율적으로 관리하고 처리하는 소프트웨어 시스템.
- 주요 기능: 데이터 검색, 삽입, 수정, 삭제 등 데이터 조작 및 질의어(Query) 지원.
2.2 DBMS의 필수 기능
- 정의 기능 (Definition Function)
- 데이터 구조를 정의하고 저장 구조를 조직화.
- 논리적, 물리적 데이터 구조 명세 제공.
- 조작 기능 (Manipulation Function)
- 데이터 검색, 삽입, 삭제, 갱신을 지원.
- 사용하기 쉬운 인터페이스와 효율적인 데이터 접근 제공.
- 제어 기능 (Control Function)
- 데이터 정확성과 보안성 유지.
- 무결성(Integrity), 병행 제어(Concurrency Control), 권한 검사 기능 포함.
2.3 DBMS의 장단점
- 장점
- 데이터 중복 최소화, 공용성 제공, 일관성 유지, 무결성 보장, 보안성 향상.
- 표준화 용이, 데이터 조정 및 관리 효율성 증대.
- 단점
- 높은 초기 비용(하드웨어/소프트웨어).
- 특정 응용 프로그램 복잡성 증가.
- 백업과 회복 과정의 어려움.
- 시스템 고장 시 데이터 의존성으로 취약성 존재.
2.4 DBMS와 파일 시스템 비교
3. 데이터베이스 관리 시스템의 발전 과정
3.1 1세대: 네트워크 모델과 계층 모델 (1960~1970년대)
- 네트워크 DBMS
- 레코드들이 그래프 구조로 연결된 데이터 모델.
- 데이터 구조 변경이 어려움.
- 계층 DBMS
- 데이터를 트리 구조로 표현.
- 특정 응용 프로그램에 효율적이지만 수정 및 확장이 어려움.
3.2 2세대: 관계 데이터 모델 (1970년대~1980년대 이후)
- 관계 데이터 모델
- 데이터를 테이블 형식(릴레이션)으로 표현.
- 단순하고 이해하기 쉬운 구조.
- 사용자는 데이터를 요청(What)만 명시하고, 접근 방법(How)은 명시하지 않음.
- 주요 시스템
- IBM의 System/R: SQL의 시초인 SEQUEL 언어 개발.
- Ingres(버클리 대학), Oracle, MySQL, MS-SQL 등이 상용화됨.
3.3 3세대: 객체 지향 및 객체 관계 모델 (1980년대 후반~1990년대 이후)
- 객체 지향 DBMS (Object-Oriented DBMS)
- 데이터와 프로그램을 객체 단위로 그룹화하여 복잡한 데이터 구조 관리 용이.
- 객체 관계 DBMS (Object-Relational DBMS)
- 관계 DBMS에 객체 지향 개념을 통합.
3.4 새로운 데이터베이스 응용
- 게놈 데이터베이스, 데이터웨어하우스, 데이터마이닝.
- OLAP, 멀티미디어, 웹 데이터베이스, 소프트웨어 공학 데이터베이스 등.
요약
- DBMS 등장 배경
파일 시스템의 문제점(데이터 중복, 종속성)을 극복하기 위해 등장. - DBMS 기능
정의, 조작, 제어 기능으로 데이터 관리 효율성을 증대. - DBMS 발전 과정
계층/네트워크 모델 → 관계 데이터 모델 → 객체 지향 및 객체 관계 모델.