76

4 장 . 관계 대수와 SQL

Embed Size (px)

DESCRIPTION

4 장 . 관계 대수와 SQL. 관계 데이터 모델에서 지원되는 두 가지 정형적인 언어 관계 해석 (relational calculus) 원하는 데이터만 명시하고 질의를 어떻게 수행할 것인가는 명시하지 않는 선언적인 언어 관계 대수 (relational algebra) 어떻게 질의를 수행할 것인가를 명시 하는 절차적 인어 관계 대수는 상용 관계 DBMS 들에서 널리 사용되는 SQL 의 이론적인 기초 관계 대수는 SQL 을 구현하고 최적화하기 위해 DBMS 의 내부 언어로서도 사용됨 SQL - PowerPoint PPT Presentation

Citation preview

Page 1: 4 장 .  관계 대수와  SQL
Page 2: 4 장 .  관계 대수와  SQL

24 장 . 관계 대수와 SQL

4 장 . 관계 대수와 SQL4 장 . 관계 대수와 SQL

관계 데이터 모델에서 지원되는 두 가지 정형적인 언어 관계 해석 (relational calculus)

원하는 데이터만 명시하고 질의를 어떻게 수행할 것인가는 명시하지 않는 선언적인 언어

관계 대수 (relational algebra) 어떻게 질의를 수행할 것인가를 명시하는 절차적 인어 관계 대수는 상용 관계 DBMS 들에서 널리 사용되는 SQL 의 이론적인 기초 관계 대수는 SQL 을 구현하고 최적화하기 위해 DBMS 의 내부 언어로서도 사용됨

SQL 상용 관계 DBMS 들의 사실상의 표준 질의어인 SQL 을 이해하고 사용할 수 있는

능력은 매우 중요함 사용자는 SQL 을 사용하여 관계 데이터베이스에 릴레이션을 정의하고 , 관계

데이터베이스에서 정보를 검색하고 , 관계 데이터베이스를 갱신하며 , 여러 가지

무결성 제약조건들을 명시할 수 있음

어느것을 기본으로 만들것인가

Page 3: 4 장 .  관계 대수와  SQL

34 장 . 관계 대수와 SQL

4.1 관계 대수4.1 관계 대수

관계 대수 기존의 릴레이션들로부터 새로운 릴레이션을 생성함 릴레이션이나 관계 대수식 ( 이것의 결과도 릴레이션임 ) 에 연산자들을

적용하여 보다 복잡한 관계 대수식을 점차적으로 만들 수 있음 기본적인 연산자들의 집합으로 이루어짐 산술 연산자와 유사하게 단일 릴레이션이나 두 개의 릴레이션을 입력으로

받아 하나의 결과 릴레이션을 생성함 결과 릴레이션은 또 다른 관계 연산자의 입력으로 사용될 수 있음

Page 4: 4 장 .  관계 대수와  SQL

44 장 . 관계 대수와 SQL

4.1 관계 대수 ( 계속 )4.1 관계 대수 ( 계속 )

Page 5: 4 장 .  관계 대수와  SQL

54 장 . 관계 대수와 SQL

4.1 관계 대수 ( 계속 )4.1 관계 대수 ( 계속 )

동등조인이 포함됨

몇 개의 릴레이션을 가지고 있냐에 따라 단항 , 이항으로 나뉨세개의 릴레이션도 있을 수 있다 .

Page 6: 4 장 .  관계 대수와  SQL

64 장 . 관계 대수와 SQL

4.1 관계 대수 ( 계속 )4.1 관계 대수 ( 계속 )

행 -> 열 ->

공통적인거 뺴고

Page 7: 4 장 .  관계 대수와  SQL

74 장 . 관계 대수와 SQL

4.1 관계 대수 ( 계속 )4.1 관계 대수 ( 계속 )

실렉션 연산자 한 릴레이션에서 실렉션 조건 (selection condition) 을 만족하는

투플들의 부분 집합을 생성함 실렉션 연산자는 하나의 입력 릴레이션에 적용되므로 단항 연산자 실렉션의 결과 릴레이션의 차수 (column) 는 입력 릴레이션의 차수와

같음 결과 릴레이션의 카디날리티는 항상 원래 릴레이션의 카디날리티보다

작거나 같음 실렉션 조건을 프레디키트 (predicate) 라고도 함 실렉션 조건은 일반적으로 릴레이션의 임의의 애트리뷰트와 상수 , = ,

<>(not =), <=, <, >=, > 등의 비교 연산자 , AND, OR, NOT

등의 부울 연산자를 포함할 수 있음

Page 8: 4 장 .  관계 대수와  SQL

84 장 . 관계 대수와 SQL

4.1 관계 대수 ( 계속 )4.1 관계 대수 ( 계속 )

실렉션 연산자 ( 계속 )

투플

Select *

FROM employee

Where DNO=3

Select TITLE

From employee

Where DNO=1 or DNO=2

Distinct??( 스펠링 .. ㅜ . ㅜ ) 가 머였떠라 ;;

Page 9: 4 장 .  관계 대수와  SQL

94 장 . 관계 대수와 SQL

4.1 관계 대수 ( 계속 )4.1 관계 대수 ( 계속 )

프로젝션 연산자 한 릴레이션의 애트리뷰트들의 부분 집합을 구함 프로젝션의 결과로 생성되는 릴레이션은 < 애트리뷰트 리스트 > 에

명시된 애트리뷰트들만 가짐 실렉션의 결과 릴레이션에는 중복 투플이 존재할 수 없지만 , 프로젝션

연산의 결과 릴레이션에는 중복된 투플들이 존재할 수 있음

Page 10: 4 장 .  관계 대수와  SQL

104 장 . 관계 대수와 SQL

4.1 관계 대수 ( 계속 )4.1 관계 대수 ( 계속 )

Page 11: 4 장 .  관계 대수와  SQL

114 장 . 관계 대수와 SQL

4.1 관계 대수 ( 계속 )4.1 관계 대수 ( 계속 )

Page 12: 4 장 .  관계 대수와  SQL

124 장 . 관계 대수와 SQL

4.1 관계 대수 ( 계속 )4.1 관계 대수 ( 계속 )

집합 연산자 릴레이션이 투플들의 집합이기 때문에 기존의 집합 연산이 릴레이션에

적용됨 세 가지 집합 연산자 : 합집합 , 교집합 , 차집합 연산자 집합 연산자의 입력으로 사용되는 두 개의 릴레이션은 합집합 호환 (union

compatible) 이어야 함 집합 연산자들은 두 개의 릴레이션을 입력으로 받아들이므로 이항 연산자

합집합 호환 두 릴레이션 R1(A1, A2, ..., An) 과 R2(B1, B2, ..., Bm) 이 합집합

호 환 일 필 요 충 분 조 건 은 n=m 이 고 , 모 든 1<=i<=n 에 대 해

domain(Ai)=domain(Bi)

반드시 두개 릴레이션의 차수가 같아야 한다 .

모든 속성들에 대해 Ai 과 Bi 의 도메인이 같아야 한다

Page 13: 4 장 .  관계 대수와  SQL

134 장 . 관계 대수와 SQL

4.1 관계 대수 ( 계속 )4.1 관계 대수 ( 계속 )

Page 14: 4 장 .  관계 대수와  SQL

144 장 . 관계 대수와 SQL

4.1 관계 대수 ( 계속 )4.1 관계 대수 ( 계속 )

합집합 연산자 두 릴레이션 R 과 S 의 합집합 R ∪ S 는 R 또는 S 에 있거나 R 과 S

모두에 속한 투플들로 이루어진 릴레이션 결과 릴레이션에서 중복된 투플들은 제외됨 결과 릴레이션의 차수는 R 또는 S 의 차수와 같으며 , 결과 릴레이션의

애 트 리 뷰 트 이 름 들 은 R 의 애 트 리 뷰 트 들 의 이 름 과 같 거 나 S 의

애트리뷰트들의 이름과 같음

Page 15: 4 장 .  관계 대수와  SQL

154 장 . 관계 대수와 SQL

4.1 관계 대수 ( 계속 )4.1 관계 대수 ( 계속 )

Select DNO

From employee

Where EMPNAME=“ 김창섭”

Page 16: 4 장 .  관계 대수와  SQL

164 장 . 관계 대수와 SQL

4.1 관계 대수 ( 계속 )4.1 관계 대수 ( 계속 )

Page 17: 4 장 .  관계 대수와  SQL

174 장 . 관계 대수와 SQL

4.1 관계 대수 ( 계속 )4.1 관계 대수 ( 계속 )

교집합 연산자 두 릴레이션 R 과 S 의 교집합 R ∩ S 는 R 과 S 모두에 속한 투플들로

이루어진 릴레이션 결과 릴레이션의 차수는 R 또는 S 의 차수와 같으며 , 결과 릴레이션의

애 트 리 뷰 트 이 름 들 은 R 의 애 트 리 뷰 트 들 의 이 름 과 같 거 나 S 의

애트리뷰트들의 이름과 같음

Page 18: 4 장 .  관계 대수와  SQL

184 장 . 관계 대수와 SQL

4.1 관계 대수 ( 계속 )4.1 관계 대수 ( 계속 )

Select DNO

From employee

Where EMPNAME=“ 김창섭” and EMPNAME=“ 최종철”

Page 19: 4 장 .  관계 대수와  SQL

194 장 . 관계 대수와 SQL

4.1 관계 대수 ( 계속 )4.1 관계 대수 ( 계속 )

Page 20: 4 장 .  관계 대수와  SQL

204 장 . 관계 대수와 SQL

4.1 관계 대수 ( 계속 )4.1 관계 대수 ( 계속 )

차집합 연산자 두 릴레이션 R 과 S 의 차집합 R - S 는 R 에는 속하지만 S 에는 속하지

않은 투플들로 이루어진 릴레이션 결과 릴레이션의 차수는 R 또는 S 의 차수와 같으며 , 결과 릴레이션의

애 트 리 뷰 트 이 름 들 은 R 의 애 트 리 뷰 트 들 의 이 름 과 같 거 나 S 의

애트리뷰트들의 이름과 같음

Page 21: 4 장 .  관계 대수와  SQL

214 장 . 관계 대수와 SQL

4.1 관계 대수 ( 계속 )4.1 관계 대수 ( 계속 )

Page 22: 4 장 .  관계 대수와  SQL

224 장 . 관계 대수와 SQL

4.1 관계 대수 ( 계속 )4.1 관계 대수 ( 계속 )

Page 23: 4 장 .  관계 대수와  SQL

234 장 . 관계 대수와 SQL

4.1 관계 대수 ( 계속 )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 의 투플들의 모든 가능한 조합으로 이루어진

릴레이션 카티션 곱의 결과 릴레이션의 크기가 매우 클 수 있으며 , 사용자가 실제로

원하는 것은 카티션 곱의 결과 릴레이션의 일부인 경우가 대부분이므로

카티션 곱 자체는 유용한 연산자가 아님

최적화 룰에 맞춰서 .

Page 24: 4 장 .  관계 대수와  SQL

244 장 . 관계 대수와 SQL

4.1 관계 대수 ( 계속 )4.1 관계 대수 ( 계속 )

Page 25: 4 장 .  관계 대수와  SQL

254 장 . 관계 대수와 SQL

4.1 관계 대수 ( 계속 )4.1 관계 대수 ( 계속 )

관계 대수의 완전성 실렉션 , 프로젝션 , 합집합 , 차집합 , 카티션 곱은 관계 대수의

필수적인 연산자 다른 관계 연산자들은 필수적인 관계 연산자를 두 개 이상 조합하여

표현할 수 있음 임의의 질의어가 적어도 필수적인 관계 대수 연산자들만큼의 표현력을

갖고 있으면 관계적으로 완전 (relationally complete) 하다고 말함

Page 26: 4 장 .  관계 대수와  SQL

264 장 . 관계 대수와 SQL

4.1 관계 대수 ( 계속 )4.1 관계 대수 ( 계속 )

조인 연산자 두 개의 릴레이션으로부터 연관된 투플들을 결합하는 연산자 관계 데이터베이스에서 두 개 이상의 릴레이션들의 관계를 다루는데 매우

중요한 연산자 세타 조인 (theta join), 동등 조인 (equijoin), 자연 조인 (natural

join), 외부 조인 (outer join), 세미 조인 (semijoin) 등

Page 27: 4 장 .  관계 대수와  SQL

274 장 . 관계 대수와 SQL

4.1 관계 대수 ( 계속 )4.1 관계 대수 ( 계속 )

세타 조인과 동등 조인 두 릴레이션 R(A1, A2, ..., An) 과 S(B1, B2, ..., Bm) 의 세타

조인의 결과는 차수가 n+m 이고 , 애트리뷰트가 (A1, A2, ..., An,

B1, B2, ..., Bm) 이며 , 조인 조건을 만족하는 투플들로 이루어진

릴레이션 세타는 {=, <>, <=, <, >=, >} 중의 하나 동등 조인은 세타 조인 중에서 비교 연산자가 = 인 조인

Page 28: 4 장 .  관계 대수와  SQL

284 장 . 관계 대수와 SQL

4.1 관계 대수 ( 계속 )4.1 관계 대수 ( 계속 )

Page 29: 4 장 .  관계 대수와  SQL

294 장 . 관계 대수와 SQL

4.1 관계 대수 ( 계속 )4.1 관계 대수 ( 계속 )

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

조인으로 표현 가능

Page 30: 4 장 .  관계 대수와  SQL

304 장 . 관계 대수와 SQL

4.1 관계 대수 ( 계속 )4.1 관계 대수 ( 계속 )

Page 31: 4 장 .  관계 대수와  SQL

314 장 . 관계 대수와 SQL

4.1 관계 대수 ( 계속 )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 들의 집합

Page 32: 4 장 .  관계 대수와  SQL

324 장 . 관계 대수와 SQL

4.1 관계 대수 ( 계속 )4.1 관계 대수 ( 계속 )

Page 33: 4 장 .  관계 대수와  SQL

334 장 . 관계 대수와 SQL

4.1 관계 대수 ( 계속 )4.1 관계 대수 ( 계속 )

관계 대수 질의의 예

공동기기관리실
모르는 페이지 전혀 이해안됨..ㅋㅋㅋ
Page 34: 4 장 .  관계 대수와  SQL

344 장 . 관계 대수와 SQL

4.1 관계 대수 ( 계속 )4.1 관계 대수 ( 계속 )

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

이를 명시하지 못함

Page 35: 4 장 .  관계 대수와  SQL

354 장 . 관계 대수와 SQL

4.1 관계 대수 ( 계속 )4.1 관계 대수 ( 계속 )

추가된 관계 대수 연산자 집단 함수

Page 36: 4 장 .  관계 대수와  SQL

364 장 . 관계 대수와 SQL

4.1 관계 대수 ( 계속 )4.1 관계 대수 ( 계속 )

추가된 관계 대수 연산자 ( 계속 ) 그룹화

Page 37: 4 장 .  관계 대수와  SQL

374 장 . 관계 대수와 SQL

4.1 관계 대수 ( 계속 )4.1 관계 대수 ( 계속 )

추가된 관계 대수 연산자 ( 계속 ) 외부 조인

상대 릴레이션에서 대응되는 투플을 갖지 못하는 투플이나 조인 애트리뷰트에

널값이 들어 있는 투플들을 다루기 위해서 조인 연산을 확장한 조인 두 릴레이션에서 대응되는 투플들을 결합하면서 , 대응되는 투플을 갖지 않는

투플과 조인 애트리뷰트에 널값을 갖는 투플도 결과에 포함시킴 왼쪽 외부 조인 (left outer join), 오른쪽 외부 조인 (right outer join),

완전 외부 조인 (full outer join)

Page 38: 4 장 .  관계 대수와  SQL

384 장 . 관계 대수와 SQL

4.1 관계 대수 ( 계속 )4.1 관계 대수 ( 계속 )

왼쪽 외부 조인 릴레이션 R 과 S 의 왼쪽 외부 조인 연산은 R 의 모든 투플들을 결과에

포 함 시 키 고 , 만 일 릴 레 이 션 S 에 관 련 된 투 플 이 없 으 면 결 과

릴레이션에서 릴레이션 S 의 애트리뷰트들은 널값으로 채움

Page 39: 4 장 .  관계 대수와  SQL

394 장 . 관계 대수와 SQL

4.1 관계 대수 ( 계속 )4.1 관계 대수 ( 계속 )

오른쪽 외부 조인 릴레이션 R 와 S 의 오른쪽 외부 조인 연산은 S 의 모든 투플들을 결과에

포 함 시 키 고 , 만 일 릴 레 이 션 R 에 관 련 된 투 플 이 없 으 면 결 과

릴레이션에서 릴레이션 R 의 애트리뷰트들은 널값으로 채움

Page 40: 4 장 .  관계 대수와  SQL

404 장 . 관계 대수와 SQL

4.1 관계 대수 ( 계속 )4.1 관계 대수 ( 계속 )

Page 41: 4 장 .  관계 대수와  SQL

414 장 . 관계 대수와 SQL

4.1 관계 대수 ( 계속 )4.1 관계 대수 ( 계속 )

완전 외부 조인 릴레이션 R 와 S 의 완전 외부 조인 연산은 R 과 S 의 모든 투플들을

결과에 포함시키고 , 만일 상대 릴레이션에 관련된 투플이 없으면 결과

릴레이션에서 상대 릴레이션의 애트리뷰트들은 널값으로 채움

Page 42: 4 장 .  관계 대수와  SQL

424 장 . 관계 대수와 SQL

4.2 SQL 개요4.2 SQL 개요

SQL 개요 SQL 은 현재 DBMS 시장에서 관계 DBMS 가 압도적인 우위를

차지하는데 중요한 요인의 하나 SQL 은 IBM 연구소에서 1974 년에 System R 이라는 관계 DBMS

시제품을 연구할 때 관계 대수와 관계 해석을 기반으로 , 집단 함수 ,

그룹화 , 갱신 연산 등을 추가하여 개발된 언어 1986 년에 ANSI( 미국 표준 기구 ) 에서 SQL 표준을 채택함으로써

SQL 이 널리 사용되는데 기여 다양한 상용 관계 DBMS마다 지원하는 SQL 기능에 다소 차이가 있음 본 책에서는 SQL2 를 따름

Page 43: 4 장 .  관계 대수와  SQL

434 장 . 관계 대수와 SQL

4.2 SQL 개요 ( 계속 )4.2 SQL 개요 ( 계속 )

Page 44: 4 장 .  관계 대수와  SQL

444 장 . 관계 대수와 SQL

4.2 SQL 개요 ( 계속 )4.2 SQL 개요 ( 계속 )

SQL 개요 ( 계속 ) SQL 은 비절차적 언어 ( 선언적 언어 ) 이므로 사용자는 자신이 원하는 바

(what) 만 명시하며 , 원하는 것을 처리하는 방법 (how) 은 명시할 수

없음 관계 DBMS 는 사용자가 입력한 SQL 문을 번역하여 사용자가 요구한

데이터를 찾는데 필요한 모든 과정을 담당 SQL 의 장점은 자연어에 가까운 구문을 사용하여 질의를 표현할 수

있다는 것 두 가지 인터페이스

대화식 SQL(interactive SQL)

내포된 SQL(embedded SQL)

Page 45: 4 장 .  관계 대수와  SQL

454 장 . 관계 대수와 SQL

4.2 SQL 개요 ( 계속 )4.2 SQL 개요 ( 계속 )

Page 46: 4 장 .  관계 대수와  SQL

464 장 . 관계 대수와 SQL

4.2 SQL 개요 ( 계속 )4.2 SQL 개요 ( 계속 )

오라클 SQL 의 구성요소 데이터 검색 데이터 조작어 데이터 정의어 트랜잭션 제어 데이터 제어어

Page 47: 4 장 .  관계 대수와  SQL

474 장 . 관계 대수와 SQL

4.2 SQL 개요 ( 계속 )4.2 SQL 개요 ( 계속 )

Page 48: 4 장 .  관계 대수와  SQL

484 장 . 관계 대수와 SQL

4.2 SQL 개요 ( 계속 )4.2 SQL 개요 ( 계속 )

Page 49: 4 장 .  관계 대수와  SQL

494 장 . 관계 대수와 SQL

4.3 데이터 정의어와 무결성 제약조건4.3 데이터 정의어와 무결성 제약조건

Page 50: 4 장 .  관계 대수와  SQL

504 장 . 관계 대수와 SQL

데이터 정의어 스키마의 생성과 제거

SQL2 에서는 동일한 데이터베이스 응용에 속하는 릴레이션 , 도메인 ,

제약조건 , 뷰 , 권한 등을 그룹화하기 위해서 스키마 개념을 지원

CREATE SCHEMA MY_DB AUTHORIZATION kim;

DROP SCHEMA MY_DB RESTRICT;

DROP SCHEMA MY_DB CASCADE;

4.3 데이터 정의어와 무결성 제약조건 ( 계속 )4.3 데이터 정의어와 무결성 제약조건 ( 계속 )

Page 51: 4 장 .  관계 대수와  SQL

514 장 . 관계 대수와 SQL

릴레이션 정의

4.3 데이터 정의어와 무결성 제약조건 ( 계속 )4.3 데이터 정의어와 무결성 제약조건 ( 계속 )

Page 52: 4 장 .  관계 대수와  SQL

524 장 . 관계 대수와 SQL

4.3 데이터 정의어와 무결성 제약조건 ( 계속 )4.3 데이터 정의어와 무결성 제약조건 ( 계속 )

Page 53: 4 장 .  관계 대수와  SQL

534 장 . 관계 대수와 SQL

릴레이션 제거

DROP TABLE DEPARTMENT;

ALTER TABLE

ALTER TABLE EMPLOYEE ADD PHONE CHAR(13);

인덱스 생성

CREATE UNIQUE INDEX EMPINDEX ON EMPLOYEE(EMPNO);

도메인 생성

CREATE DOMAIN DEPTNAME CHAR(10) DEFAULT ‘ 개발’ ;

4.3 데이터 정의어와 무결성 제약조건 ( 계속 )4.3 데이터 정의어와 무결성 제약조건 ( 계속 )

Page 54: 4 장 .  관계 대수와  SQL

544 장 . 관계 대수와 SQL

제약조건

4.3 데이터 정의어와 무결성 제약조건 ( 계속 )4.3 데이터 정의어와 무결성 제약조건 ( 계속 )

Page 55: 4 장 .  관계 대수와  SQL

554 장 . 관계 대수와 SQL

4.3 데이터 정의어와 무결성 제약조건 ( 계속 )4.3 데이터 정의어와 무결성 제약조건 ( 계속 )

Page 56: 4 장 .  관계 대수와  SQL

564 장 . 관계 대수와 SQL

참조 무결성 제약조건 유지ON DELETE NO ACTION

ON DELETE CASCADE

ON DELETE SET NULL

ON DELETE SET DEFAULT

ON UPDATE NO ACTION

ON UPDATE CASCADE

ON UPDATE SET NULL

ON UPDATE SET DEFAULT

4.3 데이터 정의어와 무결성 제약조건 ( 계속 )4.3 데이터 정의어와 무결성 제약조건 ( 계속 )

Page 57: 4 장 .  관계 대수와  SQL

574 장 . 관계 대수와 SQL

4.3 데이터 정의어와 무결성 제약조건 ( 계속 )4.3 데이터 정의어와 무결성 제약조건 ( 계속 )

Page 58: 4 장 .  관계 대수와  SQL

584 장 . 관계 대수와 SQL

4.3 데이터 정의어와 무결성 제약조건 ( 계속 )4.3 데이터 정의어와 무결성 제약조건 ( 계속 )

Page 59: 4 장 .  관계 대수와  SQL

594 장 . 관계 대수와 SQL

무결성 제약조건의 추가 및 삭제ALTER TABLE STUDENT ADD CONSTRAINT STUDENT_PK

PRIMARY KEY (STNO);

ALTER TABLE STUDENT DROP CONSTRAINT STUDENT_PK;

4.3 데이터 정의어와 무결성 제약조건 ( 계속 )4.3 데이터 정의어와 무결성 제약조건 ( 계속 )

Page 60: 4 장 .  관계 대수와  SQL

604 장 . 관계 대수와 SQL

SELECT 문 관계 데이터베이스에서 정보를 검색하는 SQL 문 관계 대수의 실렉션과 의미가 완전히 다름 관계 대수의 실렉션 , 프로젝션 , 조인 , 카티션 곱 등을 결합한 것 관계 데이터베이스에서 가장 자주 사용됨 여 러 가 지 질 의 들 의 결 과 를 보 이 기 위 해 서 그림 4.8 의 관 계

데이터베이스 상태를 사용함

4.4 SELECT 문4.4 SELECT 문

Page 61: 4 장 .  관계 대수와  SQL

614 장 . 관계 대수와 SQL

4.4 SELECT 문 ( 계속 )4.4 SELECT 문 ( 계속 )

Page 62: 4 장 .  관계 대수와  SQL

624 장 . 관계 대수와 SQL

기본적인 SQL 질의 SELECT 절과 FROM 절만 필수적인 절이고 , 나머지는 선택 사항

4.4 SELECT 문 ( 계속 )4.4 SELECT 문 ( 계속 )

Page 63: 4 장 .  관계 대수와  SQL

634 장 . 관계 대수와 SQL

별칭 (alias) 서로 다른 릴레이션에 동일한 이름을 가진 애트리뷰트가 속해 있을 때

애트리뷰트의 이름을 구분하는 방법

EMPLOYEE.DNO

FROM EMPLOYEE AS E, DEPARTMENT AS D

4.4 SELECT 문 ( 계속 )4.4 SELECT 문 ( 계속 )

Page 64: 4 장 .  관계 대수와  SQL

644 장 . 관계 대수와 SQL

릴레이션의 모든 애트리뷰트나 일부 애트리뷰트들을 검색

4.4 SELECT 문 ( 계속 )4.4 SELECT 문 ( 계속 )

Page 65: 4 장 .  관계 대수와  SQL

654 장 . 관계 대수와 SQL

4.4 SELECT 문 ( 계속 )4.4 SELECT 문 ( 계속 )

Page 66: 4 장 .  관계 대수와  SQL

664 장 . 관계 대수와 SQL

상이한 값들을 검색

4.4 SELECT 문 ( 계속 )4.4 SELECT 문 ( 계속 )

Page 67: 4 장 .  관계 대수와  SQL

674 장 . 관계 대수와 SQL

4.4 SELECT 문 ( 계속 )4.4 SELECT 문 ( 계속 )

Page 68: 4 장 .  관계 대수와  SQL

684 장 . 관계 대수와 SQL

특정한 투플들의 검색

4.4 SELECT 문 ( 계속 )4.4 SELECT 문 ( 계속 )

Page 69: 4 장 .  관계 대수와  SQL

694 장 . 관계 대수와 SQL

문자열 비교

4.4 SELECT 문 ( 계속 )4.4 SELECT 문 ( 계속 )

Page 70: 4 장 .  관계 대수와  SQL

704 장 . 관계 대수와 SQL

다수의 검색 조건 아래와 같은 질의는 잘못되었음

4.4 SELECT 문 ( 계속 )4.4 SELECT 문 ( 계속 )

Page 71: 4 장 .  관계 대수와  SQL

714 장 . 관계 대수와 SQL

4.4 SELECT 문 ( 계속 )4.4 SELECT 문 ( 계속 )

Page 72: 4 장 .  관계 대수와  SQL

724 장 . 관계 대수와 SQL

부정 검색 조건

4.4 SELECT 문 ( 계속 )4.4 SELECT 문 ( 계속 )

Page 73: 4 장 .  관계 대수와  SQL

734 장 . 관계 대수와 SQL

범위를 사용한 검색

4.4 SELECT 문 ( 계속 )4.4 SELECT 문 ( 계속 )

Page 74: 4 장 .  관계 대수와  SQL

744 장 . 관계 대수와 SQL

리스트를 사용한 검색

4.4 SELECT 문 ( 계속 )4.4 SELECT 문 ( 계속 )

Page 75: 4 장 .  관계 대수와  SQL

754 장 . 관계 대수와 SQL

SELECT 절에서 산술 연산자 (+, -, *, /) 사용

4.4 SELECT 문 ( 계속 )4.4 SELECT 문 ( 계속 )

Page 76: 4 장 .  관계 대수와  SQL

764 장 . 관계 대수와 SQL

널값 널값을 포함한 다른 값과 널값을 +, - 등을 사용하여 연산하면 결과는

널 COUNT(*) 를 제외한 집단 함수들은 널값을 무시함 어떤 애트리뷰트에 들어 있는 값이 널인가 비교하기 위해서

‘DNO=NULL’ 처럼 나타내면 안됨

4.4 SELECT 문 ( 계속 )4.4 SELECT 문 ( 계속 )