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
데이터베이스 (Database)
관계 데이터 모델과관계 데이터베이스 제약 조건
문양세강원대학교 IT 대학 컴퓨터과학전공
Database by Yang-Sae MoonPage 2
강의 내용
. 관계 모델의 개념
관계 모델 제약조건과 관계형 데이터베이스 스키마
갱신 연산과 제약 조건의 위반 처리
관계 데이터 모델
Database by Yang-Sae MoonPage 3
관계 데이터 모델 & 관계 데이터베이스
1970 년 IBM 연구소의 Ted Codd가 처음 소개
대표적 관계 DMBS• IBM 의 DB2• Informix 의 Dynamic Server• Oracle 의 Oracle, Rdb• Microsoft 의 SQL Server, Access
Legacy 시스템• 새롭게 구축되는 시스템과 구별하여 이전부터 사용되어 온 시스템을 지칭하는 용어
관계 데이터 모델
Database by Yang-Sae MoonPage 4
관계 모델의 개념 (1/3)관계 데이터 모델
테이블 릴레이션
행 투플
열 애트리뷰트
Database by Yang-Sae MoonPage 5
관계 모델의 개념 (2/3)
관계모델 용어• 행 → 투플• 열 → 애트리뷰트• 테이블 → 릴레이션
관계모델의 구성• 관계모델에서 데이터베이스는 릴레이션 ( 테이블 ) 들의 모임으로 표현됨• 릴레이션은 투플 ( 행 , 레코드 ) 들의 집합으로 표현됨 • 투플은 애트리뷰트 ( 컬럼 , 필드 , 혹은 속성 ) 들로 구성됨
ER 모델과의 비교 ( 일반적으로 ER 모델링 이후에 관계 모델로 변환 )• 테이블 : 엔티티 타입 ( 혹은 다치 애트리뷰트 또는 관계 타입 )
• 행 : 엔티티 혹은 관계에 해당하는 사실 ( 인스턴스 ) 을 표현함• 열 : 애트리뷰트들을 표시함
관계 데이터 모델
Database by Yang-Sae MoonPage 6
관계 모델의 개념 (3/3)관계 데이터 모델
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 사이의 정수
관계 데이터 모델
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) 의 한
원소임
관계 데이터 모델
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) 은 실세계의 특정 상태를 반영
관계 데이터 모델
Database by Yang-Sae MoonPage 10
실제 예를 통한 관계 모델의 용어관계 데이터 모델
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!
Database by Yang-Sae MoonPage 12
릴레이션의 특성들 (2/4)관계 데이터 모델
투플의 순서 상이 → 동일한 릴레이션
Database by Yang-Sae MoonPage 13
릴레이션의 특성들 (3/4)
투플 내에서 값들의 순서와 릴레이션의 또 다른 정의• n- 투플은 n 개 값의 순서 리스트 (ordered list) 이며 , 한 투플 내에서 값들의 순서는
중요함
( 리스트에서 원소의 순서는 중요한 의미를 가짐 ) → 앞으로 이 정의를 이용
• 반면에 , 각 애트리뷰트와 값이 서로 대응될 수 있다면 애트리뷰트 값들의 순서는
중요하지 않을 수 있음
하나의 투플을 (< 애트리뷰트 >, < 값 >) 쌍들의 집합으로 간주하면 애트리뷰트와
값은 서로 대응될 수 있으며 , 값의 순서는 중요하지 않음 → 보다 일반적인 투플의 정의
관계 데이터 모델
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” 등등의 사실을 나타냄
관계 데이터 모델
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 등은 투플을 나타냄
관계 데이터 모델
Database by Yang-Sae MoonPage 16
관계 모델의 표기법 (2/2)
일반적으로 , STUDENT 처럼 릴레이션 스키마의 이름은 릴레이션의 현재
투플들의 집합 , 즉 현재의 릴레이션 상태를 가리키고 , 반면에
STUDENT(Name, SSN, ...) 는 릴레이션 스키마를 가리킴
서로 다른 릴레이션에서 동일한 이름의 애트리뷰트를 사용할 수 있으며 ,
이 경우 애트리뷰트 이름 앞에 릴레이션 이름을 붙여서 서로를 구분함
• STUDENT.Name, Faculty.Name, Employee.Name
관계 데이터 모델
Database by Yang-Sae MoonPage 17
강의 내용
. 관계 모델의 개념
관계 모델 제약조건과 관계형 데이터베이스 스키마
갱신 연산과 제약 조건의 위반 처리
관계 데이터 모델
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)
관계 데이터 모델
Database by Yang-Sae MoonPage 19
도메인 제약 조건
도메인 제약조건 - ①• 각 애트리뷰트 A 의 값은 반드시 A 의 도메인 dom(A) 에 속하는 원자값이어야 함
도메인과 관련된 데이터 타입• 정수 , 실수와 같은 표준 숫자형• 문자 , 고정길이 문자열 , 가변길이 문자열• 날짜 , 시간• 타임스탬프• 화폐단위 등
관계 데이터 모델
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 를 의미함• 키 애트리뷰트의 값은 릴레이션내 각 투플을 유일하게 식별하는데 이용할 수 있음
관계 데이터 모델
Database by Yang-Sae MoonPage 21
키 제약조건 (2/3)관계 데이터 모델
슈퍼키슈퍼키최소슈퍼키
↓키
Database by Yang-Sae MoonPage 22
키 제약조건 (3/3)
기본 키 (primary key)• 일반적으로 릴레이션은 여러 키를 가질 수 있는데 , 이들을 후보키 (candidate key) 라
함• 릴레이션이 여러 후보키를 가지면 이중 하나를 임의로 선택하여 기본키로 지정함 • 기본키를 구성하는 애트리뷰트는 밑줄로 표시함
( 기본키에 대해서는 물리적 인덱스 등을 구성하여 , 접근 속도를 향상시킴 )
관계 데이터 모델
후보키후보키&
기본키
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))
;
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)
관계 데이터 모델
Database by Yang-Sae MoonPage 25
관계 데이터베이스와 스키마 (2/3)
Company = {Employee, Department, Dept_locations, Projects, Works_On, Dependent}
관계 데이터 모델
릴레이션 스키마
관계 데이터베이스 스키마
Database by Yang-Sae MoonPage 26
관계 데이터베이스와 스키마 (3/3)
COMPANY 관계 데이터베이스 스키마에 대응하는 관계 데이터베이스 상태
관계 데이터 모델
참조무결성제약조건
PK
FK
릴레이션 상태
Database by Yang-Sae MoonPage 27
무결성 제약조건이 뭐야 ?
관계 데이터베이스 스키마 = S(Schema) + IC(Integrity Constraint)
라는데 ,
도대체 무결성 제약조건이 뭐야 ?
관계 데이터 모델
앞서의 세 가지 제약조건 +
엔티티 무결성 제약조건 +
참조 무결성 제약조건
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))
;
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) 릴레이션이라고
부름
• 다른 제약조건과 달리 참조 무결성은 두 릴레이션에 대한 제약조건임
관계 데이터 모델
Database by Yang-Sae MoonPage 30
엔티티 무결성과 참조 무결성 제약조건 (2/2)관계 데이터 모델
관계형 데이터베이스스키마에서참조 무결성 제약조건은R1.FK 에서 R2.PK 로의화살표로 표시함
외래키는 동일한 릴레이션의애트리뷰트를 참조할 수도 있음
두 릴레이션의 JOIN 시 이용
Database by Yang-Sae MoonPage 31
강의 내용
. 관계 모델의 개념
관계 모델 제약조건과 관계형 데이터베이스 스키마
갱신 연산과 제약 조건의 위반 처리
관계 데이터 모델
Database by Yang-Sae MoonPage 32
관계 모델의 갱신 연산
관계모델의 연산의 종류• 추출 (retrieval) – Read
• 갱신 (update) - Write
릴레이션에 대한 기본 갱신 연산• 삽입 : 새로운 투플의 삽입• 삭제 : 기존 투플의 삭제• 수정 : 기존 투플의 애트리뷰트 값의 변경• 갱신 ( 삽입 , 삭제 , 수정 ) 연산을 실행하는 경우 스키마에 정의된 ( 무결성 ) 제약
조건을 위반하지 않아야 함
관계 데이터 모델
Database by Yang-Sae MoonPage 33
삽입 연산
삽입 연산• 네 가지 종류의 제약 조건을 위반할 수 있음• 도메인 제약조건 : 삽입되는 투플 t 에서 애트리뷰트의 값이 도메인에 없는 경우• 키 제약 조건 : t 에서 기본키의 값이 다른 투플에서 이미 존재하는 경우• 엔티티 제약 조건 : t 에서 기본키의 값이 널인 경우• 참조 무결성 제약 조건 : t 에서 외래키의 값이 참조되는 릴레이션의 기본키 값으로
존재하지 않는 경우• 널에 대한 제약 조건 엔티티 제약 조건에 포함된다고 볼 수 있음
제약 조건을 위반하면 그 삽입을 거부하거나 , 그 위반 사실을 사용자에게 알려 정정하도록 해야 함
관계 데이터 모델
Database by Yang-Sae MoonPage 34
삭제 연산
삭제 연산• 참조 ( 무결성 ) 제약 조건 : 삭제하려는 투플을 다른 투플에서 참조하고 있는 경우• 참조 ( 무결성 ) 제약 조건의 유지 : 투플이 삭제되는 경우 다른 투플에서 참조하고
있는지 검사하여 그렇지 않는 경우에만 삭제함
삭제 연산이 참조 무결성 제약 조건을 위반하는 경우 취할 수 있는 세 가지 옵션• 삭제를 거부• 삭제되는 투플을 참조하는 투플들까지 모두 삭제 ( 연쇄 삭제 )
• 삭제되는 투플을 참조하는 투플에서 외래키 값을 널로 바꾸거나 다른 유효한 투플을 참조하도록 변경
위의 세가지 옵션 중 사용자가 응용의 특성에 적합한 것을 선택하도록 하는 것이 바람직함
관계 데이터 모델
Database by Yang-Sae MoonPage 35
수정 연산
수정 연산• 수정 연산은 기본적으로 “삭제 후 삽입” 연산으로 간주할 수 있으므로 삽입과 삭제시의
문제점이 모두 나타남• 기본 키나 외래키가 아닌 애트리뷰트 값의 변경은 큰 문제가 없음
→ 도메인 제약조건의 위반 여부만을 확인하면 됨
관계 데이터 모델
Database by Yang-Sae MoonPage 36
요약
관계 모델의 개념• 용어 정의 ( 릴레이션 , 투플 , 애트리뷰트 등 )
관계 제약조건과 관계형 데이타베이스 스키마• 도메인 제약 조건 , 키 제약조건 , 엔티티 무결성 제약조건 , 참조 무결성 제약조건• 스키마는 릴레이션의 집합과 ( 무결성 ) 제약 조건 집합으로 구성됨
갱신 연산과 제약조건의 위반 처리• 릴레이션에 투플을 삽입하거나 삭제 변경할 때 제약조건을 만족하는지 검사
관계 데이터 모델