관계형 데이터베이스는 데이터가 열과 행의 테이블(또는 '관계') 하나 이상에 저장되는 사전 정의된 관계로 데이터를 구성하는 정보 모음으로, 이를 사용하면 서로 다른 데이터 구조가 어떻게 서로 연관되어 있는지 쉽게 확인하고 이해할 수 있습니다. 관계는 이러한 테이블 간의 상호작용을 기반으로 설정되는 여러 테이블 간의 논리적 연결입니다.
Google Cloud의 관계형 데이터베이스인 Cloud SQL, Cloud Spanner, PostgreSQL용 AlloyDB가 운영 비용을 절감하고 혁신적인 애플리케이션을 빌드하는 데 어떻게 도움이 되는지 알아보세요.
시작할 준비가 되셨나요? 10GB 스토리지를 포함한 90일 Cloud Spanner 무료 체험판 인스턴스를 무료로 만드세요.
관계형 데이터베이스(RDB)는 테이블, 행, 열의 정보를 구조화하는 방식입니다. RDB에는 테이블을 조인하여 정보 간의 관계나 링크를 설정할 수 있는 기능이 있으므로 여러 데이터 포인트 간의 관계를 쉽게 이해하고 유용한 정보를 얻을 수 있습니다.
1970년대 IBM의 E.F. Codd가 개발한 관계형 데이터베이스 모델을 사용하면 공통 속성을 사용하여 모든 테이블을 다른 테이블과 연관시킬 수 있습니다. Codd는 계층 구조를 사용하여 데이터를 구성하는 대신 데이터가 포함된 테이블을 재구성하지 않고 데이터가 테이블에 저장, 액세스, 연결되는 데이터 모델을 사용하는 방식으로 전환할 것을 제안했습니다.
관계형 데이터베이스를 비즈니스에서 데이터를 구성, 관리, 연결하는 데 도움이 되는 스프레드시트 파일 모음이라고 생각하면 됩니다. 관계형 데이터베이스 모델에서 각 '스프레드시트'는 열(속성)과 행(레코드 또는 튜플)으로 대표되는 정보를 저장하는 테이블입니다.
속성(열)에서는 데이터 유형을 지정하며 각 레코드(또는 행)에는 구체적인 데이터 유형의 값이 포함됩니다. 관계형 데이터베이스의 모든 테이블에는 행의 고유 식별자인 기본 키라는 속성이 있으며 각 행은 다른 기존 테이블의 기본 키에 대한 참조인 외래 키를 사용하여 서로 다른 테이블 간의 관계를 만드는 데 사용될 수 있습니다.
이제 관계형 데이터베이스 모델의 실제 작동 방식을 살펴보겠습니다.
고객 테이블과 주문 테이블이 있다고 가정해 보겠습니다.
고객 테이블에는 고객 데이터가 포함됩니다.
고객 테이블에서 고객 ID는 고객이 관계형 데이터베이스에서 고유하게 식별되는 기본 키입니다. 고객 ID가 같은 다른 고객은 없습니다.
주문 테이블에는 주문 거래 정보가 포함됩니다.
여기에서 특정 주문을 식별하는 기본 키는 주문 ID입니다. 외래 키를 사용하여 고객 테이블의 고객 ID를 연결해 고객을 주문과 연결할 수 있습니다.
이제 두 테이블이 공유된 고객 ID를 기반으로 관련됩니다. 즉, 두 테이블을 쿼리하여 공식 보고서를 만들거나 다른 애플리케이션에 데이터를 사용할 수 있습니다. 예를 들어 소매 지점 관리자는 특정 날짜에 구매한 모든 고객에 대한 보고서를 생성하거나 지난 달 주문 중에 배송일이 지연된 고객을 파악할 수 있습니다.
위의 설명은 간단하지만, 관계형 데이터베이스는 데이터 간의 매우 복잡한 관계를 보여주는 데에도 탁월하므로 데이터가 데이터베이스의 사전 정의된 관계형 스키마를 준수하는 한 더 많은 테이블의 데이터를 참조할 수 있습니다.
데이터가 사전 정의된 관계로 구성되므로 데이터를 선언적으로 쿼리할 수 있습니다. 선언적 쿼리는 시스템이 결과를 어떻게 연산해야 하는지 표현하지 않고 시스템에서 추출할 내용을 정의하는 방법입니다. 이는 다른 시스템과 달리 관계형 시스템의 핵심입니다.
이제 관계형 데이터베이스 작동 방식을 이해했으므로 관계형 데이터베이스 모델을 사용하는 여러 관계형 데이터베이스 관리 시스템을 알아볼 수 있습니다. 관계형 데이터베이스 관리 시스템(RDBMS)은 관계형 데이터베이스를 생성, 업데이트, 관리하는 데 사용하는 프로그램입니다. 잘 알려진 RDBMS에는 MySQL, PostgreSQL, MariaDB, Microsoft SQL Server, Oracle Database가 있습니다.
Cloud SQL, Cloud Spanner, AlloyDB와 같은 클라우드 기반 관계형 데이터베이스는 데이터베이스 유지보수, 패치, 용량 관리, 프로비저닝, 인프라 지원에 사용되는 관리형 서비스를 제공하므로 점점 더 많은 인기를 얻고 있습니다.
시작할 준비가 되셨나요? 10GB 스토리지를 포함한 90일 Cloud Spanner 무료 체험판 인스턴스를 무료로 만드세요.
관계형 데이터베이스 모델의 주요 이점은 직관적인 데이터 표현 방법을 제공하고 관련 데이터 포인트에 쉽게 액세스할 수 있게 해준다는 점입니다. 따라서 관계형 데이터베이스는 인벤토리 추적부터 트랜잭션 데이터 처리, 애플리케이션 로깅에 이르기까지 대량의 정형 데이터를 관리해야 하는 조직에서 가장 많이 사용됩니다.
관계형 데이터베이스를 사용하면 데이터를 관리하고 저장할 때 다음과 같은 여러 가지 이점이 있습니다.
유연성
전체 데이터베이스 구조를 변경하거나 기존 애플리케이션에 영향을 주지 않고 필요할 때마다 간편하게 테이블, 관계를 추가, 업데이트 또는 삭제하고 데이터를 변경할 수 있습니다.
ACID 규정 준수
관계형 데이터베이스는 ACID(원자성, 일관성, 격리, 내구성) 성능을 지원하여 오류, 실패 또는 기타 잠재적 오작동에 관계없이 데이터 유효성을 보장합니다.
사용 편의성
기술자가 아닌 사용자도 데이터베이스와 상호작용하는 방법을 배울 수 있는 SQL을 사용하여 복잡한 쿼리를 쉽게 실행할 수 있습니다.
공동작업
여러 사용자가 동시에 데이터를 운영하고 액세스할 수 있습니다. 기본 제공되는 잠금 기능으로 업데이트 중에는 동시에 데이터에 액세스할 수 없습니다.
기본 제공 보안 기능
역할 기반 보안을 통해 데이터 액세스가 특정 사용자로 제한됩니다.
데이터베이스 정규화
관계형 데이터베이스에서는 데이터 중복성을 줄이고 데이터 무결성을 향상시키는 정규화라고 하는 설계 기법을 사용합니다.
관계형 및 비관계형 데이터베이스(NoSQL 데이터베이스)의 주요 차이점은 데이터를 저장하고 구성하는 방식입니다. 비관계형 데이터베이스는 규칙 기반의 테이블 형식 방식으로 데이터를 저장하지 않습니다. 대신 데이터를 연결되지 않은 개별 파일로 저장하며 문서 또는 리치 미디어 파일과 같은 복잡한 비정형 데이터 유형에 사용될 수 있습니다.
관계형 데이터베이스와 달리 NoSQL 데이터베이스는 유연한 데이터 모델을 따르므로 자주 변경되는 데이터를 저장하거나 다양한 유형의 데이터를 처리하는 애플리케이션에 적합합니다.