2장. 관계형 모델 소개 - database lab. – 데이터베이스...

18
1 2 . 관계형 모델 소개 이동호 데이터베이스 연구실 소프트웨어학부

Upload: others

Post on 29-Mar-2021

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 2장. 관계형 모델 소개 - Database Lab. – 데이터베이스 연구실database.hanyang.ac.kr/wordpress/wp-content/uploads/2018/... · 2003. 8. 28. · 관계형데이터베이스구조(Cont.)

1

2장.관계형모델소개

이동호

데이터베이스연구실

소프트웨어학부

Page 2: 2장. 관계형 모델 소개 - Database Lab. – 데이터베이스 연구실database.hanyang.ac.kr/wordpress/wp-content/uploads/2018/... · 2003. 8. 28. · 관계형데이터베이스구조(Cont.)

2

목차

• 2.1 관계형데이터베이스구조

• 2.2 데이터베이스스키마

• 2.3 키

• 2.4 스키마다이어그램

• 2.5 관계형질의언어

• 2.6 관계형연산

Page 3: 2장. 관계형 모델 소개 - Database Lab. – 데이터베이스 연구실database.hanyang.ac.kr/wordpress/wp-content/uploads/2018/... · 2003. 8. 28. · 관계형데이터베이스구조(Cont.)

3

2.1 관계형데이터베이스구조

• Instructor 릴레이션속성(attributes)

(혹은 열)

튜플(tuples)

(혹은 행)

Page 4: 2장. 관계형 모델 소개 - Database Lab. – 데이터베이스 연구실database.hanyang.ac.kr/wordpress/wp-content/uploads/2018/... · 2003. 8. 28. · 관계형데이터베이스구조(Cont.)

4

관계형데이터베이스구조 (Cont.)

• 릴레이션

– 테이블을의미함

• 튜플(혹은레코드)

– 테이블에서하나의행을의미함

• 속성

– 테이블에서하나의열을의미함

– 속성의특징

• 각속성이갖을수있는값의범위를도메인(domain)이라함

• 속성값은원자적(즉, 더이상쪼갤수없음)이어야함

• 널(null)값은모든도메인의멤버

• 널값은많은연산에서복잡성을일으킬수있음

Page 5: 2장. 관계형 모델 소개 - Database Lab. – 데이터베이스 연구실database.hanyang.ac.kr/wordpress/wp-content/uploads/2018/... · 2003. 8. 28. · 관계형데이터베이스구조(Cont.)

5

2.2 데이터베이스스키마

• 데이터베이스는다수의릴레이션들의집합임

• 데이터베이스스키마

– 데이터베이스의논리적설계

• 데이터베에스인스턴스

– 어떤순간데이터베이스에실제데이터가존재하는것

• 릴레이션스키마

– 테이블의논리적설계

– 즉, 속성들과도메인들의집합

• 릴레이션인스턴스

– 어떤수간테이블에존재하는실제데이터가존재하는것

Page 6: 2장. 관계형 모델 소개 - Database Lab. – 데이터베이스 연구실database.hanyang.ac.kr/wordpress/wp-content/uploads/2018/... · 2003. 8. 28. · 관계형데이터베이스구조(Cont.)

6

데이터베이스스키마 (Cont.)

• 속성 : A1, A2, …, An

• 릴레이션스키마 : R = (A1, A2, …, An )

예제:

instructor = (ID, name, dept_name, salary)

• 도메인 D1, D2, …. Dn 주어졌을경우, 어떤릴레이션 r 은 D1

x D2 x … x Dn 의부분집합이다.

– 결국, 릴레이션은 n개의튜플(a1, a2, …, an)들의집합이다. (여

기서각각의 ai Di)

• 릴레이션의인스턴스는테이블로명세됨

• 릴레이션 r의원소 t는튜플이며테이블에서행에해당함

Page 7: 2장. 관계형 모델 소개 - Database Lab. – 데이터베이스 연구실database.hanyang.ac.kr/wordpress/wp-content/uploads/2018/... · 2003. 8. 28. · 관계형데이터베이스구조(Cont.)

7

2.3 키(Keys)

• 키(K)는속성들의집합. 즉, 키(K) 릴레이션(R)

• 수퍼키(superkey)

– 만약 K의값들이 R의모든튜플들을유일하게구별하는데충분하다면 K를수퍼키라고한다.

• 예제: {ID}와 {ID, name}은릴레이션 instructor의주키

• 후보키(candiate key)

– 수퍼키의부분집합이수퍼키가아닌최소한의수퍼키를후보키라고한다.

• 예제: {ID}는후보키임

{ID, name}는후보키 ?

{name, dept_name}는후보키 ?

• 후보키중에하나를주키(primary key)로선택할수있음

• 외래키(foreign key) 제약조건: 어떤릴레이션에존재하는값은또다른릴레이션에반드시나와야한다.

Page 8: 2장. 관계형 모델 소개 - Database Lab. – 데이터베이스 연구실database.hanyang.ac.kr/wordpress/wp-content/uploads/2018/... · 2003. 8. 28. · 관계형데이터베이스구조(Cont.)

8

2.4 스키마다이어그램

• 데이터베이스스키마는스키마다어이그램으로표시됨

Schema diagram for the university database

Page 9: 2장. 관계형 모델 소개 - Database Lab. – 데이터베이스 연구실database.hanyang.ac.kr/wordpress/wp-content/uploads/2018/... · 2003. 8. 28. · 관계형데이터베이스구조(Cont.)

9

2.5 관계형질의어

• 순수(pure) 질의어

– 관계 대수(algebra)

– 튜플 관계 해석(calculus)

– 도메인 관계 해석

• 관계 연산자 (기호)

– 선택 연산 ( σ )

– 추출 연산 ( Π )

– 합집합 ( )

– 차집합 ( – )

– 교집합 ( )

– 조인(join) –두릴레이션을합치는연산

• 카티션 곱(cartesian product) ( x )

• 자연조인(natural join) ( )

Page 10: 2장. 관계형 모델 소개 - Database Lab. – 데이터베이스 연구실database.hanyang.ac.kr/wordpress/wp-content/uploads/2018/... · 2003. 8. 28. · 관계형데이터베이스구조(Cont.)

10

2.6 관계연산- 선택(selection) 연산

릴레이션 r

A=B 그리고 D > 5 인조건을 만족하는 튜플

σ A=B and D > 5 (r)

Page 11: 2장. 관계형 모델 소개 - Database Lab. – 데이터베이스 연구실database.hanyang.ac.kr/wordpress/wp-content/uploads/2018/... · 2003. 8. 28. · 관계형데이터베이스구조(Cont.)

11

추출(projection) 연산

A 그리고 C 속성만추출

Π A, C (r)

릴레이션 r

Page 12: 2장. 관계형 모델 소개 - Database Lab. – 데이터베이스 연구실database.hanyang.ac.kr/wordpress/wp-content/uploads/2018/... · 2003. 8. 28. · 관계형데이터베이스구조(Cont.)

12

합집합(union)

r s:

릴레이션 r, s

Page 13: 2장. 관계형 모델 소개 - Database Lab. – 데이터베이스 연구실database.hanyang.ac.kr/wordpress/wp-content/uploads/2018/... · 2003. 8. 28. · 관계형데이터베이스구조(Cont.)

13

차집합(difference) 연산

r – s:

릴레이션 r, s

Page 14: 2장. 관계형 모델 소개 - Database Lab. – 데이터베이스 연구실database.hanyang.ac.kr/wordpress/wp-content/uploads/2018/... · 2003. 8. 28. · 관계형데이터베이스구조(Cont.)

14

교집합(intersection)

r s:

릴레이션 r, s

Page 15: 2장. 관계형 모델 소개 - Database Lab. – 데이터베이스 연구실database.hanyang.ac.kr/wordpress/wp-content/uploads/2018/... · 2003. 8. 28. · 관계형데이터베이스구조(Cont.)

15

카티션곱(cartesian product)

r x s:

릴레이션 r, s

Page 16: 2장. 관계형 모델 소개 - Database Lab. – 데이터베이스 연구실database.hanyang.ac.kr/wordpress/wp-content/uploads/2018/... · 2003. 8. 28. · 관계형데이터베이스구조(Cont.)

16

자연조인(natural join)

• r 과 s를 각각 스키마 R과 S에서 정의된 릴레이션이라고 하자.

• r과 s의 자연조인(r s)은 r에 존재하는 튜플 tr 과 s에 존재하는 튜플 ts 의 모든 쌍(pair)에 대해서 아래의 조건을 만족하는튜플들의 집합이다.

– tr 과 ts가 R S 에 존재하는 각 속성에 대해서 동일한 값을 갖는경우

자연조인이란 릴레이션 R과 S에 공통적으로 존재하는 속성들을 이용하여공통 속성들의 값들이 서로 같은 투플들을 합치는 것이다.

Page 17: 2장. 관계형 모델 소개 - Database Lab. – 데이터베이스 연구실database.hanyang.ac.kr/wordpress/wp-content/uploads/2018/... · 2003. 8. 28. · 관계형데이터베이스구조(Cont.)

17

자연조인 - 예제

자연조인

r s

릴레이션 r, s

Page 18: 2장. 관계형 모델 소개 - Database Lab. – 데이터베이스 연구실database.hanyang.ac.kr/wordpress/wp-content/uploads/2018/... · 2003. 8. 28. · 관계형데이터베이스구조(Cont.)

18

관계대수