데이터베이스(영어: database, DB)는 여러 사람이 공유하여 사용할 목적으로 체계화해 통합, 관리하는 데이터의 집합입니다. 작성된 목록으로써 여러 응용 시스템들의 통합된 정보들을 저장하여 운영할 수 있는 공용 데이터들의 묶음입니다. 데이터베이스에 속해있는 모델은 다양합니다.
출처 : 위키백과
오늘날 운영되고 있는 가장 일반적인 유형의 데이터베이스에서 데이터는 일반적으로 처리 및 데이터 쿼리를 효율적으로 수행하기 위해 일련의 테이블에서 행과 열로 모델링됩니다. 그러면 데이터에 쉽게 액세스하고 관리, 수정, 업데이트, 제어 및 구성할 수 있습니다. 대부분의 데이터베이스는 데이터 작성 및 쿼리에 SQL(Structured Query Language)을 사용합니다.
SQL은 데이터를 쿼리, 조작 및 정의하고 액세스 제어를 제공하기 위해 거의 모든 관계형 데이터베이스에서 사용되는 프로그래밍 언어입니다. SQL은 1970년대에 IBM에서 처음 개발되었으며 Oracle의 적극적인 공헌으로 SQL ANSI 표준이 수립되기에 이르렀습니다. SQL은 IBM, Oracle 및 Microsoft와 같은 많은 회사들의 확장 프로젝트를 촉진했습니다. SQL은 오늘날에도 널리 사용되고 있지만 새로운 프로그래밍 언어가 등장하기 시작했습니다.
데이터베이스와 스프레드 시트(예: Microsoft Excel) 모두 정보를 편리하게 저장할 수 있는 방법입니다. 두 기술 간의 주요 차이점은 다음과 같습니다.
데이터 저장 및 조작 방법
데이터에 액세스 할 수 있는 사람
저장할 수 있는 데이터 양
스프레드 시트는 원래 한명의 사용자를 위해 설계되었기 때문에 해당 사용자의 특성이 반영되어 있습니다. 매우 복잡한 데이터 조작을 수행할 필요가 없는 단일 사용자나 적은 수의 사용자에게 적합합니다. 반면 데이터베이스는 훨씬 더 방대한 양의 조직화된 정보를 보관하도록 설계되었습니다. 데이터베이스를 사용하면 여러 사용자가 동시에 매우 복잡한 로직과 언어를 사용하여 데이터에 빠르고 안전하게 액세스 및 쿼리할 수 있습니다.
데이터베이스는 여러 사람이 공유하고 사용할 목적으로 통합 관리되는 정보의 집합입니디. 논리적으로 연관된 하나 이상의 자료의 모음으로 그 내용을 고도로 구조화함으로써 검색과 갱신의 효율화를 꾀한 것입니다. 즉, 몇 개의 자료 파일을 조직적으로 통합하여 자료 항목의 중복을 없애고 자료를 구조화하여 기억시켜 놓은 자료의 집합체라고 할 수 있습니다.
이는 공동 자료로서 각 사용자는 같은 데이터라 할지라도 각자의 응용 목적에 따라 다르게 사용할 수 있습니다.
- 데이터 중복 최소화
- 데이터 공유
- 일관성, 무결성, 보안성 유지
- 최신의 데이터 유지
- 데이터의 표준화 가능
- 데이터의 논리적, 물리적 독립성
- 용이한 데이터 접근
- 데이터 저장 공간 절약
- 데이터베이스 전문가 필요
- 많은 비용 부담
- 데이터 백업과 복구가 어려움
- 시스템의 복잡함
- 대용량 디스크로 엑세스가 집중되면 과부하 발생
HDD, DVD File System 등
Oracle, My-SQL, DB2, SQL Server, Sybase 등
Oracle
객체 지향 데이터베이스의 정보는 객체 지향 프로그래밍과 마찬가지로 객체 형태로 표현됩니다. 즉, 객체 그대로를 데이터베이스의 데이터에 저장하는 것입니다.
이를 통해 멀티미디어의 데이터의 원활한 처리, RDBMS의 비즈니스형 데이터 타입만 처리되는 제한적 극복을 했습니다.
분산 데이터베이스는 서로 다른 사이트에 위치한 둘 이상의 파일로 구성됩니다. 데이터베이스는 물리적으로 동일한 위치에 있는 여러 컴퓨터에 저장되거나 다른 네트워크에 분산될 수 있습니다.
데이터의 중앙 저장소인 데이터 웨어하우스는 빠른 쿼리 및 분석을 위해 특별히 설계된 데이터베이스 유형입니다.
NoSQL 또는 비관계형 데이터베이스를 사용하면 비정형 및 반정형 데이터를 저장하고 조작할 수 있습니다(반면에 관계형 데이터베이스에서는 데이터베이스에 삽입되는 모든 데이터의 구성 방식을 정의해야 함). 웹 애플리케이션이 보다 보편화되고 복잡해지면서 NoSQL 데이터베이스의 인기가 높아졌습니다.
key, value의 형태로 저장되는 데이터베이스이며, 키를 사용해 데이터를 관리 및 접근합니다.
스키마와 관계가 없고, join이 존재하지 않으며 데이터를 가져올 때 컬렉션에 있는 데이터를 복제하여 필요한 데이터의 일부만 가져오는 방식입니다.
이러한 장점으로 인해 NoSQL은 비정형 데이터(메신저 텍스트, 음성, 이미지 등)을 다룰 수 있습니다. 또한 수평 확장이 가능하여 분산형 컴퓨팅(클라우드)에 적합합니다.
그래프 데이터베이스는 엔티티 및 엔티티 간의 관계 측면에서 데이터를 저장합니다.
OLTP 데이터베이스. OLTP 데이터베이스는 여러 사용자가 수행하는 많은 수의 트랜잭션을 위해 설계된 고속 분석 데이터베이스입니다.
이들은 오늘날 사용되는 수십 가지 유형의 데이터베이스 중 몇 가지에 불과합니다. 덜 일반적인 다른 데이터베이스들은 매우 구체적인 과학, 재무 또는 기타 기능에 따라 맞춤화가 됩니다. 다양한 데이터베이스 유형 외에도 기술 개발 접근 방식의 변화와 클라우드 및 자동화 같은 획기적인 기술 발전이 데이터베이스를 완전히 새로운 방향으로 이끌고 있습니다. 최신 데이터베이스로는 다음과 같은 것들이 있습니다.
오픈 소스 데이터베이스 시스템은 소스 코드가 오픈 소스인 시스템으로, SQL 또는 NoSQL 데이터베이스가 여기에 해당됩니다.
클라우드 데이터베이스
클라우드 데이터베이스는 프라이빗, 퍼블릭 또는 하이브리드 클라우드 컴퓨팅 플랫폼에 상주하는 정형 또는 비정형 데이터 모음입니다. 클라우드 데이터베이스 모델 유형으로는 기존 및 서비스형 데이터베이스(DBaaS)가 있습니다. DBaaS에서는 서비스 제공자가 관리 작업과 유지 관리를 수행합니다.
다중 모델 데이터베이스는 서로 다른 유형의 데이터베이스 모델을 단일 통합 백엔드로 결합합니다. 이는 다양한 데이터 유형을 수용할 수 있다는 것을 의미합니다.
문서 지향 정보를 저장, 검색 및 관리하도록 설계된 문서 데이터베이스는 행과 열이 아닌 JSON 형식으로 데이터를 저장하는 최신 방식입니다.
가장 획기적인 최신 유형의 데이터베이스인 자율구동 데이터베이스(자율운영 데이터베이스라고도 함)는 클라우드를 기반으로 하며, 머신러닝을 사용하여 데이터베이스 튜닝, 보안, 백업, 업데이트 및 기타 데이터베이스 관리자가 전통적으로 수행해 온 일상적인 관리 작업을 자동화합니다.