관계형 모델로 작업 할 때 사용할 수 있는 두 가지 작업 그룹이 있습니다. 그들 중 하나는 관계 대수입니다.
https://flaviocopes.com/relational-algebra/
관계형 모델로 작업 할 때 사용할 수 있는 두 가지 작업 그룹이 있습니다.
첫 번째는 관계형 대수라고 하며 절차 언어입니다.
이것은 SQL이 기반으로 하는 것이므로 SQL은 관계형 데이터베이스 작업을 위한 사실상의 표준이므로 배우는 것이 매우 중요합니다.
두 번째는 관계형 미적분학이라 불리며 절차적인 것이 아니라 선언적 언어입니다. 데이터베이스와 상호 작용하는 방식의 근본적인 차이는 데이터베이스 소프트웨어에게 해야 할 일을 알려주지 않고 원하는 것을 알려주고 수행 방법에 대한 세부 정보를 정리할 수 있기 때문입니다.
이것은 프로그래밍 언어들 사이의 공통적 인 차이점입니다. 현대 프론트 엔드에서는 React에서 DOM과의 상호 작용이 선언적이라고 말합니다. 바닐라 JavaScript를 사용하여 DOM을 수정하는 것은 절차 적입니다.
Datalog, QBE 및 QUEL과 같은 언어에는 관계형 미적분이 기본으로 사용됩니다. 나는 이것에 대해 이야기하지 않을 것입니다 .SQL이 따르는 실용적인 접근 방식과 비교할 때 훨씬 틈새 방식이라고 생각하기 때문에 원한다면 그것을 볼 수 있습니다.
이 소개가 주어지면 관계형 대수로 넘어 갑시다.
두 가지 유형의 작업이 있습니다.
관계형 대수의 주요 연산
기본 작업은 다음과 같습니다.
관계형 대수에서 조인 연산
조인은 관계형 대수로 수행 할 수 있는 가장 강력한 작업 일 것입니다. 기본 작업 위에 구축되며 다른 관계 (테이블)에 포함 된 데이터를 상관 시킬 수 있습니다.
참고 : 곧 DBMS에서 실제로 참여하는 조인에 대해 이야기하겠습니다. 이것은 대부분 이론입니다.
기본 조인 버전에는 자연 조인과 세타 조인이 있습니다. 다른 모든 버전은 2에서 추출됩니다.
자연 조인(Natural join)
자연 조인(Natural join)은 두 관계 (테이블)를 상관시키고 동일한 속성 값을 기반으로 새 테이블을 만듭니다.
먼저 동일한 속성 이름 (열)을 갖는 두 가지 관계가 필요합니다. 그런 다음 관계 A의 속성 값이 관계 B의 속성 값과 일치하지 않으면 행이 결과의 일부가 아니므로 무시됩니다.
예:
관계 A
Employee ID | Name |
---|---|
1 | Mark |
2 | Tony |
3 | Rick |
관계 B
Manager Name | Employee ID |
---|---|
Todd | 1 |
Albert | 2 |
각 직원의 보스 이름을 얻기 위해 자연스럽게 참여할 수 있습니다.
Employee ID | Name | Manager Name |
---|---|---|
1 | Mark | Todd |
2 | Tony | Albert |
관계의 직원 ID 속성 이름이 공통이므로 관계는 결과에 2 회가 아니라 한 번만 나타납니다.
관계 A에있는 직원 # 3, Rick은 관계 B에 해당하는 항목이 없기 때문에 이 표에 포함되지 않습니다.
Theta-join
세타 조인을 사용하면 자연 조인과 같은 평등뿐만 아니라 두 가지 다른 관계에서 두 열을 비교하는 기준에 따라 조인을 수행 할 수 있습니다.
두 테이블의 데카르트 곱을 수행하고 원하는 선택에 따라 결과를 필터링 합니다.
Equi-join
동일 조인은 세타 조인이며, 선택은 두 개의 서로 다른 테이블에 있는 속성 값 사이의 동등성을 기반으로 합니다.
자연스러운 조인과의 차이점은 비교할 속성 이름 (열)을 선택할 수 있다는 것입니다.
우리는 나중에 SQL이 소개 될 때 조인에 대해 훨씬 더 이야기 할 것이므로 실제로 사용할 수 있습니다.
등록된 댓글이 없습니다.