-
2. 데이터베이스 관리 시스템 DBMS 요약정리CS - Database 2021. 10. 15. 23:33
파일 시스템 file system
오래전부터 사용되어 온 정보 처리 시스템.
생성, 삭제 수정, 검색 기능 제공. 운영체제와 함께 설치된다.
파일 시스템 환경에서는 응용 프로그래머가 파일의 논리적인 구조뿐 아니라 물리적인 구조까지 정확히 파악해야 한다.
[장점]
별도의 구매 비용이 들지 않는다.
[문제점]
1. 같은 내용의 데이터가 여러 파일에 중복 저장된다.
데이터 중복성(data redundancy)
→ 데이터 일관성(data consistency)과 데이터 무결성(data integrity)을 유지하기가 어렵다.
Sol] 데이터 통합2. 응용 프로그램이 데이터 파일에 종속적이다.
응용프로그램이 파일에 직접 접근하여 데이터를 처리해야 하는데, 파일의 데이터 구성 방법이나 물리적인 저장 구조에 맞게 작성되어야 한다.
파일의 구조 변경 → 응용 프로그램도 변해야 한다.(데이터 종속성)
파일을 사용하는 응용 프로그램이 많거나 파일의 구조가 자주 변경되는 경우 더 심각하게 부각됨.3. 데이터 파일에 대한 동시 공유, 보안, 회복 기능이 부족하다.
- 동시 공유 기능 : 다른 응용 프로그램이 접근하여 사용할 수 있든 동시 공유 기능을 제공하지 않는다.→ P] 데이터 중복 문제
Sol] 같은 내용의 파일 여러 개 만들어 응용 프로그램마다 제공할 수 있음
- 보안 기능 : 파일 단위로 읽기, 수정, 실행 권한 부여하고 있지만 레코드나 필드 같은 더 작은 단위에 대한 접근 통제, 구체적인 권한 부여가 필요함.
and 중복된 모든 파일의 보안을 같은 수준으로 유지하기도 어려움.
- 회복 기능 : 파일 사용 도중 장애 발생 시, 데이터를 일관된 상태로 회복하기 어렵다.
특히 데이터를 수정하는 도중 장애 발생 시 더더욱 그렇다.4. 응용 프로그램을 개발하기 쉽지 않다.
사용자 요구에 맞는 응용 프로그램을 개발하는 데 어려움이 많다.
파일에서 데이터 읽기, 삽입, 삭제 등 기본적 데이터 관리 기능 모두 포함해야 한다.→ 결론 : 근본 원인은 데이터 중복성 + 데이터 종속성
→ 그 대안으로 제시된 것 : 데이터베이스 관리 시스템 DBMS데이터베이스 관리 시스템 DBMS : DataBase Management System
: 파일 시스템의 데이터 중복과 데이터 종속 문제를 해결하기 위해 제시된 소프트웨어.
조직에 필요한 데이터를 데이터베이스에 통합하여 저장하고 이에 대한 관리를 집중적으로 담당한다.
응용 프로그램을 대신하여 데이터베이스에 들어있는 데이터를 삽입, 삭제, 수정, 검색하고 모든 응용 프로그램이 데이터베이스를 공유할 수 있게 한다.
사용자나 응용 프로그램은 데이터베이스의 물리적 저장 구조나 데이터 접근 및 처리 방법 등을 자세히 알 필요가 없어 부담이 줄어든다. → DB구조나 접근방법이 변경되어도 응용 프로그램을 변경할 필요가 없다 : 데이터 독립성 확보; independency
DBMS 제공하는 주요 기능
1. 정의
데이터베이스의 구조를 정의하거나 이미 정의된 구조를 수정할 수 있다.
2. 조작
데이터에 접근하여 삽입, 삭제, 수정, 검색하는 연산을 효율적으로 처리한다.
3. 제어
여러 사용자가 공유해도 항상 정확하고 안전하게 유지하는 기능을 제공한다.
- 삽입, 삭제, 수정 연산 후에도 일관성, 무결성을 유지하도록 한다.
- 장애가 발생해도 회복이 가능하도록 제어한다.
- 권한이 있는 사용자에게만 데이터 접근을 허용하여 보안이 유지되도록 제어한다.
- 여러 사용자가 데이터베이스에 동시에 접근하여 데이터를 처리할 수 있도록 제어한다.DBMS 장점
1. 데이터 중복 통제
저장공간 낭비, 수정 비용 증가, 데이터 불일치로 인한 일관성 유지 못함 방지.
데이터를 통합하여 관리하므로 데이터 중복 문제 해결
효율성 때문에 데이터 중복을 허용하는 경우에도 통제 가능하도록 중복을 최소화하므로 일관성도 유지할 수 있다.2. 데이터 독립성 확보
응용 프로그램을 대신해서 DB에 접근하고 이를 관리하는 모든 책임을 짐
→ DB 구조가 변경되어도 응용 프로그램이 영향받지 않음.3. 데이터 동시 공유 가능
데이터를 여러 응용 프로그램이 공유하여 같은 데이터에 동시 접근할 수 있도록 지원.
(동시 접근 제어하는 어려운 기술 보유)
→ 불필요한 데이터 중복 제한.4. 데이터 보안 향상
데이터 중앙 집중식 관리 → 효율적인 접근 제어 가능
권한이 없는 사용자의 접근, 허용되지 않은 데이터와 연산 요청 차단 → 철저한 보안 제공
사용자 별로 접근 가능한 데이터베이스 영영 제한, 접근 수준 차별화5. 데이터 무결성 유지
연산 수행될 때마다 유효성 검사하여 데이터 무결성(정확성) 유지.
6. 표준화 가능
모든 응용 프로그램은 DBMS가 미리 정한 표준화 방식을 통해 DB에 접근한다.
데이터에 대한 모든 접근이 DBMS를 통해 이루어지기 때문에 데이터 접근 방법, 데이터 형식과 구조 표준화하기 쉽다.
7. 장애 발생 시 회복 가능
DBMS는 장애가 발생해도 데이터 일관성과 무결성을 유지하면서 데이터를 장애가 발생하기 이전 상태로 복구하는 회복 기능을 지원한다.
8. 응용 프로그램 개발 비용 감소
데이터에 대한 모든 관리를 DBMS가 담당 → 유지 보수 비용이 파일 시스템을 사용할 때보다 줄어듦.
DBMS의 단점
: DBMS가 장점이 많지만 모든 상황에 적합한 것은 아니다.
1. 비용이 많이 든다
DBMS는 따로 설치해야 하므로 구매비용 + 동시 사용이 허용되는 사용자 수에 따라 제품 가격 증가 + 복잡하고 다양한 기능 제공하기 위해 컴퓨터 자원을 많이 사용한다.
2. 백업과 회복 방법이 복잡하다.
데이터 양이 많아 구조가 복잡하고 동시 공유를 지원하므로 장애가 발생했을 때 원인과 상태의 정확한 파악이 어렵다.
원래의 일관된 상태로 회복하는 방법이 복잡할 수밖에 없다.3. 중앙 집중 관리로 인한 취약점 존재.
모든 데이터가 DB에 통합되어 있고 이에 대한 관리 책임이 DBMS에 집중
→ DBMS에 장애 발생 시 전체 시스템의 업무 처리 중단.
DB에 대한 의존도 높은 시스템일수록 가용성과 신뢰성에 치명적인 영향단점에도 불구하고 이점이 더욱 많다.
투자 비용이 적거나 소수 사용자를 위한 시스템일 경우, DBMS 사용하지 않는 것이 나을 수도 있다.
데이터 모델 data model
데이터를 데이터베이스에 저장하는 구조
DBMS 발전과정
1960년대 개발 이후 현재까지 진화 중
1세대 DBMS : 네트워크 DBMS, 계층 DBMS (1960~1970)
- 네트워크 DBMS : 노드와 간선을 이용한 그래프 형태로 구성. DB의 구조가 복잡하고 변경하기 어려움
ex) IDS(Integrated Data Store)
- 계층 DBMS : DB를 트리 형태로 구성하는 계층 데이터 모델 사용. 네트워크 DBMS보다 구조 단순하지만 현실세계 모습을 명확한 트리 형태로 표현하기 힘들고 구조 변경이 어려움
ex) IMS(Information Management System2세대 DBMS : 관계 DBMS (1980~)
DB를 테이블 형태로 구성하는 관계 데이터 모델 사용.
단순하고 이해하기 쉬운 구조로 구성.
1980년 DBMS의 주류가 되었으며 1990년대 기술 확장, 성능 향상. 지금도 널리 쓰임
ex) Oracle, MS SQL Server, Access, Informix, MySQL3세대 DBMS : 객체지향 DBMS, 객체 관계 DBMS
- 객체지향 DBMS(1980대 후반)
: 객체지향 프로그래밍에서 도입한 객체라는 개념을 이용해 DB 구성하는 객체지향 데이터 모델 사용.
더 복잡한 응용 분야의 데이터를 관리하려는 사용자 요구를 충족시키기 위해 제안됨.
새로운 유형의 데이터 저장, 데이터에 대한 복잡한 분석 및 처리 지원.
ex) 오투 O2, 온투스 ONTOS, 젬스톤 GemStone
- 객체관계 DBMS (1990대 후반)
: 관계 데이터 모델에 객체지향 개념을 도입한 객체관계 데이터 모델 사용. 객체 DBMS + 관계 DBMS 개념 통합. 2, 3세대 DBMS 통합4세대 DBMS : NoSQL DBMS, NewSQL DBMS
SNS 이용 증가로 인한 비정형 데이터 이용이 증가하는데 관계 DBMS는 비효율적임.
→ 관계 DBMS가 강점으로 제시하던 안정성, 일관성 유지를 위한 복잡한 기능 포기하고 데이터 구조를 미리 정해두지 않음 → 비정형 데이터 저장, 처리에 효율적
확장성 뛰어나 여러 대의 서버 컴퓨터에 데이터 분산하여 저장, 처리하는 환경에 주로 사용
ex) 몽고디비 MongoDB, H베이스 HBase, 카산드라 Cassandra, 레디스 Redis, 네오포제이 Neo4j, 오리엔트 DB, OrientDB
P] 기업은 관계 DBMS의 안정성과 일관성을 중요하게 평가하고 있고 처리 데이터 중 정형 데이터가 차지하는 비율이 높기 때문에 관계 DBMS를 대체하진 못함.
→ 관계 DBMS유지 + NoSQL 추가 도입 부담 → NewSQL DBMS 등장(2011) : 관계 DBMS장점(안정성 + 일관성) 유지와 동시에 NoSQL의 확장성, 유연성 모두 지원 → 정형 및 비정형 데이터 안정적, 빠르게 처리 가능
ex) 구글 스패너 Spanner, 볼트 DB VoltDB, 누오DB NuoDB
시장에 진입할지 얼마 되지 않았음. 관계 DBMS, NoSQL, NewSQL이 상호 보완하면서 공존할 것으로 예상.c.f] SQL은 DBMS를 위한 표준 질의어이지만 NoSQL에서의 SQL은 관계 DBMS를 의미함.
NoSQL은 1998년에 처음 언급되었으나 Not Only SQL(관계 DBMS 적용 어려운 환경에서의 대안) 의미를 가지기 시작한 건 2009년 이후부터이다.
[reference]
데이터베이스 개론 2판
'CS - Database' 카테고리의 다른 글
3. 데이터베이스 시스템 요약정리 (0) 2021.10.15 1. 데이터베이스 요약정리 (0) 2021.10.15