Download presentation
Presentation is loading. Please wait.
1
5. 관계대수와 관계해석 ( Relational Operations: 관계연산)- 9장
2
관계 데이터 연산 관계 데이터 언어(relational data language)
연산(operation)과 데이터 언어(data language) 연산(operation) : 시스템 입장 데이터 언어(data language) : 사용자 입장 관계 데이터 언어(relational data language) 정형어(formal language) ⅰ. 관계 대수(relational algebra) 절차 언어 : how, what 대상 ⅱ. 관계 해석(relational calculus) 비 절차 언어 : what ① 투플 관계 해석(tuple relational calculus) ② 도메인 관계 해석 (domain relational calculus) 관계 해석과 관계 대수는 표현과 기능 면에서 동등
3
1. 관계 대수(Relational Algebra)
릴레이션을 처리하기 위한 연산의 집합 릴레이션 : ‘투플의 집합’의 관점 기본 연산 (1) 일반 집합 연산자 합집합(UNION, ∪ ) 교집합(INTERSECT, ∩ ) 차집합(DIFFERENCE, - ) 카티션 프로덕트(CARTESIAN PRODUCT, × ) (2) 순수 관계 연산자 실렉트(SELECT, ) 프로젝트(PROJECT, ) 조인(JOIN, ) 디비전(DIVISION, ÷ ) 폐쇄 성질 (closure property) 피연산자와 연산 결과가 모두 릴레이션 중첩(nested)된 수식의 표현이 가능
4
▶ 일반 집합 연산자(1) p97 ⅰ. 합집합 (union,∪) ⅱ. 교집합 (intersect,∩)
R∪S = { t | t∈R ∨ t∈S } |R∪S| ≤ |R| + |S| ⅱ. 교집합 (intersect,∩) R∩S = { t | t∈R ∧ t∈S } |R∩S| ≤ min{ |R|, |S| } ⅲ. 차집합 (difference,-) RS = { t | t∈R ∧ t S } |RS| ≤ |R| ⅳ. 카티션 프로덕트 (Cartesian product,×) R×S = { r·s | r∈R ∧ s∈S } · : 접속(concatenation) |R×S| = |R|×|S| 차수(degree) = R의 차수 + S의 차수
5
▶ 일반 집합 연산자(2) Tip 합병가능(union-compatible)한 릴레이션
∪, ∩, - 연산의 피연산자들은 1. 차수가 같아야 함 2. 대응 애트리뷰트 쌍 별로 도메인이 같아야 함 ∪, ∩, × 연산은 결합적(associative)임 R∪S∪T = (R∪S)∪T = R∪(S∪T) R ∩ S ∩ T = (R ∩ S) ∩ T = R ∩ (S ∩ T) R×S×T = (R×S)×T = R×(S×T) ∪, ∩, × 연산은 교환적(commutative)임 R∪S = S∪R R ∩ S = S ∩R R×S = S×R
6
▶ 순수 관계 연산자 p99 릴레이션 : R(X) = R(A1, ... , An)
R의 투플 r : <a1, ... , an> R={r | r = <a1, ... , an> } ai : 투플 r에 대한 애트리뷰트 Ai의 값 ai = r.Ai = r[Ai] 일반적으로 <r.A1 , r.A2 ,…, r.An > = < r[A1], r[A2], …, r[An] > = r[A1, A2, … An] = r[X]
7
실렉트 (SELECT: :sigma)(1) p100
A, B가 릴레이션 R의 애트리뷰트일 때, Av(R) = { r | r∈R ∧ r.Aθv } AB(R) = { r | r∈R ∧ r.Aθr.B } 단, θ(theta) : 비교 연산자, { <, >, ≤, ≥, =, ≠ } v : 상수 실렉트()의 결과는 선택 조건을 만족하는 릴레이션의 수평적 부분집합 (horizontal subset) : 레코드 형의 데이터 조건식(predicate)
8
실렉트 (2) example 데이터 언어 형식의 표현 R WHERE 조건식
학과 = '컴정' (학생) 학번 = 300 과목번호='C312'(등록) 중간성적<기말성적 (등록) 데이터 언어 형식의 표현 R WHERE 조건식 조건2(조건1(R)) = 조건1(조건2(R)) = (조건1 조건2) (R) 선택도(selectivity) : 선택 조건에 의해 검색되는 투플의 비율
9
학생, 등록 릴레이션에 대한 실렉트 연산(예) σ학과='컴정'(학생) σ학번=300∧과목번호='C312'(등록)
이름 학년 학과 나수영 정기태 송병길 4 1 4 컴정 컴정 컴정 σ학번=300∧과목번호='C312'(등록) 학번 과목번호 성적 중간성적 기말성적 300 C312 A 90 95 σ중간성적<기말성적(등록) 학번 과목번호 성적 중간성적 기말성적 C413 C312 C312 C413 E412 A A A B C
10
프로젝트 (PROJECT: : pi) p101 릴레이션 R(X)에서 Y⊆X 이고 Y={B1,B2, … ,Bm} 이면,
Y(R)={ <r.B1, ... , r.Bm> | r∈R } example 학생(학번,이름,학년,학과)에서 이름,학과(학생) 릴레이션의 수직적 부분집합(vertical subset) : 도메인 형의 데이터 결과에 투플이 중복되는 경우에는 제거 결과도 투플의 집합(릴레이션) – 폐쇄 속성 Y(X(R)) = Y(R)
11
학생, 과목 릴레이션에 대한 프로젝트 연산(예)
이름,학과(학생) 이름 학과 나수영 이찬수 정기태 송병길 박종화 컴정 전기 컴정 컴정 컴정 과목이름,담당교수(과목) 과목이름 담당교수 프로그래밍 자료구조 파일구조 데이터베이스 반도체 김성국 황수관 이규찬 이일로 홍봉진
12
조인 (JOIN: )(1) p102 (1) 세타 조인 (theta join) R(X), S(Y), A∈X, B∈Y 에 대하여
R AθB S = { r · s | r∈R ∧ s∈S ∧ ( r.Aθs.B) } A, B : 조인 애트리뷰트(join attribute) 결과 차수 = R의 차수 + S의 차수 결과 릴레이션의 애트리뷰트는 원 소속 릴레이션 이름을 애트리뷰트 앞에 한정어로 붙여 일관성을 유지 예) 학생 학번=학번 등록 -- 이 연산의 결과 릴레이션이 갖는 애트리뷰트는 학생.학번, 학생.이름, 학생.학년, 학생.학과, 등록.과목번호, 등록.성적, 등록.중간성적, 등록.기말성적으로 표현 -- 그러나 상이한 애트리뷰트는 보통 그 이름만 사용
13
(2) 동일 조인 (equijoin) 세타 조인에서 θ가 "="인 경우 릴레이션 학생과 등록의 동일 조인 예
세타 조인에서 θ가 "="인 경우 R A=BS = { r·s | r∈R ∧ s∈S ∧ ( r.A=s.B ) } 릴레이션 학생과 등록의 동일 조인 예 학생 학번=학번등록 학생.학번 이름 학년 학과 등록.학번 과목번호 성적 중간성적 기말성적 나수영 나수영 이찬수 정기태 정기태 정기태 송병길 송병길 송병길 송병길 박종화 컴정 컴정 전기 컴정 컴정 컴정 컴정 컴정 컴정 컴정 산공 C413 E412 C123 C312 C324 C413 C312 C324 C413 E412 C312 A A B A C A A A B C B
14
조인 (2) (3) 자연 조인 (natural join: N) R(X), S(Y)의 조인 애트리뷰트를 Z(=X∩Y)라 하면
R NS = {<r · s>[X∪Y] | r∈R∧s∈S∧r[Z]=s[Z] } = X∪Y(Z=Z(R×S)) = X∪Y(R Z=ZS) -- 즉 동일 조인의 결과에서 중복되는 애트리뷰트를 제거 -- 일반적으로 조인이라 하면 자연 조인을 의미
15
릴레이션 학생과 등록의 자연 조인(예) 학생 N등록 학번 이름 학년 학과 과목번호 성적 중간성적 기말성적
나수영 나수영 이찬수 정기태 정기태 정기태 송병길 송병길 송병길 송병길 박종화 컴정 컴정 전기 컴정 컴정 컴정 컴정 컴정 컴정 컴정 산공 C413 E412 C123 C312 C324 C413 C312 C324 C413 E412 C312 A A B A C A A A B C B
16
디비전 (DIVISION: ÷)(1) p104 릴레이션 R(X), S(Y) 에 대하여
Y X이고 D = X-Y라고 하면 R(X) = R(D,Y) R÷S={ t | t∈ D(R) ∧ t · s∈R for all s∈S } Tip : ((R ÷ S) × S) ⊆ R
17
디비전(2) example 학과목(SC) 과목1(C1) 과목2(C2) 과목3(C3) 학번 (Sno) 과목번호 (Cno)
100 C413 C413 C312 C312 100 E412 C413 C413 200 C123 E412 300 C312 300 C324 300 C413 SC ÷ C1 SC ÷ C2 SC ÷ C3 400 C312 400 C324 학번 (Sno) 학번 (Sno) 학번 (Sno) 400 C413 400 E412 100 300 400 500 C312 300 400 400
18
개명 연산 (RENAME: ρ: rho) p105 중간 처리 결과 릴레이션에 이름을 지정하거나 애트리뷰트 이름을 변경할 때 사용 ρS(E) 관계 대수식 E의 결과 릴레이션의 이름을 S로 지정 ρS(B1,B2, … ,Bm )(E) 관계 대수식 E의 결과 릴레이션의 이름을 S로 지정하고 애트리뷰트 이름은 각각 B1,B2, … ,Bm 으로 지정 ρ(B1,B2, … ,Bm )(R) 릴레이션 R의 애트리뷰트 이름을 각각 B1,B2, … ,Bm 으로 변경
19
▶ 기본 연산과 복합 연산 p100 기본 연산 (primitive operations)
다른 연산으로 대체할 수 없는 하나의 논리적 기능을 수행하는 연산 ∩ , , ×, , 복합 연산 (composite operations) 몇 개의 기본 연산으로 대체할 수 있는 연산 교집합(∩), 조인( ), 디비전(÷) R∩S = R (RS) = S (SR) = (R∪S) ( (RS) ∪ (SR) ) R AθB S = AθB (R×S) R(Z,Y)÷S(Y)= R[Z] - ((R[Z]×S) - R)[Z] 연산력 보다는 표현력을 증대
20
▶ 관계 대수의 확장(1) p107 ⅰ. 세미 조인 (semijoin: )
R S: S와 자연 조인이 가능한 R의 투플의 집합 R(X), S(Y)의 조인 애트리뷰트를 Z(=X∩Y)라 하면 R S = R N(Z(S)) = X(R NS) 특징 R S ≠ S R R NS = (R S) NS = (S R) NR 릴레이션 처리에 관련된 데이터의 양이 다름
21
자연 조인과 세미 조인 R S X∩Y(S) A B C a1 a2 a3 a4 b1 b2 c1 c2 c3 B C D b1
N R S N N R S A B C D a1 a2 a4 b1 b2 c1 c3 d1 d2 d3 A B C a1 a2 a4 b1 b2 c1 c3 N (세미 조인) (자연 조인)
22
▶ 관계 대수의 확장(2) ⅱ. 외부 조인 (outerjoin, +) p109
한 릴레이션에 있는 투플이 조인할 상대 릴레이션에 대응되는 투플이 없을 경우, 상대를 널(null) 투플로 만들어 결과 릴레이션에 포함 누락 정보를 처리하기 위한 조인의 확장 두 조인 릴레이션의 투플들이 전부 결과 릴레이션에 포함됨
23
자연 조인과 외부 조인 R S A B C a1 a2 a3 a4 b1 b2 c1 c2 c3 B C D b1 b2 b3 c1
+ + N R S A B C D a1 a2 a3 a4 b1 b2 b3 c1 c2 c3 d1 d2 d3 R S N A B C D a1 a2 a4 b1 b2 c1 c3 d1 d2 d3 (외부조인) (자연조인)
24
▶ 관계 대수의 확장(3) ⅲ. 외부 합집합 (outer-union, ∪+) p109
합병 가능하지 않은(not union-compatible) 두 릴레이션의 모든 애트리뷰트를 포함하는 확장된 릴레이션으로 만듦 확장된 릴레이션에 해당하는 애트리뷰트 값이 없을 때는 널 값으로 채움
25
외부 합집합 R S A B C a1 a2 a3 a4 b1 b2 c1 c2 c3 B C D b1 b2 c1 c2 d1 d2
∪+ A B C D a1 a2 a3 a4 b1 b2 c1 c2 c3 d1d2 d3
26
▶ 관계 대수의 확장(4) ⅳ. 집계(aggregation) 연산 p110 AVG성적(등록)
등록 릴레이션의 성적 애트리뷰트 값들에 대해 평균값 계산 GROUP학년(학생) 학생 릴레이션의 투플들을 학년 값에 따라 그룹을 만듦 GROUP과목번호AVG성적(등록) 등록 릴레이션에서 과목별 그룹에 대한 평균성적 실행 순서는 GROUP, AVG 순서임 일반 형식 : GAFB(E) E : 관계 대수식 F : 집계 함수(SUM, AVG, MAX, MIN, COUNT) B : 집계 함수의 적용 대상 애트리뷰트 G : 그룹 함수 GROUP A : 그룹 함수가 적용할 애트리뷰트
27
▶ 관계 대수의 질의문 표현(1) p111 사용자의 질의문을 관계 대수식으로 표현
질의 : 모든 학생의 ‘이름’과 ‘학과’를 검색하라. 이름,학과 (학생) 질의 : ‘과목번호’가 C413인 과목에 등록한 학생의 ‘이름’과 ‘성적’은 무엇인가? 이름,성적(과목번호='C413' (학생 N등록)) 질의 : ‘파일구조' 과목을 가르치는 ‘담당교수’를 검색하라. 담당교수(과목이름=‘파일구조'(과목))
28
▶ 관계 대수의 질의문 표현(2) 질의 : 모든 과목에 수강한 학생의 ‘학번’과 ‘이름’을 검색하라
학번,이름((학번,과목번호(등록) ÷ 과목번호(과목)) N학생) 질의 : ‘학번’이 600, ‘이름’이 '김영호', ‘학년’이 4, ‘학과’가 ‘컴정’인 학생을 삽입하라. 학생∪{<600, '김영호', 4, ‘컴정’>} 질의 : '데이터베이스‘ 과목을 삭제하라. 과목 - (과목이름='데이터베이스'(과목))
29
2. 관계 해석 (Relational Calculus) p112
predicate calculus에 기반 Predicate(서술어) : a function whose value is true or false 실행 결과가 반드시 참(true)이나 거짓(false)인 함수 관계 데이터 모델의 연산 표현 방법 비절차적(non-procedural) 원하는 정보가 무엇이라는 것만 선언 ① 투플 관계 해석(tuple relational calculus) ② 도메인 관계 해석(domain relational calculus)
30
▶ 2.1 투플 관계해석(tuple relational calculus)(1) p112
원하는 릴레이션을 투플 해석 식(tuple calculus expression)으로 정의하는 표기법 투플 해석식의 구성 요소 ⅰ. 투플 변수(tuple variable) 또는 범위 변수(range variable): t 범위식(range formula) : R(t) R : t의 범위 릴레이션(range relation) ⅱ. 한정 애트리뷰트(qualified attribute) : t.A 또는 t[A] 투플 변수 t가 나타내는 투플의 애트리뷰트 A의 값 – STUDENT(s) s.Sno
31
▶ 투플 관계 해석(2) 투플 해석식의 구성 요소(con’t) ⅲ. 원자식(atomic formula)
범위 식: R(t) t : 투플 변수 R : t의 범위 릴레이션 조건 식: t.A θ u.B A, B : 애트리뷰트 θ : 비교 연산자(=, ≠, <, ≤, >,≥) 조건 식: t.A θ c c: 상수 원자식의 실행 결과는 반드시 참(True) 또는 거짓(False)
32
▶ 투플 관계 해석(3) 투플 해석식의 구성 요소(con’t)
ⅳ. 정형식(WFF, well-formed formula) = ‘weff’ 원자 식, 불리언 연산자(∧,∨, ¬ ), 정량자 (∀,∃)가 다음 규칙에 따라 결합된 식 ① 모든 원자 식은 WFF ② F가 WFF이면, (F)와 F도 WFF ③ F와 G가 WFF이면, F∧G와 F∨G도 WFF ④ 투플 변수 t가 자유변수로 사용된 F(t)가 WFF이면, ∀t(F(t))와 ∃t(F(t))도 WFF ⑤ 위의 규칙만을 적용해서 만들어진 식은 WFF 정형식의 예 s.Sno = 100 c.Cno ≠ e.Cno s.Sno = e.Sno ∧ e.Cno ≠ c.Cno (∃e)(e.Sno = s.Sno ∧ e.Cno = 'C413')
33
Tip 자유변수(free variable) 속박변수(bound variable)
정량자(quantifier)로 한정되지 않는 투플 변수 ∀ : “for all”, 전칭 정량자(Universal quantifier) ∃ : “there exists”, “for some”, 존재 정량자(Existential quantifier) – 속박변수(bound variable) 정량자(∀t ,∃t )로 한정된 투플 변수 프리닉스 정규형(prenex normal form) 정량자만 앞에 먼저 기술한 WFF 1) (∀t)(F(t))∧(∀t)(H(t)) = (∀t)(F(t)∧H(t)) 2) (∃t)(F(t))∨(∃t)(H(t)) = (∃t)(F(t)∨H(t))
34
투플 해석식(tuple calculus expression)
투플 해석식의 형식 { t1.A1, t2.A2, …, tn.An|F(t1, … tn, tn+1, …, tn+m) } ti : 투플 변수 F(t1,…, tn, tn+1,…, tn+m): ti가 연관된 정형식으로 조건을 명세 막대 (|) 왼편에 명세된 한정 애트리뷰트들은 목표 리스트 (target list)로서 막대(|) 오른편에 명세된 조건을 만족하는 투플로부터 추출 됨 example {s.Sname|STUDENT(s) } {s.Sname|STUDENT(s)∧s.Dept=‘컴정’ } {s.Sname, s.Dept|STUDENT(s)∧(∃e)(ENROL(e)∧ s.Sno=e.Sno∧e.Grade='A')} ** 목표 리스트에는 자유 변수만 나올 수 있음.
35
▶ 2.2 투플 해석식의 질의문 표현(1) 질의: 과목 C413에서 성적이 A인 학생의 학번을 모두 검색하라
{e.Sno|ENROL(e) ∧ e.Cno='C413'∧ e.Grade='A' } 질의: 과목 C413을 등록한 학생의 이름과 학과를 모두 검색하라 { s.Sname, s.Dept|STUDENT(s) ∧∃e(ENROL(e) ∧ s.Sno=e.Sno ∧ e.Cno='C413') }
36
▶ 투플 해석식의 질의문 표현(2) 질의: 모든 과목에 등록한 학생의 이름을 전부 검색하라.
{ s.Sname|STUDENT(s) ∧ (∀c)(∃e)(COURSE(c) ∧ENROL(e)∧ e.Sno=s.Sno ∧ e.Cno=c.Cno) } 질의: 과목 ‘C413’에 등록하지 않은 학생의 이름을 전부 검색하라. {s.Sname|STUDENT(s) ∧ (∃e)(ENROL(e) ∧ s.Sno=e.Sno ∧ e.Cno=‘C413’) }
37
▶ 2.3 도메인 관계 해석(domain relational calculus)(1) p117
원하는 릴레이션을 도메인 해석식 (domain calculus expression)으로 정의하는 표기법 도메인 해석식의 구성요소 ⅰ. 도메인 변수(domain variable) 지정된 애트리뷰트 도메인의 한 원소만을 취하는 변수 xSno, xSname, xDept, xYear, … 범위식 도메인 변수 선언 식 STUDENT(xSno, xSname, xDept, xYear)
38
▶ 도메인 관계 해석 (2) 도메인 해석식의 구성요소(con’t) ⅱ. 원자 식(atomic formula)
① 범위 식, R(x1,x2,…,xn) xi : 도메인 변수 R : xi의 범위 릴레이션 <x1,x2,…,xn>에 대응하는 값의 리스트는 릴레이션 R의 투플 ② 조건 식, x θ y x, y : 도메인 변수 θ: 비교 연산자(=, ≠, <, ≤, >,≥) ③ 조건 식, x θ c x : 도메인 변수 c : x가 정의된 도메인 값의 상수 원자 식의 실행 결과는 반드시 참(True) 또는 거짓(False)
39
▶ 도메인 관계 해석 (3) 도메인 해석식의 구성요소(con’t)
iii. 정형식(WFF, Well-formed formula) 원자 식, 불리언 연산자(∧,∨, ), 정량자(∀,∃)를 다음 규칙에 따라 결합하여 표현한 식 ① 모든 원자 식은 WFF ② F가 WFF이면, (F)와 F도 WFF ③ F와 G가 WFF이면, F∧G와 F∨G도 WFF ④ 도메인 변수 x가 자유변수로 사용된 F(x)가 WFF이면, (∀x)(F(x))와 (∃x)(F(x))도 WFF ⑤ 위의 규칙만을 적용해서 만들어진 식은 WFF
40
도메인 해석식 (domain calculus expression) p118
도메인 해석식의 형식 { x1,x2,…,xn|F(x1,…,xn,xn+1,…,xn+m) } xi: 도메인변수 F(x1,…,xn,xn+1,…,xn+m) : xi가 관련된 정형식 막대 (|) 왼편에 명세된 n 도메인 변수들은 목표 리스트로서 막대 (|) 오른편에 명세된 조건(정형식)을 만족하는 도메인 값으로 만들어지는 투플을 표현 example ① { xSname|STUDENT(xSno, xSname, xYear, xDept)} ② { xSname|(∃xDept) (STUDENT(xSno, xSname, xYear, xDept)∧ xDept='컴정’) } ③ { xSno, xDept|STUDENT(xSno, xSname, xYear, xDept)∧(∃xxSno)(∃xGrade) (ENROL(xxSno, xCno, xGrade, xMidterm, xFinal)∧ xSno=xxSno∧xGrade='A‘) }
41
▶ 2.4 도메인 해석식의 질의문 표현(1) 질의: 컴정학과 3,4 학년(Year)의 이름(Sname)을 검색하라.
{xSname|(∃xYear)(∃xDept) (STUDENT(xSno, xSname, xYear, xDept)∧ xYear ≥ 3∧ xDept='컴정' ) } 질의: 과목번호(Cno) C413에서 성적(Grade)이 A인 학생의 학번(Sno)을 모두 검색하라 { xSno|(∃xCno)(∃xGrade) (ENROL(xSno, xCno, xGrade, xMidterm, xFinal) ∧ xCno= ‘C413’ ∧ xGrade=‘A’) }
42
▶ 도메인 해석식의 질의문 표현(2) 질의: 기말 성적(Final)이 90점 이상인 학생의 학번(Sno)과 이름(Sname)을 검색하라. {xSno,xSname|(STUDENT(xSno,xSname,xYear,xDept) ∧ (∃xFinal)(∃xxSno) (ENROL(xxSno, xCno, xGrade, xMidterm, xFinal)∧xSno=xxSno ∧ xFinal ≥ 90) } 질의: 과목번호(Cno) C324에 등록하지 않은 학생의 이름 (Sname) 을 검색하라. { xSname|(∃xSno) ((STUDENT(xSname, xSno, xYear, xDept) ∧ (∃xxSno) (∃xCno) (ENROL(xxSno, xCno, xGrade, xMidterm, xFinal) ∧ xSno=xxSno ∧ xCno='C324')) }
43
3. 사례 : QBE QBE (Query By Example) IBM의 Zloof가 1975년에 개발
도메인 관계 해석 사용 그래픽 디스플레이 단말기 사용 이차원 구문(two-dimensional syntax) 언어 테이블 형태 : “skeleton" 예(example)를 질의문 명세에 사용 예제 원소(example element) : 도메인 변수 STUDENT Sno Sname Year Dept P._STX 3
44
▶ 데이터 검색(Print) (1) 단순 조건 검색 컴정학과 4학년 학생의 학번과 이름을 검색하라
중복되는 것은 자동으로 제거됨 'ALL'을 삽입하면 중복을 허용 STUDENT Sno Sname Year Dept P. 4 컴정 STUDENT Sno Sname Year Dept P.ALL 4 컴정
45
▶ 데이터 검색(2) 테이블 전체의 검색 학생 테이블을 전부 검색하라 간단한 방법 : 테이블 이름 밑에 P. 명세
STUDENT Sno Sname Year Dept P. STUDENT Sno Sname Year Dept P.
46
▶ 데이터 검색(3) 복수 조건 검색 'OR' 조건 : 두 개의 행이나 상이한 예제 원소를 사용
기말성적이 85점 이상이거나 과목번호 ‘C413’에 등록한 학생의 학번을 검색하라 'AND' 조건 : 하나의 행이나 같은 예제 원소를 사용 과목번호가 ‘C413’이고 기말성적이 85점 이상인 학생의 학번을 검색하라 ENROL Sno Cno Final Midterm 85 P. C413 ENROL Sno Cno Final Midterm P. C413 85
47
▶ 데이터 검색(4) 복수 조건 검색(con’t) 조건 상자(condition box)로 명세 ENROL Sno Cno
Final Midterm P. _EC _EF CONDITIONS _EC=C413 AND _EF 85
48
▶ 데이터 검색(5) 복수 테이블에서 검색 기말성적이 85점 이상이거나 과목 ‘C413’을 등록한 학생의 이름을 검색하라.
ENROL Sno Cno Final Midterm 85 _STX _STY C413 STUDENT Sno Sname Year Dept _STX _STY P.
49
▶ 데이터의 삽입(Insert) 단순 레코드의 삽입 투플 검색을 이용한 삽입
학번이 100이고 과목번호가 ‘C413’인 투플을 삽입하라. Note : 기본 키(Sno)가 null이어서는 안됨 투플 검색을 이용한 삽입 4학년 학생의 학번을 학생 테이블로부터 검색해서 SENIOR 테이블에 삽입하라. ENROL Sno Cno Grade Midterm I. 100 C413 Final STUDENT Sno Sname Year Dept _STX 4 SENIOR I.
50
▶ 데이터의 삭제(Delete) 한 테이블에서의 삭제 복수 테이블에서의 레코드 삭제
학번이 100인 학생을 학생 테이블에서 삭제하라. 복수 테이블에서의 레코드 삭제 기말성적이 60점 미만인 학생을 등록 테이블과 학생 테이블에서 삭제하라. STUDENT Sno Sname Year Dept D. 100 ENROL Sno Cno Grade Midterm Final _STX <60 D. STUDENT Sno Sname Year Dept D. _STX
51
▶ 데이터의 갱신(update) 필드 값의 단순 갱신(투플은 기본 키로 명세) 산술식을 이용한 갱신
학번이 300인 학생의 학년을 2로 변경하라. 산술식을 이용한 갱신 과목 ‘C413’에 등록한 학생의 기말 성적(Final)에 5점을 가산하라. STUDENT Sno Sname Year Dept 300 U.2 U. 2 ENROL Sno Cno Final Midterm U. _G+5 _G C413
Similar presentations