1. 데이터베이스 관리 시스템의 등장 배경
1) 파일 시스템 (file system)
- 데이터를 파일로 관리하기 위해 파일을 생성 삭제 수정 검색하는 기능을 제공하는 소프트웨어
- 응용 프로그램 별로 필요한 데이터를 별도의 파일로 관리함
- → 각 팀이 데이터를 관리한다. 중복된 데이터가 업데이트 된다면 문제가 생길 수도 있음
- 파일 시스템의 주요 문제점
- 같은 내용의 데이터가 여러 파일에 중복 저장됨 → 데이터 중복성
- 저장 공간의 낭비는 물론 데이터 일관성과 데이터 무결성을 유지하기 어려움
- 한 고객의 연락처를 고객 데이터 파일에서만 수정하고 실수로 주문 데이터 파일에서 수정하지 않았다면???
- 데이터 중복성 문제를 해결하는 방법?
- 따로 따로 되어있는 데이터 파일을 하나로 통합하자
- 중복되는 내용들을 하나의 DB로 관리하고 별도로 관리해야하는 부서의 특성을 가진 데이터들은 별도로 ㅇㅇ..
- 저장 공간의 낭비는 물론 데이터 일관성과 데이터 무결성을 유지하기 어려움
- 응용 프로그램이 데이터 파일에 종속적 → 데이터 종속성
- 응용 프로그램이 데이터 파일에 종속적이다
- 사용하는 파일의 구조를 변경하면 응용 프로그램도 함께 변경해야함 (e.g. column 추가)
- 파일을 사용하는 응용 프로그램이 많거나 파일의 구조가 자주 변경되는 경우 더 심각
- 응용 프로그램이 데이터 파일에 종속적이다
- 데이터 파일에 대한 동시 공유, 보안, 회복 기능이 부족하다.
- 응용 프로그램 하나가 사용중인 다른 응용프로그램이 접근하여 사용할 수 있는 동시 공유 기능이 없음
- 이를 해결하기 위해 같은 내용의 파일을 여러 개 만들 경우 데이터 중복이 발생
- 데이터가 중복된 모든 파일의 보안을 같은 수준으로 유지하기 어려움
- 응용 프로그램이 파일을 사용하는 도중에 장애가 발생하면 데이터를 일관된 상태로 회복하기 어려움
- 응용 프로그램 하나가 사용중인 다른 응용프로그램이 접근하여 사용할 수 있는 동시 공유 기능이 없음
- 응용 프로그램을 개발하기 쉽지 않다
- 사용자 요구에 맞는 응용 프로그램을 개발하는데 어려움이 있음
- 새로운 응용 프로그램을 개발하려면 파일에서 데이터 읽기, 삽입, 기존 데이터 삭제하기 등의 기본적인 데이터 관리 기능을 모두 포함해야함
- 같은 내용의 데이터가 여러 파일에 중복 저장됨 → 데이터 중복성
2. 데이터베이스 관리 시스템의 정의
1) 데이터베이스 관리 시스템
- DBMS (DataBase Management System)
- 파일 시스템의 문제를 해결하기 위해 제시된 소프트웨어
- 조직에 필요한 데이터를 데이터베이스에 통합하여 저장하고 관리함
2) 데이터 베이스 관리 시스템에서의 데이터 관리
- 사용자와 데이터베이스 사이의 인터페이스 역할을 하는 DBMS
3) 데이터베이스 관리 시스템의 주요 기능
- 정의 기능: 데이터베이스 구조를 정의하거나 수정할 수 있다.
- 정의 기능에서의 데이터 삽입삭제수정??→ column에
- 조작 기능: 데이터를 삽입, 삭제, 수정, 검색하는 연산 가능
- Just “행” 삭제or추가
- 제어 기능: 데이터를 항상 정확하고 안전하게 유지할 수 있다. (무결성이 유지되도록 제어해준다)
3. 데이터베이스 관리 시스템의 장단점
1) 장점
- 데이터 중복을 통제할 수 있다.
- 데이터베이스에 데이터를 통합해 관리하므로 데이터 중복 문제 해결
- 데이터 독립성이 확보된다.
- 응용 프로그램 대신 데이터베이스에 접근하고 관리하는 모든 책임 담당
- 응용 프로그램과 데이터베이스 사이에 독립성이 확보됨
- 응용 프로그램 대신 데이터베이스에 접근하고 관리하는 모든 책임 담당
- 데이터를 동시 공유할 수 있다.
- 동일한 데이터를 여러 응용 프로그램이 공유하여 동시 접근할 수 있게 지원
- 동시 접근 제어 기술 보유
- 동일한 데이터를 여러 응용 프로그램이 공유하여 동시 접근할 수 있게 지원
- 데이터 보안이 향상된다.
- 중앙 집중식으로 데이터를 관리하므로 효율적인 접근 제어 가능
- 권한이 없는 사용자의 접근, 허용되지 않는 데이터와 연산에 대한 요청 차단
- 중앙 집중식으로 데이터를 관리하므로 효율적인 접근 제어 가능
- 데이터 무결성 유지 가능
- 데이터 삽입 수정 등의 연산이 수행될 때마다 유효성을 검사해 데이터 무결성 (정확성)을 유지
- 표준화 가능
- 데이터 베이스 관리 시스템이 정한 표준화된 방식을 통해 데이터 베이스에 접근
- 장애 발생 시 회복 가능
- 데이터 일관성과 무결성을 유지하면서 장애 발생 이전 상태로 데이터를 복구하는 회복 기능 지원
- 응용 프로그램 개발 비용이 줄어든다
- 파일 시스템을 사용할 때 보다 데이터 관리 부담이 줄어 응용 프로그램 개발 비용 및 유지 보수 비용이 줄어든다
2) 단점
- 비용이 많이 든다.
- 별도 구매 비용이 들고, 동시 사용이 허용되는 사용자 수에 따라 증가
- 백업과 회복 방법이 복잡하다.
- 장애 발생의 원인과 상태를 정확히 파악하기 어렵고 회복 방법도 복잡함
- 중앙 집중 관리로 인한 취약점이 존재한다.
- 데이터베이스나 데이터베이스 관리 시스템에 장애가 발생하면 전체 시스템의 업무처리가 중단됨.
- 데이터베이스 의존도가 높은 시스템 일수록 가용성과 신뢰성에 치명적임
4. 데이터베이스 관리 시스템의 발전
✅ 1세대: 네트워크 DBMS, 계층 DBMS
- 계층 DBMS: 데이터베이스를 트리 형태로 구성 (먼저나옴!)
- 1:1 대응도 가능하다 ㅁ-ㅁ-ㅁ-ㅁ, n:m (다대다) 형태는 불가능….
- e.g.) IMS (Information Management System) - 1960년대 후반에 개발
- 네트워크 DBMS: 데이터베이스를 그래프 형태로 구성
- e.g.) IDS(Integrated Data Store)- 1960년대 초에 개발
✅ 2세대: 관계 DBMS
- 관계 DBMS: 데이터베이스를 테이블 형태로 구성 (like 엑셀시트 ㅎ)
- e.g.) Oracle, MS SQL 서버, Access, Informix, MySQL, MariaDB
✅ 3세대: 객체지향 DBMS, 객체 관계 DBMS
- 객체지향 DBMS: 객체를 이용해 데이터베이스를 구성
- e.g.) O2, ONTOS, GemStone
- 객체관계 DBMS: 객체지향 DBMS + 관계 DBMS
- e.g.) 관계 DBMS 제품들이 객체지향 기능을 지원하면서 객체 관계 DBMS로 분류되기도 함 (오라클이 대표적)
✅ 4세대: NoSQL, NewSQL DBMS
- NoSQL DBMS: 비정형 데이터를 처리하는데 적합하고 확장성이 뛰어남
- 안정성과 일관성 유지를 위한 복잡한 기능 포기
- 데이터 구조를 미리 정해두지 않는 유연성
- 여러 대의 컴퓨터에 데이터를 분산하여 저장하고 처리하는 환경에서 주로 사용
- e.g.) Mongo DB, HBase, Cassandra, Redis, Neo4j, OrientDB
- NewSQL DBMS: 관계 DBMS의 장점 + NoSQL의 확장성 및 유연성
- 정형 및 비정형 데이터를 안정적이고 빠르게 처리 가능
- e.g.) Spanner(구글 스패너), VoltDB, NuoDB
'Database' 카테고리의 다른 글
[3강] 데이터베이스 시스템의 정의 (0) | 2025.03.18 |
---|---|
[1강] 데이터 베이스 기본 개념 (0) | 2025.03.04 |