36
데데데데데데 (Database) 데데 데데데 데데데 데데 데데데데데데 데데 데데 데데데 데데데데데 IT 데데 데데데데데데데

데이터베이스 (Database) 관계 데이터 모델과 관계 데이터베이스 제약 조건 문양세 강원대학교 IT 대학 컴퓨터과학전공

  • Upload
    ianna

  • View
    186

  • Download
    1

Embed Size (px)

DESCRIPTION

데이터베이스 (Database) 관계 데이터 모델과 관계 데이터베이스 제약 조건 문양세 강원대학교 IT 대학 컴퓨터과학전공. 강의 내용. 관계 데이터 모델. . 관계 모델의 개념 관계 모델 제약조건과 관계형 데이터베이스 스키마 갱신 연산과 제약 조건의 위반 처리. 관계 데이터 모델 & 관계 데이터베이스. 관계 데이터 모델. 1970 년 IBM 연구소의 Ted Codd 가 처음 소개 대표적 관계 DMBS IBM 의 DB2 Informix 의 Dynamic Server - PowerPoint PPT Presentation

Citation preview

Page 1: 데이터베이스  (Database) 관계 데이터 모델과 관계 데이터베이스 제약 조건 문양세 강원대학교  IT 대학  컴퓨터과학전공

데이터베이스 (Database)

관계 데이터 모델과관계 데이터베이스 제약 조건

문양세강원대학교 IT 대학 컴퓨터과학전공

Page 2: 데이터베이스  (Database) 관계 데이터 모델과 관계 데이터베이스 제약 조건 문양세 강원대학교  IT 대학  컴퓨터과학전공

Database by Yang-Sae MoonPage 2

강의 내용

. 관계 모델의 개념

관계 모델 제약조건과 관계형 데이터베이스 스키마

갱신 연산과 제약 조건의 위반 처리

관계 데이터 모델

Page 3: 데이터베이스  (Database) 관계 데이터 모델과 관계 데이터베이스 제약 조건 문양세 강원대학교  IT 대학  컴퓨터과학전공

Database by Yang-Sae MoonPage 3

관계 데이터 모델 & 관계 데이터베이스

1970 년 IBM 연구소의 Ted Codd가 처음 소개

대표적 관계 DMBS• IBM 의 DB2• Informix 의 Dynamic Server• Oracle 의 Oracle, Rdb• Microsoft 의 SQL Server, Access

Legacy 시스템• 새롭게 구축되는 시스템과 구별하여 이전부터 사용되어 온 시스템을 지칭하는 용어

관계 데이터 모델

Page 4: 데이터베이스  (Database) 관계 데이터 모델과 관계 데이터베이스 제약 조건 문양세 강원대학교  IT 대학  컴퓨터과학전공

Database by Yang-Sae MoonPage 4

관계 모델의 개념 (1/3)관계 데이터 모델

테이블 릴레이션

행 투플

열 애트리뷰트

Page 5: 데이터베이스  (Database) 관계 데이터 모델과 관계 데이터베이스 제약 조건 문양세 강원대학교  IT 대학  컴퓨터과학전공

Database by Yang-Sae MoonPage 5

관계 모델의 개념 (2/3)

관계모델 용어• 행 → 투플• 열 → 애트리뷰트• 테이블 → 릴레이션

관계모델의 구성• 관계모델에서 데이터베이스는 릴레이션 ( 테이블 ) 들의 모임으로 표현됨• 릴레이션은 투플 ( 행 , 레코드 ) 들의 집합으로 표현됨 • 투플은 애트리뷰트 ( 컬럼 , 필드 , 혹은 속성 ) 들로 구성됨

ER 모델과의 비교 ( 일반적으로 ER 모델링 이후에 관계 모델로 변환 )• 테이블 : 엔티티 타입 ( 혹은 다치 애트리뷰트 또는 관계 타입 )

• 행 : 엔티티 혹은 관계에 해당하는 사실 ( 인스턴스 ) 을 표현함• 열 : 애트리뷰트들을 표시함

관계 데이터 모델

Page 6: 데이터베이스  (Database) 관계 데이터 모델과 관계 데이터베이스 제약 조건 문양세 강원대학교  IT 대학  컴퓨터과학전공

Database by Yang-Sae MoonPage 6

관계 모델의 개념 (3/3)관계 데이터 모델

Page 7: 데이터베이스  (Database) 관계 데이터 모델과 관계 데이터베이스 제약 조건 문양세 강원대학교  IT 대학  컴퓨터과학전공

Database by Yang-Sae MoonPage 7

관계 모델의 용어 (1/3)

도메인 (domain)• ( 애트리뷰트가 가질 수 있는 ) 원자값 (atomic value) 들의 집합• 도메인의 예

USA_phone_numbers: 미국에서 사용하는 10 자리 전화번호들의 집합

Names: 개인의 이름들의 집합

Employee_ages: 15~80 사이의 사원들의 나이• 각 도메인을 위해 데이터 타입 또는 포맷을 명시하기도 함

( 예 : USA_phone_numbers 도메인을 위한 데이터 타입은 (ddd)ddd-dddd 로 명시 )

데이터 타입• 도메인은 실제 데이터 타입으로 명시함• 데이터 타입의 예 : string, integer, real

• 포맷이나 범위를 명시하는 예 :

USA_phone_numbers: (ddd) ddd-dddd, 여기서 d 는 한자리 숫자

Employee_ages: 15 와 80 사이의 정수

관계 데이터 모델

Page 8: 데이터베이스  (Database) 관계 데이터 모델과 관계 데이터베이스 제약 조건 문양세 강원대학교  IT 대학  컴퓨터과학전공

Database by Yang-Sae MoonPage 8

관계 모델의 용어 (2/3)

릴레이션 스키마 (relation schema)

• 릴레이션 이름 R 과 애트리뷰트 Ai 들의 집합으로 R(A1, A2, ..., An) 로 표기함

• 릴레이션의 차수 (degree): 릴레이션의 애트리뷰트 갯수

• 예 : STUDENT(Name, SSN, BirthDate, Address) 릴레이션의 차수 = 4

• 도메인의 표현 : dom(Ai) = integer, dom(Name) = Names

릴레이션 스키마 R(A1, A2, ..., An) 의 투플 t

n- 투플 (n 개의 애트리뷰트로 구성된 투플 ) 이라 부름

• n- 투플 t: 값들의 ( 순서화된 ) 집합 t = <v1, v2, ..., vn>, 값 vi 는 dom(Ai) 의 한

원소임

관계 데이터 모델

Page 9: 데이터베이스  (Database) 관계 데이터 모델과 관계 데이터베이스 제약 조건 문양세 강원대학교  IT 대학  컴퓨터과학전공

Database by Yang-Sae MoonPage 9

관계 모델의 용어 (3/3)

릴레이션 스키마 R 에 대한 릴레이션 혹은 릴레이션 인스턴스 (relation

instance) r 또는 r(R)

• 투플의 집합 ; r = r(R) = {t1, t2, ..., tm}

• r(R) 은 R 을 정의하는 m 개의 도메인들에 대한 카티션 프로덕트의 부분집합

r(R) ⊆ dom(A1)×dom(A2) × ... × dom(An)

최대 가능 투플수 : |dom(A1)| × |dom(A2)| × ... × |dom(An)|

• r(R) 은 실세계의 특정 상태를 반영

관계 데이터 모델

Page 10: 데이터베이스  (Database) 관계 데이터 모델과 관계 데이터베이스 제약 조건 문양세 강원대학교  IT 대학  컴퓨터과학전공

Database by Yang-Sae MoonPage 10

실제 예를 통한 관계 모델의 용어관계 데이터 모델

Page 11: 데이터베이스  (Database) 관계 데이터 모델과 관계 데이터베이스 제약 조건 문양세 강원대학교  IT 대학  컴퓨터과학전공

Database by Yang-Sae MoonPage 11

릴레이션의 특성들 (1/4)

릴레이션에서 투플의 순서• 릴레이션은 투플들의 집합으로 정의됨

• 집합에서 원소의 순서가 무의미한 것과 마찬가지로 투플의 순서 역시 의미가 없음

관계 데이터 모델

Basic Property of Sets (from Discrete Mathematics)Sets are inherently unordered: ( 순서가 중요치 않다 !)• No matter what objects a, b, and c denote,

{a, b, c} = {a, c, b} = {b, a, c} = {b, c, a} = {c, a, b} = {c, b, a}.

All elements are distinct (unequal); multiple listings make no difference!( 중복은 의미가 없다 !)• If a=b, then {a, b, c} = {a, c} = {b, c} = {a, a, b, a, b, c, c, c, c}. • This set contains at most two elements!

Page 12: 데이터베이스  (Database) 관계 데이터 모델과 관계 데이터베이스 제약 조건 문양세 강원대학교  IT 대학  컴퓨터과학전공

Database by Yang-Sae MoonPage 12

릴레이션의 특성들 (2/4)관계 데이터 모델

투플의 순서 상이 → 동일한 릴레이션

Page 13: 데이터베이스  (Database) 관계 데이터 모델과 관계 데이터베이스 제약 조건 문양세 강원대학교  IT 대학  컴퓨터과학전공

Database by Yang-Sae MoonPage 13

릴레이션의 특성들 (3/4)

투플 내에서 값들의 순서와 릴레이션의 또 다른 정의• n- 투플은 n 개 값의 순서 리스트 (ordered list) 이며 , 한 투플 내에서 값들의 순서는

중요함

( 리스트에서 원소의 순서는 중요한 의미를 가짐 ) → 앞으로 이 정의를 이용

• 반면에 , 각 애트리뷰트와 값이 서로 대응될 수 있다면 애트리뷰트 값들의 순서는

중요하지 않을 수 있음

하나의 투플을 (< 애트리뷰트 >, < 값 >) 쌍들의 집합으로 간주하면 애트리뷰트와

값은 서로 대응될 수 있으며 , 값의 순서는 중요하지 않음 → 보다 일반적인 투플의 정의

관계 데이터 모델

Page 14: 데이터베이스  (Database) 관계 데이터 모델과 관계 데이터베이스 제약 조건 문양세 강원대학교  IT 대학  컴퓨터과학전공

Database by Yang-Sae MoonPage 14

릴레이션의 특성들 (4/4)

투플 내에서의 값들과 널• 투플 내의 각 값은 더 이상 나눌 수 없는 원자값 (atomic value) 들임• ER 모델에서의 다치 애트리뷰트나 복합 애트리뷰트는 관계모델에서는 허용되지 않음

다치 애트리뷰트나 복합 애트리뷰트는 별도의 릴레이션으로 표현되어야 함• 값을 알 수 없거나 해당되는 값이 없을 때에는 null 이라는 특수 값을 사용함

릴레이션의 해석 ( 의미 )• 릴레이션 스키마는 일종의 선언 (declaration) 또는 주장 (assertion) 으로 해석할 수

있음 :STUDENT 스키마는 일반적으로 학생 개체가 Name, SSN, Home-Phone, Address, ... 을 갖는다고 선언

• 릴레이션내 각 투플은 선언 / 주장에 대한 사실 또는 인스턴스로 해석할 수 있음 : 다음 투플은 이름이 “ Benjamin Bayer”, SSN 이 “ 305-61-2435” 등등의 사실을 나타냄

관계 데이터 모델

Page 15: 데이터베이스  (Database) 관계 데이터 모델과 관계 데이터베이스 제약 조건 문양세 강원대학교  IT 대학  컴퓨터과학전공

Database by Yang-Sae MoonPage 15

관계 모델의 표기법 (1/2)

차수가 n 인 릴레이션 스키마 R 은 R(A1, A2, ..., An) 으로 표기

릴레이션 r(R) 의 n- 투플 t 는 t = <v1, v2, ..., vn> 으로 표기 , 여기서 vi 는

애트리뷰트 Ai 의 값

• t[Ai] 와 t.Ai 는 t 에서 애트리뷰트 Ai 의 값 vi 를 나타냄 , 투플 t 의 구성 요소 값

(component value) 을 t[Ai] = vi ( 투플 t 에 대한 애트리뷰트 Ai 의 값 ) 로 표기

• t[Au, Av, ..., Aw] 는 애트리뷰트 Au, Av, ..., Aw 의 값을 포함하는 부 (sub)- 투플을 가리킴

대문자 Q, R, S 등은 릴레이션 스키마를 나타냄

소문자 q, r, s 등은 (Q, R, S 등에 대응하는 ) 릴레이션 상태를 나타냄

소문자 t, u, v 등은 투플을 나타냄

관계 데이터 모델

Page 16: 데이터베이스  (Database) 관계 데이터 모델과 관계 데이터베이스 제약 조건 문양세 강원대학교  IT 대학  컴퓨터과학전공

Database by Yang-Sae MoonPage 16

관계 모델의 표기법 (2/2)

일반적으로 , STUDENT 처럼 릴레이션 스키마의 이름은 릴레이션의 현재

투플들의 집합 , 즉 현재의 릴레이션 상태를 가리키고 , 반면에

STUDENT(Name, SSN, ...) 는 릴레이션 스키마를 가리킴

서로 다른 릴레이션에서 동일한 이름의 애트리뷰트를 사용할 수 있으며 ,

이 경우 애트리뷰트 이름 앞에 릴레이션 이름을 붙여서 서로를 구분함

• STUDENT.Name, Faculty.Name, Employee.Name

관계 데이터 모델

Page 17: 데이터베이스  (Database) 관계 데이터 모델과 관계 데이터베이스 제약 조건 문양세 강원대학교  IT 대학  컴퓨터과학전공

Database by Yang-Sae MoonPage 17

강의 내용

. 관계 모델의 개념

관계 모델 제약조건과 관계형 데이터베이스 스키마

갱신 연산과 제약 조건의 위반 처리

관계 데이터 모델

Page 18: 데이터베이스  (Database) 관계 데이터 모델과 관계 데이터베이스 제약 조건 문양세 강원대학교  IT 대학  컴퓨터과학전공

Database by Yang-Sae MoonPage 18

관계 모델 제약 조건 (constraint)

제약조건은 모든 릴레이션 인스턴스들이 만족해야 하는 조건임

스키마 기반 제약조건 : 데이터 모델 스키마에서 DDL 을 통해 직접 표현 가능한 조건(1) 도메인 제약 조건 (domain constraints)

(2) 키 제약조건 (key constraints)

(3) 널에 대한 제약조건 (constraints on nulls)

(4) 엔티티 무결성 제약조건 (entity integrity constraints)

(5) 참조 무결성 제약조건 (referential integrity constraints)

관계 데이터 모델

Page 19: 데이터베이스  (Database) 관계 데이터 모델과 관계 데이터베이스 제약 조건 문양세 강원대학교  IT 대학  컴퓨터과학전공

Database by Yang-Sae MoonPage 19

도메인 제약 조건

도메인 제약조건 - ①• 각 애트리뷰트 A 의 값은 반드시 A 의 도메인 dom(A) 에 속하는 원자값이어야 함

도메인과 관련된 데이터 타입• 정수 , 실수와 같은 표준 숫자형• 문자 , 고정길이 문자열 , 가변길이 문자열• 날짜 , 시간• 타임스탬프• 화폐단위 등

관계 데이터 모델

Page 20: 데이터베이스  (Database) 관계 데이터 모델과 관계 데이터베이스 제약 조건 문양세 강원대학교  IT 대학  컴퓨터과학전공

Database by Yang-Sae MoonPage 20

키 제약조건 (1/3)

키 제약조건 - ②• 릴레이션은 투플의 집합으로 정의되므로 , 모든 원소는 중복되어서는 안됨• 어떤 두 투플도 릴레이션의 모든 애트리뷰트에 대해 같은 값들의 조합을 가질 수 없음

R 의 슈퍼키 (superkey)• R 의 애트리뷰트 집합 SK 로서 다음의 성질을 만족해야 함 • 모든 유효한 릴레이션 인스턴스 r(R) 에서 어떠한 두 투플도 동일한 SK 값을 갖지

않아야 함 즉 , r(R) 내의 임의의 서로 다른 두 투플 t1 과 t2 에 대해 t1[SK] ≠ t2[SK]이어야 함

R 의 키 (key)• “ 최소” 슈퍼키 즉 , 슈퍼키들 중에서 슈퍼키 K 를 구성하는 어느 한 애트리뷰트라도

빠지면 슈퍼키가 될 수 없는 슈퍼키 K 를 의미함• 키 애트리뷰트의 값은 릴레이션내 각 투플을 유일하게 식별하는데 이용할 수 있음

관계 데이터 모델

Page 21: 데이터베이스  (Database) 관계 데이터 모델과 관계 데이터베이스 제약 조건 문양세 강원대학교  IT 대학  컴퓨터과학전공

Database by Yang-Sae MoonPage 21

키 제약조건 (2/3)관계 데이터 모델

슈퍼키슈퍼키최소슈퍼키

↓키

Page 22: 데이터베이스  (Database) 관계 데이터 모델과 관계 데이터베이스 제약 조건 문양세 강원대학교  IT 대학  컴퓨터과학전공

Database by Yang-Sae MoonPage 22

키 제약조건 (3/3)

기본 키 (primary key)• 일반적으로 릴레이션은 여러 키를 가질 수 있는데 , 이들을 후보키 (candidate key) 라

함• 릴레이션이 여러 후보키를 가지면 이중 하나를 임의로 선택하여 기본키로 지정함 • 기본키를 구성하는 애트리뷰트는 밑줄로 표시함

( 기본키에 대해서는 물리적 인덱스 등을 구성하여 , 접근 속도를 향상시킴 )

관계 데이터 모델

후보키후보키&

기본키

Page 23: 데이터베이스  (Database) 관계 데이터 모델과 관계 데이터베이스 제약 조건 문양세 강원대학교  IT 대학  컴퓨터과학전공

Database by Yang-Sae MoonPage 23

널에 대한 제약조건

널에 대한 제약조건 - ③• 애트리뷰트 값으로 널을 허용하지 않는 경우 , 애트리뷰트는 널을 가질 수 없음• 예 : DEPARTMENT 테이블의 Name 필드는 NOT NULL 로 제한함

관계 데이터 모델

CREATE TABLE DEPARTMENT ( DNAME VARCHAR(15) NOT NULL,

DNUMBER INT NOT NULL,MGRSSN CHAR(9) NOT NULL,MGRSTARTDATE DATE,

PRIMARY KEY (DNUMBER),UNIQUE (DNAME),FOREIGN KEY (MGRSSN) REFERENCE EMPLOYEE (SSN))

;

Page 24: 데이터베이스  (Database) 관계 데이터 모델과 관계 데이터베이스 제약 조건 문양세 강원대학교  IT 대학  컴퓨터과학전공

Database by Yang-Sae MoonPage 24

관계 데이터베이스와 스키마 (1/3)

관계 데이터베이스 스키마 = S + IC (Schema + Integrity Constraint)

• 데이터베이스에 속하는 릴레이션 스키마들의 집합 S 와 무결성 제약조건 IC(Integrity

Constraint) 의 집합으로 정의됨

• S = {R1, R2, ..., Rn} + IC

데이터베이스 스키마 S 의 관계 데이터베이스 상태 ( 혹은 인스턴스 )

• 릴레이션 상태 집합 DB 를 데이터베이스 상태라고 정의함

• DB = {r1, r2, ..., rn} 여기서 ri 는 IC 를 만족함

데이터 정의어

• 관계 스키마를 정의하기 위한 언어 : DDL(Data Definition Language)

관계 데이터 모델

Page 25: 데이터베이스  (Database) 관계 데이터 모델과 관계 데이터베이스 제약 조건 문양세 강원대학교  IT 대학  컴퓨터과학전공

Database by Yang-Sae MoonPage 25

관계 데이터베이스와 스키마 (2/3)

Company = {Employee, Department, Dept_locations, Projects, Works_On, Dependent}

관계 데이터 모델

릴레이션 스키마

관계 데이터베이스 스키마

Page 26: 데이터베이스  (Database) 관계 데이터 모델과 관계 데이터베이스 제약 조건 문양세 강원대학교  IT 대학  컴퓨터과학전공

Database by Yang-Sae MoonPage 26

관계 데이터베이스와 스키마 (3/3)

COMPANY 관계 데이터베이스 스키마에 대응하는 관계 데이터베이스 상태

관계 데이터 모델

참조무결성제약조건

PK

FK

릴레이션 상태

Page 27: 데이터베이스  (Database) 관계 데이터 모델과 관계 데이터베이스 제약 조건 문양세 강원대학교  IT 대학  컴퓨터과학전공

Database by Yang-Sae MoonPage 27

무결성 제약조건이 뭐야 ?

관계 데이터베이스 스키마 = S(Schema) + IC(Integrity Constraint)

라는데 ,

도대체 무결성 제약조건이 뭐야 ?

관계 데이터 모델

앞서의 세 가지 제약조건 +

엔티티 무결성 제약조건 +

참조 무결성 제약조건

Page 28: 데이터베이스  (Database) 관계 데이터 모델과 관계 데이터베이스 제약 조건 문양세 강원대학교  IT 대학  컴퓨터과학전공

Database by Yang-Sae MoonPage 28

엔티티 무결성 제약조건

엔티티 무결성 제약 조건 - ④

• 기본키가 각 투플들을 식별하는 데 이용되기 때문에 어떠한 기본 키 값도 널 값을 가질 수

없다는 제약 조건임 , 기본키 → 릴레이션의 속성을 정의할 때 not null 임을 명시

• 기본키에 속하지 않는 애트리뷰트들도 null 값을 가질 수 없도록 제한할 수는 있음

관계 데이터 모델

CREATE TABLE DEPARTMENT ( DNAME VARCHAR(15) NOT NULL,

DNUMBER INT NOT NULL,MGRSSN CHAR(9) NOT NULL,MGRSTARTDATE DATE,

PRIMARY KEY (DNUMBER),UNIQUE (DNAME),FOREIGN KEY (MGRSSN) REFERENCE EMPLOYEE (SSN))

;

Page 29: 데이터베이스  (Database) 관계 데이터 모델과 관계 데이터베이스 제약 조건 문양세 강원대학교  IT 대학  컴퓨터과학전공

Database by Yang-Sae MoonPage 29

참조 무결성 제약조건 (1/2)

참조 무결성 제약 조건 - ⑤

• 한 릴레이션에 있는 투플이 다른 릴레이션에 있는 투플을 참조하려면 반드시 참조되는

투플이 그 릴레이션 내에 존재해야 함

• 하나의 릴레이션 R 에서 속성 F 의 값으로 다른 릴레이션 S 의 기본키 P 값을 참조하는

경우에 R 과 S 는 참조 무결성 제약 조건을 가진다고 함 (F 는 null 을 가질 수 있음 )

• t1[F] = t2[P] 이면 R 의 투플 t1 이 S 의 투플 t2 를 참조 (reference) 한다고 하며 , F 를

외래키 (foreign key) 라고 부름

R 을 참조한 (referencing) 릴레이션 , S 를 참조된 (referenced) 릴레이션이라고

부름

• 다른 제약조건과 달리 참조 무결성은 두 릴레이션에 대한 제약조건임

관계 데이터 모델

Page 30: 데이터베이스  (Database) 관계 데이터 모델과 관계 데이터베이스 제약 조건 문양세 강원대학교  IT 대학  컴퓨터과학전공

Database by Yang-Sae MoonPage 30

엔티티 무결성과 참조 무결성 제약조건 (2/2)관계 데이터 모델

관계형 데이터베이스스키마에서참조 무결성 제약조건은R1.FK 에서 R2.PK 로의화살표로 표시함

외래키는 동일한 릴레이션의애트리뷰트를 참조할 수도 있음

두 릴레이션의 JOIN 시 이용

Page 31: 데이터베이스  (Database) 관계 데이터 모델과 관계 데이터베이스 제약 조건 문양세 강원대학교  IT 대학  컴퓨터과학전공

Database by Yang-Sae MoonPage 31

강의 내용

. 관계 모델의 개념

관계 모델 제약조건과 관계형 데이터베이스 스키마

갱신 연산과 제약 조건의 위반 처리

관계 데이터 모델

Page 32: 데이터베이스  (Database) 관계 데이터 모델과 관계 데이터베이스 제약 조건 문양세 강원대학교  IT 대학  컴퓨터과학전공

Database by Yang-Sae MoonPage 32

관계 모델의 갱신 연산

관계모델의 연산의 종류• 추출 (retrieval) – Read

• 갱신 (update) - Write

릴레이션에 대한 기본 갱신 연산• 삽입 : 새로운 투플의 삽입• 삭제 : 기존 투플의 삭제• 수정 : 기존 투플의 애트리뷰트 값의 변경• 갱신 ( 삽입 , 삭제 , 수정 ) 연산을 실행하는 경우 스키마에 정의된 ( 무결성 ) 제약

조건을 위반하지 않아야 함

관계 데이터 모델

Page 33: 데이터베이스  (Database) 관계 데이터 모델과 관계 데이터베이스 제약 조건 문양세 강원대학교  IT 대학  컴퓨터과학전공

Database by Yang-Sae MoonPage 33

삽입 연산

삽입 연산• 네 가지 종류의 제약 조건을 위반할 수 있음• 도메인 제약조건 : 삽입되는 투플 t 에서 애트리뷰트의 값이 도메인에 없는 경우• 키 제약 조건 : t 에서 기본키의 값이 다른 투플에서 이미 존재하는 경우• 엔티티 제약 조건 : t 에서 기본키의 값이 널인 경우• 참조 무결성 제약 조건 : t 에서 외래키의 값이 참조되는 릴레이션의 기본키 값으로

존재하지 않는 경우• 널에 대한 제약 조건 엔티티 제약 조건에 포함된다고 볼 수 있음

제약 조건을 위반하면 그 삽입을 거부하거나 , 그 위반 사실을 사용자에게 알려 정정하도록 해야 함

관계 데이터 모델

Page 34: 데이터베이스  (Database) 관계 데이터 모델과 관계 데이터베이스 제약 조건 문양세 강원대학교  IT 대학  컴퓨터과학전공

Database by Yang-Sae MoonPage 34

삭제 연산

삭제 연산• 참조 ( 무결성 ) 제약 조건 : 삭제하려는 투플을 다른 투플에서 참조하고 있는 경우• 참조 ( 무결성 ) 제약 조건의 유지 : 투플이 삭제되는 경우 다른 투플에서 참조하고

있는지 검사하여 그렇지 않는 경우에만 삭제함

삭제 연산이 참조 무결성 제약 조건을 위반하는 경우 취할 수 있는 세 가지 옵션• 삭제를 거부• 삭제되는 투플을 참조하는 투플들까지 모두 삭제 ( 연쇄 삭제 )

• 삭제되는 투플을 참조하는 투플에서 외래키 값을 널로 바꾸거나 다른 유효한 투플을 참조하도록 변경

위의 세가지 옵션 중 사용자가 응용의 특성에 적합한 것을 선택하도록 하는 것이 바람직함

관계 데이터 모델

Page 35: 데이터베이스  (Database) 관계 데이터 모델과 관계 데이터베이스 제약 조건 문양세 강원대학교  IT 대학  컴퓨터과학전공

Database by Yang-Sae MoonPage 35

수정 연산

수정 연산• 수정 연산은 기본적으로 “삭제 후 삽입” 연산으로 간주할 수 있으므로 삽입과 삭제시의

문제점이 모두 나타남• 기본 키나 외래키가 아닌 애트리뷰트 값의 변경은 큰 문제가 없음

→ 도메인 제약조건의 위반 여부만을 확인하면 됨

관계 데이터 모델

Page 36: 데이터베이스  (Database) 관계 데이터 모델과 관계 데이터베이스 제약 조건 문양세 강원대학교  IT 대학  컴퓨터과학전공

Database by Yang-Sae MoonPage 36

요약

관계 모델의 개념• 용어 정의 ( 릴레이션 , 투플 , 애트리뷰트 등 )

관계 제약조건과 관계형 데이타베이스 스키마• 도메인 제약 조건 , 키 제약조건 , 엔티티 무결성 제약조건 , 참조 무결성 제약조건• 스키마는 릴레이션의 집합과 ( 무결성 ) 제약 조건 집합으로 구성됨

갱신 연산과 제약조건의 위반 처리• 릴레이션에 투플을 삽입하거나 삭제 변경할 때 제약조건을 만족하는지 검사

관계 데이터 모델