DBMS 등장 이전 데이터를 관리하기 위해선 파일 시스템이라는 소프트웨어를 이용
1)데이터를 파일로 관리할 수 있도록 파일을 생성,삭제,수정,검색하는 기능 제공
2)응용 프로그램별로 필요한 데이터를 관리
위와 같이 관리를 하다 보니 아래와 같은 문제점 발생
- 데이터 종속성(data dependency) - 데이터와 응용 프로그램 간의 상호 의존 관계
똑같은 내용을 표로 작성해 doc파일로 저장한 경우에는 데이터의 종속성 때문에 excel파일로는 열 수 없음- 데이터의 중복성(data redundancy) - 동일한 내용의 파일이 여러개 생기는 것
데이터가 중복되면 저장 공간이 낭비되고 데이터가 변동되거나 갱신할 때 수정된 내용을 동시에 모두 반영해야하니 굉장히 비효율적
파일 시스템의 데이터 중복과 데이터 종속 문제를 해결하기 위해 제시된 소프트웨어
여러 응용 프로그램들이 동시에 데이터베이스에 접근할 때 발생할 수 있는 문제를 중재
데이터베이스 생성, 접근, 관리 모두 담당
사용자는 요청만 하면 되며, 데이터베이스의 물리적 저장 구조나 데이터 접근 및 처리 방법 등을 자세히 알 필요가 없음
데이터 변동 발생 시 사용자가 알거나 응용 프로그램이 변경될 필요가 없음 - 데이터 독립성 보장
1. 데이터 중복을 통제 - 데이터베이스에 데이터를 통합하여 관리함 -> 중복 문제 해결
효율성 때문에 중복을 허용해도 통제 가능한 선에서 최소화 -> 데이터 일관성 유지
2. 데이터 독립성 확보 - 데이터베이스 (저장)구조가 변경되어도 응용 프로그램이 영향을 받지 않음
3. 데이터 동시 공유 가능 - 이를 통해 불필요한 데이터 중복을 제한할 수 있음
4. 데이터 보안이 향상 - 중앙 집중식 관리를 통한 데이터에 대한 효율적인 접근 제어 수행
5. 데이터 무결성 유지 가능 - 연산이 수행될 때마다 유효성을 검사
6. 표준화 가능 - DBMS가 미리 정한 표준화 방식을 통해 데이터베이스에 접근
7. 장애 발생 시 회복 가능 - 데이터 일관성과 무결성을 유지하면서 이전 상태로 복구
8. 응용 프로그램 개발 비용 감소 - 개발 및 유지보수 비용이 감소
1. 고비용 - DBMS 구매 비용, 복잡한 기능을 제공하기에 컴퓨터 자원을 많이 점유
2. 복잡한 백업 및 복구 - 데이터베이스는 구조가 복잡하고 동시 공유를 지원하기에 장애의 원인과 상태를 정확히 파악하기 어려움
따라서 장애 발생 전에 데이터를 미리 백업해놓고 장애 발생 후에 데이터를 일관된 상태로 회복하는 방법 사용 -> 복잡함
3. 중앙 집중 관리로 인한 취약점 존재 - 장애 발생 시 전체 시스템의 업무 처리가 중단
데이터베이스에 대한 의존도가 높은 시스템일수록 가용성, 신뢰성에 치명적 영향을 받을 수 있음
사용하는 데이터 모델에 따라 네트워크, 계층, 관게, 객체지향. 객체관계로 구분할 수 있음
데이터 모델은 데이터를 데이터베이스에 저장하는 구조를 의미한다.
테이블 형태로 구성하는 관계 데이터 모델을 사용, 데이터베이스를 단순하고 이해하기 쉬운 구조로 구성
-> 관계 데이터 모델을 사용하는 관계 DBMS가 많이 개발되었으며, 이론적 연구도 많이 이루어짐
데이터베이스 관리 시스템의 주류로 존재 (Oracle, MS SQL Server, Access, Informx, MySQL)
객체지향 DBMS와 객체관계 DBMS가 등장한 뒤에도 대표적인 데이터베이스 관리 시스템은 일반적으로 관계 DBMS로 인식
하지만 대량의 비정형 데이터가 생성, 클라우딩 컴퓨팅, 빅데이터 개념이 등장하면서 새로운 DBMS에 대한 요구 발생
NewSQL은 시장에 진입한 지 얼마 되지 않았기에 당분간 관계 DBMS, NoSQL, NewSQL이 상호 보완하면서 공존할 것으로 예상됨
그렇기에 저장할 데이터의 형태, 비즈니스의 성격 등을 고려해서 적합한 DBMS를 선택하는 것이 중요
출처 - 김연희저자의 데이터베이스 개론 2판 - 한빛 아카데미