관계형 대수
관계형 데이터베이스 시스템에는 사용자가 데이터베이스 인스턴스를 쿼리하는 데 도움이되는 쿼리 언어가 장착 될 것으로 예상됩니다. 쿼리 언어에는 관계형 대수와 관계형 미적분이라는 두 가지 종류가 있습니다.
관계형 대수
관계형 대수는 관계의 인스턴스를 입력으로 사용하고 관계의 인스턴스를 출력으로 생성하는 절차 적 쿼리 언어입니다. 연산자를 사용하여 쿼리를 수행합니다. 연산자는 다음 중 하나 일 수 있습니다.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
어디 r 과 s 데이터베이스 관계 또는 관계 결과 집합 (임시 관계)입니다.
합집합 연산이 유효하려면 다음 조건이 유지되어야합니다.
- r, 및 s 동일한 수의 속성이 있어야합니다.
- 속성 도메인은 호환되어야합니다.
- 중복 된 튜플은 자동으로 제거됩니다.
∏ author (Books) ∪ ∏ author (Articles)
Output − 책이나 기사 또는 둘 다를 쓴 저자의 이름을 투영합니다.
차이 설정 (-)
차이 설정 연산의 결과는 하나의 관계에는 있지만 두 번째 관계에는없는 튜플입니다.
Notation − r − s
존재하는 모든 튜플을 찾습니다. r 하지만 안 s.
∏ author (Books) − ∏ author (Articles)
Output − 기사는 아니지만 책을 쓴 저자의 이름을 제공합니다.
데카르트 곱 (Χ)
서로 다른 두 관계의 정보를 하나로 결합합니다.
Notation − r Χ s
어디 r 과 s 관계이며 그 출력은 다음과 같이 정의됩니다.
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의 표현력은 관계 대수와 동일합니다.