제 4 장 관계 데이터 연산 1. 개요 2. 관계 대수 3. 관계 해석.

Slides:



Advertisements
Similar presentations
 수학 10- 나  1 학년 2 학기  Ⅰ. 도형의 방정식 1. 평면좌표 (1/24) 두 점 사이의 거리 수업 계획 수업 활동.
Advertisements

널 (null) 의 처리 널을 검색하는 방법 형식 예 ) takes 테이블에서 아직 학점이 부여되지 않은 학생의 학번을 검색 is null is not null ( 질의 64) select stu_id from takes where grade is null.
SQL 언어 SQL.
데이터베이스 9주차 : 데이터베이스 설계 2교시 : 데이터베이스 설계(3)
Chapter 6: Formal Relational Query Languages
19.(코드+년도+월)별,(코드)별,전체총액을 한번에
데이터베이스 시스템.
5W 1H 현장에서 발생하는 여러 가지 문제를 해결하는 효과적 수법 중에 5W 1H는 문제를 근본적으로 해결하는 방법으로서
Chapter 02. 데이터 모델링.
관계 대수와 SQL.
Sun Mon Tue Wed Thu Fri Sat
2013 January 2012년 도원초 4학년1반 기념 달력 1신정
Second lab (제출기한 : 11월 15일(목) 까지)
대용량 데이터베이스 솔루션 발표자: 박보영 2007년 5월19일.
오라클 데이터베이스 성능 튜닝.
Database & Internet Computing Laboratory 한 양 대 학 교
4장. 관계 대수와 SQL SQL 관계 데이터 모델에서 지원되는 두 가지 정형적인 언어
Part 12 구조체와 공용체 ©우균, 창병모 ©우균, 창병모.
7장 조인.
다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL
DBMS실습(I) 데이터베이스 기본개념 2015년 1학기 동서울대학교 컴퓨터소프트웨어과.
SQL 개요 SQL 개요 - SQL은 현재 DBMS 시장에서 관계 DBMS가 압도적인 우위를 차지하는 데 중요한 요인의 하나
Information Technology
DP&NM Lab Time Table (Spring 2006) MON TUE WED THU FRI SAT 9:00 10:00
 DBMS의 발전 배경(1) 화일 중심 자료처리(DP)시스템의 한계 ☞ Note
관계 데이터 모델과 제약조건 개념, 특성, 키, 무결성 제약조건.
위모트 컨트롤을 이용한 “볼링” 학번: 이름: 김바울.
4.2 SQL 개요 SQL 개요 SQL은 IBM 연구소에서 1974년에 System R이라는 관계 DBMS 시제품을 연구할 때 관계 대수와 관계 해석을 기반으로, 집단 함수, 그룹화, 갱신 연산 등을 추가하여 개발된 언어 1986년에 ANSI(미국 표준 기구)에서 SQL.
2장. 관계 데이터 모델과 제약조건 관계 데이터 모델은 지금까지 제안된 데이터 모델들 중에서 가장 개념이 단순한 데이터 모델의 하나 IBM 연구소에 근무하던 E.F. Codd가 1970년에 관계 데이터 모델을 제안함 관계 데이터 모델을 최초로 구현한 가장 중요한 관계 DBMS.
Database 소개.
C 9장. 구조체 #include <stdio.h> int main(void) { int num;
1. 관계 데이터 언어 관계 대수 1) 관계대수 정의 ① 원하는 정보와 그 정보를 어떻게 유도하는가를 기술하는 절차적 인 방법 ② 주어진 관계로 부터 원하는 관계를 얻기 위해 연산자와 연산 규칙을 제공하는 언어 ③ 릴레이션 조작을 위한 연산의 집합으로 피연산자와 결과가.
SQL.
01 데이터베이스 개론 데이터베이스의 등장 배경 데이터베이스의 발전 과정 데이터베이스의 정의 데이터베이스의 특징
5. 관계대수와 관계해석 관계자료 연산(operation)
이산수학 논리∙명제에서 알고리즘까지 √ 원리를 알면 IT가 맛있다 ehanbit.net.
관계 해석(Relational Calculus)
Chapter 3: Introduction to SQL
★ 2015 석우초 4분기 방과후학교 영어교실 등록안내 ★
1차 발표: 프로젝트 소개 학번: 이름: 이철환.
정보처리기사 8조 신원철 양진원 유민호 이기목 김다연 윤현경 임수빈 조현진.
Project Specification - 학사관리 시스템 과제 2번
November 일 월 화 수 목 금 토
좀비 . 그들과의 전쟁이 시작되었다. 마우스를 이용해서 집을 지킬 식물을 설치
4. 관계 데이터베이스 (Relational Database)- 7, 8장
2장. 관계 데이터 모델과 제약조건 관계 데이터 모델은 지금까지 제안된 데이터 모델들 중에서 가장 개념이 단순한 데이터 모델의 하나 IBM 연구소에 근무하던 E.F. Codd가 1970년에 관계 데이터 모델을 제안함 관계 데이터 모델을 최초로 구현한 가장 중요한 관계 DBMS.
Database 중고차 매매 DB 비즈니스IT 윤동섭.
신제품 개발의 정의 고객의 Needs & Wants 마케팅 활동의 출발은 신제품 개발로부터 시작합니다.
관계 해석(Relational Calculus)
11장. GROUP BY와 HAVING 열의 그룹화 2개 이상의 열에 대한 그룹화
기본적인 SELECT문 작성.
4. 관계 데이터 모델.
관계 기본 개념 관계의 표현 관계의 성질 관계의 연산 관계의 폐포 동치 관계 부분순서 관계.
인천공항 스카이 허브라운지 상세페이지  배송비 부분에서 B2B, B2C 두가지 버전이 필요하며,
학습목표 학습목표 본 장은 데이터베이스를 구성하는 개체, 속성, 관계 등을 다룬다. 특별히 데이터베이스의 구조를 테이블에 기초하여 조직하는 관계 데이터 모델은 개체(entity)와 관계(relationship) 들이 테이블의 집합 형태로 되어 간단하고 이해하기 쉬우며.
1차 발표: 프로젝트 발표 학번: 이름: 권창민 1.
Pre-Production Meeting Book
06. SQL 명지대학교 ICT 융합대학 김정호.
제 3 장 관계 데이터 모델 1. 개요 2. 기본 개념 3. 관계 데이터 제약.
2D 게임 프로그래밍 프로젝트 1차 발표 학번 : 이름 : 김태원.
데이터베이스 (Database) 관계 대수와 관계 해석 (Part 1) 문양세 강원대학교 IT대학 컴퓨터과학전공.
4. 데이타베이스 시스템의 구성.
1차 발표: 프로젝트 발표 학번: 이름: 박진완.
8장. SELECT명령문 : FROM 절 FROM 절에서 테이블 명세 열 명세 다중 테이블 명세 가명 FROM절의 다양한 예제
4장. 관계 대수와 SQL 관계 데이터 모델에서 지원되는 두 가지 정형적인 언어
Chapter 3. 집합론.
POWER POINT TEMPLATE 2019 CALENDAR.
GB ridge 웹 모바일및 빅데이터 응용과정 3주차: 데이터베이스 프로그래밍 [경기도형 대학생 취업브리지 사업]
CHAPTER 4 관계 데이터 모델과 관계 데이터베이스 제약조건. CHAPTER 4 관계 데이터 모델과 관계 데이터베이스 제약조건.
Presentation transcript:

제 4 장 관계 데이터 연산 1. 개요 2. 관계 대수 3. 관계 해석

1. 개 요 관계 데이터 연산 : 1970년 E. F. Codd 가 발표한 관계 데이터 모델에 포함된 연산 방법. 1. 개 요 관계 데이터 연산 : 1970년 E. F. Codd 가 발표한 관계 데이터 모델에 포함된 연산 방법. - 관계 대수 : 관계 데이터베이스의 릴레이션을 조작하기 위하여 절차를 명시하는 절차 언어 (procedural language). - 관계 해석 : 릴레이션에 저장된 어떤 데이터를 조작할 것인지를 명시하는 비절차 언어(nonprocedural language).

관계 데이터 연산 관계 데이터 연산 관계 대수 (Relational Algebra) 관계 해석 (Relational Calculus) 절차 언어 (Procedural language) 어떻게(How)의 관점 비절차 언어 (Nonprocedural language) 무엇(What)의 관점 사용자 입장의 편의성 증대 일반 집합 연산자 순수 관계 연산자 투플 관계 해석 (Tuple Relational Calculus) 도메인 관계 해석 (Domain Relational Calculus)

예제 릴레이션

관계 대수 절차 언어인 관계 대수는 각각 4 가지의 일반 집합(set-theoretic) 연산자와 4가지의 순수 관계(native relational) 연산자로 구성된다 - 일반 집합 연산자 : 관계 데이터베이스의 릴레이션 내의 투플들의 집합을 이용. - 순수 관계 연산자 : 투플들의 구조를 이용.

관계 대수 연산자

관계 대수 연산자의 우선 순위

2. 1 일반 집합 연산 관계 대수의 일반 집합 연산자는 합집합(UNION), 차집합(DIFFERENCE), 교집합(INTERSECTION), 카티션 프로덕트(CARTESIAN PRODUCT) 등이다. 이 중에서 카티션 프로덕트를 제외한 나머지 3가지 연산자는 모두 피연산자인 두 개의 릴레이션이 모두 합병 가능(union-compatible)해야 한다.

2. 1. 1 합집합 합집합(UNION) 연산은 합병 가능한 두 개의 릴레이션 A와 B의 합집합(A∪B)을 구하는 것으로, 합집합 연산의 결과는 릴레이션 A 또는 B에 속하는 투플들로 구성된 릴레이션이다. . 합집합(UNION) 연산자의 개념 A B A∪B 예제 1 예제 릴레이션 A와 B의 합집합(A∪B) 연산의 결과는 다음과 같다. a b a1 b1 b2 a2 b3 A B a3 A ∪ B

2. 1. 2 교집합 A B A ∩ B 예제 2 예제 릴레이션 A와 B의 교집합(A∩B) 연산의 결과는 다음과 같다. a b 교집합(INTERSECTION) 연산은 합병 가능한 두 개의 릴레이션 A와 B의 교집합(A∩B)을 구하는 것으로, 교집합 연산의 결과는 릴레이션 A와 B에 공통적으로 속하는 투플들로 구성된 릴레이션이다. A B A ∩ B 예제 2 예제 릴레이션 A와 B의 교집합(A∩B) 연산의 결과는 다음과 같다. a b a1 b1 b2 a2 b3 A B a3 A ∩ B

차집합(DIFFERENCE)연산의 개념 2. 1. 3 차집합 차집합(DIFFERENCE) 연산은 합병 가능한 두 개의 릴레이션 A와 B의 차집합(A B)을 구하는 것으로, 차집합(A B) 연산의 결과는 릴레이션 A에만 있고 B에는 없는 투플들로 구성된 릴레이션이다. 차집합(DIFFERENCE)연산의 개념 A B A - B 예제 3 예제 릴레이션 A와 B의 두 가지 차집합(A B와 B A) 연산의 결과는 다음과 같다. a b a1 b1 b2 a2 b3 A B a3 A - B B - A

카티션 프로덕트(CARTESIAN PRODUCT) 연산의 개념 2. 1. 4 카티션 프로덕트 카티션 프로덕트(CARTESIAN PRODUCT) 연산은 두 개의 릴레이션 A와 B의 카티션 프로덕트(A B)를 구하는 것으로, 카티션 프로덕트의 연산 결과는 A에 속한 각 투플 a에 대하여 B에 속한 투플 b를 모두 접속(concatenation)시킨 투플들(a b)로 구성된 릴레이션이다. 카티션 프로덕트(CARTESIAN PRODUCT) 연산의 개념 a1 b1 a1 b2 a2 b1 a2 b2 a1 a2 b1 b2 A B A X B

2. 1. 4 카티션 프로덕트 예제 4 예제 릴레이션 A와 B의 카티션 프로덕트(CARTESIAN PRODUCT) 연산의 결과는 다음과 같다. a b a1 b1 b2 a2 b3 A c c1 c3 B A.a A.b B.b B.c A X B

2. 2 순수 관계 연산 관계 대수의 순수 관계 연산자는 셀렉트(SELECT), 프로젝트(PROJECT), 조인(JOIN), 디비전(DIVISION) 등이다 2. 2. 1 셀렉트 - 셀렉트(SELECT) 연산은 릴레이션에서 주어진 조건을 만족하는 투플들을 검색하는 것으로, 기호는 그리스 문자의 시그마(σ)를 이용한다. 셀렉트 (SELECT) 연산의 개념 셀렉트 연산 표기법 ① σ조건식(릴레이션) ② 릴레이션 where 조건식 조건식 릴레이션 셀렉트 연산의 결과 릴레이션

2. 2 순수 관계 연산 학생(STUDENT) 릴레이션에서 학과(dept) 속성 값이 “컴퓨터공학과”인 투플들을 검색하라. 예제 5 학생(STUDENT) 릴레이션에서 학과(dept) 속성 값이 “컴퓨터공학과”인 투플들을 검색하라. ① 관계 대수 1 : σdept=“컴퓨터공학과”(STUDENT) ② 관계 대수 2 : STUDENT where dept=“컴퓨터공학과” ③ 결과 릴레이션 : 학번 s_no 이름 s_name 학과 dept 학년 year 전화 s_tel 주소 s_address 지도교수 advisor 생년월일 s_birth 9911001 9911003 9811015 : 정찬우 강재우 이길녀 컴퓨터공학과 2 3 023355519 0325491115 023386634 서울… 인천… 0001 0002 0003 19800505 19801119 19791130

2. 2 순수 관계 연산 등록(ENROLLMENT) 릴레이션에서 강좌번호(c_no) 속성 값이 “0001”인 투플들을 예제 6 등록(ENROLLMENT) 릴레이션에서 강좌번호(c_no) 속성 값이 “0001”인 투플들을 검색하라. ① 관계 대수 1 : σc_no=“0001”(ENROLLMENT) ② 관계 대수 2 : ENROLLMENT where c_no=“0001” ③ 결과 릴레이션 : 강좌번호 c_no 학번 s_no 성적 grade 0001 : 9911001 9912002 A B

2. 2. 2 프로젝트 프로젝트(PROJECT) 연산은 릴레이션에서 주어진 조건을 만족하는 속성들을 검색하는 것으로, 기호는 그리스 문자의 파이(π)를 이용한다. 릴레이션에서 속성은 열(column)을 가리키므로 프로젝트를 수직적 연산(vertical operation)이라고도 한다. 프로젝트(PROJECT) 연산 개념 프로젝트 연산 표기법 ① π속성리스트(릴레이션) ② 릴레이션[속성리스트] 릴레이션 프로젝트 연산의 결과 릴레이션 프로젝션

2. 2. 2 프로젝트 학과(DEPARTMENT) 릴레이션에서 학과코드(dept_no), 학과명(dept_name), 예제 7 학과(DEPARTMENT) 릴레이션에서 학과코드(dept_no), 학과명(dept_name), 위치(location) 속성 값을 검색하라. ① 관계 대수 1 : πdept_no, dept_name, location(DEPARTMENT) ② 관계 대수 2 : DEPARTMENT[dept_no, dept_name, location] ③ 결과 릴레이션 : 학과코드 dept_no 학과명 dept_name 위치 location 001 002 003 : 컴퓨터공학과 정보과학과 정보통신학과 T101 T201 T301

2. 2. 2 프로젝트 예제 8 강좌(COURSE) 릴레이션에서 강좌번호(c_no)와 강좌이름(c_name) 속성 값을 검색하라. ① 관계 대수 1 : πc_no, c_name(COURSE) ② 관계 대수 2 : COURSE[c_no, c_name] ③ 결과 릴레이션 : 학과코드 dept_no 학과명 dept_name 위치 location 001 002 003 : 컴퓨터공학과 정보과학과 정보통신학과 T101 T201 T301

2. 2. 3 조인 조인(JOIN) 연산은 두 개의 릴레이션 A와 B에서 공통된 속성을 연결하는 것이다. 이와 같은 조인 연산은 하나의 릴레이션으로는 원하는 결과를 얻을 수 없을 경우, 두 개 이상의 릴레이션을 공통 속성으로 연결하여 원하는 결과를 포함한 릴레이션을 생성할 때 이용한다. 조인(JOIN) 연산 개념 조인 속성 A B A B a b b c a b c a1 b1 b1 c1 a1 b1 b1 a2 b2 b1 c2 a1 b1 c2 a3 b3 b2 c3 a2 b2 c3 a4 b4 b2 c4 a2 b2 c4 A와 B의 공통 속성 값 : b1, b2

2. 2. 3 조인 예제 9 강좌(COURSE) 릴레이션과 강의(LECTURE) 릴레이션을 조인하라. ② 결과 릴레이션 : 0001 0002 : 정보사회와 컴퓨터 데이터베이스 3 R 강좌번호 c_no 강좌이름 c_name 시수 times 학점 point 필수/선택 r/o 0005 mon tue wed thu 1 5 T447 T448 T337 교수번호 p_no 요일 day_week 시간 time 강의실 room_no

2. 2. 3 조인 강좌번호 c_no 강좌이름 c_name 교수번호 p_no 요일 day_week 0001 0002 : 정보사회와 컴퓨터 데이터베이스 0001 0002 0005 mon tue wed thu

2. 2. 3 조인 강좌번호 c_no 강좌이름 c_name 교수번호 p_no 요일 day_week 0001 : 정보사회와 컴퓨터 0001 0002 mon tue

2. 2. 4 디비전 두 개의 릴레이션 A와 B에 대한 디비전(DIVISION) 연산인 A ÷ B의 결과는 다음과 같다. 나누어지는 릴레이션인 A는 동일한 어트리뷰트 값에 대하여 릴레이션 B의 모든 내용을 포함한 것이 결과 릴레이션이 된다 디비전(DIVISION) 연산 개념 a b a1 b1 b2 a3 b4 A B a4 a5 A에 꼭 포함되어야 할 B의 공통 속성 값 : b1, b2 a6 b3 ÷

근원연산과 복합연산 근원연산 하나의 논리적 기능을 수행하는 것으로 다른 연산을 이용하여 표현할 수 없는 연산 - 합집합, 차집합, 카테시안 프로덕트, 실렉트, 프로젝트 복합연산 근원연산을 이용하여 그 연산의 기능을 표현할 수 있는 연산 - 조인, 교집합, 디비젼 - 구현 방법 ???

2. 3 확장 관계 대수 연산 2.2절에서 설명한 관계 대수 연산을 확장한 연산들이 있다. 그 중 대표적인 것들은 조인 연산에 관련된 것으로, 외부 조인(OUTER JOIN), 세미 조인(SEMI JOIN), 세타 조인(THETA JOIN) 등으로 분류할 수 있다. 확장 관계 대수 연산 요약

2. 3. 1 외부 조인 외부 조인(OUTER JOIN)은 두 개의 릴레이션을 공통 속성을 이용하여 연결할 경우, 공통되는 속성 값이 없어 연결이 이루어지지 않는 투플들 까지도 결과 릴레이션에 포함시키는 것이다. 이 때, 공통 속성 값이 없는 부분은 null 값으로 채워진다. 예제 13 강좌(COURSE) 릴레이션과 강의(LECTURE) 릴레이션을 외부 조인하라 (<예제 7.1>의 내용을 외부 조인으로 수행). ① 관계 대수 : COURSE LECTURE ② 결과 릴레이션 : 0001 0002 0003 0004 : 정보사회와 컴퓨터 데이터베이스 네트워크 C언어 3 R O 강좌번호 c_no 강좌이름 c_name 시수 times 학점 point 필수/선택 r/o 0005 null mon tue wed thu 1 5 T447 T448 T337 교수번호 p_no 요일 day_week 시간 time 강의실 room_no

외부조인 예

2. 3. 2 세미 조인 세미 조인(SEMI JOIN)은 조인 대상 릴레이션 중 하나를 프로젝트(PROJECT) 연산을 수행한 후 조인을 하는 것이다. 세미 조인 표기 방법 릴레이션 A와 B를 세미 조인하는 경우 A B로 표기한다. 2. 3. 3 세타 조인 세타 조인(THETA JOIN)은 다양한 조인 조건을 세타 연산자(비교 연산자)를 이용하여 표현할 수 있는 것이다.. 세타 조인 표기 방법 릴레이션 A의 속성 a와 릴레이션 B의 속성 b를 연산자 조건으로 세타 조인하는 경우 로 표기한다.

세미조인 예

기타연산 - 외부합집합

3 . 관계 해석 비절차 언어인 관계 해석(relational calculus)은 데이터베이스를 이용하여 얻고자 하는 결과가 무엇(What)인가를 기술하는 것으로, 어떻게(How)를 기술하는 관계 대수와 차이가 있다. - 투플 관계 해석 (tuple relation calculus) - 도메인 관계 해석 (domain relational calculus)

투플 관계 해석식 예1

투플 관계 해석식 예2

관계대수 연산 – 보충1 데이터 삭제(deletion) 선택된 투플들을 삭제하기 위한 연산자 형식 : 예) 등록 릴레이션에서 학번이 9813100인 학생의 모든 기록을 삭제하라. 예) 0002 강좌의 성적이 F인 학생을 학생 릴레이션에서 삭제하라. ??? 예) 이번 학기에 개설되지 않은 강의를 강좌 릴레이션에서 모두 삭제하라.

관계대수 연산 – 보충2 데이터 삽입(insertion) 임의의 투플들을 삽입하기 위한 연산자 형식 : 과목을 삽입하라. 예) 0002 강좌를 듣는 학생들은 0032 과목을 모두 듣는 결과가 되도록 등록 릴레이 션에 필요 투플들을 삽입하라. 단, 성적은 null로 처리한다. ???

관계대수 연산 – 보충3 데이터 갱신(updating) 임의의 투플들을 갱신하기 위한 연산자 형식 : Fi가 i번째 어트리뷰트이면 갱신이 없고, 대수식이면 그 식에 따라 갱신한다는 의미 예) 모든 과목의 시수를 1씩 증가시켜라. 예) 월요일에 있는 모든 수업의 시작시간을 한 시간씩 늦추도록 수정하라. ???

관계대수 연산 – 보충4 개명 연산(rename,  ) 관계 대수 연산의 결과로 만들어지는 릴레이션을 참조하기 위해 이름을 설정해 주는 연산 예) < 두 가지 사용 구문 >

관계대수 연산 – 보충5 예제 은행 데이터베이스 참조 Perryridge 지점에 대출 금액이 1200을 넘는 고객의 이름을 검색하라. 은행에서 가장 큰 자산 값을 검색하라. Smith와 같은 도시, 같은 거리의 주소를 가진 모든 고객들의 이름을 검색하라. Brooklyn의 모든 지점에 예금계좌를 가진 고객들의 이름을 검색하라. 대출 금액이 가장 적은 고객들의 이름을 모두 검색하라.