학습목표
DBMS의 발전 배경과 발전 과정에 대해 설명할 수 있다.
DBMS의 정의, 필수, 기능, 장단점에 대해 설명할 수 있다.
DBMS의 Marketplace에 대해 설명할 수 있다.
DBMS의 발전 배경
DBMS의 등장 이전에는 파일 시스템을 사용
응용 프로그램과 데이터파일이 1:1로 대응되도록 구현 --> 응용 프로그램 관리 및 데이터 공용이 어려움
파일 시스템의 문제점은?
- 데이터 중복성(Data Redundancy) : 한 시스템 내에 같은 내용의 데이터가 여러 파일에 저장 관리됨
- 경제성(Economics) : 추가적인 공간 필요, 갱신 비용 증가
- 일관성(Consistency) : 데이터 간의 모순과 불일치 발생
- 무결성(Integrity) : 데이터의 정확성 유지가 어려움
- 데이터 종속성(Data Dependency) : 응용 프로그램과 데이터 사이의 의존관계
- 데이터의 형식 및 길이 변경 시 파일에 접근하는 모든 응용 프로그램이 변경되어야 함
- 동시 공유·보안·권한 부여·회복 기능 부족
- 동시 공유 기능을 제공하지 않음
- 중복된 여러 개의 파일 보안을 동일 수준으로 유지하기 어려움
- 파일 안의 레코드나 필드 등 더 작은 단위에 대한 접근 통제 및 권한 부여가 어려움
- 응용 프로그램이 파일 사용 중 장애 발생 시 데이터를 일관된 상태로 회복하기 어려움
- 응용 프로그램 개발이 어려움
- 파일에 접근하여 데이터를 관리하는 모든 작업을 응용 프로그램이 담당해야 되므로 사용자의 요구에 맞는 응용 프로그램 개발이 어려움
- 새로운 응용 프로그램 개발 시 데이터 읽기·삽입·삭제 등 기본적인 데이터 관리 기능을 모두 포함해야 함
DBMS의 정의
컴퓨터 시스템에서 DBMS의 위치는?
하드웨어 < 운영체제 < DBMS < 응용 개발 도구들 < 응용 프로그램 사용자
DBMS의 필수 기능, 장단점
- 정의(Definition) 기능 : 다양한 형태의 데이터 요구를 지원할 수 있도록 가장 적절한 데이터베이스 구조를 정의할 수 있는 기능
- 데이터 구조 정의에 고려해야 할 사항들
- 목표 DBMS가 지원하는 데이터 모델에 맞게 기술
- 물리적 저장 장치에 저장하는 필요한 명세 포함
- 데이터의 논리적 구조와 물리적 구조 사이의 Mapping을 명세
- 정의 기능을 하는 언어 (DDL)
- CREATE, ALTER, DROP
- 데이터 구조 정의에 고려해야 할 사항들
- 조작(Manipulation) 기능
- 데이터 검색·삽입·삭제·갱신
- 사용자와 데이터베이스 사이 인터페이스를 위한 수단 제공
- 사용자의 요구에 따라 체계적으로 DB를 접근하고 조작 가능하게 함
- 조작 기능에 고려해야 할 사항들
- 쉽고 자연스러운 조작 방법
- 명확하고 완전한 데이터 사이의 명세가 가능해야 함
- 효율적인 데이터 접근, 처리
- 조작 기능을 하는 언어 (DML)
- SELECT, INSERT, UPDATE, DELETE
- 제어(Control) 기능
- 데이터의 정확성과 보안성을 유지하는 기능
- 제어 기능에 고려해야 할 사항들
- 무결성(Integtiry) 유지
- 보안(Security), 권한(Authority) 검사
- 병행 제어(Concurrency Control)
- 회복(Recovery)
- 제어 기능을 하는 언어 (DCL)
- COMMIT, ROLLBACK, GRANT, REVOKE
DBMS의 장단점
장점
- 데이터 중복의 최소화
- 데이터 독립성 확보
- 데이터의 공용
- 데이터의 일관성과 무결성 유지
- 데이터의 보안 보장
- 응용 개발 시간 단축 및 편리성 증대
- 표준화 및 전체 데이터 요구의 조정
단점
- 비용의 증대
- 복잡한 백업과 회복
- 중앙 집중 관리로 인한 취약점 존재 -> 신뢰성과 가용성 저해
여러 단점에도 불구하고 장점이 더 많기 때문에 DBMS 이용
DBMS의 발전 과정
네트워크 DBMS (1960~1970년대)
- 노드와 간선을 이용한 그래프 형태로 구성
계층 DBMS (1960~1970년대)
- 부모 노드와 자식 노드를 이용한 트리 형태로 구성
-- 복잡한 현실 세계 모습을 표현하기 어렵고 구조 변경이 어려움
관계 DBMS
- 테이블 형태로 모델이 간단하여 이해하기 쉬움
- 사용자는 자신이 원하는 것(what)만 명시, DBMS가 데이터가 어디에(where) 있는지 어떻게(how) 접근해야 하는지 결정
객체지향 DBMS
- 객체지향 프로그래밍 패러다임을 기반으로 하는 데이터 모델
- 점점 복잡한 객체의 출현 -> 데이터와 프로그램을 그룹화하고, 복잡한 객체들을 이해하기 쉬우며, 유지와 변경이 용이함
-- 1990년대 후반에 관계 DBMS + 객체지향 개념 -> 객체관계 DBMS 등장
객체관계 DBMS
- Oracle, Informix Universal Server 등
XML DBMS
- 2000년대 XML 데이터 모델 등장
- XML과 XQuery가 표준화 됨
NoSQL DBMS (Not Only SQL)
- 2000년대 후반 Twitter, Youtube, Netflix Instagram, iCloud 등 비정형 데이터 저장 및 처리에 대한 요구 증가로 개발
- 관계형 모델을 사용하지 않으며 테이블 간의 조인 기능 없음
- 직접 프로그래밍을 하는 등 비SQL 인터페이스를 통한 데이터 액세스
- 대부분 여러 대의 데이터베이스 서버를 묶어서 (클러스터링) 하나의 데이터베이스를 구성
- 데이터 처리 완결성 보장하지 않음
- 데이터의 스키마와 속성들을 다양하게 수용
- 데이터베이스의 중단 없는 서비스와 자동 복구 기능 지원
- 다수가 오픈 소스로 제공
- 확장성, 가용성, 높은 성능
- MongoDB, Hbase, Cassandra, MariaDB, Redis 등
NewSQL DBMS
- 정형 데이터를 처리하는 관계 DBMS를 유지하면서 비정형 데이터를 처리하기 위한 NoSQL을 추가로 도입하는 부담을 줄이기 위해 등장 (2011년에 처음 언급)
- 안정성과 일관성을 유지하면서도 SQL을 이용해 다양하고 복잡한 데이터 처리를 편리하게 요청할 수 있음
- 관계 DBMS의 장점과 NoSQL의 확장성 및 유연성을 모두 지원
- 구글 Spanner, VoltDB, NuoDB 등
데이터의 형태, 업무 처리 성격을 고려해 적합한 DBMS 선택
당분간 관계 DBMS, NoSQL, NewSQL이 상호 보완하면서 공존할 것으로 예상
DBMS 시장(DBMS Marketplace)
다중 사용자인 Enterprise DBMS와 개인 사용자인 Desktop DBMS
- Enterprise DBMS
- Oracle : Unix, NT
- MS SQL Server : NT
- Informix : Unix
- DB2 : Mainframe
- Informix와 DB2는 IBM으로 통합
- Unify
- Sybase
- MySQL : 공개 S/W, SUN이 인수 후 Oracle이 SUN 인수
- 국산 Enterprise DBMS
- Cubrid : UniSQL 확장 오픈 소스
- Tibero : 티맥스티베로
- Altibase : In-Memory DBMS
- Desktop DBMS
- Access : Microsoft
- FoxPro
- Paradox
- Approach
- File Maker Pro
모바일 데이터베이스
모바일 기기를 이용하여 데이터를 가공 후, 동기화 기능을 통해 중앙 서버로 전송하는 능력을 갖춘 데이터베이스
모바일 기기는 컴퓨터에 비해 낮은 CPU 성능과 자원 → 모바일 기기에 적합한 작은 크기의 데이터베이스가 필요함
특징
- 저사양 기기에 탑재 가능
- 낮은 CPU 성능과 제한된 주기억장치를 가진 모바일 기기에도 탑재할 수 있도록 크기가 작음
- 서버 측 데이터베이스의 복제 및 동기화 기능
- 데이터의 지속적인 갱신과 일관성 유지 가능
- 내장형(Embedded) 데이터베이스
- 모바일 컴퓨팅 환경에서는 데이터베이스도 애플리케이션과 결합된 형태로 모바일 기기에 탑재
동작 과정
- 최초 접속 시 동기화 가능 여부 확인, 기본 SW 다운로드 및 설치
- 클라이언트와 서버는 데이터를 독립적으로 변경
- 수정된 복사본을 전송
- 수정본의 상호 적용 및 동기화
종류
- CloudScape
- DB2 Everyplace
- ASA(Adaptive Server Anywhere)
- PointBase Mobile Edition
- SQLite
- 대표적인 오픈소스 파일 데이터베이스
- 안정적
- 크로스 플랫폼 지원 -> 모바일 기기에 적합
활용
- 보험 회사, 자동차 회사
- 모바일 데이터베이스를 탑재한 모바일 기기에 상품 및 고객 정보를 담아서 차별화된 고객 맞춤형 서비스 제공
- 가스 회사
- 검침, 유지 보수 등 현장 업무의 자동화를 위해 모바일 데이터베이스를 탑재한 PDA 보급
- 현장에서 데이터 수집과 처리 가능
- 물류 회사
- 배달, 재고 파악 등의 물류 지원 업무 처리
- 택배 회사
- 오프라인 환경에서 작업을 수행한 후 온라인 상태에서 서버와 데이터 동기화를 통해 택배 업무 처리
- 백화점
- 기존의 POS 업무에 모바일 단말기 도입
- 실시간 재고 파악과 현장 결제 서비스 등 향상된 고객 응대 서비스 제공
'온라인 강좌 > 데이터베이스 개론' 카테고리의 다른 글
3차시 데이터베이스 시스템의 이해 (0) | 2023.07.06 |
---|---|
1차시 데이터베이스 기본 개념의 이해 (0) | 2023.07.06 |