섀도 테이블

Shadow table
섀도 테이블은 원래 테이블과 구조가 같지만 데이터가 다릅니다.빨간색 화살표는 섀도 테이블로의 데이터 이동을 나타내고 녹색은 그 반대입니다.

섀도 테이블컴퓨터 과학에서 기계, 네트워크 및 프로그램의 [1]정보 처리 방식을 개선하기 위해 사용되는 객체입니다.구체적으로는 섀도 테이블은 프로세서가 읽고 쓰는 오브젝트로 프라이머리 테이블과 유사한 (같은 포맷으로) 데이터를 포함하고 있습니다.이것은, 「섀도」테이블입니다.일반적으로 섀도 테이블에는 프라이머리 테이블의 조작과 유지보수에 관련된 데이터가 포함되지만 프라이머리 테이블의 [2]존재에 필요한 데이터의 서브셋 내에는 포함되지 않습니다.섀도 테이블은 데이터 스토리지 시스템의 데이터 유형 "트레일"과 관련이 있습니다.추적은 섀도 테이블과 매우 유사하지만 동일한 형식의 정보(섀도 테이블 [3]등)를 저장하는 대신 테이블에서 작동한 수정 및 기능의 이력을 저장합니다.

역사

섀도 테이블은 추상적인 개념으로 현대 컴퓨팅의 시작부터 사용되어 왔습니다.그러나 1970년대 [4]RDBMS(Relational Database Management Systems)가 널리 사용되면서 "섀도 테이블"이라는 특정 문구가 널리 사용되기 시작했다.

상업적인 목적으로 관계형 DBM을 처음 사용함에 따라 "섀도 테이블"이라는 용어가 널리 보급되었습니다.관계형 DBM은 관련 데이터 필드(컬럼)를 사용하여 테이블 [5]간의 정보를 상호 연관시킵니다.예를 들어 transaction_user와 transaction_amount라는2개의 테이블은 둘 다 "key" 열을 포함하고 테이블 간의 키가 일치하므로 키가 알려진 경우 사용자와 특정 트랜잭션의 양을 쉽게 찾을 수 있습니다.이 관계형 기술을 통해 사람들은 프라이머리 테이블에 저장된 정보와 그 그림자를 상호 연관시킬 수 있었습니다.

적용들

섀도 테이블은 매우 추상적인 개념이기 때문에, 그 응용 분야는 컴퓨터 과학의 영역에 머무릅니다.이러한 용도를 "섀도 테이블"로 구체적으로 선언할 수는 없지만 개념은 동일합니다.섀도 테이블은 일반적으로 기존 컴퓨터/네트워크 시스템의 성능, 용량 및 기능을 개선하기 위해 사용됩니다.대부분의 응용 프로그램에서 섀도 테이블은 기본 테이블 구조의 카본 복사본이지만 고유한 데이터가 있습니다.

이론적 응용

섀도 테이블은 컴퓨터 과학에서 특정 유형의 객체이기 때문에 응용 프로그램은 매우 다양합니다.왜냐하면 섀도 테이블에 저장되는 데이터와 해당 데이터가 어떻게 사용되는지에 따라 적용되기 때문입니다.다음은 모든 실제 응용 프로그램에 걸쳐 있는 섀도 테이블의 일반 추상 응용 프로그램 목록입니다.

  • 저장소 - 일반적으로 삭제 또는 수정되는 섀도 테이블의 데이터 항목 저장소입니다.
  • 캡슐화 - 일련의 데이터를 다른 테이블에서 분리하기 위한 섀도 테이블 내의 데이터 배치.
  • 모듈성 - 섀도 테이블 내에 데이터를 배치하여 데이터를 쉽게 수정하고 처리할 수 있도록 합니다.

엔지니어링 어플리케이션

오늘날의 컴퓨터/네트워크 시스템에서 현재 문제를 해결하기 위해 섀도 테이블을 사용할 경우, 일반적으로 앞서 언급한 이론/추상 애플리케이션 중 하나 이상의 조합이 사용됩니다.다음 목록은 섀도 테이블의 모든 실제 응용 프로그램의 극히 작은 부분 집합이며, 섀도 테이블의 일반적인 응용 프로그램의 예만 보여 줍니다.

데이터베이스 관리 시스템

데이터베이스 관리 시스템(DBMS)은 데이터 테이블의 유지보수, 보안 및 조작을 처리하는 소프트웨어입니다.DBMS'의 잘 알려져 널리 사용되는 예로는 SQL Server, MySQL, Oracle 및 Postgre가 있습니다.SQL. 이러한 각 DBMS는 데이터 테이블을 보관하고 쿼리 언어라고 하는 특정 유형의 프로그래밍 언어를 통해 읽고 쓸 수 있는 가상 "환경"을 만듭니다.쿼리 언어는 많은 양의 특정 데이터를 단순하게 수정하거나 검색하는 것을 전문으로 합니다.대부분의 최신 DBMS는 SQL(특정 유형의 쿼리 언어)을 지원합니다.SQL을 사용하면 기존 테이블과 동일한 구조를 가진 테이블을 쉽게 만들 수 있습니다.SQL은 이러한 새 테이블에 데이터를 기록하여 섀도 테이블을 생성할 수도 있습니다.섀도 테이블은 DBM에 의해 수행되는 중복 작업을 방지하여 효율성을 높이기 위해 DBM과 함께 자주 사용됩니다.또한 섀도 테이블은 원래 데이터에 영향을 주지 않기 때문에 대부분의 최신 DBMS에서 구현하기 쉽습니다.따라서 [6]섀도 테이블에 액세스하는 데이터베이스와 애플리케이션이 함께 작동하는 방식은 원하는 경우를 제외하고는 영향을 받지 않습니다.

예를 들어 거의 변경되지 않는 대용량 데이터 테이블을 지원하는 효율적인 백업 시스템에서 섀도 테이블을 사용할 수 있습니다.

  1. 섀도 테이블이 없으면 매일 해당 테이블의 버전을 저장하는 프로그램을 만들 수 있습니다.
50일 후 이 백업 시스템을 사용하면 동일한 테이블의 복사본이 50개 남습니다.
  1. 섀도 테이블을 사용하면 해당 테이블의 빈 "섀도 테이블"을 만들고 해당 행이 프라이머리 테이블에서 삭제될 때마다 해당 행의 복사본을 섀도 테이블에 삽입하는 프로그램을 사용할 수 있습니다.
최악의 경우 섀도테이블 시스템을 사용하면 프라이머리 테이블의 각 행이 [5][7]삭제되었다고 가정하면 프라이머리 테이블의 복사본이1개 남습니다

인터페이스

인터페이스란, 「레이어」를 사용해 테크놀로지간, 사람과 테크놀로지간의 통신을 심플화하는 프로세스입니다.레이어드 인터페이스의 한 예는 가정용 컴퓨터 운영 체제에서 사용되는 버튼과 메뉴입니다.이러한 그래픽 개체는 운영 체제의 기본 "버튼"에 대한 링크로 존재합니다.명령 콘솔은 운영 체제의 기본 기능에 더 가까운 링크를 제공하기 때문에 이러한 그래픽 개체보다 한 단계 아래에 있습니다.

섀도 테이블은 보통 최종 사용자와 데이터베이스 사이의 레이어로 사용됩니다.예를 들어 사용자가 자신의 은행 계좌에 로그인하여 과거 모든 거래 내역을 요청하면 데이터베이스는 일반적으로 모든 사용자의 모든 거래를 하나의 거대한 테이블에 저장하고 각 거래의 당사자를 해당 테이블의 특정 열에 구분합니다.이 시점에서 서버에는 다음 두 가지 옵션이 있습니다.

  1. 데이터베이스는 전체 트랜잭션 테이블을 전송할 수 있습니다.
  2. 데이터베이스는 트랜잭션 기록을 요청한 사용자와 관련된 트랜잭션만 포함하는 섀도 테이블을 전송할 수 있습니다.

두 번째 옵션은 대역폭과 처리 능력을 사용자 측에서 절약하기 때문에 일반적으로 더 적합합니다.또한 다른 사람의 트랜잭션 데이터를 안전하게 보호합니다.

운영 체제 가상화

운영체제 가상화는 다른 컴퓨터 내에서 컴퓨터 동작을 시뮬레이션하는 프로세스입니다.이 기술은 PC에서 여러 종류의 운영 체제를 동시에 실행하려는 사용자에게 유용합니다.섀도 페이지 테이블은 종종 단일 메모리 및 프로세서 세트에서 여러 운영 체제를 시뮬레이션할 때 사용됩니다.페이지 테이블은 운영체제가 가상 메모리, 프로그램에 의해 사용되는 실제 메모리 및 운영체제가 정보를 저장하기 위해 사용하는 실제 메모리, 즉 RAM([8]랜덤 액세스 메모리) 상의 바이트 단위로 저장된 하드웨어 고유 메모리를 물리적 메모리 상의 위치에 매핑하기 위해 사용합니다.섀도 페이지 테이블은 시스템의 메인 페이지 테이블 내에 있는 의사 페이지 테이블로, 시스템이 여러 종류의 운영 체제를 [9]동시에 실행할 수 있도록 합니다.

레퍼런스

  1. ^ "Shadow Databases". Supporting Advancements. Retrieved 26 October 2011.
  2. ^ Ambler, Scott. "Shadow Information and Scaffolding". Mapping Objects to Relational Databases: O/R Mapping In Detail. Agile Data. Retrieved 28 October 2011.
  3. ^ Wehlou, Martin. "Shadows and Trails". Wehlou. Retrieved 26 October 2011.
  4. ^ Brown, Pete. "Mountain Man". A Brief History of Modern RDBMS IT Management. Retrieved 30 October 2011.
  5. ^ a b Codd, Edgar (June 1970). "A Relational Model of Data for Large Shared Data Banks" (PDF). Communications of the ACM. 13 (6): 377–387. doi:10.1145/362384.362685. Retrieved 28 October 2011.
  6. ^ Speaker, Devin Spackman, Mark (2005). Enterprise integration solutions. Redmond, Wash.: Microsoft Press. p. 45. ISBN 978-0-7356-2060-5.
  7. ^ 켄트, 잭, 헥터 가르시아 몰리나예요1988년, 13페이지
  8. ^ Denning, P.J. "Page Tables". Retrieved 30 October 2011.
  9. ^ "Virtualization: Architectural Considerations And Other Evaluation Criteria" (PDF). Retrieved 30 October 2011.

외부 링크