관계형 대수

관계형 데이터베이스 시스템에는 사용자가 데이터베이스 인스턴스를 쿼리하는 데 도움이되는 쿼리 언어가 장착 될 것으로 예상됩니다. 쿼리 언어에는 관계형 대수와 관계형 미적분이라는 두 가지 종류가 있습니다.

관계형 대수

관계형 대수는 관계의 인스턴스를 입력으로 사용하고 관계의 인스턴스를 출력으로 생성하는 절차 적 쿼리 언어입니다. 연산자를 사용하여 쿼리를 수행합니다. 연산자는 다음 중 하나 일 수 있습니다.unary 또는 binary. 그들은 관계를 입력으로 받아들이고 관계를 출력으로 산출합니다. 관계형 대수는 관계에 대해 재귀 적으로 수행되며 중간 결과도 관계로 간주됩니다.

관계형 대수의 기본 연산은 다음과 같습니다.

  • Select
  • Project
  • Union
  • 다르게 설정
  • 데카르트 곱
  • Rename

다음 섹션에서 이러한 모든 작업에 대해 설명합니다.

작업 선택 (σ)

관계에서 주어진 조건자를 만족하는 튜플을 선택합니다.

Notation− σ p (r)

어디 σ 선택 술어를 의미하고 r관계를 의미합니다. p 는 다음과 같은 커넥터를 사용할 수있는 전치사 논리 공식입니다.and, or,not. 이러한 용어는 − =, ≠, ≥, <,>, ≤와 같은 관계 연산자를 사용할 수 있습니다.

For example

σsubject = "database"(Books)

Output − 제목이 '데이터베이스'인 책에서 튜플을 선택합니다.

σsubject = "database" and price = "450"(Books)

Output − 제목이 '데이터베이스'이고 '가격'이 450 인 책에서 튜플을 선택합니다.

σsubject = "database" and price = "450" or year > "2010"(Books)

Output − 제목이 '데이터베이스'이고 '가격'이 450 인 책 또는 2010 년 이후에 출판 된 책에서 튜플을 선택합니다.

프로젝트 운영 (∏)

주어진 술어를 만족하는 열을 투영합니다.

표기법 − ∏ A 1 , A 2 , A n (r)

여기서 A 1 , A 2 , A n 은 관계의 속성 이름입니다.r.

관계가 집합이므로 중복 행은 자동으로 제거됩니다.

For example

subject, author (Books)

관련 도서에서 주제 및 저자로 명명 된 열을 선택하고 프로젝트합니다.

조합 운영 (∪)

주어진 두 관계 간의 이진 결합을 수행하고 다음과 같이 정의됩니다.

r ∪ s = { t | t ∈ r or t ∈ s}

Notation − r U s

어디 rs 데이터베이스 관계 또는 관계 결과 집합 (임시 관계)입니다.

합집합 연산이 유효하려면 다음 조건이 유지되어야합니다.

  • r, 및 s 동일한 수의 속성이 있어야합니다.
  • 속성 도메인은 호환되어야합니다.
  • 중복 된 튜플은 자동으로 제거됩니다.
author (Books) ∪ ∏ author (Articles)

Output − 책이나 기사 또는 둘 다를 쓴 저자의 이름을 투영합니다.

차이 설정 (-)

차이 설정 연산의 결과는 하나의 관계에는 있지만 두 번째 관계에는없는 튜플입니다.

Notationrs

존재하는 모든 튜플을 찾습니다. r 하지만 안 s.

author (Books) − ∏ author (Articles)

Output − 기사는 아니지만 책을 쓴 저자의 이름을 제공합니다.

데카르트 곱 (Χ)

서로 다른 두 관계의 정보를 하나로 결합합니다.

Notation − r Χ s

어디 rs 관계이며 그 출력은 다음과 같이 정의됩니다.

r Χ s = {qt | q ∈ r 및 t ∈ s}

σauthor = 'tutorialspoint'(Books Χ Articles)

Output − tutorialspoint에서 작성한 모든 책과 기사를 보여주는 관계를 생성합니다.

작업 이름 바꾸기 (ρ)

관계형 대수의 결과도 관계이지만 이름이 없습니다. 이름 바꾸기 작업을 통해 출력 관계의 이름을 바꿀 수 있습니다. '이름 바꾸기'작업은 소문자 그리스 문자로 표시됩니다.rho ρ .

Notationρ x (E)

표현의 결과 E 이름으로 저장됩니다. x.

추가 작업은-

  • 교차로 설정
  • Assignment
  • 자연스러운 결합

관계형 미적분

Relational Algebra와 달리 Relational Calculus는 비절 차적 쿼리 언어입니다. 즉, 무엇을해야하는지 알려주지 만 어떻게하는지 설명하지 않습니다.

관계형 미적분은 두 가지 형태로 존재합니다-

튜플 관계형 미적분 (TRC)

튜플에 대한 변수 범위 필터링

Notation− {T | 질환}

조건을 만족하는 모든 튜플 T를 반환합니다.

For example

{ T.name |  Author(T) AND T.article = 'database' }

Output − '데이터베이스'에 기사를 작성한 저자의 '이름'이있는 튜플을 반환합니다.

TRC는 정량화 할 수 있습니다. Existential (∃) 및 Universal Quantifiers (∀)를 사용할 수 있습니다.

For example

{ R| ∃T   ∈ Authors(T.article='database' AND R.name=T.name)}

Output − 위 쿼리는 이전 쿼리와 동일한 결과를 생성합니다.

DRC (Domain Relational Calculus)

DRC에서 필터링 변수는 전체 튜플 값 대신 속성 도메인을 사용합니다 (위에서 언급 한 TRC에서 수행됨).

Notation

{a 1 , a 2 , a 3 , ..., a n | P (a 1 , a 2 , a 3 , ..., a n )}

여기서 a1, a2는 속성이고 P 내부 속성으로 작성된 공식을 나타냅니다.

For example

{< article, page, subject > | 
      
        ∈ TutorialsPoint ∧ subject = 'database'} 
      

Output − TutorialsPoint 관계에서 기사, 페이지 및 주제를 산출합니다. 여기서 주제는 데이터베이스입니다.

TRC와 마찬가지로 DRC는 실존 적 및 범용 수량자를 사용하여 작성할 수도 있습니다. DRC에는 관계 연산자도 포함됩니다.

Tuple Relation Calculus와 Domain Relation Calculus의 표현력은 관계 대수와 동일합니다.