1 / 15

Chapter 6 관계형 대수

Chapter 6 관계형 대수. Written by Baek Jong-ho. Agenda. 6.6 대수는 무엇을 위한 것인가 ? 6.7 추가적인 연산들 6.8 그룹화 6.9 관계형 비교. 6.6 대수는 무엇을 위한 것인가 ?. Codd 의 연산 : Restrict, Project, Product, Union, Intersect, Difference, Join, Divide 대수는 최적화의 편리한 도구이다 .

amiel
Télécharger la présentation

Chapter 6 관계형 대수

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Chapter 6 관계형 대수 Written by Baek Jong-ho

  2. Agenda • 6.6 대수는 무엇을 위한 것인가? • 6.7 추가적인 연산들 • 6.8 그룹화 • 6.9 관계형 비교

  3. 6.6 대수는 무엇을 위한 것인가? • Codd의 연산 : Restrict, Project, Product, Union, Intersect, Difference, Join, Divide • 대수는 최적화의 편리한 도구이다. • 대수(연산식)를 이용하여 릴레이션 간의 특정한 결과 값을 얻을 수 있는 편의를 사용자에게 제공한다.

  4. 6.7 추가적인 연산들 • SEMIJOIN • SEMIMINUS • EXTEND • SUMMARIZE • TCLOSE

  5. SEMIJOIN • <semijoin> ::= <relational expression> SEMIJOIN <relational expression> • A, B 두개의 릴레이션을 조인한 결과에서 A의 속성에 대해 프로젝트 연산을 수행한 결과를 나타낸다. (A JOIN B) {X,Y} A B X Y Y Z X Y Z X Y A 속성들에 대해 PROJECT = = JOIN a1 b2 c1 a2 b2 c1 a2 b2 b1 a2 b3 c2 b2

  6. SEMIMINUS • <semiminus> := <relational expression> SEMIMINUS <relational expression> • A, B 두개의 릴레이션을 semijoin한 결과에서 “A minus 결과” 연산을 수행한 최종결과를 나타낸다. A MINUS (A SEMIJOIN B) A B A SEMIJOIN 결과 X Y Y Z X Y X Y X Y = = - SEMIJOIN a1 b2 c1 a1 a2 b2 a1 b1 b1 b1 a2 b3 c2 a2 b2 b2

  7. EXTEND • <extend> := EXTEND <relation expression> ADD <extend add commalist> <extend add> ::= <expression> AS <attribute name> • EXTEND는 주어진 릴레이션을 취하여 지정된 계산식을 수행한 후 그 결과값으로 가지는 속성을 추가하여 비슷한 릴레이션을 만들어낸다. ex) EXTEND (A SEMIJOIN B) ADD (Y * 10) AS Z A B SEMIJOIN 결과 X Y Y Z X Y X Z = = ADD (Y * 10) SEMIJOIN a1 2 c1 a2 2 a2 20 1 a2 3 c2 2

  8. SUMMARIZE • <summarize> ::= SUMMARIZE <relational expression> PER <relational expression> ADD <summarize add commalist> <summarize add> ::= <summary type [(<scalar expression>)] AS <attribute name> <summary type> ::= COUNT | SUM | AVG| MAX | MIN | ALL | ANY | COUNTD | SUMD | AVGD

  9. SUMMARIZE • SUMMARIZE 연산은 “수직적”이나 “열-방향”의 계산을 수행한다. ex) SUMMARIZE (A SEMIJOIN B) PER A{X} ADD COUNT AS TOTX A B SEMIJOIN 결과 X Y Y Z X Y X TOTX = = SEMIJOIN PER A{X} ADD COUNT a1 2 c1 a2 2 a2 1 1 a2 3 c2 2

  10. TCLOSE • <tclose> ::= TCLOSE <relation expression> • “Tclose”은 이행적 닫힘을 나타낸다. A를 둘다 같은 타입 T인 속성 X,Y를 가진 이항 릴레이션이라고 할 때, A의 이행적 닫힘은 A의 것과 같은 머리부와 다음과 같이 정의된 A의 수퍼집합을 본체로 가지는 릴레이션 A+이다. 튜플 : {X:x, Y:y} A에서 나타나거나 Z1, Z2, …, Zn의 열이 존재한다면 A+에서 나타난다. 그 튜플들은 {X:x, Y:z1},{X:z1, Y:z2},…,{X:zn, Y:y} 모두 A에서 나타난다. 다시 말해서, “(x,y)”튜플은 릴레이션 A에서 노드 x에서 노드 y로 가는 그래프 상의 패스가 있다면 나타난다. A+의 본체는 필수적으로 부분집합으로 릴레이션 A의 본체를 포함한다.

  11. 6.8 그룹화 • 속성들의 값이 릴레이션인 릴레이션은 결과적으로 그룹, 비그룹으로 불리는 추가적인 관계형 연산자들이 필요하다. X Y Z X YZ Group Y Z Ungroup Y Z

  12. SP SP GROUP (P#, QTY) AS PQ

  13. * 릴레이션 r을 그룹한다면, 다시 r로 되돌릴 반대의 비그룹은 항상 존재한다. 그러나 어떤 방법으로 어떤 릴레이션 r을 비그룹한다면, r로 되돌릴 반대의 그룹은 있을 수도 있고 없을 수도 있다. THREE ONE TWO Group Ungroup

  14. 6.9 관계형 비교 • 정의되어진 관계형 대수는 두 릴레이션을 비교하는 어떠한 직접적인 방법도 포함하지 않는다. • 관계형 비교의 정의 <relation expression> Θ <relation expression> • 비교 연산자 = (동등) ≠ (동등하지 않음) ≤ (부분집합) < (진부분 집합) ≥ (수퍼집합) > (proper 수퍼집합)

  15. S WHERE ((SP RENAME S# AS X) WHERE X = S#) {P#} = P{P#} : 모든 부품을 공급자의 공급자 튜플을 포함하는 릴레이션을 생성한다. • IS_EMPTY(<relational expression>) : <relational expression>에 의해 나타나는 릴레이션이 비어있다면 true를 그렇지 않다면 false를 리턴한다. • RELATION {t} ≤ r (t IN r : 집합 멤버쉽 연산자) : 주어진 튜플 t가 튜플 r내에 나타나는지 아닌지를 테스트한다.

More Related