5장. 관계대수와 관계 해석 관계 대수 릴레이션들을 다루는 연산들의 집합 검색 요구(질의)를 기술하는 데에 사용

Slides:



Advertisements
Similar presentations
제 3 장 개체 - 관계 (ER) 모델을 사용한 데이타 모델링 Fundamentals of Database Systems R. A. Elmasri and S. B. Navathe Copyright© 2002 황규영 홍의경 음두헌 박영철 김진호 조완섭.
Advertisements

1 3 장. 개체 - 관계 (ER) 모델을 사용한 데이타 모델링 3.1 데이타베이스 설계를 위한 고수준의 개념적 데이타 모델의 사용 3.2 예 3.3 ER 모델의 개념 3.4 개체 - 관계 ( ER ) 다이어그램에 대한 표기법 3.5 스키마 구조물들에 대한 적절한 이름.
제 4 장 관계 데이타 모델과 관계 데이타베이스 제약조건
1. 관계 데이터베이스의 정규화 (1) 정규화 1) 이상(anomaly) ① 이상의 정의 • 관계 모델에서는 애트리뷰트들 간에 존재하는 여러 종속관계를 하나의 릴레이션에 표현하기 때문에 릴레이션 조작 시 이상 (anomaly) 발생 • 데이터의 중복으로 인하여 관계연산을.
관계 대수와 SQL SQL.
Chapter 5 SQL: 확장된 질의, 주장, 트리거, 뷰.
4.2 SQL 개요 SQL 개요 SQL은 현재 DBMS 시장에서 관계 DBMS가 압도적인 우위를 차지하는데 중요한 요인의 하나
SQL: 데이터 정의, 제약사항, 기본 질의와 갱신
SQL-99: 스키마 정의, 기본제약조건, 질의어 충북대학교 구조시스템공학과 시스템공학연구실
관계 대수와 SQL SQL.
8장. 뷰와 시스템 카탈로그 뷰와 시스템 카탈로그 관계 데이터베이스 시스템의 뷰(view)는 다른 릴레이션으로부터 유도된 릴레이션(derived relation)으로서 ANSI/SPARC 3단계 아키텍처의 외부 뷰와 다름 뷰는 관계 데이터베이스 시스템에서 데이터베이스의.
8장 서브 쿼리.
질의처리 최적화 충북대학교 정보통신공학부 복경수
제 3 장 엔티티-관계(ER) 모델을 사용한 데이타 모델링
MySQL 및 Workbench 설치 데이터 베이스.
관계형 데이타 모델 관계형 데이타베이스 관계 대수
6 장. ER-관계 사상에 의한 관계 데이터베이스 설계
제 6 장 관계 대수와 관계 해석 Fundamentals of Database Systems
관계 해석(Relational Calculus)
기본적인 SELECT문 작성.
데이터베이스 (Database) 관계 데이터베이스의 함수적 종속성과 정규화 문양세 강원대학교 IT대학 컴퓨터과학전공.
테이블 : 데이터베이스를 구성하는 요소로 같은 성격에 정보의 집합체. 레코드 : 하나의 정보를 가지고 있는 컬럼의 집합체
제 13 장 질의 처리와 최적화를 위한 알고리즘 Fundamentals of Database Systems
제 13 장 관계 데이타베이스의 함수적 종속성과 정규화 기본 이론
9 장. 관계 데이타베이스의 함수적 종속성과 정규화 9.1 릴레이션 스키마를 설계하는 몇 가지 개략적인 지침
ALLPPT.com _ Free PowerPoint Templates, Diagrams and Charts
07 그룹 함수 그룹 함수의 개념 그룹 함수의 종류 데이터 그룹 생성 HAVING 절.
2장. 관계 데이터 모델과 제약조건 관계 데이터 모델은 지금까지 제안된 데이터 모델들 중에서 가장 개념이 단순한 데이터 모델의 하나 IBM 연구소의 E.F. Codd가 1970년에 관계 데이터 모델을 제안함 관계 데이터 모델을 최초로 구현한 가장 중요한 관계 DBMS 시제품은.
3.2 SQL Server 설치 및 수행(계속) 시스템 데이터베이스 master
4장. 관계 대수와 SQL SQL 관계 데이터 모델에서 지원되는 두 가지 정형적인 언어 어느것을 기본으로 만들것인가
13 인덱스 인덱스의 개념 인덱스의 구조 인덱스의 효율적인 사용 방법 인덱스의 종류 및 생성 방법 인덱스 실행 경로 확인
관계 대수.
관계 데이터 구조.
데이터베이스 (Databases) ER 모델을 사용한 데이터 모델링 문양세 강원대학교 IT대학 컴퓨터과학전공.
제 10 장 관계 데이타베이스 설계 알고리즘과 추가적인 정규형
1. 관계 데이터 언어 관계 대수 1) 관계대수 정의 ① 원하는 정보와 그 정보를 어떻게 유도하는가를 기술하는 절차적 인 방법 ② 주어진 관계로 부터 원하는 관계를 얻기 위해 연산자와 연산 규칙을 제공하는 언어 ③ 릴레이션 조작을 위한 연산의 집합으로 피연산자와 결과가.
5. 관계대수와 관계해석 ( Relational Operations: 관계연산)- 9장

데이터베이스 (Databases) 관계 데이터베이스의 함수적 종속성과 정규화 문양세 강원대학교 IT대학 컴퓨터과학전공.
01 데이타베이스 개론 데이타베이스의 등장 배경 데이타베이스의 발전 과정 데이타베이스의 정의 데이타베이스의 특징
제7장 SQL-99: 스키마 정의, 제약조건, 질의어, 뷰
제 3 장 관계 데이타 모델과 관계 데이타베이스 제약조건
13 인덱스 인덱스의 개념 인덱스의 구조 인덱스의 효율적인 사용 방법 인덱스의 종류 및 생성 방법 인덱스 실행 경로 확인
문양세 (1st version: 문성우) (revised by 손시운)
제 7 장 엔터티-관계를 사용한 개념적 데이타 모델링
환경 설정 예제 데이터베이스 생성 - 그림 3.34의 SQL Server 관리 스튜디오 창의 왼쪽 영역의 데이터베
자료구조: CHAP 7 트리 –review 순천향대학교 컴퓨터공학과 하 상 호.
관계 데이터 모델과 관계 데이터베이스 제약 조건
ER-관계 사상에 의한 관계 데이터베이스 설계
데이터베이스 (Database) SQL-99: 스키마 정의, 기본 제약조건, 질의어 문양세 강원대학교 IT대학 컴퓨터과학전공.
Chapter 03. 관계 데이터베이스 설계.
05. Relational DBMS 명지대학교 ICT 융합대학 김정호.
7장. 릴레이션 정규화 릴레이션 정규화 부주의한 데이터베이스 설계는 제어할 수 없는 데이터 중복을 야기하여 여러 가지 갱신 이상(update anomaly)을 유발함 어떻게 좋은 데이터베이스 설계를 할 것인가? 데이터베이스에 어떤 릴레이션들을 생성할 것인가? 각 릴레이션에.
CHAP 21. 전화, SMS, 주소록.
문성우 SQL 실습 Part Ⅰ 문성우.
제 8 장 ER-관계 사상에 의한 관계 데이타베이스 설계
Part 2 개념적 데이터 모델 Copyright © 2006 by Ehan Publishing Co. All rights reserved.
데이터베이스 (Database) 관계 대수와 관계 해석 (Part 1) 문양세 강원대학교 IT대학 컴퓨터과학전공.
Chapter 10 데이터 검색1.
ER-관계 사상에 의한 관계데이터베이스 설계 충북대학교 구조시스템공학과 시스템공학연구실
7장 테이블 조인하기.
07. DB 설계 명지대학교 ICT 융합대학 김정호.
Chapter 2: Intro to Relational Model
ER-관계 사상에 의한 관계 데이터베이스 설계
 6장. SQL 쿼리.
1. 데이타베이스의 개념.
                              데이터베이스 설계 및 실습 #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.
교과서 78쪽 학습 목표 정보 관리의 필요성을 이해할 수 있다. 데이터베이스의 개념과 필요성을 이해할 수 있다.
Presentation transcript:

5장. 관계대수와 관계 해석 관계 대수 릴레이션들을 다루는 연산들의 집합 검색 요구(질의)를 기술하는 데에 사용 관계 데이터베이스에서 명세할 수 있는 요청들의 유형 이해 및 질의 처리 최적화에 이용 됨

[그림 4.6] COMPANY 스키마의 관계 데이터베이스 인스턴스

5.1.1 실렉트(SELECT) 연산 SELECT 연산 (σ로 표기) 연산 형식: σ<선택조건>(<릴레이션이름>) <선택조건>: <애트리뷰트이름> <비교연산자> <상수값>, <애트리뷰트이름> <비교연산자> <애트리뷰트이름> 과 논리 연산자 AND, OR, NOT의 조합 * 비교 연산자:  ,, ,,, 결과는 애트리뷰트 값들이 <선택조건>을 만족하는 투플들로 구성 된 릴레이션.

예제1 : σDno=4 (EMPLOYEE) 예제 2: Fname Minit Lname Ssn Bdate Address Sex Salary Super_ssn Dno Alicia J Zelaya 999887777 1968-01-19 3321 Castle, Spring, TX F 25000 987654321 4 Ahmad V Jabbar 987987987 1969-03-29 980 Dallas, Houston, TX M 25000 987654321 4 Jennifer S Wallace 987654321 1941-06-20 291 Berry, Bellaire, TX F 43000 888665555 4 예제 2: σ(Dno=4 AND Salary>25000) OR (Dno=5 AND Salary > 30000) (EMPLOYEE)

5.1.2 프로젝트(PROJECT) 연산 PROJECT 연산 (로 표기): 테이블로부터 어떤 열들을 선택하는 연산 연산 형식: L(R) 즉 <애트리뷰트 리스트>(<릴레이션이름>) 결과 릴레이션은 L에 명시된 R의 애트리뷰트들만 갖는다. 예제: Lname,Fname,Sslary (EMPLOYEE) PROJECT 연산은 결과 릴레이션이 수학적 집합이므로 중복된 투플들을 제거한다. 예) Sex, Salary (EMPLOYEE)

5.1.3 연산의 순서와 이름 변경 연산 몇개의 연산들이 결합되어 관계대수식(질의)을 형성한다. 예) 부서 5에서 일하는 사원들의 이름과 봉급을 검색하라. Fname,Lname,Salary (σDno=5 (EMPLOYEE)) 각 중간 단계의 릴레이션들에 이름을 부여할 수도 있다. DEPT5_EMPS ←σDno=5 (EMPLOYEE) RESULT ← Fname,Lname,Salary (DEPT5_EMPS)

Fname John Franklin Ramesh Joyce Lname Smith Wong Narayn English Fname Minit Lname Ssn Bdate Address Sex Salary Super_ssn Dno Franklin T Wong 333445555 1955-12-08 638 Voss, Houston, TX M 40000 888665555 5 Ramesh K Narayan 666884444 1962-09-15 975 FireOak, Humble, TX M 38000 333445555 5 John B Smith 123456789 1965-01-09 731 Fondren, Houston, TX M 30000 333445555 5 Joyce A English 453453453 1972-07-31 5631 Rice, Houston, TX F 25000 333445555 5 Fname John Franklin Ramesh Joyce Lname Smith Wong Narayn English Salary 30000 40000 38000 25000

결과 릴레이션에 나타나는 애트리뷰트들의 이름을 재명명(rename)할 수도 있다. TEMP ←σDno=5 (EMPLOYEE) R(First_name, Last_name, Salary) ← Fname,Lname,Salary(TEMP) 또는 Temp2 ← Fname,Lname,Salary(TEMP) R ←  (First_name, Last_name, Salary) (TEMP2)

5.2 집합이론과 관계 대수 연산 수학적 집합 이론에서의 이진 연산 합집합: R1∪R2 교집합: R1∩R2 차집합: R1-R2

연산 ∪,∩,-에 대하여, 피연산자 릴레이션 R1(A1,A2,. ,An)과 R2(B1,B2, 연산 ∪,∩,-에 대하여, 피연산자 릴레이션 R1(A1,A2,...,An)과 R2(B1,B2,...,Bn)는 애트리뷰트들의 갯수가 같고 대응되는 애트리뷰트들의 도메인이 호환성을 갖아야 한다. 즉, i=1,2,...,n에 대하여 dom(Ai) = dom(Bi)이다. 연산 ∪,∩,-의 결과 릴레이션은 피연산자 릴레이션 R1과 같은 애트리뷰트 이름들을 갖는다.

예: 5번 부서에서 일하거나 5번 부서에서 근무하는 사원들을 감독하는 모든 사원들의 주민 등록 번호 검색 DEPT5_EMPS ←σDno=5 (EMPLOYEE) RESULT1 ← Ssn (DEPT5_EMPS) RESULT2(Ssn) ← Super_ssn (DEPT5_EMPS) RESULT  RESULT1 ∪ RESULT2

카티션 프로덕트 (CARTESIAN PRODUCT) R1(A1, A2, …, Am) × R2(B1, B2, …, Bn)  R(A1, A2, …, Am, B1, B2, …, Bn) R1(A1,A2,...,Am)×R2 (B1,B2,...,Bn)의 결과 릴레이션 R은 R1의 투플과 R2 의 투플의 모든 조합에 대한 투플을 가짐. R1이 n1개의 투플을, R2가 n2개의 투플을 갖는다면, R은 n1*n2 개의 투플을 갖는다.

예) DEPARTMENT×EMPLOYEE DNAME DNUMBER MGRSSN …... FNAME ...... SSN …... DNO Research 5 333445555 …... John …... 123456789 ...... 5 Research 5 333445555 …... Franklin ...... 333445555 …... 5 …… …… …… …… …… …… …… …… …... Research 5 333445555 …... James ...... 888665555 ...… 1 Administration 4 987654321 …... John ...... 123456789 ...… 5 …… …… …… …… …… …… …… …… …... Administration 4 987654321 …… Jennifer …… 987654321 …… 4 …… …… …… …… …… …… …… …… …... Headquarters 1 888665555 …... James ...... 888665555 ...… 1

카티션 프로덕트는 적절한 SELECT 연산과 함께 사용되면 두 릴레이션에서의 관련된 투플들을 조합할 수 있다. 예제: 모든 DEPARTMENT 투플과 그 부서장의 EMPLOYEE 투플을 조합하라. DEP_EMP ← DEPARTMENT×EMPLOYEE DEPT_MANAGER ← σMgr_ssn=Ssn(DEP_EMP)

σMgr_ssn=Ssn(DEP_EMP) Dname Dnumber Mgr_ssn …... Fname ...... Ssn …… Dno Research 5 333445555 …... Franklin ...... 333445555 …... 5 Administration 4 987654321 …… Jennifer …… 987654321 …… 4 Headquarters 1 888665555 …... James ...... 888665555 ...… 1

예제: 모든 여자 사원들에 대하여 그들의 부양 가족들의 이름 검색 FEMALE_EMPS ← σSex=‘F’(EMPLOYEE) EMPNAMES ← Fname, Lname, Ssn(FEMALE_EMPS) EMP_DEPENDENTS ← EMPNAMES× DEPENDENT ACTUAL_DEPENDS ← σSsn=Essn(EMP_DEPENDENTS) RESULT ← Fname, Lname, Dependent_name(ACTUAL_DEPENDS)

5.3.1 조인(JOIN) 연산 조인 연산은 릴레이션들간의 관계를 처리할 수 있게 해주는 연산 두 릴레이션 R(A1,A2,...,Am)과 S(B1,B2,...,Bn)에 대한 조인 연산의 일반적 형태는 R <조인조건>S 조인 결과는 n+m개의 애트리뷰트들을 순서대로 갖는 릴레이션 Q(A1,A2,...,Am,B1,B2,...,Bn)으로 R과 S의 투플들의 모든 조합 중 조인 조건을 만족하는 투플로 구성

예제: 모든 부서의 이름과 그 부서의 관리자의 이름 검색 DEPT_MGR ← DEPARTMENT Mgr_ssn=SsnEMPLOYEE RESULT ← Dname, Lname, Fname(DEPT_MGR) 조인 연산은 실렉트가 따라오는 카티션 프로덕트와 유사 TEMP_DEPT_MGR ← DEPARTMENT× EMPLOYEE DEPT_MGR ← σMgr_ssn=Ssn(TEMP_DEPT_MGR)

5.3.2 동등 조인과 자연 조인 조인 조건 <조건> AND <조건> AND … AND <조건> 각 조건의 형태는 Ai θ Bj 이며, Ai 는 R의 애트리뷰트, Bj 는 S의 애트리뷰트임 조인 조건에 사용된 속성 (Ai 와 Bj 를 조인 속성이라고 부름) Theta Join 일반적인 조인 조건(>, =, < 등)을 가진 조인 연산

조인 조건에서 동등 비교(equality comparison) 만을 사용하는 조인 EQUIJOIN 조인 조건에서 동등 비교(equality comparison) 만을 사용하는 조인 EQUIJOIN 사용 예제: 모든 DEPARTMENT의 이름과 그 관리자의 이름을 검색하라: T ← DEPARTMENT Mgr_ssn=Ssn EMPLOYEE RESULT ← ΠDname,Fname,Lname(T)

자연 조인 (NATURAL JOIN) (*): EQUIJOIN의 결과에는 두 조인속성의 값이 중복되어 나타남 조인 결과에서 조인 속성 하나를 제거하여 중복된 값이 나타나지 않도록 한 조인을 자연조인이라고 함 표시법 : R ← R1*(R1의 조인 애트리뷰트들),(R2의 조인 애트리뷰트들) R2 예제: 모든 EMPLOYEE의 이름과 그의 DEPARTMENT 이름을 검색하라 T ← EMPLOYEE *(Dno),(Dnumber) DEPARTMENT RESULT ← ΠFname,Lname,Dname(T)

두 조인 속성이 동일한 이름을 갖는다면 간단히 R ← R1* R2라고 표시함 예제: 모든 EMPLOYEE의 이름과 그 상급자의 이름을 검색하라: SUPERVISOR(Super_ssn,SFN,SLN) // 속성 이름의 변경 ←ΠSsn,Fname,Lname(EMPLOYEE) T ← EMPLOYEE * SUPERVISOR // 자연조인 RESULT ← ΠFname,Lname,SFN,SLN(T)

주의 자연 조인에서는 조인 애트리뷰트들이 양쪽의 릴레이션에서 동일한 이름을 가져야 하며, 그렇지 않는 경우 조인 속성의 이름을 먼저 동일하게 변경해야 함 두 릴레이션에서 하나 이상의 조인 애트리뷰트 쌍이 존재하는 경우 주의가 요망됨

예제: “모든 EMPLOYEE의 이름과 그가 일하는 DEPARTMENT의 이름을 검색하라” 에 대한 자연 조인은 다음과 같이 작성함 DEPT ←  (Dname, Dnum, Mgr_ssn, Mgr_start_date) (DEPARTMENT) PROJ_DEPT ← PROJECT * DEPT // DUNM이 조인속성임; // MGRSSN은 조인속성이 아님

5.3.3 관계대수 연산의 완전집합 최소한의 연산자 집합 지금까지 소개한 모든 연산자는 선택(SELECT), 프로젝트(PROJECT), 합집합(UNION), 차집합(SET DIFFERNECE), 카티션 프로덕트 (CARTESIAN PRODUCT) 연산들 만의 조합으로 표현할 수 있음 연산자 집합 {σ,Π, ∪,-,×}를 관계대수 연산자의 완전 집합(complete set)이라 부름 이 연산자 집합과 동등한 모든 질의 언어들은 관계적으로 완전하다(relationally complete)라고 정의함

추가적으로 유용한 연산자들 디비젼(division) 연산 집단 함수(aggregate functions)와 그룹화(grouping) 연산 외부 조인(OUTER JOIN)과 외부 합집합(OUTER UNION)