레이블이 #오라클제약조건인 게시물을 표시합니다. 모든 게시물 표시
레이블이 #오라클제약조건인 게시물을 표시합니다. 모든 게시물 표시

2021년 11월 6일 토요일

오라클 테이블, 데이터 무결성 제약조건

 

오라클 테이블, 데이터 무결성 제약조건


무결성 제약조건integrity constraints, IC은 테이블에 신뢰할 수 없는 데이터를 입력하지 못하게 합니다. 테이블 내의 컬럼값에 적용되는데 데이터값의 무결함, 정확성, 일관성을 보장하는 방법으로 테이블의 컬럼에 무결성 제약조건에 맞지 않는 데이터가 입력되면 DMLdata manipulation language INSERT, UPDATE, DELETE, MERGE등은 롤백됩니다.


예를 들어 사원 테이블에 성별 컬럼이 있다면 남성(M) or 여성(F)만 입력되어야겠죠? 다른 값이 들어오지 못하게 CHECK 제약조건을 컬럼에 걸면 됩니다.


또 사원 테이블에 같은 사원번호를 가지는 데이터가 입력되면 안 됩니다. 이때는 사원번호 컬럼을 기본 키로 지정하면 NOT NULL 제약조건과  UNIQUE 제약조건이 걸려 NULL 아닌 값이 반드시 입력이 되어야 하고 중복되지 않게 됩니다.


테이블 생성 시 또는 생성 후 무결성 제약조건을 추가할 수 있으며, 테이블의 모든 무결성 제약조건은 데이터 딕셔너리에 저장됩니다. 또한 제약조건을 지정할 때 이름을 부여하지 않으면 SYS_Cn 형태로 이름이 부여됩니다. 


아래는 무결성 제약조건의 종류입니다.


무결성 제약조건

역할

NOT NULL

컬럼값은 NULL을 가질 수 없습니다.

PRIMARY KEY(기본 키)

개체 무결성

테이블의 행을 유일하게 구별하는 키. 

고유 키(Unique Key) 제약조건, NOT NULL 제약조건을 결합한 형태 입니다.

FOREIGN KEY(외래 키)

참조 무결성

같거나 다른 테이블의 PK/UK값을 참조하는 제약조건(예를 들어 EMP 테이블에서 DEPTNO 컬럼에 값이 입력되려면 반드시 DEPT 테이블의 DEPTNO 컬럼값이 입력되어야 합니다).

UNIQUE

컬럼값은 중복되지 않아야 합니다.

CHECK

컬럼에 입력되는 값을 지정하거나 범위를 지정합니다(예를 들어 성별 컬럼에는 M or F만 입력이 가능하도록 지정합니다)


10.5.1 무결성 제약조건 정의


무결성 제약조건은 제약조건을 기술하는 위치에 따라 컬럼 레벨과 테이블 레벨 제약조건이 있습니다. 각 제약조건을 정의하는 방법을 알아보겠습니다.


컬럼 레벨 제약조건column level constraints은 컬럼의 정의가 끝나기 전에 제약조건을 정의하며 모든 무결성 제약조건을 지정할 수 있습니다. 단일 컬럼에 대해 정의되며, NOT NULL 제약조건은 컬럼 레벨에서만 정의할 수 있습니다.


[기본 형식]

column_name [CONSTRAINT constraint_name] constraint_type



테이블 레벨 제약조건table level constraints은 컬럼을 모두 정의하고 나서 맨 나중에 생성된 컬럼에 대해 제약조건을 정의할 수 있습니다. 콤마(,)를 찍어 하나 이상 컬럼에 대해 제약조건을 걸 수 있습니다.  만약 기본 키 컬럼이 여러 개이면 테이블 레벨에서 한 번에 정의해야 합니다.



[기본 형식]

column,,, [CONSTRAINT constraint_name]constraint_type(column_name,,,)


 

#무결성제약조건, #오라클제약조건, ​#오라클, #기본키, #외래키

(C#교육동영상)C# ADO.NET 실습 ODP.NET/ODAC 설치 오라클 함수 호출 실습, C#학원, WPF학원, 닷넷학원, 자바학원

  (C#교육동영상)C# ADO.NET 실습  ODP.NET/ODAC 설치  오라클 함수 호출 실습, C#학원, WPF학원, 닷넷학원, 자바학원 https://www.youtube.com/watch?v=qIPU85yAlzc&list=PLxU-i...