

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 4단계: 원장의 문서 수정
<a name="getting-started-step-4"></a>

**중요**  
지원 종료 알림: 기존 고객은 07/31/2025에 지원이 종료될 때까지 Amazon QLDB를 사용할 수 있습니다. 자세한 내용은 [Amazon QLDB 원장을 Amazon Aurora PostgreSQL로 마이그레이션](https://aws.amazon.com/blogs/database/migrate-an-amazon-qldb-ledger-to-amazon-aurora-postgresql/)을 참조하세요.

이제 작업할 데이터가 있으므로 Amazon QLDB에서 `vehicle-registration` 원장에 있는 문서를 변경할 수 있습니다. VIN `1N4AL11D75C109151`를 갖는 Audi A5를 예로 들어 보겠습니다. 이 차는 처음에 워싱턴 주 시애틀에 있는 라울 루이스라는 운전자가 소유하고 있습니다.

라울이 워싱턴 주 에버렛에 사는 브렌트 로건이라는 주민에게 차를 판다고 가정해 보겠습니다. 그러던 중 브렌트와 알렉시스 페나는 결혼하기로 결정합니다. 브렌트는 등기부 상에 알렉시스를 보조 소유자로 추가하고자 합니다. 이 단계에서는 다음과 같은 데이터 조작 언어(DML) 문을 통해 이러한 이벤트를 반영하기 위해 원장을 적절히 변경하는 방법을 설명합니다.

**작은 정보**  
가장 좋은 방법은 문서의 시스템 할당 `id`를 외래 키로 사용하는 것입니다. 고유 식별자(예: 차량의 VIN)로 사용되는 필드를 정의할 수 있지만 문서의 실제  고유 식별자는 `id`입니다. 이 필드는 문서의 메타데이터에 포함되며 *커밋된 뷰*(테이블의 시스텀 정의 뷰)에서 쿼리할 수 있습니다.  
QLDB 뷰에 대한 자세한 내용은 [핵심 개념](ledger-structure.md) 섹션을 참조하세요. 메타데이터에 대해 자세히 알아보려면 [문서 메타데이터 쿼리](working.metadata.md) 섹션을 참조하세요.

**문서를 수정하려면**

1. [https://console.aws.amazon.com/qldb](https://console.aws.amazon.com/qldb)에서 Amazon QLDB 콘솔을 엽니다.

1. 탐색 창에서 **PartiQL 편집기**를 선택합니다.

1. `vehicle-registration` 원장을 선택합니다.
**참고**  
콘솔의 자동 **샘플 데이터 로드** 기능을 사용하여 원장을 설정하는 경우 6단계로 넘어가세요.

1. `INSERT` 문을 수동으로 실행하여 샘플 데이터를 로드하는 경우 다음 단계를 계속하세요.

   처음에 라울을 이 차량의 소유주로 등록하려면 `Person` 테이블에서 Raul의 시스템 할당 문서 `id`를 찾는 것부터 시작합니다. 이 필드는 문서의 메타데이터에 포함되어 있으며, *커밋된 보기*라고 하는 테이블의 시스템 정의 뷰에서 쿼리할 수 있습니다.

   쿼리 편집기 창에서 다음 문을 입력한 후 **실행**을 선택합니다.

   ```
   SELECT metadata.id FROM _ql_committed_Person AS p
   WHERE p.data.FirstName = 'Raul' and p.data.LastName = 'Lewis'
   ```

   접두사 `_ql_committed_`는 `Person` 테이블의 커밋된 뷰를 쿼리하려는 것을 나타내는 예약된 접두사입니다. 이 뷰에서는 데이터가 `data` 필드에 중첩되고 메타데이터는 `metadata` 필드에 중첩됩니다.

1. 이제 이 `id`를 `UPDATE` 문에 사용하여 `VehicleRegistration` 테이블의 해당 문서를 수정하세요. 다음 문을 입력한 다음 **실행**을 선택합니다.

   ```
   UPDATE VehicleRegistration AS r
   SET r.Owners.PrimaryOwner.PersonId = '294jJ3YUoH1IEEm8GSabOs' --replace with your id
   WHERE r.VIN = '1N4AL11D75C109151'
   ```

   이 문을 실행하여 `Owners` 필드를 수정했는지 확인하세요.

   ```
   SELECT r.Owners FROM VehicleRegistration AS r
   WHERE r.VIN = '1N4AL11D75C109151'
   ```

1. 차량 소유권을 에버렛에 있는 브렌트에게 이전하려면 먼저 다음 문을 사용하여 `Person` 테이블에서 그의 `id`을 찾으세요.

   ```
   SELECT metadata.id FROM _ql_committed_Person AS p
   WHERE p.data.FirstName = 'Brent' and p.data.LastName = 'Logan'
   ```

   그런 다음, 이 `id`를 사용하여 `VehicleRegistration` 테이블의 `PrimaryOwner` 및 `City`를 업데이트하세요.

   ```
   UPDATE VehicleRegistration AS r
   SET r.Owners.PrimaryOwner.PersonId = '7NmE8YLPbXc0IqesJy1rpR', --replace with your id
       r.City = 'Everett'
   WHERE r.VIN = '1N4AL11D75C109151'
   ```

   다음 문을 실행하여 `PrimaryOwner` 및 `City` 필드를 수정했는지 확인하세요.

   ```
   SELECT r.Owners.PrimaryOwner, r.City
   FROM VehicleRegistration AS r
   WHERE r.VIN = '1N4AL11D75C109151'
   ```

1. 알렉시스를 차량의 보조 소유자로 추가하려면 그녀의 `Person id`를 찾으세요.

   ```
   SELECT metadata.id FROM _ql_committed_Person AS p
   WHERE p.data.FirstName = 'Alexis' and p.data.LastName = 'Pena'
   ```

   그런 다음, 다음 [FROM-INSERT](ql-reference.from.md) DML 문을 사용하여 이 `id`을 `SecondaryOwners` 목록에 삽입합니다.

   ```
   FROM VehicleRegistration AS r 
   WHERE r.VIN = '1N4AL11D75C109151'
   INSERT INTO r.Owners.SecondaryOwners
       VALUE { 'PersonId' : '5Ufgdlnj06gF5CWcOIu64s' } --replace with your id
   ```

   이 문을 실행하여 `SecondaryOwners`를 수정했는지 확인하세요.

   ```
   SELECT r.Owners.SecondaryOwners FROM VehicleRegistration AS r
   WHERE r.VIN = '1N4AL11D75C109151'
   ```

`vehicle-registration` 원장의 이러한 변경 사항을 검토하려면 [5단계: 문서의 개정 기록 보기](getting-started-step-5.md)을 참조하세요.