들어가기전에 .... DBMS의 탄생
데이터를 파일로 관리하여 생성,삭제,수정,검색 기능을 제공
- 개발자들은 DB가 존재하기 이전 파일 시스템을 이용하여 데이터를 관리함.
- 데이터를 각각의 파일 단위(레코드)로 저장하며 이러한 일들을 처리하기 위한 독립 애플리케이션과 상호 연동이 되어야 함
- 파일 시스템에서는 파일에 접근하는 방식이 응용 프로그램내에 표현됨
- 응용 프로그램과 데이터 간의 의존관계가 존재하게 됨 -> 데이터의 구조나 접근 방법이 변경되면 기존 프로그램 데이터를 함께 변경해야 함
즉, 데이터 정의가 응용 프로그램에 내포되어 있고 프로그램에서 데이터를 접근하고 조작하는 것 이외에 별도의 제어가 없음.
-> 따라서, 파일 단위로 저장할 때 데이터 종속성, 중복성, 무결성 문제 등이 존재하게되어 DB로 관리하기 시작함..
동일한 데이터가 여러 파일에 중복된다.
위와 같이 파일 시스템에서는 프로그램별로 파일을 유지하여 여러 파일에 같은 데이터가 중복으로 저장될 수 있음. -> 데이터 중복성 문제
- 데이터가 중복되면 데이터 일관성 과 무결성을 유지하기 어려움
사용중인 파일의 구조를 변경하면 응용 프로그램에서도 변경 해주어야 한다.
구성원의 나이를 추가할 경우 응용프로그램에서 파일에 접근하는 방법도 변경해야 함 -> 데이터 종속성 문제
응용프로그램이 사용중인 파일을 다른 응용프로그램이 해당 파일 시스템에 접근하여 사용할 수 있는 동시 공유기능 제공 X
데이터의 구조가 자주 변경되거나, 사용자 요구에 맞는 응용프로그램 개발하는데 어려움이 있음 -> 파일에서 데이터 읽기,삽입,삭제 등 데이터 관리 기능을 포함해야 하기 때문
프로그램에서 다루는 데이터가 많아질수록, 그 데이터를 동시에 사용하는 사람이 많아질수록 관리가 어려워짐
데이터를 쉽고 편리하게 다룰 수 있도록 하기 위해 등장한 것 이 DBMS
- 어느 한 조직의 다양한 응용 프로그램들이 공동으로 사용하는 데이터들을 통합해 저장하고 운영하는 데이터의 집
- 여러 응용 시스템(프로그램)들의 통합된 정보들을 저장하여 운영할 수 있는 공용 데이터의 집합
- 효율적으로 저장,검색,갱신할 수 있도록 집합들끼리 조직화 되어야함
- 기능이나 구조를 나타내는 추상적인 개념
- 데이터의 독립성
- 데이터베이스의 사이즈를 늘리거나 성능 향상을 위해 데이터 파일을 늘리거나 새롭게 추가 하더라도 관련된 응용프로그램을 수정할 필요가 없음 -> 종속성 해결
- 데이터의 일관성
- 데이터의 일관성 연관된 정보를 논리적인 구조로 관리함으로써 어떤 하나의 데이터만 변경했을 경우 발생할 수 있는 데이터의 불일치성을 배제
- 데이터의 보안성
- 인가된 사용자들만 데이터베이스나 데이터베이스 내의 자원에 접근할 수 있도록 계정 관리 또는 접근 권한을 설정함으로써 모든 데이터에 보안을 구현
- 데이터의 중복성
- 중복을 최소화한 데이터베이스는 데이터를 통합해서 관리함으로써 파일 시스템의 단점 중 하나인 자료의 중복과 데이터의 중복성 문제를 해결
- 데이터의 무결성
- 여러 경로를 통해 잘못된 데이터가 발생하는 경우의 수를 방지하는 기능으로 데이터의 유효성 검사를 통해 무결성을 구현
- 실시간 접근성 (Real-Time-Accessabillity)
- 사용자의 요구를 실시간 처리 및 응답
- 계속적인 변화(Continuous Evolution)
- 정확한 값을 유지하기 위해 삽입 삭제 수정 등의 동적인 작업을 통해 데이터를 지속적으로 갱신
- 동시 공유성 ( Concurrent Sharing )
- 사용자마다 서로 다른 목적으로 사용하므로 여러 사용자가 동일한 데이터에 동시에 접근 및 이용
- 내용 참조(Content Reference)
- 데이터 레코드의 위치나 주소가 아닌 사용자가 요구하는 데이터의 내용, 데이터 값에 따라 참조
- DB를 생성 및 관리하며 응용 프로그램들이 DB를 공유하며 사용할 수 있는 환경을 제공하는 소프트웨어
- 데이터와 응용 프로그램 사이를 중계
- 데이터베이스를 직접 응용 프로그램들이 조작하지 않고 DBMS를 통해 조작, 관리
- 여러 소프트웨어 또는 시스템이 동시에 DB에 접근하여 사용
DBMS는 파일시스템의 단점을 모두 보완시켜주지만 운영비가 비싸고, 백업 및 복구에 대한 관리가 복잡하고, 부분적인 데이터 손상이 전체 시스템을 정지 시킬 수 있다는 단점도 존재한다.