익명 사용자
로그인하지 않음
계정 만들기
로그인
youngwiki
검색
Integrity Constraints 문서 원본 보기
youngwiki
이름공간
문서
토론
더 보기
더 보기
문서 행위
읽기
원본 보기
역사
←
Integrity Constraints
문서 편집 권한이 없습니다. 다음 이유를 확인해주세요:
요청한 명령은 다음 권한을 가진 사용자에게 제한됩니다:
사용자
.
문서의 원본을 보거나 복사할 수 있습니다.
상위 문서: [[SQL]] ==개요== '''Integrity constraint'''는 승인된 사용자에 의해 데이터베이스에 적용된 갱신(update)에 의한 변경 데이터의 일관성(consistency)를 잃지 않도록 보장해준다. 즉, integrity constraint는 데이터베이스를 우발적인 손상으로부터 보호하는 역할을 한다.<ref>이는 무단 사용자의 접근을 막는 security constraint와는 대조적이다.</ref> Integrity constraint의 예는 다음과 같다: * 강사(instructor)의 이름은 null일 수 없다. * 두 명의 강사가 동일한 ID를 가질 수 없다. * course 릴레이션의 모든 학과(department) 이름은 department 릴레이션에 존재해야 한다. * 학과의 예산은 반드시 $0.00보다 커야 한다. 일반적으로 데이터베이스에 관련된 임의의 논리 조건(predicate)은 integrity constraint가 될 수 있다. 하지만 어떤 조건은 검사 비용이 높을 수 있기 때문에 대부분의 DBMS는 비용이 적게 드는(minimal overhead) constraint 만을 명시하도록 한다.<br> Integrity constraint는 보통 데이터베이스 스키마(schema) 설계 과정의 일부로 인식되며, <code>create table</code> 명령의 일부로 릴레이션을 생성할 때 선언된다. 또한 아래와 같이 기존 릴레이션에 integrity constraint를 추가할 수 있다. <syntaxhighlight lang="cpp"> alter table <table name> add <constraint> ... </syntaxhighlight> Integrity constraint에는 [[Relational Model#Keys|primary key constraint]]나 [[Relational Model#Keys|foreign key constraint]]도 존재하지만 해당 문서에는 다른 종류의 constraint에 대해 알아본다. ==Constraints on a Single Relation== [[SQL data definition#Basic Schema Definition|create table]] 명령은 테이블을 정의하는 것 외에도 integrity constraint를 포함할 수 있다. 이때 primary key 외에도 다음과 같은 integrity constraint가 포함될 수 있다: * not null * unique * check(<조건>) 해당 문서에서는 위 constraint에 대해 설명한다. ===Not null constraint=== null 값은 모든 속성(atrribute)의 도메인에 포함되기 때문에 기본적으로 모든 속성에서 허용되지만 특정 속성에서는 null 값의 사용이 부적절하다. 에를 들어 student 릴레이션에서 name이 null인 튜플은 누군지 모르는 학생에 대한 정보를 담게 되므로 부적절하다다. 마찬가지로 학과의 예산(budget)이 null인 것도 바람직하지 않다. 이런 경우, 해당 속성에 null 값이 사용되는 것을 막기 위해 다음과 같이 <code>create table</code> 명령어를 작성할 수 있다. <syntaxhighlight lang="cpp"> name varchar(20) not null budget numeric(12,2) not null </syntaxhighlight> <code>not null</code> <syntaxhighlight lang="cpp"> </syntaxhighlight> <syntaxhighlight lang="cpp"> </syntaxhighlight> <syntaxhighlight lang="cpp"> </syntaxhighlight> ==각주== [[분류:데이터베이스 시스템]]
Integrity Constraints
문서로 돌아갑니다.
둘러보기
둘러보기
대문
최근 바뀜
임의의 문서로
미디어위키 도움말
위키 도구
위키 도구
특수 문서 목록
문서 도구
문서 도구
사용자 문서 도구
더 보기
여기를 가리키는 문서
가리키는 글의 최근 바뀜
문서 정보
문서 기록