데이터베이스(Database)란?

eeensu·2023년 10월 2일
0

용어 정리와 팁

목록 보기
14/26
post-thumbnail

데이터베이스(Database)

데이터베이스(DB)는 체계적으로 구성된 데이터의 집합으로, 데이터를 효율적으로 저장, 관리하고 검색, 갱신, 삭제할 수 있는 기능을 제공한다. 여기서 데이터는 이 세상에 존재하는 모든 정보를 가리키며, 그 어떠한 것도 데이터가 될 수 있다. 이러한 데이터를 소프트웨어에서 효율적으로 관리하기 위한 저장소가 데이터베이스이다. 데이터베이스는 여러 응용 프로그램이 공유하고 동시에 접근할 수 있는 중앙 집중화된 저장소를 제공하며, 데이터의 일관성, 무결성, 보안을 유지하기 위해 설계되어 있다.



특징

  • 데이터의 구조화
    데이터베이스는 테이블 형태로 데이터를 구조화하며, 각 테이블은 컬럼(열)과 로우(행)로 이루어져 있다. 이 구조는 데이터의 관계를 나타내며, 데이터의 중복을 최소화하고 데이터를 효율적으로 저장하고 검색할 수 있도록 한다.

  • 데이터의 일관성과 무결성
    데이터베이스는 여러 사용자와 응용 프로그램이 동시에 접근하더라도 데이터의 일관성과 무결성을 보장해야 한다. 이를 위해 트랜잭션(Transaction)과 제약 조건(Constraints)을 사용하여 데이터의 정합성을 유지한다.

  • 데이터의 보안
    데이터베이스는 데이터의 무단 접근을 방지하기 위해 인증과 권한 부여메커니즘을 제공한다. 이를 통해 데이터에 접근할 수 있는 사용자와 권한을 제어할 수 있다.

  • 데이터의 동시성 관리
    여러 사용자가 동시에 데이터에 접근하는 상황에서 데이터의 일관성과 무결성을 유지하기 위해 동시성 관리 기능을 제공한다. 이를 통해 트랜잭션 간의 충돌을 방지하고 조율한다.

  • 데이터의 추상화
    데이터베이스는 데이터를 추상화하여 응용 프로그램이 데이터를 다루기 쉽도록 준다. SQL (Structured Query Language)을 사용하여 데이터를 검색, 수정, 삭제하는 등의 작업을 수행할 수 있다.



종류

  • 관계형 데이터베이스(RDBMS)
    테이블과 테이블 간의 관계를 기반으로 데이터를 저장하는 데이터베이스로, MySQL, PostgreSQL, Oracle, Microsoft SQL Server 등이 포함된다.

  • NoSQL 데이터베이스
    관계형 데이터베이스와 달리 테이블 구조가 아닌 다양한 형식으로 데이터를 저장하는 데이터베이스로 MongoDB, Cassandra, Redis, Elasticsearch 등이 있다. MongoDB는 js를 기반으로 질의어를 작성하기에 프론트에서 다루기에 비교적으로 쉽다.



구성 요소

  • 데이터
    정보의 집합으로, 텍스트, 숫자, 이미지 등 다양한 형식이 있다.

  • 스키마(Schema)
    데이터베이스의 구조와 제약 조건을 정의한 설계도이다. 테이블, 컬럼, 관계 등이 포함된다.

  • 테이블(Table)
    데이터의 집합을 의미하며, 행과 열로 구성된다. 각 행은 레코드를 나타내고, 열은 속성을 나타낸다.

  • 레코드(Record)
    테이블 내의 한 행으로, 데이터의 실제 값을 포함한다.

  • 컬럼(Column)
    테이블 내의 열로, 특정 속성의 데이터를 포함한다.

  • 인덱스(Index)
    데이터의 검색 속도를 향상시키기 위해 생성하는 데이터 구조로, 특정 컬럼의 값을 기준으로 정렬하여 빠른 검색을 가능하게 한다.

  • 관계(Relationship)
    테이블 간의 연결을 나타내며, 관계형 데이터베이스에서 중요한 개념이다.

  • SQL(Structured Query Language)
    데이터베이스를 관리하고 조작하기 위한 언어로, 데이터의 삽입, 조회, 수정, 삭제 등을 수행합니다



프론트앤엔드와 백엔드와의 관계

프론트엔드

react와 같은 프론트엔드 라이브러리 혹은 프레임워크에서는 서버를 통해 데이터베이스로부터 정보를 가져와 UI를 업데이트하고 사용자와 상호작용한다. 이를 위해 API 호출을 통해 데이터베이스와 통신하며, 상태 관리를 통해 데이터를 효율적으로 관리하고 UI를 갱신한다.

백엔드

백엔드는 데이터베이스와 상세하게 연결되어 데이터를 생성, 읽기, 업데이트, 삭제하며 비즈니스 로직을 처리하고 보안을 관리한다. 백엔드(서버)는 DB를 통해 데이터를 가져오고, 이 데이터를 프론트에 전달하여 프론트는 데이터를 화면에 그려준다. 물론 반대의 순서도 가능하다. 이러한 협력은 데이터를 효율적으로 관리하고 애플리케이션의 성능과 기능을 개선하는 데 중요한 역할을 한다.

profile
안녕하세요! 26살 프론트엔드 개발자입니다! (2024/03 ~)

0개의 댓글