db 조인 예제

특정 고객이 주문한 모든 주문을 찾으려고 한다고 가정해 보겠습니다. customer_id 키에 의해 설정된 관계를 사용하여 고객을 조인하고 테이블을 함께 주문할 수 있습니다: 이 예제에서는 order_id가 주문 테이블의 기본 키인 반면 customer_id는 고객 테이블의 기본 키와 외래 키를 모두 사용할 수 있습니다. 주문 테이블입니다. 기본 키와 외래 키는 테이블 간의 관계를 설명하고 SQL 조인을 수행하는 데 필수적입니다. 이 첫 번째 문서에서는 테이블을 조인하는 개념을 소개합니다. 구문이 아닌 조인 유형에 중점을 둡니다. 이 특정 조인은 “내부” 조인의 예입니다. 수행하려는 분석의 종류에 따라 다른 방법을 사용할 수 있습니다. 실제로 응용 프로그램에 따라 두 테이블을 함께 조인하는 방법에는 여러 가지가 있습니다.

다음 섹션에서는 내부, 왼쪽, 오른쪽 및 전체 조인을 설명하고 위에 사용된 데이터 테이블을 사용하여 예제를 제공합니다. 시작하기 전에 데이터를 처음에 결합해야 하는 이유를 살펴보겠습니다. SQLite 및 Microsoft SQL 서버 및 MySQL과 같은 다른 데이터베이스는 관계형 데이터베이스입니다. 이러한 유형의 데이터베이스를 사용하면 데이터를 함께 연결(조인 또는 결합)할 수 있는 데이터와 기능을 쉽게 만들 수 있습니다. 두 번째 테이블의 직원과 동일한 국가를 갖는 첫 번째 테이블의 직원에게 두 개의 별도 테이블과 쿼리가 있는 경우 일반 조인 작업을 사용하여 응답 테이블을 찾을 수 있습니다. 그러나 모든 직원 정보는 하나의 큰 테이블에 포함됩니다. [11] Teradata의 경우 Oracle 비트맵 조인 인덱스는 쿼리의 WHERE 절이 조인 인덱스에 포함된 열로 제한되는 열을 지정할 때만 쿼리에 응답하는 데 사용됩니다. 예를 들어, 직원의 부서를 찾을 수 있지만 부서에 할당되지 않은 직원을 계속 표시합니다(위의 내부 조인 예제와는 달리 할당되지 않은 직원이 결과에서 제외된 경우). 자연 조인은 동등한 조인의 특별한 경우입니다.

자연 조인(들)은 R과 S가 관계인 (R로 작성된)로 작성된 이진 연산자입니다. [6] 자연 조인의 결과는 공통 특성 이름에 동일한 R 및 S의 모든 tuples 조합의 집합입니다. 예를 들어 Employee 및 Dept 테이블과 해당 자연 조인을 고려합니다: 오른쪽 조인은 왼쪽 조인의 미러 버전이며 고객 정보가 추가된 모든 주문 목록을 얻을 수 있습니다. 다시 말하지만 조인 형식을 사용하기 전에 데이터를 추출하여 여러 소스에서 테이블을 쿼리할 수 있는 Amazon Redshift와 같은 RDBMS에 로드해야 합니다. 수동으로 해당 프로세스를 빌드하거나 스티치와 같은 ETL 서비스를 사용하여 해당 프로세스를 자동화할 수 있습니다. 오라클 구현은 비트맵 인덱스를 사용하는 것으로 제한됩니다. 비트맵 조인 인덱스는 낮은 카디널리티 열(예: Oracle 설명서에 따라 300개 미만의 고유 값을 포함하는 열)에 사용됩니다. Oracle이 사용하는 예는 서로 다른 공급업체가 서로 다른 부품을 제공하는 재고 시스템의 예입니다. 스키마에는 두 개의 “마스터 테이블”, 부품 및 공급자 및 “세부 정보 테이블”인 인벤토리의 세 개의 연결된 테이블이 있습니다. 마지막 테이블은 공급자를 파트에 연결하는 다대다 테이블이며 가장 많은 행을 포함합니다. 모든 부품에는 부품 유형이 있으며 모든 공급업체는 미국에 기반을 두고 있으며 상태 열이 있습니다. 미국에는 60개 이상의 주+영토가 없으며 300개 이하의 부품 유형이 있습니다.

비트맵 조인 인덱스는 위의 세 테이블에 대한 표준 3테이블 조인을 사용하고 인덱스에 대한 Part_Type 및 Supplier_State 열을 지정하여 정의됩니다. 그러나 부품_Type 및 Supplier_State 열이 공급자와 부품에서 각각 “대여”되어 있더라도 인벤토리 테이블에 정의됩니다. 이 예제에서는 멤버와 영화의 이름을 대여해야 한다고 가정해 보겠습니다. 이제 영화를 대여하지 않은 새 멤버가 있지만 외부 조인의 효과는 내부 조인과 조인 조건을 충족하지 않는 “기본” 테이블의 행 선택 사이의 UNION ALL을 사용하여 얻을 수도 있습니다.

This entry was posted in Uncategorized. Bookmark the permalink.

Comments are closed.