티스토리 뷰
데이터 무결성 제약 조건
무결성 - 데이터가 결함없이 정확하고 완전한 상태를 의미합니다.
■ 데이터 무결성 제약 조건은 데이터베이스에 들어 있는 데이터의 정확성을 보장하기 위해 부정확한 자료가
데이터 베이스 내에 저장되는 것을 방지하기 위한 제약조건을 말합니다.
■ 테이블에 부적절한 데이터가 입력되는 것을 방지하기 위해 테이블을 설계할 때, 각 컬럼에 대해서 정의한 규칙을 말합니다.
무결성의 종류
개체 , 도메인, 참조, 사용자 정의, NULL, 고유, 키, 관계 무결성 등이 있습니다.
개체 무결성 (NULL 입력 x + 중복허용 x => PK = UNIQUE + NOT NULL)
개체 무결성은 기본 테이블의 기본키를 구성하는 어떤 속성도 NULL값이나 중복값을 가질 수 없습니다.
* [학생] 릴레이션에서 ‘학번’을 기본키로 지정했다면 ‘학번’ 속성은 NULL이 되어서는 안됩니다.
도메인 무결성
주어진 속성 값이 정의된 도메인에 속한 값이어야 한다는 규정입니다.(속성의 기본값, 체크, 널 값의 허용여부 등)
* ‘성별’이라는 속성에서 ‘남’, ‘여’를 제외한 데이터는 제한되어야 합니다.
참조 무결성
외래키 값은 NULL이거나 참조 릴레이션의 기본키 값과 동일해야합니다.
즉, 릴레이션은 참조할 수 없는 외래키 값을 가질수 없으며,
외래키와 참조하려는 테이블의 기본키는 도메인과 속성 개수가 같아야합니다.
자식 릴레이션의 외래 키의 값은 참조된 부모 릴레이션의 기본 키 값과 같아야 하며,
자식 릴레이션의 값이변경될 때 부모 릴레이션의 제약을 받는다는 조건입니다.
RDBMS에서는 컬럼의 값에 따라 테이블끼리 연결하는데 값을 참조하는 쪽의 테이블을 자식 테이블,
값을 가진 컬럼을 외래 키 라고 합니다.
참조되는 쪽의 테이블을 부모 테이블,
값을 가진 컬럼을 부모 키 라고 부르며 부모 키는 기본 키 또는 고유 키여야 합니다.
즉, 참조하는 테이블 (자식 테이블)의 값이 참조되는 테이블 (부모 테이블)의 컬럼의 값에 존재하면 된다는 것입니다.
* [수강] 릴레이션에서 ‘학번’ 속성에는 [학생] 릴레이션의 ‘학번’ 속성에 없는 값은 입력할 수 없다.
NULL 무결성
특정 컬럼이 아무런 값을 입력받지 않도록 설정하거나, 무조건 값을 입력 받도록 설정하는 것입니다.
데이터가 없다면, NULL을 저장하여, 데이터가 존재하지 않는다는 것을 표현합니다.
* [학생] 릴레이션 정의 시 ‘과목’ 속성에 NULL 값이 올 수 없도록 제한했다면 ‘과목’ 속성에 NULL이 있어서는 안됩니다.
고유(UNIQUE) 무결성
릴레이션의 특정 속성에 대해 각 튜플이 갖는 속성값들이 서로 달라야 한다는 것입니다.
테이블에 소속된 특정 컬럼이 중복된 키를 가질 수 없는 조건입니다.
사용자 아이디, 이메일과 같은 고유한 정보를 저장할 때 사용합니다.
키 무결성
적어도 하나의 키가 존재해야 합니다.
'프로그래밍 기초 > database' 카테고리의 다른 글
SQL Injection이란? (1) | 2024.02.08 |
---|---|
1:1관계, 1:N관계, N:M관계 (1) | 2024.02.06 |
DDL, DML, DCL, TCL 이란? (0) | 2024.02.02 |
MongoDB(작업 코드에 MongoDB적용하기) (1) | 2024.01.26 |
node.js 에 mysql 연결하기 (RDS) (1) | 2024.01.25 |