Relation과 무결성 제약
23년 이전 글/데이터베이스

Relation과 무결성 제약

Relation 개념

 

수학적 정의

Relation은 Cartesian Product의 부분집합

정의
튜플의 수 : 카디널리티(Cardinality)

집합

  • 회원명 = {'송중기', '서현', '송혜교', '보아' }
  • 주소 = {'서울강남', '서울용산', '서울구로', '경기용인'}

Relation

- {('송중기','서울강남'),('서현','서울용산'),('송혜교','서울구로'),('보아','경기용인)}

개념적 정의

Relation schema

  • 릴레이션의 이름과 애트리뷰트 이름들
  • 릴레이션을 위한 틀(framework)
  • 표기법(relation이름(attribute1, attribute2,...attribute N)
  • 기본 키 attribute에는 밑줄 표시
  • 정적 성질
  • 내포라고 함

Relation instance

  • 어느 시점에 relation에 들어 있는 튜플들의 집합
  • 삽입, 삭제, 갱신으로 시간의 흐름에 따라 계속 변함(동적 성질)
  • 일반적으로 릴레이션에는 현재의 인스턴스만 저장
  • 외연(extension)이라고 함

 

관계 데이터베이스 인스턴스

 

Relation 특성

튜플의 유일성

동일한 튜플이 두 개 이상 존재하지 않음 -> 키가 존재함

튜플의 무순서성

  • 튜플들의 순서는 중요하지 않음
  • 튜플들의 순서가 달라도 동일한 릴레이션

Attribute의 무순서성

순서가 중요하지 않음

Attribute의 원자성

한 튜플의 각 Attribute는 원자값을 가짐

기타

  • 각 Relation은 하나의 레코드 타입만 포함
  • 한 Attribute 내의 값들은 모두 같은 유형
  • 각 Attirubte의 이름은 한 Relation 내에서만 고유

 

Relation의 키

키의 정의

각 튜플을 고유하게 식별할 수 있는 하나 이상의 Attribute들의 집합

키의 유형

  • 슈퍼 키(super key)
  • 후보 키(candidate key)
  • 기본 키(primary key)
  • 대체 키(alternate key)

슈퍼 키

  • 한 Relation 내의 특정 튜플을 고유하게 식별하는 하나의 속성 또는 속성들의 집합으로서 유일성을 만족
  • 튜플들을 고유하게 식별하는데 꼭 필요하지 않은 Attribute들을 포함할 수 있음(최소성 만족하지 않음)

슈퍼 키 예제

후보 키

  • 각 튜플을 고유하게 식별하는 최소한의 속성들의 모임
  • 유일성(unigueness)과 최소성(minimality)을 만족
  • 모든 릴레이션에는 최소한 한 개 이상의 후보 키가 있음

후보 키 예제

기본 키(Primary Key)

  • 후보 키 중 릴레이션에서 사용하려고 선정한 키
  • 신용카드 회사 고객 Relation에서 신용카드번호와 주민등록번호가 후보키가 될 수 있음, 이중에서 신용카드번호를 기본키로 선정
  • 자연스러운 기본 키를 찾을 수 없는 경우에는 레코드 번호와 같이 인위적인 키 속성을 릴레이션에 추가할 수 있음

 

대체 키

  • 기본 키가 아닌 후보키
  • 신용카드 회사의 고객 Relation에서 신용카드 번호를 기본 키로 선정하면 주민등록번호는 대체 키

 

키들의 포함관계

 

반응형

 

외래 키(foreign key)

  • 특정 Relation의 기본 키를 참조하는 속성
  • 관계 데이터베이스에서 Relation간의 관계를 나타내기 위해서 사용
  • 외래 키 속성은 피참조되는 Relation의 기본 키 속성과 동일한 도메인을 가져야 함
  • 외래 키 값은 피참조되는 Relation의 기본 키에 존재하는 값이거나 Null 값을 가짐
  • 자신이 속한 Relation에서 기본 키의 구성요소가 될 수 있음

다른 Relation 기본 키를 참조하는 외래키
자체 relation의 기본 키를 참조하는 외래 키
기본 키의 구성요소가 되는 외래키

관계 데이터 모델에서의 키

 

무결성 제약

데이터 무결성(data integrity)

  • 데이터의 정확성 또는 유효성을 의미
  • 일관된 데이터베이스 상태를 정의하는 규칙들을 묵시적 또는 명시적으로 정의함
  • 무결성 제약조건은 데이터베이스 상태가 만족시켜야 하는 조건
  • 데이터베이스가 갱신될 때 DBMS가 자동적으로 무결성 조건을 검사하므로 응용 프로그램들은 무결성 조건을 검사할 필요가 없음

 

개체 무결성 제약조건(entity integrity constraint)

  • Relation에서 기본 키 속성은 Null값을 가질 수 없음
  • Null 값 : 정보 부재를 명시적으로 표현하는 특수한 데이터 값으로 1. 알려지지 않은 값, 또는 해당없음

 

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

  • 릴레이션은 참조할 수 없는 외래 키 값을 갖지 않는다. (NULL 값은 허용)
  • 릴레이션 사이의 관계들이 다른 릴레이션의 기본키를 참조하는 것을 기반으로 표현되기 때문에 외래 키의 개념이 중요

 

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

  • Relation R2의 외래 키가 Relation R1의 기본 키를 참조할 때 참조
  • 무결성 제약조건은 아래의 두 조건 중 하나가 성립되면 만족됨
  • 외래 키의 값은 R1의 어떤 튜플의 기본 키 값과 같다
  • 외래 키는 널값을 가진다

제약 조건의 유지

삽입

참조되는 부서 Relation에 새로운 튜플이 삽입되면 참조, 무결성 제약 조건은 위배되지 않음

참조하는 Relation에 새로운 튜플을 삽입할 때는 참조 무결성 제약조건을 위배할 수 있음

사원 relation에 (4325,오혜원,6)이라는 튜플을 삽입하면 참조 무결성 제약조건을 위배

 

삭제

참조하는 Relation에 튜플이 삭제되면 참조 무결성 제약조건을 위배하지 않음

  • 참조되는 Relation에서 튜플이 삭제되면 참조 무결성 제약조건을 위배하는 경우가 생기거나, 생기지 않을 수 있음
  • 예1 : 부서 Relation에서 네 번째 튜플인 (4, 홍보, 8)를 삭제하더라도 참조 무결성 제약조건을 위배하지 않음
  • 예2 : 부서 Relation에서 세 번째 튜플인 (3, 개발, 9)를 삭제하면 무결성 제약조건을 위배하게 됨

참조 무결성 유지를 위한 DBMS 옵션

제한(restricted)

위배를 야기한 연산을 단순히 거절

예: 부서릴레이션에서(3, 개발, 9)를삭제하면참조무결성제약조건을 위배하게 되므로 삭제 연산을 거절

연쇄(cascade)

참조되는 Relation에서 튜플을 삭제하고, 참조하는 Relation에서 이 튜플을 참조하는 튜플들도 함께 삭제

예: 부서릴레이션에서(3, 개발, 9)를삭제하면 사원 릴레이션에서 부서번호3을 참조하는 두 번째 투플과 다섯번째투플도 함께 삭제

NO ACTION(=resticted)

참조 무결성 제약 조건을 위배한 연산 거절

예: 부서릴레이션에서(3, 개발, 9)를(5, 개발, 9)로변경하면 사원 릴레이션에서 부서번호3을 참조 하는 두번째 투플과 다섯번째 투플은 변경되지않음

 

학습정리

Relation 개념

수학적, 개념적 정의

Relation 특성

  • 튜플과 Attribute는 무순서
  • 튜플은 유일하고 Attribute 값은 원자값

Relation 키

슈퍼키, 후보키 : 유일성과 최소성을 만족하는 Attribute의 집합

기본키 : 후보키 중 사용하려고 선정한 키

외래키 : 특정 Relation의 기본키를 참조하는 키(속성)

무결성 제약

개체 무결성 제약

참조 무결성 제약

 

반응형