카테고리 없음 / / 2023. 4. 24. 21:35

데이터베이스의 역사,구조,종류

반응형

데이터베이스에 대한 공부를 하던 중 데이터베이스의 역사, 내부적인 구조, 종류들에 대한 내용을 정리해 두면 좋을 것 같아 글로 작성해 보았다. 

 

데이터베이스의 역사

컴퓨터 공학에서 최초의 데이터 베이스는 1950년대에 등장한 파일시스템이라 할수있다. 파일시스템은 데이터를 텍스트 파일로 저장하고, 이를 일정한 구조로 구성하여 필요한 정보를 검색하는 방식이었다. 이러한 파일시스템은 데이터의 일관성, 무결성, 보안성에 취약했었다. 1960년대에는 계층형 데이터베이스가 등장하였는데 이 계층형 데이터베이스는 데이터를 트리구조로 저장하는 방식이었다. 따라서 논리적인 계층구조를 지닌다고 할 수 있었다. 이러한 방식은 검색속도를 높여주었지만 데이터변경은 어렵다는 단점이 있었다. 1970년대에 나온 관계형 데이터베이스는 현재 가장 많이 사용되고 있는 데이터베이스이다. 관계형 데이터베이스에서는 데이터를 테이블로 구성하여 관계를 나타내는 방식이었고 이러한 방식은 데이터를 일관성 있게 유지해주고  유지보수성도 높여주었다. 1980년대에는 객체 지향 데이터베이스가 출시되었다. 객체 지향 데이터베이스는 객체를 중심으로 데이터를 구성하는 방식이었다. 이 방법은 복잡한 데이터 구조를 다루는데 유용하였다. 사실 객체지향 데이터베이스는 그리 유명하지는 않다. 하지만 여전히  많은 애플리케이션에서 사용되고 있는 편이다. 1990년대에는 NoSQL 데이터 베이스가 출시되었다. 이는 비관계형 데이터 베이스로, 대량의 비정형 데이터를 처리하는데 유용하다. 이러한 데이터베이스는 스케일링이 쉽고, 고속 처리와 높은 가용성을 제공하는 데 사용된다.

 

구조

데이터베이스의 내부구조는 크게 세 가지로 나눌수 있다. 첫 번째로 데이터베이스 스키마(Database Schema)이다. 데이터베이스 스키마는 데이터베이스의 전체 구조를 정의하는 것으로, 데이터베이스 내에 어떤 데이터가 어떤 형식으로 저장될지를 결정한다. 데이터베이스 스키마는 크게 논리 스키마와 물리스키마로 나뉜다. 논리 스키마는 데이터베이스에 저장될 데이터의 구조와 제약 조건 등을 기술한 것으로, 사용자나 애플리케이션에게 보이는 데이터베이스의 구조를 의미한다. 반면에 물리스키마는 데이터가 디스크 상에 어떻게 저장될지를 기술한 것으로, 데이터베이스 관리자가 데이터베이스를 설계할 때 고려해야 하는 사항이다. 두 번째는 데이터베이스 인스턴스(Database Instance)이다. 데이터베이스 인스턴스는 데이터베이스가 실제로 실행되며 메모리에 로드되어 있는 상태를 의미한다. 데이터베이스 인스턴스는 데이터베이스 버퍼, 쿼리 버퍼, 로그 버퍼등의 메모리 영역과 데이터 파일, 로그파일등의 디스크 영역으로 구성된다. 마지막으로는 데이터베이스 저장구조(Database Storage Structure)이다. 데이터베이스 저장구조는 데이터베이스 내에서 데이터가 저장되는 방식을 의미한다. 데이터베이스 저장구조는 크게 릴레이션, 인덱스, 뷰등으로 나뉜다. 릴레이션은 데이터베이스에서 가장기본적인 데이터 저장단위로, 행과 열로 이루어진 테이블 형태의 구조를 가진다. 인덱스는 릴레이션의 특정 열(column)에 대한 검색 성능을 향상하기 위해 사용되며, 뷰는 릴레이션을 기반으로 하여 만들어진 가상 테이블이다.

 

종류

데이터베이스의 종류는 많지만 대표적으로 몇가지 데이터 베이스의 종류만 알아보겠다. 먼저 관계형 데이터베이스이다. 테이블 형태로 데이터를 저장하고, 데이터 간의 관계를 정의하여 데이터를 관리하는 데이터 베이스이다. 가장 대표적으로는 Oracle, MySQL, PostgreSQL 등이 있다. 다음으로는 NoSQL이다. NoSQL은 관계형 데이터베이스와 달리 스키마가 없는 자유로운 데이터 모델을 제공한다. 대표적으로는 MongoDB, Redis 등이 있으며 대량의 비정형 데이터를 다루는 빅데이터 분야에서 많이 사용된다. 그다음은 객체 데이터베이스이다. 객체 데이터베이스는 객체 지향 프로그래밍에서 사용되는 객체를 데이터베이스에 저장하고 관리하는 데이터베이스이다. 객체 지향적인 설계와 프로그래밍을 위해 많이 사용되며, Java 등의 객체지향 프로그래밍 언어와 연동이 잘 이루어진다. 그리고 그래프 데이터베이스도 있다. 그래프 데이터베이스는 데이터 간의 관계를 그래프 형태로 저장하고, 이를 분석하고 검색하는데 최적화되어 있는 데이터베이스이다. 소셜네트워크 분석 등에서 많이 사용된다. 마지막으로 메모리데이터베이스이다. 메모리데이터베이스는 디스크가 아닌 메모리에 데이터를 저장하고 관리하는 데이터베이스이다. 디스크 기반 데이터베이스 보다 훨씬 빠른 성능을 제공하며., 빠른 데이터 처리가 필요한 분야에서 많이 사용된다.

 

반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유