소개기본적인 정의데이터베이스 유형 및 데이터베이스 응용 프로그램데이터베이스와 데이터베이스 기술의 영향최근 개발 동향NoSQL DBHadoopApache Spark데이터베이스 시스템 환경간단한 데이터베이스 시스템 환경전형적인 DBMS 기능데이터베이스 예제 (개념적 데이터 모델이 포함된)데이터베이스 설계 단계데이터베이스 접근 방식의 주요 특징주요 특성 중 데이터베이스 접근 방식의 특성(1) 데이터베이스 시스템의 자기 기술 특성(2-1) 프로그램과 데이터 간의 격리(2-2) 데이터 추상화(3) 데이터의 다중 뷰 지원(4) 데이터 공유 및 다중 사용자 트랜잭션 처리데이터베이스 접근 방식의 장점데이터베이스 접근 방식의 장점중복 제어무단 접근 제한프로그램 객체의 영속적 저장효율적인 쿼리 처리를 위한 저장 구조 (예: 인덱스) 제공그 외에도 많은 이점DBMS를 사용하지 말아야 하는 경우DBMS 사용의 부가 비용DBMS가 불필요한 경우DBMS를 실행하는 것이 불가능한 경우일반용 DBMS가 필요하지 않은 경우부록하둡디테일한 아키텍처장면의 배우들 (DB를 사용하는 사람들)데이터베이스 관리자데이터베이스 설계자최종 사용자숙련된 사용자스탠드얼론 사용자시스템 분석가응용 프로그래머장면 뒤에서 일하는 작업자들 (DB를 구성하는 사람들)시스템 설계자와 구현자도구 개발자운영 및 유지 보수 인원DBMS 접근 방식의 장점표준 강제 가능성응용 프로그램 개발 시간 단축자료 구조 변경 유연성최신 정보 이용 가능성규모의 경제성데이터베이스 응용 프로그램의 간략한 역사데이터베이스 기술의 역사적 발전초기 데이터베이스 응용 프로그램관계형 모델 기반 시스템객체지향 및 신흥 응용 프로그램웹 및 전자 상거래 응용 프로그램데이터베이스 기능 확장DBMS에 다음 영역에서 새로운 기능이 추가되고 있음21세기 도래 이후의 배경빅 데이터 기술과 NoSQL 데이터베이스의 출현
소개
기본적인 정의
- "데이터"란 무엇인가?
- 기록할 수 있으며 내포된 의미를 가진 알려진 사실
- 예: 지인들의 이름, 전화번호, 주소 등
- "데이터베이스"란 무엇인가?
- 관련된 데이터의 (조직화된) 모음
- 데이터베이스 관리 시스템이란?
- 사용자가 데이터베이스를 생성하고 유지할 수 있도록 하는 "소프트웨어 패키지/시스템"
- 예: Oracle, MySQL 등
- 데이터베이스 시스템이란?
- DB + DBMS (+ 데이터베이스 응용 프로그램)
데이터베이스 유형 및 데이터베이스 응용 프로그램
- 전통적인 응용 프로그램:
- 숫자 및 텍스트 데이터베이스: 주로 금융/은행, 예약, 도서관 시스템 등에서 사용됨
- 최근 응용 프로그램:
- 멀티미디어 데이터베이스: 예: 이미지, 오디오 클립, 비디오 스트림
- 지리 정보 시스템 (GIS): 예: 지도, 날씨 데이터, 위성 이미지
- 생물학 및 유전체 데이터베이스: 예: DNA 서열 분석
- 데이터 웨어하우스: 예: 비즈니스 의사 결정
- 모바일 데이터베이스: 예: 네트워크를 통해 모바일 컴퓨팅 장치에 있는 데이터
- 실시간/IIoT 데이터베이스: 예: 산업 및 제조 공정 제어
- 액티브 데이터베이스: 이벤트 기반 아키텍처 (이벤트-조건-동작 규칙 포함)
- 데이터베이스 검색: 예: 브라우저를 통한 웹 검색
이 강좌는 전통적인 응용 프로그램에 중점을 둘 것
데이터베이스와 데이터베이스 기술의 영향
- 비즈니스
- 은행, 보험, 소매, 운송, 헬스케어, 제조업
- 서비스 산업
- 금융, 부동산, 법률, 전자 상거래, 중소기업
- 교육
- 콘텐츠 및 배송을 위한 자원, 예: Coursera, MOOC, k-MOOC
- 더 최근의 응용 프로그램
- 소셜 네트워크, 환경 및 과학 응용 프로그램, 생물학/의학 및 유전학
- 맞춤형 응용 프로그램
- 스마트 모바일 장치를 기반으로 하며 데이터베이스가 내장된 경우
데이터베이스와 그 기술을 사용하지 않는 곳을 찾기가 매우 어려움
최근 개발 동향
- 지난 몇 년 동안 기술의 발전으로 데이터베이스 시스템의 흥미로운 새로운 응용 프로그램이 나타남
- 소셜 미디어 웹 사이트 (예: Facebook, Twitter, LinkedIn 등)는 전통적이지 않은 데이터 (게시물, 트윗, 이미지 및 비디오 클립 등)를 저장해야 했음
- 결과적으로 소셜 미디어 응용 프로그램을 위해 이러한 데이터를 관리하기 위해 대용량 데이터 저장 시스템 또는 NoSQL 시스템 (Hive, Pig, HBase 등)이라고 하는 새로운 유형의 데이터베이스 시스템이 등장함
- Google, Amazon, Yahoo, eBay 등도 웹 검색 엔진에서 필요한 데이터를 관리하기 위해 이러한 유형의 시스템을 사용함
- 그들은 자체 웹 페이지 저장소를 검색용으로 수집함
- Microsoft Azure, Google Cloud 및 Amazon AWS는 클라우드 저장소를 제공함
- 클라우드 저장소: 수천 대의 컴퓨터를 사용하는 거대한 데이터 센터에서 운영
- 이제 사용자들은 클라우드에서 문서, 프로그램, 이미지, 비디오 및 이메일과 같은 모든 유형의 데이터를 관리할 수 있습니다.
- 다른 예: Dropbox, Docker Cloud?!
NoSQL DB
- NoSQL은 기능과 기능이 다양한 데이터 관리 기술 그룹을 가리키는 용어임
- SQL 데이터베이스는 구체적인 개념이지만 NoSQL은 아님
- 기능
- 고성능 쓰기 및 대규모 확장성:
- 예: MongoDB, ElasticSearch, Cassandra, …
- 데이터 쓰기에 대한 정의된 스키마가 필요하지 않음
- 기본적으로 최종 일관성을 지원함
- 다양한 현대 프로그래밍 언어 (Python, Scala, Go 등) 및 도구 지원
- 내결함성 지원; 일반적으로 분산 컴퓨팅
- 예) MongoDB
- 문서 데이터 모델을 사용함
- 예) JSON과 같은 단일 문서 구조로 모델링된 '고객' 객체
{ "_id": ObjectId("5ad88534e3632e1a35a58d00"), "name": { "first": "John", "last": "Doe" }, "address": [ { "location": "work", "address": { "street": "16 Hatfields", "city": "London", "postal_code": "SE1 8DJ"}, "geo": { "type": "Point", "coord": [ 51.5065752,-0.109081]}}, ], "phone": [ { "location": "work", "number": "+44-1234567890"}, ], "dob": ISODate("1977-04-01T05:00:00Z"), "retirement_fund": NumberDecimal("1292815.75") }
Hadoop
- 대용량 데이터 처리를 위한 MapReduce 프로그래밍 모델의 실제 구현
- MapReduce 예제
- 고수준 기술 아키텍처
Apache Spark
- 아키텍처
데이터베이스 시스템 환경
현재 시대에도 중요한 전통적인 데이터베이스 시스템 환경으로 돌아가기
간단한 데이터베이스 시스템 환경
- 응용 프로그램은 다음을 생성하여 데이터베이스와 상호 작용함
- 쿼리: 일반적으로 일부 데이터를 검색하는 원인
- 트랜잭션: 일부 데이터를 원자적으로 읽거나 쓰도록 할 수 있음
- 응용 프로그램은 무단으로 사용자가 데이터에 액세스하지 못하게 하지 않아야 함. 데이터 보호를 제공함
- 응용 프로그램은 데이터베이스에 대한 변경된 사용자 요구 사항을 따라야 함
- 예: 비밀번호 정책 변경, 권한 변경
전형적인 DBMS 기능
- 데이터베이스의 데이터 유형, 구조 및 제약 조건을 정의함
- 초기 데이터베이스 콘텐츠를 "보조" 저장 매체 (예: HDD, SSD)에 물리적으로 생성 또는 로드함
- 데이터베이스 조작:
- 검색: 쿼리 작성, 보고서 생성
- 수정: 내용 추가, 삭제 및 업데이트
- 액세스: 웹 응용 프로그램을 통한 데이터베이스 액세스
- 일련의 동시 사용자 및 응용 프로그램에 의한 처리 및 공유 - 그러나 모든 데이터를 유효하고 일관되게 유지함
데이터베이스 예제 (개념적 데이터 모델이 포함된)
- 예제의 미니 월드:
- 대학 환경의 일부를 고려
- 일부 미니 월드 엔터티 (개체/엔티티):
- 학생
- 강의
- 강의 분반
- 학과 (학문적)
- 강사
- 그 외 어떤 것?
- 일부 미니 월드에는 엔터티 간의 관계가 있음
- 강의 분반은 특정 강의의 일부
- 학생들이 강의 분반을 수강
- 강의에는 선수 강의가 있음
- 강사들이 강의 분반을 가르침
- 학과에서 강의를 제공함
- 학생들이 학과를 전공함
- 그 외 어떤 것?
- 위의 "엔터티" 및 "관계"는 일반적으로 개념적 데이터 모델로 표현됨
- 예: ENTITY-RELATIONSHIP 데이터 모델 (3, 4장에서 논의됨)
- UNIVERSITY 데이터베이스 고려
데이터베이스 설계 단계
- 기존 데이터베이스에 대한 새 응용 프로그램 또는 새 데이터베이스의 설계에는 다음 단계가 필요함
- 단계 1: 요구 사항 명세 및 분석
- 단계 2: 개념적 설계 (데이터베이스 구현에 쉽게 변환 가능)
- 단계 3: 논리적 설계 (DBMS에서 구현된 데이터 모델)
- 단계 4: 물리적 설계 (데이터베이스 저장 및 액세스)
- 단계 5: 데이터베이스 응용 프로그램 개발 (콘솔, 웹 또는 클라우드 ...)
데이터베이스 접근 방식의 주요 특징
주요 특성 중 데이터베이스 접근 방식의 특성
(1) 데이터베이스 시스템의 자기 기술 특성
- 데이터베이스 시스템은 데이터베이스 자체뿐만 아니라 데이터베이스 구조, 유형 및 제약 조건의 완전한 정의 (또는 설명)를 포함함
- 카탈로그: 특정 데이터베이스의 설명인 메타데이터를 저장함
- 그럼에도 불구하고 일부 최신 시스템 (일부 NoSQL 시스템: MongoDB, Cassandra, Redis)은 메타데이터가 필요하지 않음. 왜냐하면 데이터 정의를 구조 내부에 저장하여 자체 기술로 만들기 때문(예 : '키': '값')
(2-1) 프로그램과 데이터 간의 격리
- 프로그램-데이터 독립성이라고도 함
- DBMS 액세스 프로그램을 변경하지 않고 데이터 구조 및 저장 구성을 변경할 수 있게 함
- 비교적 파일 처리 시스템에서는 프로그램이 액세스하는 파일의 구조가 변경되면 프로그램을 변경해야 함
(2-2) 데이터 추상화
- 프로그램 데이터 및 프로그램 작업 (개체에 대한) 독립성을 허용하는 특성
- 데이터 모델의 비공식 정의 : 데이터 추상화 유형
- 저장 세부 정보를 숨기고
- 사용자에게 데이터베이스의 개념적인 뷰를 제공하는 데 사용됨
- 데이터가 어떻게 저장되고 액세스되는 방법을 알 필요가 없음 => 선언적 특성
- 응용 프로그램은 데이터 저장 세부 정보가 아닌 데이터 모델 구성 요소를 참조함
(3) 데이터의 다중 뷰 지원
- 각 사용자는 DBMS의 다른 뷰(또는 가상 데이터)를 볼 수 있음
- 그런 다음 각 사용자는 해당 사용자에게 관심 있는 데이터만 볼 수 있음
- 예 1) 데이터베이스의 한 사용자는 각 학생의 성적표에 액세스하고 인쇄하는 것에만 관심이 있을 수 있음
- 예 2) 다른 사용자는 학생이 등록한 각 과목의 선수과목을 모두 수강했는지 확인하는 것에만 관심이 있을 수 있음
(4) 데이터 공유 및 다중 사용자 트랜잭션 처리
- 일련의 동시 사용자가 데이터베이스에서 검색하고 업데이트할 수 있음
- 예 : U1(읽기)-U2(쓰기)-U3(읽기)-U4(업데이트)...를 동시에
- DBMS 내의 동시성 제어는 각 트랜잭션이 올바르게 실행(정상)되거나 중단(비정상)되도록 보장함
- 트랜잭션 : 데이터베이스 액세스를 포함하는 일련의 명령을 실행하는 프로그램 또는 프로세스
- ACID (원자성, 일관성, 격리, 내구성) 속성을 충족해야 함
- 복구 하위 시스템은 각 완료된 트랜잭션의 영구적인 효과를 데이터베이스에 기록함
- OLTP는 데이터베이스 응용 프로그램의 주요 부분임
- 예 : 항공/기차 예약, 주식 시장, 수강 등.
- 초당 수백 건 이상의 동시 트랜잭션 실행을 허용함
데이터베이스 접근 방식의 장점
데이터베이스 접근 방식의 장점
중복 제어
- 데이터 저장 및 개발/유지 관리 노력을 절약할 수 있음
- 예를 들어, 다른 사용자 그룹인 수강 등록 담당자와 회계부가 공유하는 UNIVERSITY DB 가정
- 이상적으로는 각 논리 데이터 항목 (예: 학생의 이름 또는 생년월일)을 데이터베이스의 한 곳에서만 저장해야 함. 이를 데이터 정규화라고 함
무단 접근 제한
- 기밀 금융 데이터, 작업 유형 (읽기 및/또는 업데이트) 등
- DBMS는 보안 및 권한 하위 시스템을 제공해야 함
- 시스템을 사용하여 DBA 직원만 특권 명령 및 시설을 통해 계정을 생성하고 계정 제한을 지정할 수 있음
프로그램 객체의 영속적 저장
- 객체 지향 (OO) DBMS는 프로그램 객체 (C++ 또는 Java로 작성된 객체)를 영속적으로 저장할 수 있음
- 예: Java의 Class ObjectOutputStream 참고
- 임피던스 불일치 문제: (전통적인) DBMS가 프로그래밍 언어의 데이터 구조와 호환되지 않는 데이터 구조를 제공하는 경우를 의미하며, 이 문제는 OODBMS에 의해 해결되었음
- 예: BLOB/CLOB
효율적인 쿼리 처리를 위한 저장 구조 (예: 인덱스) 제공
- 주어진 쿼리와 일치하는 대상 레코드를 검색하는 디스크 검색 속도를 높이기 위해
- DBMS는 효율적인 검색을 위해 인덱스 (보조 파일에 저장)를 활용함
- 디스크 블록에 최적화된 트리 기반 또는 해시 기반
- 또한 자체 버퍼링/캐싱을 사용할 수 있음
- 운영 체제의 버퍼 사용하지 않는 이유는 Sequential Flooding 때문
- 예) 1K 버퍼 페이지로 1M 디스크 블록 스캔
그 외에도 많은 이점
- 효율적인 처리를 위한 쿼리 최적화
- 재해를 피하기 위한 백업 및 복구 서비스
- 다양한 클래스의 사용자에게 다중 인터페이스: 모바일 사용자(앱), 일반 사용자(쿼리 언어), 응용 프로그래머(JDBC/ODBC) 등
- 데이터 간의 복잡한 관계 표현
- DB의 무결성 제약 조건 강제 적용 (일관성/무결성)
- 참조 무결성 제약 조건: 섹션 레코드와 과목 레코드 간의 관련성
- 고유 제약 조건: 과목 번호/학기/섹션 번호 => 고유함
- 저장된 데이터에서 추론, 조치, 논리, 활성 규칙 및 트리거를 실행하기 위해
- 트리거: 테이블을 업데이트하는 규칙(조건)의 한 형태로, 다른 테이블에 일부 추가 작업을 수행하도록 활성화됨
- 예: 학생이 휴학 또는 퇴학된 경우
DBMS를 사용하지 말아야 하는 경우
DBMS 사용의 부가 비용
- 하드웨어, 소프트웨어 및 교육에 대한 높은 초기 투자
- 예: Oracle Enterprise Edition 라이선스 비용: 1대당 47,500달러 (클러스터 머신당)
- DBMS가 데이터 정의 및 처리를 위해 제공하는 일반성
- 보안, 동시성 제어, 복구 및 무결성 기능 제공을 위한 부가 비용
DBMS가 불필요한 경우
- 데이터베이스와 응용 프로그램이 간단하고 명확하게 정의되었으며 전혀 변경되지 않을 것으로 예상될 때
- 데이터에 대한 다중 사용자 액세스 없음
DBMS를 실행하는 것이 불가능한 경우
- 저장 용량이 제한적인 임베디드 시스템에서 일반용 DBMS가 적합하지 않을 때
- 이러한 경우에는 SQLite를 사용하면 됨
일반용 DBMS가 필요하지 않은 경우
- DBMS 오버헤드로 인해 만족되지 않을 수 있는 일부 응용 프로그램에 대한 엄격한 실시간 요구 사항
- 예: AT&T와 같은 통신 및 스위칭 시스템: 이미 빠른 액세스와 통화 라우팅을 위해 계층적으로 구성된 데이터를 사용하여 매우 빠르게 실행되는 특수 소프트웨어가 있었음
- 모델링 제한으로 인해 데이터 복잡성을 처리할 수 없는 경우
- 예: 복잡한 유전체 및 단백질 데이터베이스
- 데이터베이스 사용자가 DBMS에서 지원하지 않는 특수 작업이 필요한 경우 (예: GIS 및 위치 기반 서비스)
- 결과적으로 R-tree 인덱스를 사용하는 공간 DBMS가 필요함
부록
하둡
디테일한 아키텍처
장면의 배우들 (DB를 사용하는 사람들)
데이터베이스 관리자
- 데이터베이스에 대한 액세스를 "승인"하고
- 사용 조율 및 모니터링, 소프트웨어 및 하드웨어 리소스 확보
- 사용 제어 및 작업의 효율성 모니터링을 담당함
데이터베이스 설계자
- 내용, 구조, 제약 조건 및 기능 또는 트랜잭션을 정의하는 역할
- "최종 사용자"와 소통하고 요구 사항을 잘 파악하고 포착해야 함. 여러 사용자 그룹과 상호 작용이 많이 필요
- 최종 데이터베이스 디자인은 모든 사용자 그룹의 요구 사항을 지원할 수 있어야 함
최종 사용자
- 데이터를 쿼리하고 보고서를 작성하는 데 사용하며, 일부 사용자는 데이터베이스 내용을 업데이트합니다.
- 일시적 사용자: 필요할 때 데이터베이스를 "가끔" 액세스함
- 매번 다른 정보가 필요할 수 있음 (수업 등록 시 사용하는 것처럼)
- 숙련 또는 매개변수 사용자: 최종 사용자 중 상당한 비중을 차지합니다.
- 주요 업무 기능은 데이터베이스를 "지속적으로" 쿼리하고 업데이트하는 것이며, 표준 쿼리 및 업데이트 유형을 사용함
- 신중하게 프로그래밍되고 테스트된 고정 트랜잭션이라고함
- 예:
- 모바일 기기와 모바일 앱 사용자
- 은행 고객 및 텔러는 계좌 잔액을 확인하고 인출/예금을 처리함
- 항공사, 호텔 및 자동차 대여의 예약 클러크가 가용성을 확인함
- SNS 사용자가 웹 사이트에서 정보를 게시하고 읽음
숙련된 사용자
- 비즈니스 분석가, (계산) 과학자, 엔지니어 및 시스템 능력에 대해 잘 알고 있는 다른 사용자들
- 비즈니스 분석가: 대량의 비즈니스 데이터 및 실시간 데이터("빅 데이터")를 분석하여 계획, 광고, 마케팅 등과 관련된 더 나은 의사 결정을 위해
- 예: 다음 비행기는 누구에게? 비즈니스 클래스로 업그레이드하려는 사람은 누구인가? ...
- 많은 사용자는 데이터베이스와 긴밀하게 협력하여 개발된 소프트웨어 패키지(예: Excel, SAS, SPSS)의 형태로 도구를 사용함
스탠드얼론 사용자
- 주로 개인 데이터베이스를 유지 관리하며, 사용하기 쉬운 메뉴 기반 또는 그래픽 기반 사용자 인터페이스를 갖춘 패키지 애플리케이션을 사용함
- 예1) 다양한 개인 금융 데이터를 저장하는 금융 소프트웨어 패키지 사용자
- 예2) 개인 사진과 비디오를 저장하는 사용자
시스템 분석가
- 주로 숙련되지 않은 및 매개변수 최종 사용자의 사용자 요구 사항을 이해함
- 이러한 요구 사항을 충족하는 표준 고정 트랜잭션의 명세서를 개발함
응용 프로그래머
- 분석가들이 개발한 명세서를 구현함
- 배포 전에 테스트 및 디버그 진행
장면 뒤에서 일하는 작업자들 (DB를 구성하는 사람들)
시스템 설계자와 구현자
- 모듈 및 인터페이스 형태의 DBMS 패키지를 설계 및 구현하고 테스트 및 디버깅함
- DBMS: 많은 구성 요소로 이루어진 매우 복잡한 소프트웨어 시스템
- 다양한 프로그래밍 언어에 대한 OS, 컴파일러와 같은 시스템 소프트웨어와도 인터페이스를 제공해야 함
도구 개발자
- 도구라고 불리는 소프트웨어 시스템을 설계 및 구현함. 이 도구들은 선택적이며 유료임 (예: Teradata의 MLPPI 위저드)
- 데이터베이스 모델링 및 설계, 성능 모니터링, 프로토타이핑, 테스트 데이터 생성, 사용자 인터페이스 작성, 시뮬레이션 등에 사용됨
- 애플리케이션 빌딩을 용이하게 하며 더 나은 데이터베이스 설계를 지원하고 데이터베이스를 더 효과적으로 사용할 수 있게 함
운영 및 유지 보수 인원
- 데이터베이스 시스템의 하드웨어 및 소프트웨어 환경을 실제로 운영 및 유지 보수하는 역할을 함
DBMS 접근 방식의 장점
표준 강제 가능성
- 대규모 조직 내 데이터베이스 사용자 간의 표준을 정의하고 강제할 수 있음
- 데이터베이스 응용 프로그램의 성공에 매우 중요함
- 표준 사항: 데이터 항목 이름, 표시 형식, 화면, 보고서 구조, 메타 데이터, 웹 페이지 레이아웃 등
응용 프로그램 개발 시간 단축
- 각 새로운 응용 프로그램을 추가하는 데 걸리는 시간을 파일 기반 응용 프로그램보다 줄일 수 있음. 이것이 가능한 이유는?
자료 구조 변경 유연성
- 새로운 요구 사항이 정의됨에 따라 데이터베이스 구조가 변할 수 있음
- 새 정보를 수용하기 위해 열을 추가하는 등의 변경이 가능함
- 기존 프로그램이나 저장된 데이터에 영향을 주지 않음. 이것이 가능한 이유는?
최신 정보 이용 가능성
- DBMS는 모든 사용자에게 데이터베이스를 사용할 수 있게 함
- 예: 코레일에서 추석 기차표 예매, 학기 전 수강 신청 등
규모의 경제성
- (투입 규모 => 장기 평균 비용, 생산성)
- 데이터와 응용 프로그램을 통합하여 데이터 처리 인력의 프로젝트 또는 부서 간 중복과 응용 프로그램 간 중복을 줄일 수 있음
- 예: NTIS (국립 과학 기술 정보 서비스) 시스템
데이터베이스 응용 프로그램의 간략한 역사
데이터베이스 기술의 역사적 발전
초기 데이터베이스 응용 프로그램
- 계층형 및 네트워크 모델은 1960년대 중반에 소개되었으며, 1970년대에 독점적으로 사용되었음
- 현재에도 전 세계적으로 많은 데이터베이스 처리가 특히 IBM의 IMS 시스템을 사용하는 계층형 모델을 기반으로 진행됨
관계형 모델 기반 시스템
- 관계형 모델은 원래 1970년에 소개되었으며, IBM 연구소와 여러 대학에서 심층적인 연구 및 실험이 진행되었음
- 관계형 DBMS (RDBMS) 제품은 1980년대 초에 등장했습니다.
객체지향 및 신흥 응용 프로그램
- 객체지향 DBMS 시스템은 1980년대 후반과 1990년대 초반에 도입되어 CAD 및 기타 응용 프로그램에서 복잡한 데이터 처리 요구를 수용하기 위한 것이었음
- 그러나 그들의 사용은 크게 확산되지 않았음. 그 이유는?
- 많은 관계형 DBMS가 객체 데이터베이스 개념을 통합하면서 객체-관계형 DBMS라는 새로운 범주로 나아가게 되었음
- 확장된 관계형 시스템은 미디어 데이터, 텍스트, XML(가능성 있는 표시 언어) 및 기타 데이터 유형과 같은 추가 기능을 추가함
웹 및 전자 상거래 응용 프로그램
- 웹은 페이지 간의 링크가 있는 HTML(Hypertext markup language)로 데이터를 포함하고 있음
- 이로 인해 새로운 응용 프로그램 집합이 생성되었으며 전자 상거래는 XML과 같은 새로운 표준을 사용하고 있음
- 다양한 유형의 데이터베이스 간 데이터 교환을 위해
- PHP 및 JavaScript(Ajax)와 같은 스크립트 프로그래밍 언어를 사용하여 데이터베이스에서 일부 생성된 동적 웹 페이지를 생성할 수 있음
- 웹 페이지를 통한 DB 업데이트를 허용함
데이터베이스 기능 확장
DBMS에 다음 영역에서 새로운 기능이 추가되고 있음
- 과학적 응용 프로그램 – 물리학, 화학, 생물학 - 유전학
- 지구 및 대기 과학 및 천문학
- XML
- 이미지 저장 및 관리
- 오디오 및 비디오 데이터 관리
- 데이터 웨어하우징 및 데이터 마이닝 – 새로운 기술을 사용한 미래 개발의 주요 영역
- 공간 데이터 관리 및 위치 기반 서비스
- 시계열 및 역사적 데이터 관리
=> 위 내용은 데이터베이스 시스템에서 새로운 데이터 유형, 복잡한 데이터 구조, 새로운 연산 및 저장 및 색인 체계를 통합하는 새로운 연구 및 개발을 생산함
21세기 도래 이후의 배경
- 21세기 첫 10년 동안에는 사용자가 생성한 데이터 및 새로운 응용 프로그램 및 검색 엔진에서 자동 수집된 데이터의 급격한 성장을 보았음
- 페이스북과 트위터와 같은 소셜 미디어 플랫폼은 하루에 "수백만 건의 거래"를 생성하고 있으며 기업들은 이 데이터를 사용하여 사용자를 "이해"하기 위해 관심을 가지고 있음
- 클라우드 스토리지 및 백업으로 사용자와 응용 프로그램에 무제한 저장 공간이 제공되고 있음
빅 데이터 기술과 NoSQL 데이터베이스의 출현
- "빅 데이터"로 일반적으로 불리게 된 몇몇 애플리케이션에서 하루에 페타바이트 단위의 "데이터 공격"을 다루기 위한 새로운 데이터 저장, 관리 및 분석 기술이 필요했음
- 야후의 하둡과 분산 데이터 처리를 위한 구글의 맵리듀스 방식, 그리고 구글 파일 시스템은 빅 데이터 기술을 생산했음
- RAM에 중간 결과를 직접 작성하여 스파크 기반 기술의 형태로 추가 개선이 이루어지고 있음
- NoSQL (관계형 DBMS의 사실상 표준 언어인 SQL이 아닌 Not-only SQL) 시스템은 다음을 위해 설계되었음
- 빠른 문서 검색 및 검색
- 소셜 네트워크에서 대규모 그래프 처리
- 트랜잭션 처리의 유연한 모델을 가진 다른 형태의 비구조화된 데이터