데이터베이스데이터베이스 (Database)(Database)
관계관계 대수와대수와 관계관계 해석해석관계관계 대수와대수와 관계관계 해석해석(Part 1)(Part 1)(Part 1)(Part 1)
문양세문양세강원대학교강원대학교 ITIT특성화대학특성화대학 컴퓨터과학전공컴퓨터과학전공
관계관계 대수대수 및및 관계관계 해석해석 강의강의 요약요약관계 대수와 관계 해석
단항 관계 연산: 실렉트와 프로젝트
집합 이론과 관계 대수 연산
이항 관계 연산: 조인과 디비전 연산
추가적인 관계 연산
관계 대수 질의의 예관계 대수 질의의 예
투플 관계 해석
도메인 관계 해석
Database by Yang-Sae MoonPage 2
관계관계 대수대수 (Relational Algebra)(Relational Algebra)관계 대수와 관계 해석
데이터 모델의 구성요소
데이터베이스 구조와 제약조건의 정의• 데이터베이스 구조와 제약조건의 정의
• 데이터를 다루기 위한 연산들의 집합
관계 대수란?관계 대수란?
• 릴레이션들을 다루는 연산들
검색 구 질의 를 기술하는 데에 사용함• 검색 요구(질의)를 기술하는 데에 사용함
• 릴레이션에 대한 연산의 결과도 릴레이션임
관계 대수 연산의 종류
• 수학적 집합 연산: 합집합, 교집합, 차집합, 카티션 프로덕트
• 관계 데이터베이스를 위한 특별 연산: 실렉트, 프로젝트, 조인
Database by Yang-Sae MoonPage 3
실렉트실렉트(Select)(Select) 연산연산 (1/2)(1/2)관계 대수와 관계 해석
릴레이션 R에서 어떤 선택조건을 만족하는 투플들을 선택함
결과 릴레이션은 과 동일한 애 리 들을 가짐 (릴레이션 차 동일)결과 릴레이션은 R과 동일한 애트리뷰트들을 가짐 (릴레이션 차수 동일)
결과 릴레이션은 r(R)의 투플 중 애트리뷰트 값들이 선택조건을 만족하는
투플들로 구성됨
연산 형식 관계 대수란?연산 형식 관계 대수란
• σ<선택조건>(R)
선택조건은 R의 애트리뷰트들에 대한 부울식(B l ti ) 임선택조건은 R의 애트리뷰트들에 대한 부울식(Boolean equation) 임• <애트리뷰트 이름> <비교연산자> <상수값> (예: Age ≥ 18)
애트리뷰트 이름 비교연산자 애트리뷰트 이름 (예 E ID M ID)• <애트리뷰트 이름> <비교연산자> <애트리뷰트 이름> (예: Emp.ID = Manager.ID)
• 비교연산자: =, <, ≤, >, ≥, ≠, SUBSTRING_OF (문자열 연산시 이용)
Database by Yang-Sae MoonPage 4
실렉트실렉트(Select)(Select) 연산연산 (2/2)(2/2)관계 대수와 관계 해석
예제:
• σDNO 4 (EMPLOYEE)• σDNO=4 (EMPLOYEE)
• σSALARY>30000 (EMPLOYEE)
(EMPLOYEE)• σ(DNO=4 AND SALARY>25000) OR DNO=5 (EMPLOYEE)
Database by Yang-Sae MoonPage 5
실렉트실렉트 연산의연산의 실행실행 예제예제관계 대수와 관계 해석
σ(DNO=4 AND SALARY>25000) OR (DNO=5 AND SALARY>30000) (EMPLOYEE)(DNO=4 AND SALARY>25000) OR (DNO=5 AND SALARY>30000) ( )
Database by Yang-Sae MoonPage 6
실렉트실렉트 연산의연산의 성질성질관계 대수와 관계 해석
논리연산자 이용
• AND OR NOT 등 논리연산자 이용 가능• AND, OR, NOT 등 논리연산자 이용 가능
교환법칙 성립
• σ<조건1>(σ<조건2>(R)) = σ<조건2>(σ<조건1>(R))
결합법칙 성립
• σ<조건1>(σ<조건2>(...(σ<조건n>(R))...)) = σ<조건1>AND<조건2>...AND<조건n>(R)
Database by Yang-Sae MoonPage 7
프로젝트프로젝트(Project) (Project) 연산연산 (1/2)(1/2)관계 대수와 관계 해석
PROJECT 연산 (Π로 표기)
• 릴레이션 R에서 애트리뷰트 리스트에 명시된 애트리뷰트들만 선택함• 릴레이션 R에서 애트리뷰트 리스트에 명시된 애트리뷰트들만 선택함
• 연산 형식: Π<애트리뷰트 리스트>(R)
• 결과 릴레이션은 애트리뷰트 리스트에 명시된 R의 애트리뷰트들만 가짐
• 결과 릴레이션의 투플수는 원래 릴레이션의 투플수보다 작거나 같음
(작을 수 있는 이유: 릴레이션은 중복 투플을 인정하지 않음→중복 투플의 제거)(작을 수 있는 이유: 릴레이션은 중복 투플을 인정하지 않음→중복 투플의 제거)
• 애트리뷰트 리스트가 원래 릴레이션의 수퍼키를 포함하면 결과 릴레이션과 원래
릴레이션의 투플수는 동일함 (수퍼키를 포함하여 중복되지 않기 때문)릴레이션의 투플수는 동일함 (수퍼키를 포함하여 중복되지 않기 때문)
• 예제: ΠFNAME, LNAME, SALARY(EMPLOYEE)
Database by Yang-Sae MoonPage 8
프로젝트프로젝트(Project) (Project) 연산연산 (2/2)(2/2)관계 대수와 관계 해석
PROJECT 연산은 결과 릴레이션이 수학적 집합이므로 중복된 투플들을
제거함제거함
• 예제: ΠSEX, SALARY(EMPLOYEE)봉급이 25000원인 여자 사원들이 여러 명이더라도 결과 릴레이션에는 단지 하나의 <F,
25000> 투플만이 포함되며, 나머지는 제거됨
Database by Yang-Sae MoonPage 9
프로젝트프로젝트 연산의연산의 실행실행 예제예제관계 대수와 관계 해석
ΠFNAME LNAME SALARY(EMPLOYEE) ΠSEX SALARY (EMPLOYEE)ΠFNAME, LNAME, SALARY(EMPLOYEE) ΠSEX, SALARY (EMPLOYEE)
Database by Yang-Sae MoonPage 10
연산연산 순서와순서와 이름이름 변경변경 연산연산 (1/4)(1/4)관계 대수와 관계 해석
다수의 연산을 결합하여 관계 대수식(질의)을 형성할 수 있음
• 예제: 부서 5에서 일하는 사원들의 이름과 월급을 검색• 예제: 부서 5에서 일하는 사원들의 이름과 월급을 검색
• ΠFNAME, LNAME, SALARY(σDNO=5(EMPLOYEE))
Database by Yang-Sae MoonPage 11
연산연산 순서와순서와 이름이름 변경변경 연산연산 (2/4)(2/4)관계 대수와 관계 해석
중간 단계의 임시 릴레이션에 이름을 부여할 수도 있음
DEPT4 EMPS (EMPLOYEE)• DEPT4_EMPS←σDNO=5(EMPLOYEE)
• RESULT ←ΠFNAME, LNAME, SALARY(DEPT4_EMPS)
DEPT4_EMPS
RESULT FNAME LNAME
Database by Yang-Sae MoonPage 12
연산연산 순서와순서와 이름이름 변경변경 연산연산 (3/4)(3/4)관계 대수와 관계 해석
결과 릴레이션의 애트리뷰트 이름은 재명명 할 수도 있음
TEMP (EMPLOYEE)• TEMP←σDNO=4(EMPLOYEE)
• R(FIRSTNAME, LASTNAME, SALARY) ← ΠFNAME, LNAME, SALARY(TEMP)
Database by Yang-Sae MoonPage 13
연산연산 순서와순서와 이름이름 변경변경 연산연산 (4/4)(4/4)관계 대수와 관계 해석
이름 변경 연산
DEPT4 EMPS (EMPLOYEE)• DEPT4_EMPS←σDNO=5(EMPLOYEE)
• S(B1, B2, …, Bn)(R): 릴레이션 이름과 애트리뷰트 이름을 모두 변경
S: 새로운 릴레이션의 이름
B1, B2, …, Bn: 새로운 애트리뷰트의 이름
• S(R): 릴레이션 이름을 변경
• (B1, B2, …, Bn)(R): 애트리뷰트 이름을 변경
Database by Yang-Sae MoonPage 14
관계관계 대수대수 및및 관계관계 해석해석 강의강의 요약요약관계 대수와 관계 해석
단항 관계 연산: 실렉트와 프로젝트
집합 이론과 관계 대수 연산
이항 관계 연산: 조인과 디비전 연산
추가적인 관계 연산
관계 대수 질의의 예관계 대수 질의의 예
투플 관계 해석
도메인 관계 해석
Database by Yang-Sae MoonPage 15
합집합합집합, , 교집합교집합, , 차집합차집합 연산연산 (1/4)(1/4)관계 대수와 관계 해석
수학적 집합 이론에서의 이진 연산
데이터베이스 구조와 제약조건의 정의 방식• 데이터베이스 구조와 제약조건의 정의 방식
• 합집합: R1 ∪ R2
• 교집합: R1 ∩ R2• 교집합: R1 ∩ R2
• 차집합: R1 – R2
연산 ∪, ∩, – 에서의 호환성
피연산자 릴레이션 R (A A A )과 R (B B B )는 애트리뷰트들의 갯수가 동일하• 피연산자 릴레이션 R1(A1,A2, ..., An)과 R2(B1, B2, ..., Bn)는 애트리뷰트들의 갯수가 동일하
고, 대응되는 애트리뷰트들의 도메인이 호환성을 가져야 함; 즉, i = 1, 2, ..., n에 대하여
dom(Ai) = dom(Bi)이어야 함( i) ( i)이어야 함
• 이 조건을 합집합 호환성(union compatibility)이라 부름
Database by Yang-Sae MoonPage 16
합집합합집합, , 교집합교집합, , 차집합차집합 연산연산 (2/4)(2/4)관계 대수와 관계 해석
연산 ∪, ∩, – 의 결과 릴레이션은 피연산자 릴레이션 R1과 동일한 애트리뷰
트 이름들을 가짐 (관례적으로)트 이름들을 가짐 (관례적으로)
합집합과 교집합은 교환법칙과 결합법칙이 성립됨
(차집합은?)
Database by Yang-Sae MoonPage 17
합집합합집합, , 교집합교집합, , 차집합차집합 연산연산 (3/4)(3/4)관계 대수와 관계 해석
5번 부서에서 일하거나 5번 부서에서 근무하는 사원들을 직접 감독하는
모든 사원의 주민등록번호를 검색모든 사원의 주민등록번호를 검색
• DEP5_EMPS ← σDNO=5(EMPLOYEE)
RESULT1← Π (DEP5 EMPS)• RESULT1 ← ΠSSN(DEP5_EMPS)
• RESULT2(SSN) ← ΠSUPERSSN(DEP5_EMPS)
RESULT← RESULT1 ∪ RESULT2• RESULT ← RESULT1 ∪ RESULT2
Database by Yang-Sae MoonPage 18
합집합합집합, , 교집합교집합, , 차집합차집합 연산연산 (4/4)(4/4)관계 대수와 관계 해석
STUDENT INSTRUCTOR STUDENT ∩ INSTRUCTORSTUDENT ∪ INSTRUCTOR STUDENT ∩ INSTRUCTOR
STUDENT - INSTRUCTOR INSTRUCTOR - STUDENT
Database by Yang-Sae MoonPage 19
카티션카티션 곱곱 ((또는또는 크로스크로스 프로덕트프로덕트) ) 연산연산 (1/3)(1/3)관계 대수와 관계 해석
카티션 곱 (CARTESIAN PRODUCT)
R(A A A B B B )← R (A A A ) × R (B B B )R(A1, A2, ...,Am, B1, B2, ..., Bn) ← R1(A1, A2, ..., Am) × R2(B1, B2, ..., Bn)
• R의 투플 t는 R1의 투플 t1과 R2의 투플 t2로 분리됨
즉 t[A A A ] t 그리고 t[B B B ] t• 즉, t[A1,A2, ..., Am] = t1 그리고 t[B1, B2, ..., Bn] = t2
• R1이 n1개의 투플을, R2가 n2개의 투플을 갖는다면,
R은 n1×n2개의 투플을 가지게 됨R은 n1×n2개의 투플을 가지게 됨
• 카티션 곱은 그 자체로는 큰 의미가 없는 연산이지만
적절한 SELECT 연산과 함께 사용되면 두 릴레이션에서
서로 관련이 있는 투플들을 생성하는데 사용될 수 있음
Database by Yang-Sae MoonPage 20
카티션카티션 곱곱 ((또는또는 크로스크로스 프로덕트프로덕트) ) 연산연산 (2/3)(2/3)관계 대수와 관계 해석
모든 여자사원들에 대해 그들의 부양가족들의 이름을 검색
• FENAME EMPS← σ (EMPLOYEE)• FENAME_EMPS ← σSEX=F(EMPLOYEE)
• EMPNAMES ← ΠFNAME, LNAME, SSN(FENAME_EMPS)
• EMP DEPENDENTS← EMPNAMES × DEPENDENT• EMP_DEPENDENTS ← EMPNAMES × DEPENDENT
• ACTUAL_DEPENDENTS ← σSSN=ESSN(EMP_DEPENDENTS)
• RESULT← Π (ACTUAL DEPENDENTS)• RESULT ← ΠFNAME, LNAME, DEPENDENT_NAME(ACTUAL_DEPENDENTS)
Database by Yang-Sae MoonPage 21
카티션카티션 곱곱 ((또는또는 크로스크로스 프로덕트프로덕트) ) 연산연산 (3/3)(3/3)관계 대수와 관계 해석
FENAME_EMPS ← σSEX=F(EMPLOYEE)EMPNAMES ← ΠFNAME, LNAME, SSN(FENAME_EMPS)EMP_DEPENDENTS ← EMPNAMES × DEPENDENTACTUAL_DEPENDENTS ← σSSN=ESSN(EMP_DEPENDENTS)RESULT ← ΠFNAME, LNAME,
(AC UA E E E S)DEPENDENT_NAME(ACTUAL_DEPENDENTS)
3 ×7 = 21
Database by Yang-Sae MoonPage 22
관계관계 대수대수 및및 관계관계 해석해석 강의강의 요약요약관계 대수와 관계 해석
단항 관계 연산: 실렉트와 프로젝트
집합 이론과 관계 대수 연산
이항 관계 연산: 조인과 디비전 연산
추가적인 관계 연산
관계 대수 질의의 예관계 대수 질의의 예
투플 관계 해석
도메인 관계 해석
Database by Yang-Sae MoonPage 23
조인조인(Join) (Join) 연산연산 (1/2)(1/2)관계 대수와 관계 해석
Join 연산
• 두 릴레이션으로부터 관련있는 투플을 결합하여 하나의 투플로 생성함• 두 릴레이션으로부터 관련있는 투플을 결합하여 하나의 투플로 생성함
• 관련성의 여부를 조건으로 표시하며, 이를 조인 조건이라고 함
R S• R <조인조건> S
조인 조건
• <조건> AND <조건> AND … AND <조건>
• 각 조건의 형태는 AiΘBj 이며, Ai 는 R의 애트리뷰트, Bj는 S의 애트리뷰트임
• Θ = {=, <, ≤, >, ≥, ≠}
• 조인 조건에 사용된 속성 (Ai와 Bj를 조인속성이라고 부름)
Theta Join
• 일반적인 조인 조건(=, <, ≤, >, ≥, ≠)을 가진 조인 연산
Database by Yang-Sae MoonPage 24
조인조인(Join) (Join) 연산연산 (2/2)(2/2)관계 대수와 관계 해석
DEPT_MGR ← DEPARTMENT MGRSSN=SSNEMPLOYEE
Database by Yang-Sae MoonPage 25
동등동등 조인조인 ((EquiEqui--Join)Join)관계 대수와 관계 해석
조인 조건에서 동등 비교(equality comparison) 만을 사용하는 조
EQUI OI 사용 예제EQUIJOIN 사용 예제:
모든 DEPARTMENT의 이름과 그 관리자의 이름을 검색하라:
T ← DEPARTMENT MGRSSN=SSN EMPLOYEERESULT ← ΠDNAME,FNAME,LNAME(T)
Database by Yang-Sae MoonPage 26
자연자연 조인조인(Natural Join) (1/4)(Natural Join) (1/4)관계 대수와 관계 해석
EQUIJOIN의 결과에는 두 조인속성의 값이 중복되어 나타남
조인 결과에서 조인 속성 하나를 제거하여 중복된 값이 나타나지 않도록 한 조인을조인 결과에서 조인 속성 하나를 제거하여 중복된 값이 나타나지 않도록 한 조인을
자연조인이라고 함
표시법 R← R1 R2표시법: R ← R1 (R1의 조인 애트리뷰트들), (R2의 조인 애트리뷰트들) R2
예제: 모든 EMPLOYEE의 이름과 그의 DEPARTMENT 이름을 검색하라
T EMPLOYEE DEPARTMENT• T ← EMPLOYEE (DNO), (DNUMBER) DEPARTMENT
• RESULT ← ΠFNAME, LNAME, DNAME(T)
두 인 속성이 동일한 이름을 갖는다면 간단히 R R1 R2라 시함두 조인 속성이 동일한 이름을 갖는다면 간단히 R ← R1 R2라고 표시함
예제: 모든 EMPLOYEE의 이름과 그 상급자의 이름을 검색하라
• SUPERVISOR(SUPERSSN, SFN, SLN) ←ΠSSN, FNAME, LNAME(EMPLOYEE)
• T ← EMPLOYEE SUPERVISOR
Database by Yang-Sae MoonPage 27
• RESULT ← ΠFNAME, LNAME, SFN, SLN(T)
자연자연 조인조인(Natural Join) (2/4)(Natural Join) (2/4)관계 대수와 관계 해석
DNUM
DEPT DNUM
PROJ_DEPT ← PROJECT DEPT
DNUM
Database by Yang-Sae MoonPage 28
자연자연 조인조인(Natural Join) (3/4)(Natural Join) (3/4)관계 대수와 관계 해석
DNUMBER
DNUMBER
DEPT_LOCS ← DEPT_LOCATIONS DEPARTMENT
DNUMBER
Database by Yang-Sae MoonPage 29
자연자연 조인조인(Natural Join) (4/4)(Natural Join) (4/4)관계 대수와 관계 해석
주의 사항
• 자연 조인에서는 조인 애트리뷰트들이 양쪽의 릴레이션에서 동일한 이름을 가져야 하며• 자연 조인에서는 조인 애트리뷰트들이 양쪽의 릴레이션에서 동일한 이름을 가져야 하며,
그렇지 않는 경우 조인 속성의 이름을 먼저 동일하게 변경해야 함
• 두 릴레이션에서 하나 이상의 조인 애트리뷰트 쌍이 존재하는 경우 주의가 요망됨두 릴레이션에서 하나 이상의 인 애 리뷰 쌍이 존재하는 경우 주의가 망됨
예제: “모든 EMPLOYEE의 이름과 그가 일하는 DEPARTMENT의 이름을 검색하
라” 에 대한 자연 조인은 다음과 같이 작성함라” 에 대한 자연 조인은 다음과 같이 작성함
DEPT(DNAME, DNUM, MGRSSN, MGRSTARTDATE) ← DEPARTMENT
PROJ DEPT← PROJECT DEPT // DUNM이 조인속성임;
Database by Yang-Sae MoonPage 30
PROJ_DEPT PROJECT DEPT // DUNM이 조인속성임;// MGRSSN은 조인속성이 아님
셀프셀프 조인조인(Self Join)(Self Join)관계 대수와 관계 해석
하나의 릴레이션에 대한 조인
Self join은 한 릴레이션의 서로 다른 두 사본을 조인하는 것으로 간주함Self join은 한 릴레이션의 서로 다른 두 사본을 조인하는 것으로 간주함
이 경우, 사본 릴레이션에서는 원본 애트리뷰트 이름을 재명명(renaming)하는 것
이 유용함이 유용함
예제: 모든 EMPLOYEE의 이름과 그의 SUPERVISOR의 이름을 검색하라.
SUPERVISOR(SSSN,SFN,SLN) ← ΠSSN,FNAME,LNAME(EMPLOYEE)
T ← EMPLOYEE SUPERSSN=SSSN SUPERVISORSUPERSSN SSSN
RESULT ← ΠFNAME,LNAME,SFN,SLN(T)
Database by Yang-Sae MoonPage 31
조인조인 선택율선택율(selectivity)(selectivity)관계 대수와 관계 해석
선택율 = 결과 투플의 수 / 전체 가능한 투플의 수
인 선택율조인 선택율 =
조인 결과로 선택된 투플의 개수 / [(R의 투플수) × (S의 투플수)]
왼편의 조인 선택율은?왼편의 조인 선택율은?
Database by Yang-Sae MoonPage 32
관계관계 대수대수 연산의연산의 완전완전 집합집합관계 대수와 관계 해석
최소한의 연산자 집합
• 지금까지 소개한 모든 연산자는 선택(SELECT) 프로젝트(PROJECT) 합집합(UNION)• 지금까지 소개한 모든 연산자는 선택(SELECT), 프로젝트(PROJECT), 합집합(UNION),
차집합(SET DIFFERNECE), 카티션 프로덕트 (CARTESIAN PRODUCT) 연산들 만의
조합으로 표현할 수 있음합 현할 수 있음
• 연산자 집합 {σ, Π, ∪, , ×}를 관계대수 연산자의 완전 집합(complete set)이라 부름
• 이 연산자 집합과 동등한 모든 질의 언어들은 관계적으로 완전하다(relationally complete)
라고 정의함
기타 연산자의 표현기타 자의
• R ∩ S = (R ∪ S) – ((R – S) ∪ (S – R))
• R <조건>S = σ<조건>(R×S)R <조건>S σ<조건>(R×S)
Database by Yang-Sae MoonPage 33
디비전디비전 연산연산 (1/3)(1/3)관계 대수와 관계 해석
T(Y) = R(Z) S(X)는 다음과 같이 정의됨 (X ⊆ Z 이고, Y = Z – X임)
• T1 Π (R)• T1 = ΠY(R)
• T2 = ΠY((S × T1) - R)
• T = T1 T2• T = T1 – T2
예제 (과정은 다음 페이지 참조)
R A B S A T Ba1 b1 a1 b1a2 b1 a2 b43 b1 3
=a3 b1 a3a4 b1a1 b2a3 b2 T1 = ΠB(R)a2 b3a3 b3a4 b3a1 b4
T2 = ΠB(( S × T1) – R)
T = T1 – T2
Database by Yang-Sae MoonPage 34
a1 b4a2 b4a3 b4
디비전디비전 연산연산 (2/3)(2/3)관계 대수와 관계 해석
T1 S×T1 S×T1‐RB BA BA
= b1b2b3
a1a1a1
b1b2b3
a1a2
b3b2
T ← R S
T = Π (R)
3b4 a1
3b4
a2a2
b1b2
T2b2B
T1 = ΠB(R)T2 = ΠB((S × T1) – R)T = T1 – T2
a2a2a2
b2b3b4
a b
b2b3
a1, a2, a3와의 모든 조합이 있는 놈: b1, b4
a3a3a3
b1b2b3b
Tb1b
B
a3 b4 b4
Database by Yang-Sae MoonPage 35
디비전디비전 연산연산 (3/3)(3/3)관계 대수와 관계 해석
질의: Smith가 근무하는 모든 프로젝트에서 근무하는 사원들의 이름을 검색하라.
=SMITH ← σFNAME=‘John’ AND LNAME=‘Smith’(EMPLOYEE)
SMITH_PNOS ← ΠPNO(WORKS_ON
ESSN=SSNSMITH)
SSN_PNOS ← ΠESSN, PNO(WORKS_ON)
SSNS(SSN) ← SSNPNOS SMITH_PNOS
Database by Yang-Sae MoonPage 36
RESULT ← ΠFNAME, LNAME(SSNS * EMPLOYEE)
관계관계 대수대수 및및 관계관계 해석해석 강의강의 요약요약관계 대수와 관계 해석
단항 관계 연산: 실렉트와 프로젝트
집합 이론과 관계 대수 연산
이항 관계 연산: 조인과 디비전 연산
추가적인 관계 연산
관계 대수 질의의 예관계 대수 질의의 예
투플 관계 해석
도메인 관계 해석
Database by Yang-Sae MoonPage 37
집단집단 함수와함수와 집단화집단화 (1/2)(1/2)관계 대수와 관계 해석
집단 함수 (aggregate function) 혹은 집계 함수
• SUM COUNT AVERAGE MIN MAX 함수를 의미함• SUM, COUNT, AVERAGE, MIN, MAX 함수를 의미함
• 이들은 데이터베이스 응용에서 값들의 집합 또는 투플들의 집합에 적용되며, 표준 관계
대수로 표현할 수 없음대수로 표현할 수 없음
• 다음과 같이 표현하며, 그룹화 애트리뷰트들은 선택적임
<그룹화 애트리뷰트들>F<함수 리스트>(R)그룹화 애트리뷰트들 함수 리스트 ( )
예제 1: 모든 사원의 평균 급여를 검색 (그룹화 불필요)
• R(AVGSAL)← FAVERAGE SALARY(EMPLOYEE)• R(AVGSAL) ← FAVERAGE SALARY(EMPLOYEE)
예제 2: 각 부서에 대해, 부서 번호와 부서별 사원 수와 평균 급여를 검색
R(DNO NUMEMPS AVGSAL) F (EMPLOYEE)• R(DNO, NUMEMPS, AVGSAL) ← DNOFCOUNT SSN, AVERAGE SALARY(EMPLOYEE)
Database by Yang-Sae MoonPage 38
• 위의 예제에서 DNO를 그룹화 애트리뷰트(grouping attribute)라고 부름
집단집단 함수와함수와 집단화집단화 (2/2)(2/2)관계 대수와 관계 해석
Database by Yang-Sae MoonPage 39
순환적순환적 폐포폐포(Recursive Closure) (Recursive Closure) 연산연산 (1/2)(1/2)관계 대수와 관계 해석
동일한 테이블에서 투플들 간 순환적 관계 (recursive relationship)를 질의하는데
사용됨사용됨
관계 대수로서는 표현할 수 없음
예 Employee 테이블에서 사원과 상사간의 관계에 대하여 특정 사원의 모든 상사예: Employee 테이블에서 사원과 상사간의 관계에 대하여 특정 사원의 모든 상사
(직간접 상사관계)에 있는 직원을 모두 검색하시오.
이러한 질의는 루핑(l i )을 사용하여 한 단계 상사들의 집합을 구하고 이를 바이러한 질의는 루핑(looping)을 사용하여 한 단계 상사들의 집합을 구하고, 이를 바
탕으로 다음 단계 상사를 구하며, 이러한 과정을 더 이상의 상사 집합이 없을 때까
지 (사장이 나올 때까지) 구해나가야 하므로 루핑 처리가 필요하게 됨지 (사장이 나올 때까지) 구해나가야 하므로 루핑 처리가 필요하게 됨
호스트 언어 등을 사용하여 해결할 수 있음
Database by Yang-Sae MoonPage 40
순환적순환적 폐포폐포(Recursive Closure) (Recursive Closure) 연산연산 (2/2)(2/2)관계 대수와 관계 해석
Database by Yang-Sae MoonPage 41
외부외부 조인조인 연산연산 (1/4)(1/4)관계 대수와 관계 해석
외부 조인(OUTER JOIN)
• 정규 EQUIJOIN이나 자연 조인(NATURAL JOIN) 연산에서 조인 조건을 만족하지 않은• 정규 EQUIJOIN이나 자연 조인(NATURAL JOIN) 연산에서 조인 조건을 만족하지 않은
투플들은 결과 릴레이션에도 나타나지 않음
• 조인에 참여하는 릴레이션의 모든 투플들을 조인 결과 릴레이션에 나타내고 싶은 경우조인에 참여하는 릴레이션의 모든 투플들을 조인 결과 릴레이션에 나타내고 싶은 경우
외부조인을 사용함
• 외부 조인에서는 상대방 릴레이션에 대응되는 투플이 없으면 빈 애트리뷰트들에 NULL
값을 채워서 결과에 포함시킴
Database by Yang-Sae MoonPage 42
외부외부 조인조인 연산연산 (2/4)(2/4)관계 대수와 관계 해석
외부 조인의 종류
• 왼쪽 외부 조인 (LEFT OUTER JOIN)• 왼쪽 외부 조인 (LEFT OUTER JOIN)
R1 R2는 R1의 모든 투플들이 결과 릴레이션이 나타남
• 오른쪽 외부 조인 (RIGHT OUTER JOIN)오른쪽 외부 조인 (RIGHT OUTER JOIN)
R1 R2는 R2의 모든 투플들이 결과 릴레이션이 나타남
• 완전 외부 조인 (FULL OUTER JOIN)
R1 R2는 R1과 R2의 모든 투플들이 결과 릴레이션이 나타남
Database by Yang-Sae MoonPage 43
외부외부 조인조인 연산연산 (3/4)(3/4)관계 대수와 관계 해석
S1A
가B1 T
나B2
#C
123
가나다
나다
#%
라 $마 @
조인 왼쪽 외부조인 오른쪽 외부조인 양쪽 외부조인
V ← S B1=B2T V ← S B1=B2T V ← S B1=B2T V ← S B1=B2T
V V V V
23
A나다
B1나다
B2#%
C A B1 B2 C12
가나 나 #
null nullA B1 B2 C
나다
#%
23
나다
A B1 B2 C
나 #2 나1 가 null null
3 다 다 % 23
나다
나다
#%
다 %라 $마 @
3 다null null
null null
나다
#%
라 $마 @
23
나다
null null
null null
Database by Yang-Sae MoonPage 44
마 @null null
외부외부 조인조인 연산연산 (4/4)(4/4)관계 대수와 관계 해석
null
TEMP ← EMPLOYEE MGRSSN=SSNDEPARTMENTRESULT← ΠFNAME MINIT LNAME DNAME(TEMP)
null
ll
null
RESULT ← ΠFNAME, MINIT, LNAME, DNAME(TEMP) nullnullnull
Database by Yang-Sae MoonPage 45
외부외부 합집합합집합(Outer Union)(Outer Union) 연산연산 (1/2)(1/2)관계 대수와 관계 해석
합집합 호환성이 없는 두 릴레이션을 합집합(union)하는데 사용됨
• 데이터베이스 구조와 제약조건의 정의 방식• 데이터베이스 구조와 제약조건의 정의 방식
예제
• STUDENT(Name, SSN, Department, Advisor)와
• FACULTY(Name, SSN, Department, Rank)의 outer union은
RESULT(N SSN D Ad i R k) 임• RESULT(Name, SSN, Department, Advisor, Rank) 임
• RESULT 에서 STUDENT 투플은 Rank 속성의 값이 null이고, FACULTY 투플은 Advisor
속성의 값이 null임속성의 값이 null임
Database by Yang-Sae MoonPage 46
외부외부 합집합합집합(Outer Union)(Outer Union) 연산연산 (2/2)(2/2)관계 대수와 관계 해석
S와 T의 외부 합집합
S1A
가B T
나B
#C A B C
1 가 null
S와 T의 외부 합집합
aD D
null23
나다
다 %라 $마 @
#%$
23
나다
null 라
bcd
abc마 $
@null라마 d
Database by Yang-Sae MoonPage 47