정보실

웹학교

정보실

sql 관계형 대수

본문

관계형 모델로 작업 할 때 사용할 수 있는 두 가지 작업 그룹이 있습니다. 그들 중 하나는 관계 대수입니다.


https://flaviocopes.com/relational-algebra/ 


관계형 모델로 작업 할 때 사용할 수 있는 두 가지 작업 그룹이 있습니다.


첫 번째는 관계형 대수라고 하며 절차 언어입니다.


이것은 SQL이 기반으로 하는 것이므로 SQL은 관계형 데이터베이스 작업을 위한 사실상의 표준이므로 배우는 것이 매우 중요합니다.


두 번째는 관계형 미적분학이라 불리며 절차적인 것이 아니라 선언적 언어입니다. 데이터베이스와 상호 작용하는 방식의 근본적인 차이는 데이터베이스 소프트웨어에게 해야 할 일을 알려주지 않고 원하는 것을 알려주고 수행 방법에 대한 세부 정보를 정리할 수 있기 때문입니다.


이것은 프로그래밍 언어들 사이의 공통적 인 차이점입니다. 현대 프론트 엔드에서는 React에서 DOM과의 상호 작용이 선언적이라고 말합니다. 바닐라 JavaScript를 사용하여 DOM을 수정하는 것은 절차 적입니다.


Datalog, QBE 및 QUEL과 같은 언어에는 관계형 미적분이 기본으로 사용됩니다. 나는 이것에 대해 이야기하지 않을 것입니다 .SQL이 따르는 실용적인 접근 방식과 비교할 때 훨씬 틈새 방식이라고 생각하기 때문에 원한다면 그것을 볼 수 있습니다.


이 소개가 주어지면 관계형 대수로 넘어 갑시다.


두 가지 유형의 작업이 있습니다.

  • 주요 작업
  • 조인 작업

관계형 대수의 주요 연산 


기본 작업은 다음과 같습니다.

  • union 두 테이블에 동일한 열과 속성 유형 (도메인)이 있는 한 두 테이블에서 데이터를 가져 와서 튜플의 합계를 생성합니다.
  • difference 두 테이블에 동일한 열과 속성 유형 (도메인)이 있는 한 첫 번째 테이블에는 포함되고 두 번째 테이블에는 포함되지 않은 데이터를 가져 오기 위해 튜플의 차이를 생성합니다.
  • cartesian product 두 테이블에서 데이터를 가져 와서 속성 값을 기반으로 데이터를 결합하는 하나의 단일 테이블을 생성합니다.
  • select 특정 기준에 따라 테이블에 포함 된 일부 튜플 (행) 만 추출합니다.
  • project 기존 테이블의 하나 이상의 속성 (열) 만 포함하는 새 테이블을 생성
  • rename 여러 테이블이 다른 데이터에 대해 동일한 이름을 가질 때 충돌을 방지하기 위해 속성의 이름을 바꾸는 데 사용

관계형 대수에서 조인 연산 


조인은 관계형 대수로 수행 할 수 있는 가장 강력한 작업 일 것입니다. 기본 작업 위에 구축되며 다른 관계 (테이블)에 포함 된 데이터를 상관 시킬 수 있습니다.


참고 : 곧 DBMS에서 실제로 참여하는 조인에 대해 이야기하겠습니다. 이것은 대부분 이론입니다.


기본 조인 버전에는 자연 조인과 세타 조인이 있습니다. 다른 모든 버전은 2에서 추출됩니다.


자연 조인(Natural join) 


자연 조인(Natural join)은 두 관계 (테이블)를 상관시키고 동일한 속성 값을 기반으로 새 테이블을 만듭니다.


먼저 동일한 속성 이름 (열)을 갖는 두 가지 관계가 필요합니다. 그런 다음 관계 A의 속성 값이 관계 B의 속성 값과 일치하지 않으면 행이 결과의 일부가 아니므로 무시됩니다.


예:


관계 A


Employee IDName
1Mark
2Tony
3Rick

관계 B


Manager NameEmployee ID
Todd1
Albert2

각 직원의 보스 이름을 얻기 위해 자연스럽게 참여할 수 있습니다.


Employee IDNameManager Name
1MarkTodd
2TonyAlbert

관계의 직원 ID 속성 이름이 공통이므로 관계는 결과에 2 회가 아니라 한 번만 나타납니다.


관계 A에있는 직원 # 3, Rick은 관계 B에 해당하는 항목이 없기 때문에 이 표에 포함되지 않습니다.


Theta-join 


세타 조인을 사용하면 자연 조인과 같은 평등뿐만 아니라 두 가지 다른 관계에서 두 열을 비교하는 기준에 따라 조인을 수행 할 수 있습니다.


두 테이블의 데카르트 곱을 수행하고 원하는 선택에 따라 결과를 필터링 합니다.


Equi-join 


동일 조인은 세타 조인이며, 선택은 두 개의 서로 다른 테이블에 있는 속성 값 사이의 동등성을 기반으로 합니다.


자연스러운 조인과의 차이점은 비교할 속성 이름 (열)을 선택할 수 있다는 것입니다.


우리는 나중에 SQL이 소개 될 때 조인에 대해 훨씬 더 이야기 할 것이므로 실제로 사용할 수 있습니다.




  • 트위터로 보내기
  • 페이스북으로 보내기
  • 구글플러스로 보내기
  • 카카오톡으로 보내기

페이지 정보

조회 23회 ]  작성일19-12-25 10:17

웹학교