관계형 데이터베이스는 데이터 포인트 간에 사전 정의된 관계가 있을 때 그러한 데이터 항목들의 컬렉션을 가리킵니다.

관계형 모델은 데이터를 테이블로 정리합니다. 각 행은 개별 레코드를 나타내고 각 열은 값을 포함하는 속성으로 구성됩니다. 이 테이블 형식의 데이터베이스 구조를 사용하면 데이터 포인트 간의 관계를 쉽게 설정할 수 있으므로 데이터 자체를 재구성하지 않고도 다양한 방식으로 정보에 액세스할 수 있습니다.

관계형 데이터베이스의 테이블을 조인하여 다양한 데이터 포인트 간의 상호 연결에 대한 심층적인 인사이트를 얻을 수 있습니다. 예를 들어, 고객 테이블에 열 이름과 주소(행 값 John 및 California)가 있습니다. 마찬가지로 제품 테이블에는 열 이름과 비용(행 값 shoes 및 12 USD)이 있습니다. 고객 테이블을 제품 테이블과 조인하여 고객이 더 자주 구매하는 인기 제품을 식별합니다.

간단히 말해 관계형 데이터베이스는 사전 정의된 관계를 통해 데이터를 저장하고 액세스하는 방법입니다.

관계형 데이터베이스 관리 시스템이란 무엇인가요?

관계형 데이터베이스 관리 시스템(RDBMS)은 관계형 테이블을 관리하는 도구와 서비스로 구성된 소프트웨어 계층입니다. 실제로 RDBMS와 관계형 데이터베이스라는 용어는 동의어로 간주됩니다. 관계형 데이터베이스는 애플리케이션, 사용자 및 관계형 데이터베이스 간에 일관된 인터페이스를 제공합니다. 조직은 다양한 부서의 대량의 비즈니스 크리티컬 정보를 관리하는 데 RDBMS를 사용합니다.

여러 사용자가 동일한 데이터베이스를 다양한 방식으로 사용할 수 있습니다. 예를 들어, 데이터 중복을 생성하지 않고도 데이터베이스 작업을 수행하고 주요 데이터 포인트를 집계할 수 있습니다. 또한 데이터베이스 관리자는 관계형 데이터베이스 관리 시스템을 통해 데이터에 대한 액세스를 더욱 강력하게 제어할 수 있습니다.

관계형 데이터베이스가 중요한 이유는 무엇인가요?

컴퓨터가 발명된 이래로 기계에서 데이터를 관리하고 저장하는 것은 지속적인 연구 분야였습니다. 관계형 데이터베이스 이전에는 조직에서 컴퓨터의 폴더와 비슷한 계층적 데이터베이스 시스템을 사용했습니다. 이러한 초기 데이터베이스 시스템은 대량의 데이터를 정리할 수 있었습니다. 그러나 데이터 관계를 파악하는 방법에는 한계가 있었습니다. 또한 복잡하고. 특정 응용 분야에만 사용되며, 작업하려면 기술적인 전문 지식이 필요했습니다.

이러한 문제의 해결책으로 관계형 데이터베이스 모델이 등장했습니다. 관계형 데이터베이스 모델은 물리적 데이터 스토리지를 데이터베이스 관리 및 사용과 분리했습니다. 최신 관계형 데이터베이스를 사용하면 물리적 데이터 스토리지를 관리할 필요 없이 데이터를 저장하고 검색할 수 있습니다. 또한 프로그래밍 방식으로 논리적 데이터 구조를 조작할 수 있습니다.

관계형 데이터베이스의 이점은 무엇인가요?

관계형 데이터 모델의 주요 이점은 데이터에서 의미 있는 정보를 도출할 수 있다는 것입니다. 예를 들어, 테이블의 데이터를 계산, 정렬 및 그룹화할 수 있을 뿐만 아니라 수학 연산을 수행하고 복잡한 보고서를 생성할 수 있습니다. 따라서 관계형 데이터베이스 시스템은 오늘날에도 데이터 스토리지에 가장 많이 사용되고 있습니다. 이외에도 다음과 같은 이점이 있습니다.

데이터 무결성

데이터 무결성이란 데이터의 전체적인 완전성, 정확성 및 일관성을 의미합니다. 관계형 데이터베이스는 일련의 제약 조건을 사용하여 데이터베이스 내에서 데이터 무결성을 적용합니다. 이러한 제약 조건들은 프라이머리 키, 외래 키, 'Not NULL' 제약 조건, ‘Unique’ 제약 조건, ‘Default’ 제약 조건 및 ‘Check’ 제약 조건을 포함합니다.

이러한 무결성 제약 조건들은 데이터의 정확성과 신뢰성을 보장하기 위해 테이블의 데이터에 비즈니스 규칙을 적용할 때 도움이 됩니다. 또한 대부분의 관계형 데이터베이스에서는 데이터베이스의 데이터 포인트에 대한 작업을 기반으로 실행되는 트리거에 사용자 지정 코드를 포함할 수도 있습니다. 클라이언트 또는 애플리케이션에서 간접적으로 호출할 때 실행되는 저장 프로시저에 사용자 지정 코드를 포함할 수도 있습니다.

보안

대부분의 관계형 데이터베이스 관리 시스템에는 정교한 액세스 제어 기능이 있습니다. 데이터베이스 관리자는 누가 어떤 데이터에 어떤 액세스 권한을 갖는지 정확하게 결정할 수 있습니다. 개별 셀 수준에서도 데이터 읽기, 수정 및 삭제에 대한 액세스를 제한할 수 있습니다. 이러한 세분화된 액세스 제어는 관계형 데이터베이스를 매우 안전하게 만듭니다.

백업 및 재해 복구

대부분의 관계형 데이터베이스에는 가져오기 및 내보내기 기능이 있으므로 데이터 백업을 빠르게 생성할 수 있습니다. 최신 클라우드 기반 관계형 데이터베이스는 지속적인 미러링을 수행하므로 손실된 데이터를 몇 초 이내에 복원할 수 있습니다.

커뮤니티 지원

여러 관계형 데이터베이스 기술은 오픈 소스이며 무료로 사용할 수 있습니다. 활발한 커뮤니티를 통해 오픈 소스 데이터베이스의 기능이 지속적으로 개선되고 적용되고 있습니다. 개발자와 데이터 엔지니어는 관계형 데이터베이스를 매우 편리하게 사용할 수 있게 하는 다양한 도구와 소프트웨어에 액세스할 수 있습니다.

관계형 데이터베이스는 어떻게 작동하나요?

관계형 데이터베이스는 애플리케이션 코드 내에서 데이터 테이블을 재구성할 필요 없이 애플리케이션이 데이터에 액세스하고 다양한 방식으로 데이터를 재구성할 수 있는 환경을 제공하는 방식으로 작동합니다. 다음은 관계형 데이터베이스 시스템의 몇 가지 주요 기능입니다.

데이터 모델

관계형 데이터베이스는 엔터티라고도 하는 실제 객체 또는 개념을 나타내는 테이블로 구성됩니다. 테이블의 각 열에는 속성이라고 하는 특정 종류의 데이터가 있으며 필드에는 속성의 실제 값이 저장됩니다. 테이블의 행과 열은 한 객체 또는 엔터티와 관련된 값의 컬렉션을 나타냅니다.

프라이머리 키라는 고유 식별자로 테이블의 각 행을 표시할 수 있습니다. 외래 키는 다른 기존 테이블의 프라이머리 키를 참조하고 논리적 연결을 생성합니다. 따라서 여러 테이블 간의 행은 프라이머리 키/외래 키 페어링을 사용하여 서로 연관됩니다. 예를 들어, 고객에 대한 모든 정보가 포함된 고객 테이블의 행을 식별하는 고객 ID를 포함하는 외래 키가 주문 테이블의 각 행에 포함될 수 있습니다.

SQL

구조적 질의 언어(SQL)는 관계형 데이터베이스와 통신을 위한 기본 인터페이스입니다. SQL은 1986년에 미국표준협회(ANSI)의 표준이 되었습니다. 널리 사용되는 모든 관계형 데이터베이스 엔진은 표준 ANSI SQL을 지원합니다. 이를 사용하여 데이터를 업데이트, 삭제 또는 저장하고, 데이터 서브셋을 검색하고, 관계형 데이터베이스의 모든 측면을 관리할 수 있습니다.

SQL은 문에 일반적인 영어 키워드를 사용하기 때문에 배우기가 매우 쉽습니다. 또한 다양한 프로그래밍 언어와 잘 통합됩니다. 예를 들어, Java 프로그래밍 언어로 SQL 쿼리를 포함시켜 주요 SQL 데이터베이스 시스템으로 고성능 데이터 처리 애플리케이션을 빌드할 수 있습니다.

트랜잭션

관계형 데이터베이스 트랜잭션은 일련의 작업으로 실행되고 하나의 논리적 작업 단위를 구성하는 하나 이상의 SQL 문입니다. 트랜잭션은 '전부 아니면 전무' 명제를 제공합니다. 즉, 전체 트랜잭션이 단일 단위로 완료되어야 합니다. 관계형 데이터베이스 관리 시스템이 트랜잭션의 어떤 부분도 완료할 수 없는 경우, 개별 구성 요소 중 어느 것도 통과되지 않습니다. 관계형 모델 용어에서 트랜잭션은 커밋(COMMIT) 또는 롤백(ROLLBACK)을 초래합니다. 데이터베이스 관리 시스템은 모든 트랜잭션을 다른 트랜잭션과 격리하여 독립적으로 일관되고 안정적으로 처리합니다.

ACID 규정 준수

모든 관계형 데이터베이스 트랜잭션은 데이터 무결성을 보장하기 위해 원자성, 일관성, 격리성 및 내구성(ACID) 규정을 준수해야 합니다.

원자성
원자성을 갖기 위해서는 트랜잭션 전체가 성공적으로 실행되어야 합니다. 트랜잭션의 일부가 실패하면 트랜잭션의 일부로 이루어진 모든 변경 사항이 롤백됩니다.

일관성
일관성을 갖기 위해서는 트랜잭션의 일부로서 관계형 데이터베이스에 작성된 데이터가 모든 정의된 규칙 및 제한 사항(제약 조건, 캐스케이드 및 트리거를 포함)을 준수해야 합니다.

격리
격리를 위해서는 각 트랜잭션이 자체적으로 독립적이어야 합니다. 여러 사용자가 관계형 데이터베이스의 데이터를 동시에 수정하려고 하면 동시성 통제 메커니즘이 서로의 변경 사항을 덮어쓰지 못하게 합니다.

내구성
내구성을 갖기 위해서는 트랜잭션이 성공적으로 완료된 상태에서 관계형 데이터베이스에 대한 모든 변경 사항을 영구적으로 보존해야 합니다.

데이터베이스의 유형은 어떤 것들이 있나요?

특정 데이터 모델의 유연성과 확장성을 최적화하도록 설계된 다양한 유형의 데이터베이스가 있습니다. 이러한 데이터베이스 유형에는 다음이 포함됩니다.

  • 관계형: 데이터는 개별 레코드에 대한 행과 레코드와 관련된 속성 또는 데이터 포인트 저장을 위한 열을 사용하여 테이블 형식으로 저장됩니다.
  • 키-값: 데이터는 각 항목에 키와 값이 있는 사전 형식으로 저장됩니다.
  • 문서: 데이터는 JSON, XML 또는 반정형 데이터를 위한 다른 형식을 사용하여 문서로 저장됩니다.
  • 그래프: 데이터는 노드, 이러한 노드 간의 관계를 정의하는 엣지, 개별 데이터 포인트를 저장하는 속성을 사용하여 지식 그래프로 저장됩니다.

관계형 데이터베이스와 비관계형 데이터베이스의 차이는 무엇인가요?

관계형 데이터베이스와 비관계형(NoSQL이라고도 함) 데이터베이스의 차이는 데이터베이스에 포함된 데이터의 구조와 관련이 있습니다. 관계형 데이터베이스 모델은 데이터를 테이블, 인덱스 및 뷰로 정리합니다. 이 테이블 형식 구조를 사용하면 SQL과 같은 쿼리 언어를 사용하여 관련 데이터를 쉽게 만들고, 읽고, 수정하고, 삭제할 수 있습니다. 각 행의 구조는 스프레드시트처럼 동일합니다.

비관계형 데이터베이스는 테이블 형식 데이터 구조를 사용하지 않습니다. 대신 키-값 페어, JSON, 그래프 또는 거의 모든 다른 유형의 데이터 구조로 데이터를 저장할 수 있습니다. 많은 비관계형 데이터베이스는 SQL이 필요 없는 방식으로 데이터가 저장되고 쿼리되기 때문에 NoSQL 데이터베이스라고도 합니다.

비관계형 데이터베이스 또는 NoSQL 데이터베이스는 특정 데이터 모델을 위한 목적별 데이터베이스로서 현대적인 애플리케이션 구축을 위한 유연한 스키마를 갖추고 있습니다. 개발 용이성, 기능성 및 확장성으로 널리 인정받고 있습니다. 몇 가지 차이점은 다음과 같습니다.

데이터 스토리지 메커니즘

관계형 데이터베이스는 규칙 기반 행과 열에 정형 데이터를 저장합니다. 반대로 NoSQL 데이터베이스는 개별 데이터 요소를 별도의 파일에 저장합니다.

유연한 구조

관계형 데이터베이스는 데이터를 테이블 형식으로 저장하며 데이터 다양성과 테이블 관계에 관한 엄격한 규칙을 따릅니다. 비관계형 데이터베이스는 정형 데이터를 필요로 하지 않기 때문에 더 많은 유연성을 제공합니다. 이를 사용하여 파일, 비디오 및 기타 비정형 콘텐츠를 저장할 수 있습니다.

데이터 무결성 메커니즘

관계형 데이터베이스 모델은 엄격한 ACID 속성을 따릅니다. 일반적으로 비관계형 데이터베이스는 보다 유연한 ‘기본적으로 가용성이 보장되고 소프트 상태이며 궁극적으로 일관된’(BASE) 모델을 제공합니다. 가용성은 보장하지만 강력한 일관성은 보장하지 않습니다. 데이터베이스 상태는 시간이 지남에 따라 변할 수 있으며 결국 일관된 상태가 됩니다. 또한 최신 비관계형 데이터베이스는 ACID, 강력한 일관성, 고가용성 등을 제공합니다.

관계형 데이터베이스를 선택할 때 무엇을 고려해야 하나요?

관계형 데이터베이스 사용 사례는 저장되는 데이터의 유형과 볼륨은 물론, 데이터에 액세스하는 데 필요한 성능 수준에 따라 달라질 수 있습니다. 바로 이러한 이유로 Amazon Aurora, Oracle, Microsoft SQL Server에서 MySQL 및 PostgreSQL에 이르기까지 각각의 장단점이 있는 다양한 관계형 데이터베이스 엔진이 개발되었습니다.

관계형 데이터베이스를 선택할 때는 이를 지원하는 관리형 클라우드 서비스 제공업체를 찾아야 하는지 여부를 고려하는 것이 중요합니다. Amazon Relational Database Service(RDS)는 가장 널리 사용되는 관계형 데이터베이스의 프로비저닝, 패치, 백업 및 기타 필수 작업을 처리하는 완전관리형 데이터베이스 서비스입니다. 즉, 유지 관리 요구 사항에 대한 걱정 없이 사용 사례에 맞는 데이터베이스 엔진을 선택할 수 있습니다.

AWS는 관계형 데이터베이스 관리 시스템 요구 사항을 어떻게 지원하나요?

Amazon Relational Database Service(RDS)는 클라우드에서 간편하게 관계형 데이터베이스를 설치, 운영 및 규모를 조정할 수 있는 관리형 서비스 컬렉션입니다. 클라우드 데이터베이스는 성능, 규모 조정, 비용 효율성 등 많은 이점을 제공합니다. 다음은 Amazon RDS의 관계형 데이터베이스 엔진의 몇 가지 예입니다.

Amazon Aurora
Amazon Aurora는 MySQL 및 PostgreSQL과 호환되는 관계형 데이터베이스 엔진으로, 고급 상용 데이터베이스의 속도와 가용성, 오픈 소스 데이터베이스의 경제성 및 단순성을 모두 갖추었습니다. Amazon Aurora는 상용 데이터베이스의 10분의 1 비용으로 MySQL 처리량의 최대 5배, PostgreSQL 처리량의 3배를 제공합니다.

Oracle
Amazon RDS for Oracle에서는 비용 효율적이면서 크기 조정이 가능한 하드웨어 용량을 갖춘 여러 버전의 Oracle 데이터베이스를 몇 분 만에 배포할 수 있습니다. 기존의 Oracle 라이선스를 가져오거나 1시간 단위로 라이선스 사용료를 지불할 수 있습니다. RDS는 애플리케이션 개발에 집중할 수 있도록 프로비저닝, 백업, 패치 적용, 모니터링, 하드웨어 확장 등 복잡한 데이터베이스 관리 작업을 관리합니다.

Microsoft SQL Server
Amazon RDS for SQL Server를 활용하면 클라우드에서 SQL Server를 쉽게 설치, 운영 및 확장할 수 있습니다. Express, Web, Standard 및 Enterprise를 포함한 여러 버전의 SQL Server를 배포할 수 있습니다. Amazon RDS for SQL Server는 SQL Server의 기본 기능에 직접 액세스할 권한을 제공하기 때문에 사용 중인 애플리케이션과 도구들은 아무런 변경 없이 작동해야 합니다.

MySQL
MySQL은 매우 많은 웹 기반 애플리케이션에서 사용하는 오픈 소스 관계형 데이터베이스 관리 시스템입니다. Amazon RDS for MySQL은 익숙한 MySQL 데이터베이스 엔진 기능에 액세스할 수 있도록 지원합니다. 따라서 기존 데이터베이스에서 이미 사용하고 있는 코드, 애플리케이션 및 도구를 아무런 변경 없이 Amazon RDS에서 사용할 수 있습니다.

PostgreSQL
PostgreSQL은 확장성 및 표준 준수에 중점을 둔 오픈 소스 객체 관계형 데이터베이스 시스템입니다. Amazon RDS for PostgreSQL은 PostgreSQL 소프트웨어 설치, 스토리지 관리, 업그레이드 등 시간이 많이 소요되는 획일적인 데이터베이스 관리 작업을 관리합니다. 몇 분 안에 배포하고 시작할 수 있습니다.

MariaDB
MariaDB는 MySQL의 포크인 MySQL 호환 데이터베이스 엔진입니다. MySQL의 원 개발자가 개발했습니다. Amazon RDS for MariaDB를 사용하면 클라우드에서 MariaDB 배포를 손쉽게 설정, 운영 및 확장할 수 있습니다. Amazon RDS에서는 비용 효율적이며 크기 조정이 가능한 하드웨어 용량을 갖춘 확장 가능한 MariaDB 데이터베이스를 몇 분 만에 배포할 수 있습니다.

지금 무료 계정을 만들어 AWS에서 관계형 데이터베이스를 시작하세요.

Amazon Aurora와 그 혁신에 대해 자세히 알아보기
글로벌 복원력을 위한 Amazon Aurora HA &DR 설계 패턴