검색 결과가 없습니다

검색어와 일치하는 결과가 없습니다.

원하시는 정보를 찾는 데 도움이 되도록 다음을 시도해 보십시오.

  • 검색에 사용하신 키워드의 철자가 올바른지 확인하십시오.
  • 입력한 키워드에 동의어를 사용하십시오. 예를 들어 “소프트웨어” 대신 “애플리케이션”을 사용해 보십시오.
  • 아래에 표시된 인기 검색어 중 하나를 사용해 보십시오.
  • 새로운 검색을 시작하십시오.
인기 질문

관계형 데이터베이스란?

관계형 데이터베이스는 서로 관련된 데이터 포인트에 대한 액세스를 저장 및 제공하는 데이터베이스 유형입니다. 관계형 데이터베이스는 테이블에 데이터를 직관적이고 간단하게 표현하는 방법인 관계형 모델을 기반으로 합니다. 관계형 데이터베이스에서 테이블의 각 행은 라는 고유 ID가 포함된 레코드입니다. 테이블의 열에는 데이터의 속성이 들어 있으며, 각 레코드에는 일반적으로 각 속성에 대한 값이 있으므로 데이터 포인트 간의 관계를 손쉽게 설정할 수 있습니다.

관계형 데이터베이스 예

여기’ 소기업이 제품 주문을 처리하는 데 사용할 수 있는 두 테이블에 대한 간단한 예가 있습니다. 첫 번째 테이블은 고객 정보 테이블로, 각 레코드에는 고객의 ’이름, 주소, 배송 및 청구 정보, 전화 번호 및 기타 연락처 정보가 포함되어 있습니다. 정보의 각 비트(각 속성)는 자체 열에 있으며, 데이터베이스는 각 행에 고유 ID(키)를 할당합니다. 두 번째 테이블인 —고객 주문 테이블—의 각 레코드에는 주문한 고객의 ID, 주문한 제품, 수량, 선택한 크기 및 색상이 포함되어 있지만, —고객의’ 이름 또는 연락처 정보는 포함되어 있지 않습니다.

여기 나온 두 테이블에서 공통된 것은 ID 열(키) 단 하나입니다. 그러나 이러한 공통 열 때문에 관계형 데이터베이스는 두 테이블 간에 관계를 생성할 수 있습니다. 회사’의 주문 처리 애플리케이션이 데이터베이스에 주문을 제출하면 데이터베이스는 고객 주문 테이블로 이동하여 제품 주문에 대한 올바른 정보를 가져와서 해당 테이블의 고객 ID를 사용하여 고객 정보 테이블에서 고객의’ 청구 및 배송 정보를 조회할 수 있습니다. 따라서 웨어하우스는 올바른 제품을 가져올 수 있고, 고객은 적시에 주문 상품을 배송 받을 수 있으며, 회사는 대금을 받을 수 있습니다.

관계형 데이터베이스의 구조

관계형 모델에서는 —데이터 테이블, 보기 및 인덱스— 같은 논리적 데이터 구조를 물리적 저장소 구조와 분리할 수 있습니다. 이러한 분리 덕분에 데이터베이스 관리자는 논리적 구조로서 해당 데이터에 대한 액세스에 영향을 주지 않고 물리적 데이터 저장소를 관리할 수 있습니다. 예를 들어, 데이터베이스 파일의 이름을 변경해도 그 안에 저장된 테이블의 이름은 변경되지 않습니다.

논리적 구조와 물리적 구조의 차이는 데이터베이스 작업에도 적용되는데, 데이터베이스 작업은 애플리케이션에서 데이터베이스의 데이터 및 구조를 조작할 수 있도록 명확하게 정의된 작업입니다. 논리적 작업에서는 애플리케이션이 필요한 콘텐츠를 지정할 수 있으며, 물리적 작업에서는 데이터의 액세스 방법을 결정한 다음 작업을 수행합니다.

데이터의 정확성과 액세스 가능성을 항상 보장하기 위해 관계형 데이터베이스는 특정한 무결성 규칙을 따릅니다. 예를 들어 무결성 규칙은 데이터베이스에 잘못된 정보가 입력될 가능성을 제거하기 위해 테이블에서 중복 행을 허용하지 않도록 지정할 수 있습니다.

관계형 모델

데이터베이스 초창기에는 모든 애플리케이션이 자체적인 고유 구조에 데이터를 저장했습니다. 해당 데이터를 사용하는 애플리케이션을 빌드하고 싶을 때는 개발자가 필요한 데이터를 찾기 위해 특정 데이터 구조에 대해 많이 알아야만 했습니다. 이러한 데이터 구조는 비효율적이고 유지 관리가 까다로울 뿐만 아니라, 우수한 애플리케이션 성능을 제공하도록 최적화하기가 어려웠습니다. 관계형 데이터베이스 모델은 다중 임의 데이터 구조의 문제를 해결하도록 설계되었습니다.

관계형 모델은 모든 애플리케이션에서 사용할 수 있는 데이터를 표현하고 쿼리하는 표준 방식을 제공했습니다. 처음부터 개발자들은 관계형 데이터베이스 모델의 가장 큰 장점이 정형 정보를 저장 및 액세스하는 직관적이고 효율적이며 유연한 방법인 테이블 사용에 있음을 알았습니다.

시간이 지남에 따라 개발자가 SQL(Structured Query Language)을 사용하여 데이터베이스에 데이터를 기록 및 쿼리하기 시작하면서 관계형 모델의 또 다른 강점이 부각되었습니다. 오랜 세월 SQL은 데이터베이스 쿼리용 언어로 널리 사용되었습니다. 관계형 대수를 기반으로 하는 SQL은 내부적으로 일관된 수학적 언어를 제공하여 모든 데이터베이스 쿼리의 성능을 보다 손쉽게 향상시킬 수 있게 해줍니다. 이에 비해 다른 접근 방식들은 개별 쿼리를 정의해야 합니다.

관계형 데이터베이스의 이점

단순하지만 강력한 관계형 모델은 광범위한 정보 요구를 해결하기 위해 유형과 규모에 관계 없이 모든 조직에서 사용됩니다. 관계형 데이터베이스는 재고를 추적하고, 전자 상거래 트랜잭션을 처리하고, 엄청난 양의 미션 크리티컬한 고객 정보를 관리하는 데 사용됩니다. 데이터 포인트를 서로 연결하고 규칙을 기반으로 안전하고 일관된 방식으로 관리하기 위해 필요한 모든 정보에서 관계형 데이터베이스를 고려할 수 있습니다.

관계형 데이터베이스는 1970년대부터 사용되어 왔습니다. 관계형 모델은 이러한 장점 덕분에 오늘날에도 데이터베이스에서 가장 널리 채택되는 모델로 계속해 자리매김하고 있습니다.

데이터 일관성

관계형 모델은 애플리케이션과 데이터베이스 복사본(인스턴스) 간에 데이터 일관성을 유지하는 데 가장 적합합니다. 예를 들어 ATM에 돈을 입금한 다음, 휴대폰에서 계정 잔액을 확인할 때 고객은 해당 입금이 업데이트된 계정 잔액에 즉시 반영되기를 기대합니다. 관계형 데이터베이스는 데이터베이스의 여러 인스턴스가 항상 동일한 데이터를 갖도록 한다는 점에서 이러한 종류의 데이터 일관성에 있어 탁월합니다.

’ 다른 유형의 데이터베이스는 대량의 데이터에서 이 정도 수준으로 시의적절한 일관성을 유지하기가 어렵습니다. NoSQL 같은 일부 최신 데이터베이스는 “결과적 일관성”만 지원할 수 있습니다. 이 원칙에 따라 데이터베이스를 확장하거나 여러 사용자가 같은 데이터에 동시에 액세스 할 때 데이터가 이러한 상황을 “이해”하려면 약간 시간이 걸립니다. 제품 카탈로그에 목록을 유지하는 것과 같은 일부 사례에서는 결과적 일관성이 허용되지만, 쇼핑 카트 트랜잭션과 같이 중요한 비즈니스 시스템에서는 관계형 데이터베이스가 여전히 최적 표준입니다.

커밋 및 원자성

관계형 데이터베이스는 커밋(즉, 데이터베이스를 영구적으로 변경)에 대한 엄격한 정책을 사용하여 매우 세분화된 수준에서 비즈니스 규칙 및 정책을 처리합니다. 항상 함께 사용되는 세 부품을 추적하는 재고 데이터베이스를 예로 들어보겠습니다. 한 부품을 재고에서 가져 오면 다른 두 부품도 가져와야 합니다. 세 부품 중 하나가 ’가용 상태가 아니면 어떤 부품도 가져와서는 안 됩니다.— 데이터베이스가 커밋을 수행하기 전에 세 부품이 모두 가용 상태여야 합니다. 관계형 데이터베이스에서는 세 부품 모두에 대한 커밋이 가능하다는 것을 알기 전에는 한 부품에 대한 ’ 커밋을 수행하지 않습니다. 이 다각적 커밋 기능을 원자성이라고 합니다. 원자성은 데이터베이스에서 데이터를 정확하게 유지하고, 비즈니스 규칙, 규정 및 정책을 준수하도록 보장하기 위한 핵심 개념입니다.

ACID 및 관계형 데이터베이스

관계형 데이터베이스 트랜잭션을 정의하는 네 가지 중요한 속성으로 원자성(Atomicity), 일관성(Consistency), 고립성(Isolation) 및 내구성(Durability)—이 있으며 이를 ACID라고 합니다.

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

저장 절차 및 관계형 데이터베이스

데이터 액세스를 위해서는 많은 반복 작업이 필요합니다. 예를 들어, 데이터 테이블에서 정보를 가져오는 간단한 쿼리에서 원하는 결과를 생성하려면 수 백 또는 수 천 번 작업을 반복해야 할 수 있습니다. 이러한 데이터 액세스 기능에서는 데이터베이스 액세스를 위한 일종의 코드가 필요합니다. 애플리케이션 개발자는 ’각각의 새로운 애플리케이션에서 이러한 함수에 대한 새 코드를 작성하고 싶어하지 않습니다. 다행히 관계형 데이터베이스에서는 간단한 애플리케이션 호출로 액세스할 수 있는 코드 블록인 저장 절차를 사용할 수 있습니다. 예를 들어, 단일 저장 절차는 여러 애플리케이션 사용자에게 일관된 레코드 태그 지정 기능을 제공할 수 있습니다. 또한 저장 절차는 개발자가 애플리케이션의 특정 데이터 기능이 특정 방식으로 구현되도록 하는 데 도움이 될 수 있습니다.

데이터베이스 잠금 및 동시성

여러 사용자 또는 애플리케이션이 동시에 같은 데이터를 변경하려고 하면 데이터베이스에서 충돌이 발생할 수 있습니다. 잠금 및 동시성 기법을 사용하면 데이터의 무결성을 유지하면서도 충돌 가능성을 줄일 수 있습니다.

잠금은 데이터가 업데이트 되는 동안 다른 사용자 및 애플리케이션이 데이터에 액세스하지 못하도록 합니다. 일부 데이터베이스에서는 잠금이 전체 테이블에 적용되어 애플리케이션 성능에 부정적인 영향을 미칩니다. Oracle 관계형 데이터베이스 같은 다른 데이터베이스는 레코드 수준에서 잠금을 적용하여 테이블 내의 다른 레코드를 사용 가능한 상태로 유지하여 향상된 애플리케이션 성능을 보장합니다.

동시성은 여러 사용자 또는 애플리케이션이 동일한 데이터베이스에서 동시에 쿼리를 호출할 때 활동을 관리합니다. 이 기능은 데이터 제어를 위해 정의된 정책에 따라 사용자 및 애플리케이션에 대한 올바른 액세스를 제공합니다.

관계형 데이터베이스를 선택할 때 고려해야 할 사항

관계형 데이터베이스에 저장된 데이터를 저장, 관리, 쿼리 및 검색하는 데 사용되는 소프트웨어를 관계형 데이터베이스 관리 시스템(RDBMSf)이라고 합니다. RDBMS는 데이터 저장, 액세스 및 성능을 관리하기 위한 기능 뿐만 아니라, 사용자와 애플리케이션 및 데이터베이스 간에 인터페이스를 제공합니다.

데이터베이스 유형 및 관계형 데이터베이스 제품 중에서 선택을 할 때 결정에 영향을 미칠 수 있는 요소가 몇 가지 있습니다. 선택하는 RDBMS는 비즈니스 요구에 따라 다릅니다. 스스로에게 다음 질문을 해보십시오.

  • 데이터 정확성 요구사항은 무엇인가? 데이터 저장 및 정확성이 비즈니스 로직에 따라 결정되는가? 데이터에 정확성에 대한 엄격한 요구 사항(예: 재무 데이터 및 정부 보고서)이 있는가?
  • 확장성이 필요한가? 관리할 데이터의 규모는 얼마이며 어느 정도 성장이 예상되는가? 데이터베이스 모델이 확장성을 위해 미러링된 데이터베이스 복사본(개별 인스턴스)을 지원해야 하는가? 그렇다면 이러한 인스턴스에서 데이터 일관성을 유지할 수 있는가?
  • 동시성은 얼마나 중요한가? 여러 사용자와 애플리케이션에서 동시에 데이터 액세스가 필요한가? 데이터베이스 소프트웨어는 데이터를 보호하면서도 동시성을 지원하는가?
  • 성능 및 안정성 요구사항은 무엇인가? 신뢰성이 높은 고성능 제품이 필요한가? 쿼리 응답 성능에 대한 요구사항은 무엇인가? SLA(서비스 수준 계약) 또는 계획되지 않은 다운타임에 대한 벤더’의 약정은 무엇인가?

미래의 관계형 데이터베이스: 자율 운영 데이터베이스

시간이 지남에 따라 관계형 데이터베이스는 더 개선되고, 더 빨라지고, 더 강력해지고, 더 사용하기 쉬워졌습니다. 하지만 그만큼’ 더 복잡해지면서 데이터베이스 관리가 정규직 업무가 된 지 오래입니다. 개발자는 전문 지식을 활용해 비즈니스에 가치를 제공하는 혁신적인 애플리케이션 개발에 집중하는 대신, 데이터베이스 성능을 최적화하는 데 필요한 관리 활동에 대부분의 시간을 할애해야 했습니다.

오늘날 자율 운영 기술은 관계형 모델의 강점을 토대로 새로운 유형의 관계형 데이터베이스를 제공하고 있습니다. 자율 운영 데이터베이스(Autonomous Database라고도 함)는 관계형 모델의 성능과 이점은 그대로 유지하면서 인공 지능(AI), 머신 러닝 및 자동화를 사용해 쿼리 성능 및 관리 작업을 모니터링하고 개선합니다. 예를 들어 쿼리 성능을 향상시키기 위해 자율 운영 데이터베이스는 보다 신속한 쿼리 실행을 위해 인덱스를 가설화 및 테스트한 다음, 최상의 쿼리를 프로덕션 환경—에 자체적으로 적용할 수 있습니다. 자율 운영 데이터베이스는 사람의 개입 없이도 지속적으로 이러한 개선을 이룰 수 있습니다.

자율 운영 기술은 개발자를 데이터베이스 관리라는 일상적인 작업에서 해방시켜줍니다. 예를 들어 더 이상 인프라 요구사항을 미리 결정할 필요가 없습니다. 대신에 자율 운영 데이터베이스를 사용하면 데이터베이스 성장을 지원하기 위해 필요에 따라 스토리지 및 컴퓨팅 리소스를 추가할 수 있습니다. 몇 단계만 거치면 개발자는 자율 운영 관계형 데이터베이스를 손쉽게 생성하여 애플리케이션 개발 시간을 단축할 수 있습니다.