본문 바로가기
cs

[CS] Database 란?

by pin9___9 2023. 1. 18.
728x90

데이터베이스(Database)란?

데이터베이스는 구조화된 정보 또는 데이터의 조직화된 모음으로서 일반적으로 컴퓨터 시스템에 전자적으로 저장됩니다 데이터베이스는 일반적으로 데이터베이스 관리 시스템(DBMS)에 의해 제어됩니다. 연결된 애플리케이션과 함께 데이터와 DBMS를 하나로 묶어 데이터베이스 시스템이라고 하며 단축하여 데이터베이스라고도 합니다.

오늘날 운영되고 있는 가장 일반적인 유형의 데이터베이스에서 데이터는 일반적으로 처리 및 데이터 쿼리를 효율적으로 수행하기 위해 일련의 테이블에서 행과 열로 모델링 됩니다. 그러면 데이터에 쉽게 액세스 하고 관리, 수정, 업데이트, 제어 및 구성할 수 있습니다. 대부분의 데이터베이스는 데이터 작성 및 쿼리에 SQL(Structured Query Language)을 사용합니다.

참조: 오라클
 

데이터베이스란?

데이터베이스에 대한 필수 지식과 이를 비즈니스에 활용하는 방법을 알아보세요.

www.oracle.com

 

데이터베이스의 특징

  • 실시간으로 접근이 가능합니다.
  • 생성, 수정, 삭제를 통해 최신 데이터 유지합니다.
  • 사용자들 간의 데이터를 공유할 수 있습니다.
  • 사용자가 원하는 데이터를 주소가 아닌 내용에 따라 참조가 가능합니다.
  • 데이터 논리적 독립성을 가지고 있습니다.

 

데이터베이스의 장단점

데이터베이스 장점

  1. 데이터 중복 최소화
  2. 데이터 공유
  3. 일관성, 무결성, 보안성 유지
  4. 최신의 데이터 유지
  5. 데이터의 표준화 가능
  6. 데이터의 논리적, 물리적 독립성
  7. 용이한 데이터 접근
  8. 데이터 저장 공간 절약

데이터베이스 단점

  1. 데이터베이스 전문가 필요
  2. 많은 비용 부담
  3. 데이터 백업과 복구가 어려움
  4. 시스템의 복잡함
  5. 대용량 디스크로 엑세스가 집중되면 과부하 발생

 

데이터베이스 유형

데이터베이스의 유형은 매우 다양합니다. 특정 조직에 가장 적합한 데이터베이스는 데이터의 사용 방식에 따라 다릅니다.

 

관계형 데이터베이스

  • 관계형 데이터베이스는 1980년대를 지배했습니다. 관계형 데이터베이스의 항목은 열과 행이 있는 테이블 집합으로 구성됩니다. 관계형 데이터베이스 기술은 정형 정보에 액세스 하는 가장 효율적이고 유연한 방법을 제공합니다.

객체 지향 데이터베이스

  • 객체 지향 데이터베이스의 정보는 객체 지향 프로그래밍과 마찬가지로 객체 형태로 표현됩니다.

분산 데이터베이스

  • 분산 데이터베이스는 서로 다른 사이트에 위치한 둘 이상의 파일로 구성됩니다. 데이터베이스는 물리적으로 동일한 위치에 있는 여러 컴퓨터에 저장되거나 다른 네트워크에 분산될 수 있습니다.

데이터 웨어하우스

  • 데이터의 중앙 저장소인 데이터 웨어하우스는 빠른 쿼리 및 분석을 위해 특별히 설계된 데이터베이스 유형입니다.

NoSQL 데이터베이스

  • NoSQL 또는 비관계형 데이터베이스를 사용하면 비정형 및 반정형 데이터를 저장하고 조작할 수 있습니다(반면에 관계형 데이터베이스에서는 데이터베이스에 삽입되는 모든 데이터의 구성 방식을 정의해야 함). 웹 애플리케이션이 보다 보편화되고 복잡해지면서 NoSQL 데이터베이스의 인기가 높아졌습니다.

그래프 데이터베이스

  • 그래프 데이터베이스는 엔티티 및 엔티티 간의 관계 측면에서 데이터를 저장합니다.
  • OLTP 데이터베이스. OLTP 데이터베이스는 여러 사용자가 수행하는 많은 수의 트랜잭션을 위해 설계된 고속 분석 데이터베이스입니다.

이들은 오늘날 사용되는 수십 가지 유형의 데이터베이스 중 몇 가지에 불과합니다. 덜 일반적인 다른 데이터베이스들은 매우 구체적인 과학, 재무 또는 기타 기능에 따라 맞춤화가 됩니다. 다양한 데이터베이스 유형 외에도 기술 개발 접근 방식의 변화와 클라우드 및 자동화 같은 획기적인 기술 발전이 데이터베이스를 완전히 새로운 방향으로 이끌고 있습니다. 최신 데이터베이스로는 다음과 같은 것들이 있습니다.

 

오픈 소스 데이터베이스

  • 오픈 소스 데이터베이스 시스템은 소스 코드가 오픈 소스인 시스템으로, SQL 또는 NoSQL 데이터베이스가 여기에 해당됩니다.

클라우드 데이터베이스

  • 클라우드 데이터베이스는 프라이빗, 퍼블릭 또는 하이브리드 클라우드 컴퓨팅 플랫폼에 상주하는 정형 또는 비정형 데이터 모음입니다. 클라우드 데이터베이스 모델 유형으로는 기존 및 서비스형 데이터베이스(DBaaS)가 있습니다. DBaaS에서는 서비스 제공자가 관리 작업과 유지 관리를 수행합니다.

다중 모델 데이터베이스

  • 다중 모델 데이터베이스는 서로 다른 유형의 데이터베이스 모델을 단일 통합 백엔드로 결합합니다. 이는 다양한 데이터 유형을 수용할 수 있다는 것을 의미합니다.

문서/JSON 데이터베이스

  • 문서 지향 정보를 저장, 검색 및 관리하도록 설계된 문서 데이터베이스는 행과 열이 아닌 JSON 형식으로 데이터를 저장하는 최신 방식입니다.

자율 운영 데이터베이스

  • 가장 획기적인 최신 유형의 데이터베이스인 자율구동 데이터베이스(자율운영 데이터베이스라고도 함)는 클라우드를 기반으로 하며, 머신러닝을 사용하여 데이터베이스 튜닝, 보안, 백업, 업데이트 및 기타 데이터베이스 관리자가 전통적으로 수행해 온 일상적인 관리 작업을 자동화합니다.

 

데이터베이스 모델

계층형

  • 데이터 간의 관계가 트리 형태의 구조. 부모-자식 관계로 표현되며, 1:N으로 구성될 수 있음
    구조가 간단하고 구현, 수정 , 검색이 쉽지만 N:N 관계 처리가 불가능하고 구조변경이 어려움
    ex) IMS(IBM의 Information Management System)

네트워크형

  • 계층형 데이터베이스의 단점을 보완하여 N:N 구성이 가능한 망 형태의 모델
    유연성과 접근성이 높지만 구조가 복잡해 유지 보수가 어려움
    ex) IDMS ( Integrated Data Store ) 

관계형

  • 키(Key)와 값(Value)으로 이루어진 데이터들을 행(Row), 열(Column)로 구성된 테이블 구조로 단순화시킨 모델
    SQL(Structured Query Language)를 사용하여 데이터 관리
    데이터 모델링이 간단하지만 비정형 데이트들을 다루거나 실시간 분석에는 적합하지 않음
    ex) MySQL, Oracle, MariaDB

객체지향형

  • 객체지향 프로그래밍 개념에 기반하여 만든 데이터 모델
    비정형 데이터들을 데이터베이스화 하기 위해 만들어진 모델
    검색이나 대규모 트랜잭션 처리에서 성능이 떨어지는 단점이 있어 몇몇 특수 전문분야에서만 사용
    ex) O2, ONTOS

객체 관계형

  • 관계형 데이터베이스에 객체 지향 개념을 도입하여 만든 데이터베이스 모델
    객체지향 개념을 지원하는 표준 SQL을 사용할 수 있고, 데이터 타입도 다양하게 추가되었음
    ex) UniSQL, Object Store

NoSQL

  • Not only SQL의 줄임말로 SQL 특성뿐만 아니라 다양한 특성을 지원
    데이터 간의 관계를 정의하지 않는 데이터베이스 모델
    RDBMS의 복잡도와 용량의 한계를 극복하기 위한 목적으로 만들어짐
    비정형 데이터 처리에 유리하지만 스키마 변경에 추가적인 작업이 필요
    ex) MongoDB, DynamoDB, redis

NewSQL

  • RDBMS의 SQL과 NoSQL의 장점을 결합하여 관계형 모델, 트랜잭션 지원 및 확장성과 고 가용성을 모두 만족시키려는 목적에서 만들어진 데이터베이스 모델
    ex) VoltDB

 

데이터베이스 관리 시스템(DataBase Management System, DBMS)란?

다수의 사용자들이 데이터베이스 내의 데이터를 접근할 수 있도록 해주는 소프트웨어 도구 집합입니다. 데이터베이스 생성, 조회, 수정, 삭제와 같은 환경과 각종 응용프로그램이 데이터베이스에 접근할 수 있는 인터페이스를 제공하며 복구, 권한 관리와 같은 보안성 기능도 제공합니다.

 

DBMS 언어

DBMS언어 SQL (Structured Query Language)은 데이터베이스에서 데이터를 정의, 조작, 제어하기 위해 사용하는 언어입니다.

이전에 DBMS에 대해서는 정리해 둔 것이 있어 링크를 걸어두겠습니다!!

DBMS 정리 보러가기

 

728x90

'cs' 카테고리의 다른 글

[CS] MVC 패턴 (Model - View - Controller)  (0) 2023.01.17
[CS] 애자일(Agile) 방법론  (0) 2022.12.16
[CS] SPA !!  (1) 2022.11.16

댓글