세타조인 | r ⨝ A θ D s = r ⨝ θ s // A는 r 릴레이션의 컬럼, D는 s 릴레이션의 컬럼 |
자연조인 | r ⨝ s = π r . A, B, C, D (r ⨝ A = D s) - 컬럼명 같은 컬럼 간의 equi-join - 중복 제거함. (같은 컬럼이니까 하나를 결과에서 버린다 // ABCAD -> ABCD) - 세타 자리에 조건이 붙지 않고, 암시적으로 있다 - instructor ⨝ teaches (여긴 중복 컬럼이 제거됨) = instructor ⨝ instructor.id = teaches.id teaches (여긴 중복 컬럼에 이름이 붙음) = σ instructor.id = teaches.id ( instructor x teaches ) (여긴 중복 컬럼에 이름이 붙음) |
디비전 연산자 ÷ |
한 테이블에서 다른 테이블의 모든 값을 가지고 있는 행들 찾는 연산자 (행의 나머지컬럼 /중복제거) all, 전부 다, 모든 ~에 대해 ~ 하는 형태의 질의에 사용됨 나누는 테이블의 열의 개수만큼 결과 테이블의 열의 개수가 줄어든다 수강 1, 과목리스트 1, 과목리스트 2가 있을 때, 과목리스트 1의 컬럼이 수강 1에 포함되어있어야 하고, 결과 relation은 포함된 컬럼을 배제한 나머지 컬럼이 답으로 나온다. Q) 과목리스트의 과목번호컬럼 값들과 다 짝짓고 있는 수강 1의 학번을 구할 때 => 수강1 ÷ 과목1 제수(나누는 쪽)의 컬럼이 2개 이상일 수 있음… R(A, B) 이고 S(B)라면 r ÷ s = R(A, B) ÷ S(B) = R[A] – ( ( R[A] x S ) – R )[A] = π R-S ( r ) – π R-S ( ( π R-S ( r ) x s ) – π R-S, S ( r ) ) = π A ( r ) – π A ( ( π A ( r ) x s ) – r ) = R에만 있는 컬럼의 중복없는 값들 – ( (R만컬럼의 중복없는 값들 x S의 튜플들) – 실제 R 튜플값들)의 R만컬럼의 중복없는 값들 (=짝짓기 미완이라 남은 것들) πR-S(r) = R에만 있고 S에 없는 컬럼(A컬럼)에 등장하는 모든 중복없는 값들 = πA(r) s = S의 컬럼에 해당하는 값들. 튜플들 πR-S, S(r) = πR(r) = r (1) R에만 있는 컬럼에 등장하는 모든 중복없는 값들을 S의 튜플들과 하나씩 짝짓기 (2) 거기서 R의 실제 튜플들을 뺌 --> 만약 실제 튜플들에서 짝짓기가 미완이었으면 이 결과에 남음 (3) 이 결과(짝짓기 미완인 것들)에서 R에만 있는 컬럼만 추출함 (4) 실제 R에만 있는 컬럼들의 값에서 위의, 짝짓기 미완인 것들 중 R에만 있는 컬럼들 값을 빼면 --> R에만 있는 컬럼들 중 짝짓기 완료된 것들의 값만 나온다 |
'데이터베이스설계' 카테고리의 다른 글
[데이터베이스설계] 3-1 기본 쿼리 구조, select절 (1) | 2024.11.20 |
---|---|
[데이터베이스설계] 2-10 활용 문제들 (0) | 2024.11.19 |
[데이터베이스설계] 2-8 rename, 동일한 쿼리들 (0) | 2024.11.17 |
[데이터베이스설계] 2-7 차집합, 할당문 (2) | 2024.11.16 |
[데이터베이스설계] 2-6 합집합, 교집합 (2) | 2024.11.15 |