관계 대수.

Slides:



Advertisements
Similar presentations
이진 나무 구조 강윤섭 2008년 5월 23일.
Advertisements

1. 관계 데이터베이스의 정규화 (1) 정규화 1) 이상(anomaly) ① 이상의 정의 • 관계 모델에서는 애트리뷰트들 간에 존재하는 여러 종속관계를 하나의 릴레이션에 표현하기 때문에 릴레이션 조작 시 이상 (anomaly) 발생 • 데이터의 중복으로 인하여 관계연산을.
You YOungseok 데이터베이스 테이블 및 인덱스 You YOungseok.
데이터베이스 시스템.
관계 대수와 SQL.
관계 대수와 SQL SQL.
4.2 SQL 개요 SQL 개요 SQL은 현재 DBMS 시장에서 관계 DBMS가 압도적인 우위를 차지하는데 중요한 요인의 하나
4장. 관계 대수와 SQL SQL 관계 데이터 모델에서 지원되는 두 가지 정형적인 언어
SQL: 데이터 정의, 제약사항, 기본 질의와 갱신
관계 대수와 SQL SQL.
8장. 뷰와 시스템 카탈로그 뷰와 시스템 카탈로그 관계 데이터베이스 시스템의 뷰(view)는 다른 릴레이션으로부터 유도된 릴레이션(derived relation)으로서 ANSI/SPARC 3단계 아키텍처의 외부 뷰와 다름 뷰는 관계 데이터베이스 시스템에서 데이터베이스의.
8장 서브 쿼리.
MySQL 및 Workbench 설치 데이터 베이스.
데이터베이스 및 설계 금오공과대학교 컴퓨터공학부 이 이섭.
관계 데이터 모델과 제약조건 개념, 특성, 키, 무결성 제약조건.
6 장. ER-관계 사상에 의한 관계 데이터베이스 설계
제 13 장 질의 처리와 최적화를 위한 알고리즘 Fundamentals of Database Systems
6장 그룹 함수.
ALLPPT.com _ Free PowerPoint Templates, Diagrams and Charts
07 그룹 함수 그룹 함수의 개념 그룹 함수의 종류 데이터 그룹 생성 HAVING 절.
2장. 관계 데이터 모델과 제약조건 관계 데이터 모델은 지금까지 제안된 데이터 모델들 중에서 가장 개념이 단순한 데이터 모델의 하나 IBM 연구소의 E.F. Codd가 1970년에 관계 데이터 모델을 제안함 관계 데이터 모델을 최초로 구현한 가장 중요한 관계 DBMS 시제품은.
3.2 SQL Server 설치 및 수행(계속) 시스템 데이터베이스 master
Heesang kim PL/SQL 3 Heesang kim.
Error Detection and Correction
4장. 관계 대수와 SQL SQL 관계 데이터 모델에서 지원되는 두 가지 정형적인 언어 어느것을 기본으로 만들것인가
13 인덱스 인덱스의 개념 인덱스의 구조 인덱스의 효율적인 사용 방법 인덱스의 종류 및 생성 방법 인덱스 실행 경로 확인
5장. 데이터베이스 설계와 ER 모델 데이터베이스 설계 개념적 데이터베이스 설계와 물리적 데이터베이스 설계로 구분
5장. 관계대수와 관계 해석 관계 대수 릴레이션들을 다루는 연산들의 집합 검색 요구(질의)를 기술하는 데에 사용
지역맞춤형 일자리창출 사업 기관 평가
관계 데이터 구조.
1. 관계 데이터 언어 관계 대수 1) 관계대수 정의 ① 원하는 정보와 그 정보를 어떻게 유도하는가를 기술하는 절차적 인 방법 ② 주어진 관계로 부터 원하는 관계를 얻기 위해 연산자와 연산 규칙을 제공하는 언어 ③ 릴레이션 조작을 위한 연산의 집합으로 피연산자와 결과가.

Chapter 07. 기본 함수 익히기.
01 데이타베이스 개론 데이타베이스의 등장 배경 데이타베이스의 발전 과정 데이타베이스의 정의 데이타베이스의 특징
제7장 SQL-99: 스키마 정의, 제약조건, 질의어, 뷰
13 인덱스 인덱스의 개념 인덱스의 구조 인덱스의 효율적인 사용 방법 인덱스의 종류 및 생성 방법 인덱스 실행 경로 확인
제1장 통계학이란 무엇인가 제2장 자료와 수집 제3장 자료 분석 방법
환경 설정 예제 데이터베이스 생성 - 그림 3.34의 SQL Server 관리 스튜디오 창의 왼쪽 영역의 데이터베
JA A V W. 03.
자료구조: CHAP 7 트리 –review 순천향대학교 컴퓨터공학과 하 상 호.
관계 데이터 모델과 관계 데이터베이스 제약 조건
ER-관계 사상에 의한 관계 데이터베이스 설계
데이터베이스 (Database) SQL-99: 스키마 정의, 기본 제약조건, 질의어 문양세 강원대학교 IT대학 컴퓨터과학전공.
Term Projects 다음에 주어진 2개중에서 한 개를 선택하여 문제를 해결하시오. 기한: 중간 보고서: 5/30 (5)
15장 컬렉션 프레임워크 Section 1 컬렉션 프레임워크의 개요 Section 2 리스트 Section 3 셋
ITQ 정보기술자격 국가공인 Excel 2007 Ⅱ 함수- 11회차 강사 : 박영민.
3D 프린팅 프로그래밍 01 – 기본 명령어 강사: 김영준 목원대학교 겸임교수.
Chapter 03. 관계 데이터베이스 설계.
05. Relational DBMS 명지대학교 ICT 융합대학 김정호.
합집합과 교집합이란 무엇인가? 01 합집합 두 집합 A, B에 대하여 A에 속하거나 B에 속하는 모든 원소로 이루어진 집합을 A와 B의 합집합이라고 하며, 기호 A∪B로 나타낸다. A∪B ={x | x∈A 또는 x∈B}
2. Boole 대수와 논리 게이트.
7장. 릴레이션 정규화 릴레이션 정규화 부주의한 데이터베이스 설계는 제어할 수 없는 데이터 중복을 야기하여 여러 가지 갱신 이상(update anomaly)을 유발함 어떻게 좋은 데이터베이스 설계를 할 것인가? 데이터베이스에 어떤 릴레이션들을 생성할 것인가? 각 릴레이션에.
문성우 SQL 실습 Part Ⅰ 문성우.
4장. 데이터 표현 방식의 이해. 4장. 데이터 표현 방식의 이해 4-1 컴퓨터의 데이터 표현 진법에 대한 이해 n 진수 표현 방식 : n개의 문자를 이용해서 데이터를 표현 그림 4-1.
제 8 장 ER-관계 사상에 의한 관계 데이타베이스 설계
14 뷰(View) 뷰의 개념 뷰 관리.
Part 2 개념적 데이터 모델 Copyright © 2006 by Ehan Publishing Co. All rights reserved.
Chapter 10 데이터 검색1.
11장 배열 1. 배열이란? 1.1 배열의 개요 1.2 배열의 선언과 사용.
ER-관계 사상에 의한 관계데이터베이스 설계 충북대학교 구조시스템공학과 시스템공학연구실
7장 테이블 조인하기.
07. DB 설계 명지대학교 ICT 융합대학 김정호.
DNA Implementation of Version Space Learning
Chapter 2: Intro to Relational Model
ER-관계 사상에 의한 관계 데이터베이스 설계
 6장. SQL 쿼리.
                              데이터베이스 설계 및 실습 #6 - SQL 실습 한국외국어대학교 DaPS 연구실                              
관계 대수 Chapter 4, Part A The slides for this text are organized into chapters. This lecture covers relational algebra from Chapter 4. The relational calculus.
4장. 관계 대수와 SQL 관계 데이터 모델에서 지원되는 두 가지 정형적인 언어
8장. 데이터베이스 설계 데이터베이스 설계 단계 요구 사항 분석 개념적 설계 논리적 설계 물리적 설계와 구현.
Presentation transcript:

관계 대수

목차 I. 관계 대수 II. SQL 개요 III. 데이터 정의어와 무결성 제약조건 IV. SELECT문 V. INSERT, DELETE, UPDATE문 VI. 트리거(trigger)와 주장(assertion) VII. 내포된 SQL

관계 데이터 모델에서 지원되는 두 가지 정형적인 언어 4.관계 대수와 SQL 관계 데이터 모델에서 지원되는 두 가지 정형적인 언어 관계 해석(relational calculus) 원하는 데이터만 명시하고 질의를 어떻게 수행할 것인가는 명시하지 않는 ( ) 관계 대수(relational algebra) 어떻게 질의를 수행할 것인가를 명시하는 ( ) 관계 대수는 상용 관계 DBMS들에서 널리 사용되는 SQL의 이론적인 기초 관계 대수는 SQL을 구현하고 최적화하기 위해 DBMS의 내부 언어로서도 사용됨 SQL 상용 관계 DBMS들의 사실상의 표준 질의어인 SQL을 이해하고 사용할 수 있는 능력은 매우 중요함 사용자는 SQL을 사용하여 관계 데이터베이스에 릴레이션을 정의하고, 관계 데이터베이스에서 정보를 검색하고, 관계 데이터베이스를 갱신하며, 여러 가지 무결성 제약조건들을 명시할 수 있음

4.1 관계 대수 관계 대수 기존의 릴레이션들로부터 ( ) 릴레이션을 생성함 기존의 릴레이션들로부터 ( ) 릴레이션을 생성함 릴레이션이나 관계 대수식(이것의 결과도 릴레이션임)에 연산자들을 적용하여 보다 복잡한 관계 대수식을 점차적으로 만들 수 있음 기본적인 연산자들의 집합으로 이루어짐 산술 연산자와 유사하게 단일 릴레이션이나 두 개의 릴레이션을 입력으로 받아 하나의 결과 릴레이션을 생성함 결과 릴레이션은 또 다른 관계 연산자의 입력으로 사용될 수 있음

4.1 관계 대수 관계 연산자 1 관계 연산자 2 [그림4.1] 관계 연산자

4.1 관계 대수  ᛞ  [표4.1] 관계 연산자들의 종류와 표기법 분류 연산자 표기법 필수적인 연산자 б ( ) б 프로젝션(projection) π 합집합(union) ∪ 차집합(difference)  x 편의를 위해 유도된 연산자 교집합(intersection) ∩ 세타조인(theta join) ᛞ 동등 조인(equijoin) 자연 조인(natural join) * 디비젼(division) 

4.1 관계 대수 x  = [그림4.2] 관계 연산자들의 기능 intersection selection union projection union intersection difference Cartesian product division R S  = x [그림4.2] 관계 연산자들의 기능

4.1 관계 대수 셀렉션 연산자 한 릴레이션에서 셀렉션 조건(selection condition)을 만족하는 튜플들의 부분 집합을 생성함 주어진 조건을 만족하는 튜플들만 걸러내는 연산으로 생각할 수 있음 셀렉션 연산자는 하나의 입력 릴레이션에 적용되므로 단항 연산자 셀렉션의 결과 릴레이션의 차수는 입력 릴레이션의 차수와 같음 결과 릴레이션의 카디날리티는 항상 원래 릴레이션의 카디날리티보다 작거나 같음 셀렉션 조건을 프레디키트(predicate)라고도 함 셀렉션 조건은 일반적으로 릴레이션의 임의의 애트리뷰트와 상수, = , <>, <=, <, >=, > 등의 ( ), AND, OR, NOT 등의 ( ) 포함할 수 있음 형식 : б<셀렉션조건>(릴레이션)

4.1 관계 대수 셀렉션(selection) 연산자 бDNO=3(EMPLOYEE) 예: 셀렉션 EMPNO EMPNAME TITLE MANAGER SALARY DNO 2106 김창섭 대리 1077 2500000 2 3426 박영권 과장 4377 3000000 1 3011 이수민 부장 4000000 3 1003 조민희 3427 최종철 사원 1500000 1365 김상원 이성래 사장 ^ 5000000 бDNO=3(EMPLOYEE) RESULT EMPNO EMPNAME TITLE MANAGER SALARY DNO 3011 이수민 부장 4377 4000000 3 3427 최종철 사원 1500000

4.1 관계 대수 프로젝션 연산자 한 릴레이션의 ( ) 들의 부분 집합을 구함 한 릴레이션의 ( ) 들의 부분 집합을 구함 프로젝션의 결과로 생성되는 릴레이션은 <애트리뷰트 리스트>에 명시된 애트리뷰트들만 가짐 셀렉션의 결과 릴레이션에는 중복 튜플이 존재할 수 없지만, 프로젝션 연산의 결과 릴레이션에는 중복된 튜플들이 존재할 수 있음 형식 : π<애트리뷰트 리스트>(릴레이션)

4.1 관계 대수 πTITLE(EMPLOYEE) 예: 프로젝션 질의 : 모든 사원들의 직급을 검색하라. 프로젝션 연산자의 입력 릴레이션에는 중복된 튜플이 없지만 이 릴레이션에서 일부 애트리뷰트를 프로젝션한 결과 릴레이션에는 중복 튜플이 존재하므로, 중복을 제거해야 한다. EMPLOYEE RESULT RESULT EMPNO EMPNAME TITLE MANAGER SALARY DNO 2106 김창섭 대리 1077 2500000 2 3426 박영권 과장 4377 3000000 1 3011 이수민 부장 4000000 3 1003 조민희 3427 최종철 사원 1500000 1365 김상원 이성래 사장 ^ 5000000 TITLE 대리 과장 부장 사원 사장 TITLE 대리 과장 부장 사원 사장 중복이 제거된 릴레이션 중복이 존재하는 릴레이션 πTITLE(EMPLOYEE)

4.1 관계 대수 집합 연산자 릴레이션이 튜플들의 집합이기 때문에 기존의 집합 연산이 릴레이션에 적용됨 세 가지 집합 연산자: ( ) 연산자 집합 연산자의 입력으로 사용되는 두 개의 릴레이션은 합집합 호환(union compatible)이어야 함 집합 연산자들은 두 개의 릴레이션을 입력으로 받아들이므로 이항 연산자

4.1 관계 대수 합집합 호환 두 릴레이션 R1(A1, A2, ..., An)과 R2(B1, B2, ..., Bm)이 합집합 호환일 필요 충분 조건은 n=m이고, 모든 1<=i<=n에 대해 domain(Ai)=domain(Bi) 예: 합집합 호환 다음의 합집합 예에서 EMPLOYEE 릴레이션 스키마와 EDPARTMENT 릴레이션 스키마는 애트리뷰트 수가 다르므로 합집합 호환이 되지 않는다. EMPLOYEE(EMPNO, EMPNAME, TITLE, MANAGER, SALARY, DNO) DEPARTMENT(DEPTNO, DEPTNAME, FLOOR) 그러나 EMPLOYEE 릴레이션에서 DNO를 프로젝션한 결과 릴레이션(πDNO(EMPLOYEE))과 DEPARTMENT 릴레이션에서 DEPTNO를 프로젝션한 결과 릴레이션 (πDEPTNO(DEPARTMENT))은 애트리뷰트 수가 같으며 DNO와 DEPTNO의 도메인이 같으므로 합집합 호환이다.

4.1 관계 대수 합집합 연산자 두 릴레이션 R과 S의 합집합 R ∪ S는 R 또는 S에 있거나 R과 S 모두에 속한 튜플들로 이루어진 릴레이션 결과 릴레이션에서 ( )된 튜플들은 제외됨 결과 릴레이션의 차수는 R 또는 S의 차수와 같으며, 결과 릴레이션의 애트리뷰트 이름들은 R의 애트리뷰트들의 이름과 같거나 S의 애트리뷰트들의 이름과 같음

πDNO(бEMPNAME =‘김창섭’(EMPLOYEE)) 4.1 관계 대수 예: 합집합 질의 : 김창섭이 속한 부서이거나 개발 부서의 부서번호를 검색하라. EMPLOYEE EMPNO EMPNAME TITLE MANAGER SALARY DNO 2106 김창섭 대리 1077 2500000 2 3426 박영권 과장 4377 3000000 1 3011 이수민 부장 4000000 3 1003 조민희 3427 최종철 사원 1500000 1365 김상원 이성래 사장 ^ 5000000 πDNO(бEMPNAME =‘김창섭’(EMPLOYEE)) RESULT 1 DNO 2

πDEPTNO(бDEPTNAME =‘개발’(DEPARTMENT)) 4.1 관계 대수 DEPARTMENT DEPTNO DEPTNAME FLOOR 1 영업 8 2 기획 10 3 개발 9 4 총무 RESULT 2 DEPTNO 3 πDEPTNO(бDEPTNAME =‘개발’(DEPARTMENT)) RESULT 3 ← RESULT 1 U RESULT 2 RESULT 3 DEPTNO 2 3

4.1 관계 대수 교집합 연산자 두 릴레이션 R과 S의 교집합 R ∩ S는 R과 S 모두에 속한 튜플들로 이루어진 릴레이션

πDNO(бEMPNAME =‘김창섭’ OR EMPNAME = ‘최종철’(EMPLOYEE)) 4.1 관계 대수 예: 교집합 질의 : 김창섭 또는 최종철이 속한 부서이면서 기획 부서의 부서번호를 검색하라. EMPLOYEE EMPNO EMPNAME TITLE MANAGER SALARY DNO 2106 김창섭 대리 1077 2500000 2 3426 박영권 과장 4377 3000000 1 3011 이수민 부장 4000000 3 1003 조민희 3427 최종철 사원 1500000 1365 김상원 이성래 사장 ^ 5000000 πDNO(бEMPNAME =‘김창섭’ OR EMPNAME = ‘최종철’(EMPLOYEE)) RESULT 1 DNO 2 3

πDEPTNO(бDEPTNAME =‘기획’(DEPARTMENT)) 4.1 관계 대수 DEPARTMENT DEPTNO DEPTNAME FLOOR 1 영업 8 2 기획 10 3 개발 9 4 총무 RESULT 2 DEPTNO 2 πDEPTNO(бDEPTNAME =‘기획’(DEPARTMENT)) RESULT 3 ← RESULT 1 ∩ RESULT 2 RESULT 3 DEPTNO 2

4.1 관계 대수 차집합 연산자 두 릴레이션 R과 S의 차집합 R - S는 R에는 속하지만 S에는 속하지 않은 튜플들로 이루어진 릴레이션 결과 릴레이션의 차수는 R 또는 S의 ( ), 결과 릴레이션의 애트리뷰트 이름들은 R의 애트리뷰트들의 이름과 같거나 S의 애트리뷰트들의 이름과 같음

4.1 관계 대수 πDEPTNO(DEPARTMENT) 예: 차집합 질의 : 소속된 직원이 한 명도 없는 부서의 부서번호를 검색하라. DEPARTMENT DEPTNO DEPTNAME FLOOR 1 영업 8 2 기획 10 3 개발 9 4 총무 RESULT 1 DEPTNO 1 2 3 4 πDEPTNO(DEPARTMENT)

RESULT 3 ← RESULT 1 - RESULT 2 4.1 관계 대수 EMPLOYEE EMPNO EMPNAME TITLE MANAGER SALARY DNO 2106 김창섭 대리 1077 2500000 2 3426 박영권 과장 4377 3000000 1 3011 이수민 부장 4000000 3 1003 조민희 3427 최종철 사원 1500000 1365 김상원 이성래 사장 ^ 5000000 πDNO(EMPLOYEE) RESULT 2 DNO 2 1 3 RESULT 3 ← RESULT 1 - RESULT 2 RESULT 3 DEPTNO 4

4.1 관계 대수 카티션 곱 연산자 카디날리티가 i인 릴레이션 R(A1, A2, ..., An)과 카디날리티가 j인 릴레이션 S(B1, B2, ..., Bm)의 카티션 곱 R × S는 차수가 n+m이고, 카디날리티가 i*j이고, 애트리뷰트가 (A1, A2, ..., An, B1, B2, ..., Bm)이며, R과 S의 튜플들의 모든 가능한 조합으로 이루어진 릴레이션 카티션 곱의 결과 릴레이션의 크기가 매우 클 수 있으며, 사용자가 실제로 원하는 것은 카티션 곱의 결과 릴레이션의 일부인 경우가 대부분이므로 카티션 곱 자체는 유용한 연산자가 아님

4.1 관계 대수 예: 카티션 곱 연산자 질의 : EMPLOYEE 릴레이션과 DEPARTMENT 릴레이션의 카티션 곱을 구하라 EMPNO 2106 3426 3011 EMPNO DEPTNO 2106 2 3426 1 3011 3 1003 3427 1365 4377 RESULT EMPLOYEE x DEPARTMENT DEPARTMENT DEPTNO 1 2

4.1 관계 대수 관계 대수의 완전성 셀렉션, 프로젝션, 합집합, 차집합, 카티션 곱은 관계 대수의 필수적인 연산자 다른 관계 연산자들은 필수적인 관계 연산자를 두 개 이상 조합하여 표현할 수 있음 임의의 질의어가 적어도 필수적인 관계 대수 연산자들만큼의 표현력을 갖고 있으면 관계적으로 완전(relationally complete)하다고 말함

4.1 관계 대수 조인 연산자 두 개의 릴레이션으로부터 연관된 튜플들을 결합하는 연산자 관계 데이터베이스에서 두 개 이상의 릴레이션들의 관계를 다루는데 매우 중요한 연산자 세타 조인(theta join), 동등 조인(equijoin), 자연 조인(natural join), 외부 조인(outer join), 세미 조인(semijoin) 등

4.1 관계 대수 세타 조인과 동등 조인 두 릴레이션 R(A1, A2, ..., An)과 S(B1, B2, ..., Bm)의 세타 조인의 결과는 차수가 n+m이고, 애트리뷰트가 (A1, A2, ..., An, B1, B2, ..., Bm)이며, 조인 조건을 만족하는 튜플들로 이루어진 릴레이션 세타는 {=, <>, <=, <, >=, >} 중의 하나 동등 조인은 세타 조인 중에서 비교 연산자가 ( ) 인 조인

EMPLOYEE DNO=DEPTNO DEPARTMENT 4.1 관계 대수 예: 동등조인 질의 : EMPLOYEE 릴레이션과 DEPARTMENT 릴레이션을 동등 조인 구하라 EMPLOYEE EMPNO EMPNAME DNO 2106 김창섭 2 3426 박영권 1 3011 이수민 3 1003 조민희 3427 최종철 DEPARTMENT DEPTNO DEPTNAME 1 영업 2 기획 3 개발 4 총무 EMPLOYEE DNO=DEPTNO DEPARTMENT RESULT EMPNO EMPNAME DNO 2106 김창섭 2 3426 박영권 1 3011 이수민 3 1003 조민희 3427 최종철 DEPTNO DEPTNAME 2 기획 1 영업 3 개발

4.1 관계 대수 자연 조인 동등 조인의 결과 릴레이션에서 조인 애트리뷰트를 한 개 제외한 조인 여러 가지 조인 연산자들 중에서 가장 자주 사용됨 실제로 관계 데이터베이스에서 대부분의 질의는 셀렉션, 프로젝션, 자연 조인으로 표현 가능

EMPLOYEE * DNO,DEPTNO DEPARTMENT 4.1 관계 대수 예: 자연조인 질의 : EMPLOYEE 릴레이션과 DEPARTMENT 릴레이션을 자연 조인 구하라 EMPLOYEE EMPNO EMPNAME DNO 2106 김창섭 2 3426 박영권 1 3011 이수민 3 1003 조민희 3427 최종철 DEPARTMENT DEPTNO DEPTNAME 1 영업 2 기획 3 개발 4 총무 EMPLOYEE * DNO,DEPTNO DEPARTMENT RESULT EMPNO EMPNAME DNO 2106 김창섭 2 3426 박영권 1 3011 이수민 3 1003 조민희 3427 최종철 DEPTNAME 기획 영업 개발

4.1 관계 대수 디비전 연산자 차수가 n+m인 릴레이션 R(A1, A2, ..., An, B1, B2, ..., Bm)과 차수가 m인 릴레이션 S(B1, B2, ..., Bm)의 디비전 R ÷ S는 차수가 n이고, S에 속하는 모든 튜플 u에 대하여 튜플 tu(튜플 t와 튜플 u을 결합한 것)가 R에 존재하는 튜플 t들의 집합

4.1 관계 대수    예: 디비젼 RESULT1 RESULT2 RESULT3 C A# a1 a4 AB A# B# a1

πEMPNAME, SALARY(бDNO=2 OR DNO=3(EMPLOYEE)) 4.1 관계 대수 관계 대수 질의의 예 예: 셀렉션, 프로젝션 질의 : 2번 부서나 3번 부서에 근무하는 모든 사원들의 이름과 급여를 검색하라. EMPLOYEE(EMPNO, EMPNAME, TITLE, MANAGER, SALARY, DNO) DEPARTMENT(DEPTNO, DEPTNAME, FLOOR) πEMPNAME, SALARY(бDNO=2 OR DNO=3(EMPLOYEE)) 예: 셀렉션, 프로젝션, 조인 질의 : 개발 부서에서 근무하는 모든 사원들의 이름을 검색하라. πEMPNAME(EMPLOYEE DNO=DEPTNO (бDEPTNAME=‘개발’(DEPARTMENT)))

4.1 관계 대수 관계 대수의 한계 관계 대수는 ( ) 연산을 할 수 없음 정렬을 나타낼 수 없음 관계 대수는 ( ) 연산을 할 수 없음 ( ) 함수(aggregate function)를 지원하지 않음 정렬을 나타낼 수 없음 데이터베이스를 수정할 수 없음 프로젝션 연산의 결과에 ( ) 튜플을 나타내는 것이 필요할 때가 있는데 이를 명시하지 못함

AVGSALARY(EMPLOYEE)  2,928,571 4.1 관계 대수 추가된 관계 대수 연산자 집단 함수 예: 집단합수 질의 : 모든 사원들의 급여 평균은 얼마인가? EMPLOYEE EMPNO … SALARY DNO 2106 2500000 2 3426 3000000 1 3011 4000000 3 1003 3427 1500000 1365 4377 5000000 AVGSALARY(EMPLOYEE)  2,928,571

DNOgAVG(SALARY)(EMPLOYEE) 4.1 관계 대수 추가된 관계 대수 연산자(계속) 그룹화 예: 그룹화 질의 : 각 부서별 사원들의 급여 평균은 얼마인가? EMPLOYEE EMPNO … SALARY DNO 2106 2500000 2 3426 3000000 1 3011 4000000 3 1003 3427 1500000 1365 4377 5000000 RESULT DNO AVG(SALARY) 1 2250000 2 3500000 3 2750000 DNOgAVG(SALARY)(EMPLOYEE)

4.1 관계 대수 추가된 관계 대수 연산자(계속) 외부 조인 상대 릴레이션에서 대응되는 ( ) 갖지 못하는 튜플이나 조인 애트리뷰트에 ( ) 들어 있는 튜플들을 다루기 위해서 조인 연산을 확장한 조인 두 릴레이션에서 대응되는 튜플들을 결합하면서, 대응되는 튜플을 갖지 않는 튜플과 조인 애트리뷰트에 널값을 갖는 튜플도 결과에 포함시킴 왼쪽 외부 조인(left outer join), 오른쪽 외부 조인(right outer join), 완전 외부 조인(full outer join)

4.1 관계 대수 왼쪽 외부 조인 릴레이션 R과 S의 왼쪽 외부 조인 연산은 R의 모든 튜플들을 결과에 포함시키고, 만일 릴레이션 S에 관련된 튜플이 없으면 결과 릴레이션에서 릴레이션 S의 애트리뷰트들은 널값으로 채움 예: 자연조인과 왼쪽 외부 조인 R과 S의 자연 조인 R A B C a1 b1 c1 a2 b2 c2 S C D E c1 d1 e1 c3 d2 e2 RESULT A B C D E a1 b1 c1 d1 e1 R * S R과 S의 왼쪽 외부 조인 R A B C a1 b1 c1 a2 b2 c2 S C D E c1 d1 e1 c3 d2 e2 RESULT A B C D E a1 b1 c1 d1 e1 a2 b2 c2 ^ R S

4.1 관계 대수 오른쪽 외부 조인 릴레이션 R와 S의 오른쪽 외부 조인 연산은 S의 모든 튜플들을 결과에 포함시키고, 만일 릴레이션 R에 관련된 튜플이 없으면 결과 릴레이션에서 릴레이션 R의 애트리뷰트들은 널값으로 채움 예: R과 S의 오른쪽 외부 조인 R A B C a1 b1 c1 a2 b2 c2 S C D E c1 d1 e1 c3 d2 e2 RESULT A B C D E a1 b1 c1 d1 e1 ^ c3 d2 e2 R S

4.1 관계 대수 완전 외부 조인 릴레이션 R와 S의 완전 외부 조인 연산은 R과 S의 모든 튜플들을 결과에 포함시키고, 만일 상대 릴레이션에 관련된 튜플이 없으면 결과 릴레이션에서 상대 릴레이션의 애트리뷰트들은 널값으로 채움 예: 완전 외부 조인 R A B C a1 b1 c1 a2 b2 c2 S C D E c1 d1 e1 c3 d2 e2 RESULT A B C D E a1 b1 c1 d1 e1 a2 b2 c2 ^ c3 d2 e2 R S