모든 DBMS는 데이터 처리를 위해 하나 이상의 데이터 언어를 제공한다.
Formal query language
👉🏻 수학기호(notation)을 사용하여 데이터 처리를 기술한 언어이다.
👉🏻 새로운 언어의 개념과 유용성을 검증하는 기준이다.
👉🏻 관계 대수(Relation algebra)Conmmercial language
👉🏻 수학적인 원리를 기반으로 사용하기 쉽게 만들어진 언어
👉🏻 관계 대수로 만들어진 모든 질의가 표현 가능(Relationally conplete)하다.
👉🏻 SQL
피연산자는 하나 또는 두 개의 릴레이션(Unary and binary operations)가 된다.
각 연산자의 연산 결과는 새로운 릴레이션이다.
연산의 합성(compose)&체이닝(chaining)이 가능하다.
👉🏻 Notation:
👉🏻
👉🏻 Unary operation: 릴레이션 하나만 가지고 동작하는 연산자이다.
👉🏻 (selection predicate): 비교연산자()와 논리연산자()를 이용하여 속성의 값을 비교하는 비교식이다.
👉🏻 튜플 중 를 만족하는 튜플만을 포함하는 릴레이션을 반환하는 연산자이다.
👉🏻 Notation:
👉🏻
👉🏻 Unary operation: 릴레이션 하나만 가지고 동작하는 연산자이다.
👉🏻 : 릴레이션의 속성
👉🏻 튜플 중 에 포함되는 속성을 가지는 릴레이션을 반환하는 연산자이다.
👉🏻 Notation:
👉🏻
👉🏻 Binary operation: 릴레이션 두 개를 가지고 동작하는 연산자이다.
👉🏻 Union이 가능한 조건: 두 릴레이션의 속성 개수가 같고, 대응되는 속성의 도메인이 같다.
👉🏻 두 릴레이션을 합쳐 새로운 릴레이션을 반환하는 연산자이다.
👉🏻 Notation:
👉🏻
👉🏻 Binary operation: 릴레이션 두 개를 가지고 동작하는 연산자이다.
👉🏻 Difference 가능한 조건: 두 릴레이션의 속성 개수가 같고, 대응되는 속성의 도메인이 같다.
👉🏻 에는 포함되지만, 에는 포함되지 않는 튜플을 가지는 릴레이션을 반환하는 연산자이다.
👉🏻 Notation:
👉🏻
👉🏻 Binary operation: 릴레이션 두 개를 가지고 동작하는 연산자이다.
👉🏻 Intersection 가능한 조건: 두 릴레이션의 속성 개수가 같고 대응되는 속성의 도메인이 같다.
👉🏻 에 포함되면서 에도 포함되는 튜플을 가지는 릴레이션을 반환하는 연산자이다.
👉🏻 Notation:
👉🏻
👉🏻 Cartesian product에 조건을 합치면 join operation이다.
👉🏻 에 만족하는 튜플과, 에 만족하는 튜플을 모두 포함하는 릴레이션을 반환하는 연산자이다.
👉🏻 Notation:
👉🏻
👉🏻
👉🏻
👉🏻 두 릴레이션을 합쳐서 같은 속성 간에 같은 값을 갖고 있는 튜플만을 포함하는 릴레이션을 반환하는 연산자이다.
👉🏻 Notation:
👉🏻
👉🏻 Natural join으로 나온 릴레이션 중 조건에 맞는 튜플만을 포함하는 릴레이션을 반환하는 연산자이다.
👉🏻 Theta join에 의해 사라진 정보를 보전하기 위한 조인 연산자의 확장 버전이다.
👉🏻 조인 결과를 구한 후 한 릴레이션에서 제외된 모든 튜플을 조인 결과 릴레이션에 추가한다.Left-outer join✔️
👉🏻 Notation:
👉🏻 왼쪽 릴레이션의 튜플을 추가한다.Right-outer join✔️
👉🏻 Notation:
👉🏻 오른쪽 릴레이션의 튜플을 추가한다.Full-outer join✔️
👉🏻 Notation:
👉🏻 모든 릴레이션의 튜플을 추가한다.