관계형 데이타 모델 관계형 데이타베이스 관계 대수

Slides:



Advertisements
Similar presentations
02 SQL 언어 SQL 명령문의 종류와 사용 방법 오라클 오류 메시지.
Advertisements

최윤정 Java 프로그래밍 클래스 상속 최윤정
Entity Relationship Diagram
4. 관계 데이터베이스 (Relational Database)
제 09 장 데이터베이스와 MySQL 학기 인터넷비즈니스과 강 환수 교수.
MySQL 및 Workbench 설치 데이터 베이스.
데이터베이스 및 설계 금오공과대학교 컴퓨터공학부 이 이섭.
6 장. ER-관계 사상에 의한 관계 데이터베이스 설계
테이블 : 데이터베이스를 구성하는 요소로 같은 성격에 정보의 집합체. 레코드 : 하나의 정보를 가지고 있는 컬럼의 집합체
오브젝트 조합 회로 IT CookBook, VHDL을 이용한 디지털 회로 입문.
ALLPPT.com _ Free PowerPoint Templates, Diagrams and Charts
07 그룹 함수 그룹 함수의 개념 그룹 함수의 종류 데이터 그룹 생성 HAVING 절.
2장. 관계 데이터 모델과 제약조건 관계 데이터 모델은 지금까지 제안된 데이터 모델들 중에서 가장 개념이 단순한 데이터 모델의 하나 IBM 연구소의 E.F. Codd가 1970년에 관계 데이터 모델을 제안함 관계 데이터 모델을 최초로 구현한 가장 중요한 관계 DBMS 시제품은.
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
4장. 관계 대수와 SQL SQL 관계 데이터 모델에서 지원되는 두 가지 정형적인 언어 어느것을 기본으로 만들것인가
13 인덱스 인덱스의 개념 인덱스의 구조 인덱스의 효율적인 사용 방법 인덱스의 종류 및 생성 방법 인덱스 실행 경로 확인
관계 대수.
5장. 관계대수와 관계 해석 관계 대수 릴레이션들을 다루는 연산들의 집합 검색 요구(질의)를 기술하는 데에 사용
08. 데이터 모델링.
관계 데이터 구조.
                              데이터베이스 프로그래밍 (소프트웨어 개발 트랙)                               퍼스널 오라클 9i 인스톨.
23장. 구조체와 사용자 정의 자료형 2.
1. 관계 데이터 언어 관계 대수 1) 관계대수 정의 ① 원하는 정보와 그 정보를 어떻게 유도하는가를 기술하는 절차적 인 방법 ② 주어진 관계로 부터 원하는 관계를 얻기 위해 연산자와 연산 규칙을 제공하는 언어 ③ 릴레이션 조작을 위한 연산의 집합으로 피연산자와 결과가.
01 데이타베이스 개론 데이타베이스의 등장 배경 데이타베이스의 발전 과정 데이타베이스의 정의 데이타베이스의 특징
13 인덱스 인덱스의 개념 인덱스의 구조 인덱스의 효율적인 사용 방법 인덱스의 종류 및 생성 방법 인덱스 실행 경로 확인
DBMS 기능 DBMS 구성 요소 물리적 저장 구조
JA A V W. 03.
함수적 종속과 정규화 함수적 종속 데이터 중복의 문제점 정규형.
POWER POINT PRESENTATION
Visual Basic .NET MDI 만들기.
Java의 정석 제 5 장 배 열 Java 정석 남궁성 강의 의
관계 데이터 모델과 관계 데이터베이스 제약 조건
ER-관계 사상에 의한 관계 데이터베이스 설계
15장 컬렉션 프레임워크 Section 1 컬렉션 프레임워크의 개요 Section 2 리스트 Section 3 셋
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
1. 입력 데이터 대학, 학과: 대학이 존재하지 않을 경우 학과명을 대학에 입력 학과명은 공백으로 유지
2장. 변수와 타입.
Chapter 03. 관계 데이터베이스 설계.
05. Relational DBMS 명지대학교 ICT 융합대학 김정호.
합집합과 교집합이란 무엇인가? 01 합집합 두 집합 A, B에 대하여 A에 속하거나 B에 속하는 모든 원소로 이루어진 집합을 A와 B의 합집합이라고 하며, 기호 A∪B로 나타낸다. A∪B ={x | x∈A 또는 x∈B}
Database Management System
5강. 배열 배열이란? 배열의 문법 변수와 같이 이해하는 배열의 메모리 구조의 이해 레퍼런스의 이해 다차원 배열
7장. 릴레이션 정규화 릴레이션 정규화 부주의한 데이터베이스 설계는 제어할 수 없는 데이터 중복을 야기하여 여러 가지 갱신 이상(update anomaly)을 유발함 어떻게 좋은 데이터베이스 설계를 할 것인가? 데이터베이스에 어떤 릴레이션들을 생성할 것인가? 각 릴레이션에.
CHAP 21. 전화, SMS, 주소록.
문성우 SQL 실습 Part Ⅰ 문성우.
제 3 장 관계 데이터 모델 1. 개요 2. 기본 개념 3. 관계 데이터 제약.
4장. 데이터 표현 방식의 이해. 4장. 데이터 표현 방식의 이해 4-1 컴퓨터의 데이터 표현 진법에 대한 이해 n 진수 표현 방식 : n개의 문자를 이용해서 데이터를 표현 그림 4-1.
KPP 고지서 출력 방법 대학홈페이지 -> 스마트키 로그인 -> 통합정보(PC용)
제 8 장 ER-관계 사상에 의한 관계 데이타베이스 설계
Part 2 개념적 데이터 모델 Copyright © 2006 by Ehan Publishing Co. All rights reserved.
Chapter 10 데이터 검색1.
멀티미디어시스템 제 5 장. 멀티미디어 데이터베이스 개념 IT응용시스템공학과 김 형 진 교수.
11장 배열 1. 배열이란? 1.1 배열의 개요 1.2 배열의 선언과 사용.
ER-관계 사상에 의한 관계데이터베이스 설계 충북대학교 구조시스템공학과 시스템공학연구실
Numerical Analysis Programming using NRs
07. DB 설계 명지대학교 ICT 융합대학 김정호.
Chapter 2: Intro to Relational Model
9장. spss statistics 20의 데이터 변수계산
ER-관계 사상에 의한 관계 데이터베이스 설계
 6장. SQL 쿼리.
                              데이터베이스 설계 및 실습 #6 - SQL 실습 한국외국어대학교 DaPS 연구실                              
버스와 메모리 전송 버스 시스템 레지스터와 레지스터들 사이의 정보 전송을 위한 경로
(Permutations and Combinations)
관계 대수 Chapter 4, Part A The slides for this text are organized into chapters. This lecture covers relational algebra from Chapter 4. The relational calculus.
6 객체.
데이터베이스 설계 데이터의 분석 개체 관계.
장바구니 수강신청 제도 안내 장바구니 수강신청
8장. 데이터베이스 설계 데이터베이스 설계 단계 요구 사항 분석 개념적 설계 논리적 설계 물리적 설계와 구현.
교과서 78쪽 학습 목표 정보 관리의 필요성을 이해할 수 있다. 데이터베이스의 개념과 필요성을 이해할 수 있다.
Presentation transcript:

관계형 데이타 모델 관계형 데이타베이스 관계 대수 제 2장 관계형 데이타베이스 관계형 데이타 모델 관계형 데이타베이스 관계 대수

2.1 관계형 데이타 모델 데이타모델 물리적 혹은 추상적으로 존재하는 현실세계를 단순화되고 정형화된 형태로 표현하는 하나의 방식 또는 규범 정형화: 정해진 형식을 사용함 예) 수학식, 표, 회로도, flow chart와 같이 표현 형식이 정해진 방법을 사용함 단순화 (=추상화)과정을 어떻게 할 것인가? 자전거의 추상화 Copyright  2002 by S.-g. Lee and J.-y. Chang

2.1.1 릴레이션의 개념(1) 관계형 데이타 모델(relational data model) 표(테이블)형식을 이용하여 데이타들을 정의하고 설명한 모델. 즉, “표”라는 정형화 방법을 사용. 실세계의 데이타를 누구나 직관적으로 이해할 수 있는 형태로 기술할 수 있는 간단한 방식을 제공. 이름 전화번호 주소 생일 홍길동 880-1234 서울 3월 15일 허재녕 880-9105 8월 23일 이몽룡 887-5362 12월 14일 무엇을 위해 사용하는 가에 따라 여러 방법으로 추상화 할 수 있다. Copyright  2002 by S.-g. Lee and J.-y. Chang

2.1.1 릴레이션의 개념(2) (맨 나중에 설명) 릴레이션(relation or relation instance) 수학적으로, 두 개 이상의 집합으로부터 각 집합을 구성하는 원소들의 순서쌍에 대한 집합을 의미 이름 = {홍길동, 김광식, 박철수, 최용만} 주소 = {서울, 대전, 대구, 부산} ⇒ 순서쌍 : {<홍길동, 서울>, <김광식, 대전>, <박철수, 서울>, <최용만, 부산>} 이름 주소 홍길동 서울 김광식 대전 박철순 대구 최용만 부산 Relation = Table tuple = row attribute = column Copyright  2002 by S.-g. Lee and J.-y. Chang

2.1.1 릴레이션의 개념(3) 속성(attribute: column) 튜플(tuple: row) 릴레이션을 구성하는 각 열 각 값의 의미 부여 Ex) 주소록 릴레이션을 구성하는 속성 이름, 전화번호, 주소, 생일 튜플(tuple: row) 릴레이션의 각 행 하나의 현실을 표현 Ex) 주소록 릴레이션의 한 튜플 <홍길동, 880-1234, 서울, 3월 15일> Copyright  2002 by S.-g. Lee and J.-y. Chang

2.1.1 릴레이션의 개념(4) 도메인(domain) 널(null) 각 속성에 입력 가능한 값들의 데이터 형과 범위, 즉 각 속성이 가질 수 있는 모든 값들의 집합 원자값(atomic value, 더 이상 분리되지 않는 값)이어야 함 예) 주소록의 도메인 이름: 개인 이름들로 구성된 문자열 집합 전화번호: “ddd-dddd”의 형식으로 구성된 문자열의 집합 (d는 0부터9까지의 숫자) 주소: 도시를 나타내는 문자열의 집합 생일: “dd월dd일”로 구성된 문자열의 집합 널(null) 특정 속성에 대한 값을 알지 못하거나 아직 정해지지 않아 입력하지 못한 경우의 속성의 값 0이나 공백 문자 (space)와는 다름 Copyright  2002 by S.-g. Lee and J.-y. Chang

2.1.1 릴레이션의 개념(5) 속성값이 잘못됨 Copyright  2002 by S.-g. Lee and J.-y. Chang

릴레이션 스키마(relation schema, 스키마) 2.1.2 릴레이션 스키마와 릴레이션 인스턴스 릴레이션 스키마(relation schema, 스키마) 릴레이션의 정의에 따라 만들어진 데이타 구조 R(A1, A2, …, An) R : 릴레이션의 이름 A1, A2, …, An : 속성들의 이름 예) 신입생은 학번,…등의 속성으로 구성된다. 스키마: 신입생(학번, 주민등록번호, 이름, 주소, 학과명) R = 신입생: 릴레이션의 이름 A1 = 학번: 속성의 이름 차수 = 5 차수(degree) 릴레이션 스키마에 정의된 속성의 수 차수 = 1 : 단항 릴레이션(unary relation) 차수 = 2 : 이항 릴레이션(binary relation) 차수 = n : n 항 릴레이션(n-ary relation) Copyright  2002 by S.-g. Lee and J.-y. Chang

릴레이션 인스턴스(relation instance, 인스턴스) 릴레이션 스키마에 현실 세계의 데이타를 튜플로 저장한 형태, 릴레이션인스턴스 = 릴레이션 기수(cardinality) 릴레이션 인스턴스의 튜플의 수 학번 주민등록번호 이름 주소 학과명 02302-001 790424-1825409 김광식 서울 전산과 02302-002 790305-1730021 김정현 02302-004 781021-2308302 김현정 대전 02302-005 790902-2704012 대구 02302-006 790715-1524390 박광수 광주 02301-001 771011-1809003 김형석 부산 수학과 02301-002 790825-1506390 박철수 02301-004 백태성 예)신입생 릴레이션의 인스턴스 Copyright  2002 by S.-g. Lee and J.-y. Chang

정리 신입생(학번, 주민등록번호, 이름, 주소, 학과명) 릴레이션이름 속성 튜플 예)신입생 릴레이션의 인스턴스 신입생 학번 02302-001 790424-1825409 김광식 서울 전산과 02302-002 790305-1730021 김정현 02302-004 781021-2308302 김현정 대전 02302-005 790902-2704012 대구 02302-006 790715-1524390 박광수 광주 02301-001 771011-1809003 김형석 부산 수학과 02301-002 790825-1506390 박철수 02301-004 백태성 튜플 예)신입생 릴레이션의 인스턴스 Copyright  2002 by S.-g. Lee and J.-y. Chang

Definition 릴레이션 스키마 = 스키마 릴레이션 인스탄스 = 인스턴스 =릴레이션 = 표 릴레이션 이름 = 표이름 속성 도메인 튜플 차수 원자값 기수 Copyright  2002 by S.-g. Lee and J.-y. Chang

2.1.3 릴레이션의 특성 (매우 중요!!!) 중복된 튜플이 존재하지 않음 튜플간의 순서는 의미가 없음 릴레이션 인스턴스는 튜플들의 집합임 튜플간의 순서는 의미가 없음 튜플 내에서 속성의 순서는 의미가 없음 릴레이션 스키마는 속성들의 집합으로 표현됨 모든 속성은 원자값을 가짐 Note 속성은 중복되도 된다. Copyright  2002 by S.-g. Lee and J.-y. Chang

2.1.4 키 키는 왜 필요한가? 튜플간의 순서가 의미가 없으므로 튜플을 구분하기 위해서는 각 튜플의 값을 이용함 키(key) 속성들의 일부로 각 튜플들을 유일하게 식별해낼 수 있는 식별자(identifier) 예를 들어 신입생 릴레이션의 학번 또는 주민등록번호 속성은 각 튜플간에 유일하므로 키가 될 수 있음 그러나 학과명은 키가 될 수 없음 관계형 데이타 모델에서 특정 튜플을 구별하거나 탐색하기 위한 유일한 방법 Copyright  2002 by S.-g. Lee and J.-y. Chang

수퍼 키, 후보 키, 기본 키 수퍼 키(super key) 후보 키(candidate key) 기본 키(primary key) 아무런 제약 조건 없이 튜플들을 식별할 수 있는 속성의 집합 (주민등록번호) (학번, 주민등록번호) (학번, 주소) (이름, 주소) 등 후보 키(candidate key) 최소한의 속성만으로 구성된 키 (학번) (주민등록번호)(이름, 주소)(전화번호) 기본 키(primary key) 후보 키 중에서 식별자로 정의한 하나의 키 (학번) Copyright  2002 by S.-g. Lee and J.-y. Chang

외래키(foreign key) 다음 스라이드의 예를 먼저 다른 릴레이션의 기본 키를 참조하는 속성집합 두 릴레이션 스키마 R1, R2에 대해, R1의 어떤 속성집합 FK가 다음 두 조건을 만족하면, FK는 R2 의 기본키인 PK를 참조하는 R1의 외래키임 FK의 속성들은 릴레이션 스키마 R2 의 기본 키 PK와 동일한 도메인을 가짐 R1의 각 튜플의 FK값은 R2 의 특정 튜플의 PK값과 일치하거나 널이 됨 여기서 R1 튜플의 FK값이 널이 된다는 것은 알지 못하거나 아직 결정되지 않았다는 것을 의미함 이때, R1 : 참조하는 릴레이션(referencing relation) R2 : 참조되는 릴레이션(referenced relation) Copyright  2002 by S.-g. Lee and J.-y. Chang

외래키의 예(1) 학생 (학번, 주민등록번호, 이름, 주소, 전화번호, 학년, 학과번호) 학과 (학과번호, 학과명, 과사무실, 과사무실 전화번호) 학생 릴레이션에서 학과번호 303은 삽입할 수 없음!!! Copyright  2002 by S.-g. Lee and J.-y. Chang

외래키의 예(2) 자기 자신의 릴레이션을 참조하는 경우 교수 (교수번호, 주민등록번호, 이름, 학과, 학과장번호) 누구인지 모르거나 아직 결정되지 않았음을 의미 Copyright  2002 by S.-g. Lee and J.-y. Chang

기본키가 널이 될 수 있나? 기본 키는 식별자의 기능을 하므로 널이 될 수 없음 예를 들어 두개의 튜플값이 모두 널이면 구분이 불가능함 Copyright  2002 by S.-g. Lee and J.-y. Chang

2.1.5 관계형 데이타베이스 관계형 데이타베이스 관계형 데이타 모델에 기반하여 하나 이상의 릴레이션으로 실세계를 표현한 데이타베이스 실세계를 관계형 데이타 모델이라는 추상적인 도구를 이용하여 표현한 것이지, 릴레이션들을 컴퓨터의 기억 장치에 어떠한 방법으로 저장할 것인가에 대한 물리적인 구조까지 정의한 것은 아님 관계형 데이타베이스가 하나 이상의 릴레이션으로 구성되어 있을 때 데이타베이스 스키마(database schema) : 각각의 릴레이션 스키마의 집합 데이타베이스 인스턴스(database instance) : 릴레이션 스키마들에 대한 릴레이션 인스턴스의 집합 Copyright  2002 by S.-g. Lee and J.-y. Chang

<예제 데이타베이스 (1)> 학사 데이타베이스 스키마 Copyright  2002 by S.-g. Lee and J.-y. Chang

<예제 데이타베이스 (2)> 학생 학과 Copyright  2002 by S.-g. Lee and J.-y. Chang

<예제 데이타베이스 (3)> 교수 교과목 강좌 Copyright  2002 by S.-g. Lee and J.-y. Chang

<예제 데이타베이스 (4)> 수강 Copyright  2002 by S.-g. Lee and J.-y. Chang

2.2 관계 대수 (Relational Algebra) 질의어(query language) 검색, 추가, 삭제, 삽입 등의 데이타 조작을 위한 연산들을 표현하기 위한 언어 절차적 언어(procedural language) 사용자가 원하는 결과를 얻기 위해 수행되어야 할 일련의 절차를 명시해야 하는 언어 예: C, C++와 같은 대부분의 프로그래밍 언어 비절차적 언어(non-procedural language) 수행 절차는 기술하지 않고 사용자가 원하는 결과만을 형식적으로 명시하는 언어 실질적 수행절차는 시스템 내부적으로 결정해야 함 Copyright  2002 by S.-g. Lee and J.-y. Chang

관계형 데이타베이스에서의 대표적 질의어 관계 대수(relational algebra) 절차적 언어 수학에서의 수식구조와 거의 유사 피연산자(operand) : 릴레이션 연산자(operator) 단항 연산자(unary operator) 이항 연산자(binary operator) 관계 해석(relational calculus) 비절차적 언어 이 책에서는 다루지 않음 Copyright  2002 by S.-g. Lee and J.-y. Chang

2.2.1 기본 연산 (1) 선택(select) 하나의 릴레이션에서 주어진 조건을 만족하는 튜플들을 검색하는 기능 형식 조건식(릴레이션) 조건식 비교연산자(<, >, <=, >=, <>)와 부울 연산자(Ú, Ù, NOT)의 조합 예) 학생 릴레이션에서 주소가 “서울”인 튜플을 선택 주소 = “서울”(학생) 예) 1985년 이후에 임용된 부교수들의 튜플을 검색 임용년도 >= 1985 ∧ 직위 = “부교수”(교수) Copyright  2002 by S.-g. Lee and J.-y. Chang

Greek Alphabets 선택 select: s -> s 추출 project: p -> p 재명명 rename: r -> r a b c d e f g h I j k l m n o p q r s t u v w x y z Copyright  2002 by S.-g. Lee and J.-y. Chang

2.2.1 기본 연산 (2) 추출(project) 릴레이션에서 사용자가 원하는 속성만을 결과로 출력하는 연산 형식 속성리스트(릴레이션) 예) 학생 릴레이션에서 학번과 전화번호만을 추출 학번, 전화번호(학생) Copyright  2002 by S.-g. Lee and J.-y. Chang

2.2.1 기본 연산 (3) 예) 학생 릴레이션에서 학과번호를 추출 학과번호 (학생) 중복은 제거하여 출력해야 함 Copyright  2002 by S.-g. Lee and J.-y. Chang

2.2.1 기본 연산 (4) 연산자들의 조합 관계 대수 연산자들은 상호 중첩하여 사용 가능 예) 선택 연산은 교환법칙이 성립 조건식1(조건식2(릴레이션)) = 조건식2(조건식1(릴레이션)) 예) 1985년 이후에 임용된 부교수들의 튜플을 검색 임용년도 >= 1985(직위 = “부교수”(교수)) = 임용년도 >= 1985∧직위 = “부교수” (교수) = 직위 = “부교수”(임용년도 >= 1985(교수)) Copyright  2002 by S.-g. Lee and J.-y. Chang

2.2.1 기본 연산 (5) 예) 중첩된 추출 연산 일반적으로 선택과 추출 연산의 조합으로 표현 이름, 주소 ( 이름, 주소, 전화번호 (교수)) = 이름, 주소 (교수) 이름, 주소, 전환번호 ( 이름, 주소 (교수)) <- 잘못된 연산 일반적으로 선택과 추출 연산의 조합으로 표현 예) 1985년 이후에 임용된 부교수들의 이름, 주소와 전화번호를 찾는 질의 : 이름, 주소, 전화번호( 임용년도 >= 1985 ∧ 직위 = “부교수” (교수)) Copyright  2002 by S.-g. Lee and J.-y. Chang

2.2.1 기본 연산 (6) 재명명 특정 릴레이션에 이름을 부여하거나 변경하는 역할 형식 R2(R1) R2(A1, A2, …, An)(R1) 예)1985년 이후에 임용된 부교수들의 이름, 주소와 전화번호 해당교수.이름, 해당교수.주소, 해당교수.전화번호(해당교수(임용년도 >= 1985 ∧ 직위 = “부교수”(교수))) 예)강의실이 56-101인 강좌의 교수번호와 수강인원 해당강좌(교수번호, 인원)(교수번호, 수강인원(강의실 = “56-101”(강좌))) Copyright  2002 by S.-g. Lee and J.-y. Chang

2.2.2 집합 연산 (1) 집합연산 수학적 집합 이론에서 정의된 연산 합집합(union) 차집합(minus) 카티션곱(Cartesian product) 교집합(intersection) → 차집합으로 정의할 수 있음 호환 가능한 릴레이션들(compatible relations) 합집합, 차집합, 교집합 연산에서 두 피연산자의 차수와 속성 이름들이 동일해야 하며, 같은 이름의 속성들이라 하더라도 도메인이 일치해야 함 Copyright  2002 by S.-g. Lee and J.-y. Chang

2.2.2 집합 연산 (2) 합집합(∪) 예) 현재 재학중인 학생 또는 재직중인 교수들의 이름과 주소를 찾는 질의 (이름, 주소(학생)) ∪ (이름, 주소(교수)) Copyright  2002 by S.-g. Lee and J.-y. Chang

2.2.2 집합 연산 (3) 차집합(-) 예) 교과목 정보에는 존재하지만 개설된 강좌에는 없는 교과목번호를 찾는 질의 (교과목번호(교과목)) - (교과목번호(강좌)) Copyright  2002 by S.-g. Lee and J.-y. Chang

2.2.2 집합 연산 (4) 카티션곱(X) 두 개의 릴레이션에서 각각의 튜플들을 합쳐 하나의 튜플로 구성하면서 가능한 모든 튜플들의 조합으로 릴레이션을 만드는 연산 릴레이션 R1 릴레이션 R2 R1 X R2 Copyright  2002 by S.-g. Lee and J.-y. Chang

2.2.2 집합 연산 (5) 카티션곱은 하나 이상의 릴레이션으로 부터 검색이 필요한 경우 유용함. 예) 전산과에 소속된 교수들의 이름과 전화번호, 그리고 소속학과의 학과 사무실을 찾는 질의 교수.이름, 교수.전화번호, 학과.사무실(교수.학과번호 = 학과.학과번호 ∧ 학과.학과명 = “전산과”(학과 X 교수)) ※교환법칙, 결합법칙 합집합, 교집합, 카티션곱에서 성립 차집합에서는 성립하지 않음 Copyright  2002 by S.-g. Lee and J.-y. Chang

2.2.3 추가 연산 (1) 교집합(∩) 두 릴레이션에 공통적으로 포함된 튜플들을 찾는 연산 예) 교수와 학생 중 공통된 주소를 찾는 질의 : (주소(학생)) ∩ (주소(교수)) R ∩ S = R – ( R – S ) = S – ( S – R ) Copyright  2002 by S.-g. Lee and J.-y. Chang

2.2.3 추가 연산 (2) 조인 두 릴레이션으로 부터 특정 조건을 만족하는 튜플들을 하나의 튜플로 결합하는 연산 형식 R1조건식R2 = 조건식(R1 X R2) 조건식: 조인조건(join condition) 조인에 나타나는 조건 동등조인(equijoin) : 속성 간의 동등비교 연산(=) Copyright  2002 by S.-g. Lee and J.-y. Chang

2.2.3 추가 연산 (3) 예)학생과 학생이 소속된 학과에 관한 정보를 추출 학생학생.학과번호 = 학과.학과번호학과 예) 전산과에 소속된 교수의 이름과 전화번호를 출력 교수.이름, 교수.전화번호(학과.학과명 = “전산과” (교수교수.학과번호 = 학과.학과번호학과) ) Copyright  2002 by S.-g. Lee and J.-y. Chang

2.2.3 추가 연산 (4) 자연조인(natural join) 일반적으로 같은 의미의 두 속성에 대한 동등 조인 중 하나의 속성을 제거하여 단순히 표현한 연산 형식 R1R2 = R1∪R2(R1.A1=R2.A1 ∧ R1.A2=R2.A2 ∧ … ∧ R1.An=R2.An(R1 X R2)) 공통되는 속성이 없으면 카티션 곱과 같음 교환법칙과 결합법칙이 성립 예) 학생학과 공통속성에 대해서 동일한 값을 갖는 튜플 쌍이 존재하지 않음 결과는 빈 릴레이션 Copyright  2002 by S.-g. Lee and J.-y. Chang

2.2.3 추가 연산 (5) 예) 미적분학이 개설된 연도와 학기를 출력 연도, 학기(교과목명 = “미적분학”(교과목강좌)) 이 질의는 다음의 두 질의와 동일한 결과를 출력  연도, 학기 (교과목명 = “미적분학” (교과목  교과목.교과목번호=강좌.교과목번호강좌))  연도, 학기 (교과목.교과목번호=강좌.교과목번호 Ù 교과목명 = “미적분학” (교과목 X 강좌)) 자연조인은 카티션곱이나 조인에 비해 단순한 표현 수단을 제공 그러나 모든 카티션곱이나 조인을 자연조인으로 표현할 수는 없음(예:그림 2-22는 자연조인으로 표현이 불가능함) Copyright  2002 by S.-g. Lee and J.-y. Chang

2.2.3 추가 연산 (6) 나누기(division) 예) Copyright  2002 by S.-g. Lee and J.-y. Chang

2.2.3 추가 연산 (7) 나누기 정의 예) 수강인원 40명인 강좌를 모두 수강한 학생을 출력 R  S = R-S(R) - R-S((R-S(R) X S) - R-S, S(R)) 예) 수강인원 40명인 강좌를 모두 수강한 학생을 출력 수강인원 40인 강좌찾기 교과목번호, 연도, 학기(수강인원 = 40(강좌)) 수강 릴레이션으로 위의 질의 결과에 대해 나누기 수강  (교과목번호, 연도, 학기(수강인원 = 40(강좌))) 여기서 학번만을 추출 : 학번(수강  (교과목번호, 연도, 학기(수강인원 = 40(강좌)))) Copyright  2002 by S.-g. Lee and J.-y. Chang

2.2.3 추가 연산 (8) 지정(assignment) 복잡한 질의를 여러 개의 질의로 분리하거나 중간 결과에 이름을 부여 최종 질의를 결과에 이름을 부여 예) 3학년 학생을 선택하여 결과에 “3학년”이란 이름을 부여 3학년 ←  학년= 3 (학생) 예) 수강인원 40명인 강좌를 모두 수강한 학생 temp1 ← 교과목번호, 연도, 학기(수강인원 = 40(강좌)) temp2 ← 수강  temp1 학번(temp2) Copyright  2002 by S.-g. Lee and J.-y. Chang

질의 예(1) Copyright  2002 by S.-g. Lee and J.-y. Chang

질의 예(2) Copyright  2002 by S.-g. Lee and J.-y. Chang