데이터베이스, DBMS

김건우·2023년 12월 24일

개발 공부

목록 보기
12/13
post-thumbnail

데이터베이스

여러 사람이 공유할 목적으로 사용하는 데이터 창고

  • 전자적으로 저장되고 체계적인 데이터 모음이다.
  • 모든 유형의 데이터가 포함될 수 있다.
  • DBMS (DataBase Management System)을 활용해 데이터를 저장, 검색 및 편집 할 수 있다.

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

회사의 내부 운영을 지원하고 고객 및 공급업체와의 상호 작용을 저장할 수 있다.
전문화된 데이터를 보유할 수 있다.

  • 효율적인 확장
    • 데이터베이스 애플리케이션은 수백만, 수십억 개 등으로 확장하여 대량의 데이터를 관리할 수 있다.
  • 데이터 무결성
    • 데이터베이스에는 데이터 일관성을 유지하기 위해 기본적으로 제공되는 규칙 및 조건이 있다.
  • 데이터 보안
    • 데이터베이스는 모든 데이터와 관련된 개인정보 보호 및 규정 준수 요구 사항을 지원한다.
    • e.g., 데이터 접근하려면 사용자의 로그인 요구. 사용자마다 다른 접근 권한.
  • 데이터 분석
    • 최신 소프트웨어 시스템은 데이터베이스를 사용하여 데이터를 분석한다.
    • 추세와 패턴을 식별하거나 예측을 수행하는데 도움이 될 수 있다.

데이터베이스 유형

  • 관계형 데이터베이스, RDBMS(Relational Database Management System)

    • 데이터를 테이블에 직관적으로 간단하게 나타내는 관계형 모델을 기반으로 한다.
    • 데이터를 구조화해 효율적이고 유연하게 접근할 수 있다.
    • MySQL, PostgreSQL, Oracle Database, Microsoft SQL Server 등
  • 객체지향 데이터베이스

    • 정보를 객체의 형태로 표현하는 데이터베이스 모델이다.
    • ODMG 2.0 등
  • NoSQL 데이터베이스, Not only SQL DBMS

    • 전통적인 RDBMS의 제약을 벗어나 다양한 형태의 데이터 모델 및 schema를 지원한다.
    • 비정형 및 반정형 데이터를 저장하고 조작할 수 있다.
    • MongoDB, CockroachDB 등 웹 어플리케이션에서 주로 사용한다.
  • 그래프 데이터베이스

    • 엔티티 및 엔티티 간의 관계 측면에서 데이터를 저장한다.
    • 복잡한 관계를 쉽게 표현하고 검색할 수 있다.
    • AmazoneNeptune, Neo4j 등
    • OLTP 데이터베이스
      • 여러 사용자가 수행하는 많은 수의 트랜잭션을 위해 설계된 고속 분석 데이터베이스이다.
  • 클라우드 데이터베이스

    • 공용 또는 하이브리드 클라우드 환경에서 실행되도록 구축되어 클라우드에서 배포, 제공, 액세스되는 데이터베이스이다.
    • 관리형 서비스로서의 데이터베이스(DBaaS)로 제공되거나 클라우드 기반 가상 머신(VM)에 배포하여 자체 관리할 수 있다.
  • In-memory 데이터베이스

    • 메모리에 데이터를 저장하고 관리하는 DBMS로, 빠른 읽기 및 쓰기 성능을 제공한다.
    • 주로 실시간 분석 및 처리에 사용한다.
    • Redis, Memcached, LevelDB, RocksDB
  • 오픈 소스 데이터베이스

    • 소스 코드가 오픈 소스인 시스템이다.
    • SQL 또는 NoSQL 데이터베이스 등

데이터베이스 관리 시스템이란?

  • 데이터베이스 소프트웨어 프로그램으로, 데이터베이스 파일, 기록을 생성, 편집 및 보고를 쉽게 수행할 수 있다.
    데이터 저장, 백업, 보고, 다중 액세스 제어 및 보안도 처리할 수 있다.

  • 인기 DBMS로는 MySQL, Microsoft Access, Microsoft SQL Server, Oracle Database 등이 있다.


관계형 데이터베이스 관리 시스템, RDBMS

  • 관계형 데이터베이스는 서로 연관있는 데이터를 사용하여 데이터 테이블 간 관계를 구성하고 구조화하는 관계형 모델이다.
  • 데이터를 효율적이고 유연하게 액세스할 수 있어 가장 일반적이다.
  • 데이터를 저장, 조작 및 검색하는데 사용되는 SQL (Structured Query Language)을 사용한다.

MySQL 관계형 데이터베이스의 특징

  • MySQL(구조적 쿼리 언어) 은 데이터 쓰기 및 쿼리와 같은 모든 기본 SQL 명령을 수행하는 일반적인 오픈 소스 SQL 관계형 데이터베이스이다.
  • 안정적이고 주요 프로그래밍 언어 및 프로토콜을 지원해 대규모 기업의 기본 데이터 저장소 역할을 할 수 있다.
  • 호스트 기반 확인 및 암호 암호화 트래픽과 같은 보안 기능이 포함되어있다.
  • 사용하기 쉽고 업데이타 가능한 보기, 저장 프로시저와 같은 생산성 기능이 포함되어있다.
  • 트랜잭션, 고객 프로필 및 제품 정보와 같은 항목을 관리하는데 능숙해 널리 사용되는 트랜잭션 엔진이다.

관계형 모델 및 데이터 일관성

  • 관계형 모델은 애플리케이션과 데이터베이스 복사본(인스턴스) 간에 데이터 일관성을 유지하는 데 가장 적합하다.

  • 관계형 데이터베이스는 커밋(데이터베이스를 영구적으로 변경)에 대한 엄격한 정책을 사용해 매우 세분화된 수준에서 비즈니스 규칙 및 정책을 처리한다.

ACID 속성

관계형 데이터베이스 트랜잭션을 정의한다.

  • 원자성은 완전한 데이터베이스 트랜잭션을 구성하는 모든 요소를 정의한다.
  • 일관성은 트랜잭션 후 데이터 포인트를 올바른 상태로 유지하기 위한 규칙을 정의한다.
  • 고립성은 혼란을 피하기 위해 트랜잭션이 커밋될 때까지 트랜잭션의 효과가 다른 사람에게 보이지 않게 해준다.
  • 내구성은 트랜잭션이 커밋되면 데이터 변경 사항이 영구적이 되도록 한다.
profile
즐겁게

0개의 댓글