Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

관계 대수의 기본 연산자

<시간/>

관계 대수학 절차적 쿼리 언어이며 둘 이상의 관계에 대한 작업을 수행한 결과로 단일 테이블/관계를 제공하는 데 사용됩니다. 여기에서 몇 가지 기본적인 관계에 대해 논의할 것입니다.

학습 과정에서 세 가지 관계(표) −

를 사용합니다.

표 1:과정

과정 ID 이름
1 컴퓨터 과학
2 정보 기술
3 기계식

표 2:학생

롤 번호 이름 주소 나이
1 델리 18
2 라주 하이데라바드 20
4 파이즈 델리 22
5 살만 하이데라바드 20

표 3:호스텔

St. 아니요. 이름 주소 나이
1 델리 18
2 아카시 하이데라바드 20
3 네하 잔시 21

이 관계에 대해 수행한 작업을 기반으로 새로운 관계에 대한 몇 가지 작업을 수행합니다.

  • 선택 연산(σ) - 시그마 σ로 표시되는 선택 연산자는 어떤 조건에 따라 관계의 튜플을 선택하는 데 사용됩니다. 특정 조건에 해당하는 튜플만 선택됩니다.

구문

σ(condition)(relation_name)

예시

Select the student with course id 1.
σ(course_id = 1)(student)

결과

롤 번호 이름 주소 나이
4 파이즈 델리 22
  • 투영 연산(∏) ∏로 표시된 투영 연산자는 특정 반응에서 열을 선택하는 데 사용됩니다. 특정 열만 선택됩니다.

구문

∏(column1 , column2 , … , columnn)(relation_name)

예시

Let’s select all students's name and no who are in hostel.
∏( st. No. , name)(hostel)

결과

St. 아니요. 이름
1
2 아카시
3 네하

행은 투영에서 항상 구별됩니다. 즉, 이름이 panjak인 다른 학생이면 다른 학생이 제거됩니다.

  • 교차 곱(X) - 외적은 X 기호를 사용하여 표시하며 두 변수의 결합 값을 찾는 데 사용됩니다. 외적에서 릴레이션1의 각 튜플은 릴레이션2의 각 튜플과 교차됩니다. 이것은 nXm 차수의 출력 관계를 만듭니다. 여기서 n은 릴레이션1의 튜플 수이고 m은 릴레이션2의 튜플 수입니다.

구문

relation1 X relation2

예시

물론 외적과 호스텔 테이블을 찾아보자.

student X course


St. 아니요. 이름 주소 나이 과정 ID 이름
1 델리 18 1 컴퓨터 과학
1 델리 18 2 정보 기술
1 델리 18 3 기계식
2 아카시 하이데라바드 20 1 컴퓨터 과학
2 아카시 하이데라바드 20 2 정보 기술
2 아카시 하이데라바드 20 3 기계식
3 네하 잔시 21 1 컴퓨터 과학
3 네하 잔시 21 2 정보 기술
3 네하 잔시 21 3 기계식
  • 연합(U) - 두 개의 릴레이션(relation1)과 릴레이션2(relation2)의 합집합은 릴레이션1 또는 릴레이션2에 있는 튜플을 제공하지만, 릴레이션1과 릴레이션2 모두에 있는 튜플은 한 번만 고려됩니다.

    또한 두 관계는 결합을 찾기 위해 동일한 도메인에 있어야 합니다.

구문

relation1 U relation2

예시

학생과 호스텔의 결합을 찾자

student U hostel


롤 번호 이름 주소 나이
1 델리 18
2 라주 하이데라바드 20
4 파이즈 델리 22
5 살만 하이데라바드 20
2 아카시 하이데라바드 20
3 네하 잔시 21
  • 빼기(-) 연산자 - 연산자는 - 기호로 표시됩니다. Relation1 - 릴레이션2는 릴레이션2가 아닌 릴레이션1의 튜플이 존재하는 릴레이션이 됩니다. 빼기도 계산하려면 관계가 합집합과 호환되어야 합니다.

구문

relation1 - relation2

예시

작전학생을 찾자 - 호스텔

student - hostel


롤 번호 이름 주소 나이
2 라주 하이데라바드 20
4 파이즈 델리 22
5 살만 하이데라바드 20
  • 이름 바꾸기(ρ) - ρ로 표시된 이름 바꾸기 작업은 주어진 관계의 이름을 주어진 다른 이름으로 바꾸는 데 사용됩니다.

구문

ρ(new_name , old_name)