본문 바로가기

ComputerScience/Database

[Database] 데이터베이스란

이미지 출처: https://assets-global.website-files.com/6130fa1501794e37c21867cf/632debee3bff316b1ad29cdf_Database%20Management%20System.png

데이터베이스

데이터베이스는 구조화된 정보 또는 데이터의 조직된 모음으로, 일반적으로 컴퓨터 시스템에서 전자적으로 저장됩니다. 데이터베이스는 일반적으로 데이터베이스 관리 시스템(DBMS)에 의해 제어됩니다. 데이터와 DBMS는 연관된 응용 프로그램과 함께 데이터베이스 시스템으로 불리며 종종 간단히 데이터베이스로 줄여집니다.

오늘날 가장 일반적으로 사용되는 데이터베이스 유형 내의 데이터는 일련의 테이블에서 행과 열로 모델링됩니다. 

이를 통해 처리 및 데이터 쿼리가 효율적으로 이루어집니다. 

데이터는 쉽게 액세스, 관리, 수정, 업데이트, 제어 및 조직될 수 있습니다. 대부분의 데이터베이스는 구조화된 쿼리 언어(SQL)를 사용하여 데이터를 작성하고 쿼리합니다.

 

Structured Query Language (SQL)은 거의 모든 관계형 데이터베이스에서 사용되는 프로그래밍 언어로, 데이터 쿼리, 조작, 정의 및 액세스 제어를 위해 사용됩니다. SQL은 1970년대에 IBM에서 최초로 개발되었으며, 오라클이 주요 기여자로 참여하여 SQL ANSI 표준의 구현으로 이어졌습니다. SQL은 IBM, 오라클, 마이크로소프트 등의 회사들로부터 많은 확장을 유발하였습니다. 비록 SQL이 여전히 널리 사용되고 있지만, 새로운 프로그래밍 언어들이 나타나고 있습니다.

데이터베이스를 사용하는 이유?

데이터베이스가 존재하기 이전에는 파일 시스템을 이용하여 데이터를 관리하였습니다. (현재도 부분적으로 사용되고 있다.) 데이터를 각각의 파일 단위로 저장하며 이러한 일들을 처리하기 위한 독립적인 애플리케이션과 상호 연동이 되어야 하는데, 이 때의 문제점은 데이터 종속성 문제와 중복성, 데이터 무결성입니다.

 

  1. 데이터 종속성: 이것은 데이터의 구조가 프로그램 코드에 강하게 연결되어 있어, 데이터의 구조가 변경되면 프로그램도 수정해야하는 문제를 말합니다. 예를 들어, 파일 시스템에서는 데이터 구조가 변경되면 해당 데이터를 사용하는 모든 프로그램을 수정해야 합니다.
  2. 데이터 중복성: 이것은 같은 데이터가 시스템의 여러 곳에 중복 저장되는 문제를 말합니다. 이로 인해 데이터 불일치 문제가 발생할 수 있습니다. 예를 들어, 한 곳에서 데이터를 업데이트하면 다른 곳에 있는 중복 데이터도 업데이트해야 합니다.
  3. 데이터 무결성: 이것은 데이터의 정확성과 일관성을 유지하는 것을 말합니다. 데이터의 무결성을 유지하지 못하면, 잘못된 정보로 인한 오류가 발생할 수 있습니다.

데이터베이스는 이러한 문제들을 다음과 같이 해결합니다.

 

  1. 데이터 종속성 문제 해결: 데이터베이스는 데이터와 응용 프로그램을 분리하여 데이터 종속성 문제를 해결합니다. 이를 통해 데이터 구조의 변경이 응용 프로그램에 미치는 영향을 최소화할 수 있습니다.
  2. 데이터 중복성 문제 해결: 데이터베이스는 한 곳에 데이터를 통합 저장함으로써 데이터 중복성을 줄입니다. 이를 통해 데이터 불일치 문제를 방지할 수 있습니다.
  3. 데이터 무결성 문제 해결: 데이터베이스는 데이터 무결성 규칙을 설정하여 데이터의 정확성과 일관성을 유지합니다. 예를 들어, 데이터베이스는 주어진 조건을 만족하지 않는 데이터의 입력을 거부할 수 있습니다. 이렇게 데이터베이스는 데이터 종속성, 중복성, 데이터 무결성 등의 문제를 해결하며, 효율적인 데이터 관리를 지원합니다.

또한 데이터베이스는 기업의 내부 운영을 지원하며 고객 및 공급업체와의 상호 작용을 저장합니다. 또한 행정 정보 및 엔지니어링 또는 경제 모델과 같은 특수한 데이터를 보유합니다. 디지털 도서관 시스템, 여행 예약 시스템 및 재고 시스템과 같은 예시가 있습니다. 아래는 데이터베이스가 중요한 이유 몇 가지입니다.

 

  1. 효율적인 확장: 데이터베이스 응용 프로그램은 수백만, 수십억 등 거대한 양의 데이터를 관리할 수 있습니다. 이런 양의 디지털 데이터를 데이터베이스 없이 저장하는 것은 불가능합니다.
  2. 데이터 보안: 데이터베이스는 데이터와 관련된 개인 정보 보호 및 규정 요구 사항을 지원합니다. 예를 들어 데이터베이스 액세스를 얻으려면 사용자가 로그인해야 합니다. 또한 각 사용자에게 읽기 전용과 같은 다양한 액세스 수준이 있을 수 있습니다.
  3. 데이터 분석: 현대 소프트웨어 시스템은 데이터 분석을 위해 데이터베이스를 사용합니다. 이러한 시스템은 트렌드와 패턴을 식별하거나 예측을 수행할 수 있습니다. 데이터 분석은 기관이 자신감을 가지고 비즈니스 결정을 내릴 수 있도록 도와줍니다.

데이터베이스의 특징?

  1. 데이터의 독립성
    - 물리적 독립성 : 데이터베이스 사이즈를 늘리거나 성능 향상을 위해 데이터 파일을 늘리거나 새롭게 추가하더라도 관련된 응용 프로그램을 수정할 필요가 없다.
    - 논리적 독립성 : 데이터베이스는 논리적인 구조로 다양한 응용 프로그램의 논리적 요구를 만족시켜줄 수 있다.
  2. 데이터의 무결성
    - 여러 경로를 통해 잘못된 데이터가 발생하는 경우의 수를 방지하는 기능으로 데이터의 유효성 검사를 통해 데이터의 무결성을 구현하게 된다.
  3. 데이터의 보안성
    - 인가된 사용자들만 데이터베이스나 데이터베이스 내의 자원에 접근할 수 있도록 계정 관리 또는 접근 권한을 설정함으로써 모든 데이터에 보안을 구현할 수 있다.
  4. 데이터의 일관성
    - 연관된 정보를 논리적인 구조로 관리함으로써 어떤 하나의 데이터만 변경했을 경우 발생할 수 있는 데이터의 불일치성을 배제할 수 있다. 또한 작업 중 일부 데이터만 변경되어 나머지 데이터와 일치하지 않는 경우의 수를 배제할 수 있다.
  5. 데이터 중복 최소화
    - 데이터베이스는 데이터를 통합해서 관리함으로써 파일 시스템의 단점 중 하나인 자료의 중복과 데이터의 중복성 문제를 해결할 수 있다.

데이터베이스의 진화

데이터베이스는 초기 1960년대에 시작된 이후로 급격하게 발전해왔습니다.

초기의 네비게이셔널 데이터베이스는 계층형 데이터베이스(트리 모델에 의존하며 일대다 관계만 허용)와 네트워크 데이터베이스(다중 관계를 허용하는 더 유연한 모델) 등이 데이터를 저장하고 조작하는 데 사용되었습니다.

비록 간단하지만, 이러한 초기 시스템들은 유연하지 않았습니다. 1980년대에는 관계형 데이터베이스가 인기를 얻었고, 1990년대에는 객체지향 데이터베이스가 이어졌습니다.

더 최근에는 NoSQL 데이터베이스가 인터넷의 성장과 비정형 데이터의 빠른 속도 및 처리 필요성에 대응하기 위해 등장했습니다. 오늘날에는 클라우드 데이터베이스와 자율 주행 데이터베이스가 데이터 수집, 저장, 관리 및 활용에 대한 새로운 지평을 열고 있습니다.

 

데이터베이스 모델 

데이터베이스 모델은 데이터베이스의 논리적 구조를 나타냅니다. 데이터가 어떻게 저장, 조직화되고 조작될 수 있는지를 결정하는 관계와 규칙을 정의합니다. 각 데이터베이스 응용 프로그램은 특정한 데이터 모델 위에서 구축됩니다. 개별 데이터베이스 모델은 기본 응용 프로그램이 채택한 더 넓은 데이터 모델의 규칙과 개념을 기반으로 디자인됩니다.

 

 

참고 자료

https://www.oracle.com/database/what-is-database/

 

What is a database?

Learn everything you need to know about database and how it can help your business.

www.oracle.com

https://aws.amazon.com/what-is/database/

 

데이터베이스란 무엇인가요? - 클라우드 데이터베이스 설명 - AWS

데이터베이스는 전자적으로 저장되고 체계적인 데이터 모음입니다. 여기에는 단어, 숫자, 이미지, 비디오 및 파일을 포함한 모든 유형의 데이터가 포함될 수 있습니다. DBMS (데이터베이스 관리

aws.amazon.com

https://github.com/JaeYeopHan/Interview_Question_for_Beginner/tree/main/Database#%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4