본문 바로가기
웹 프로그래밍 기초/자바기반의 웹&앱 응용SW 개발자

자바기반의 웹&앱 응용 SW개발자 양성과정 34일차 -55

by oncerun 2020. 4. 19.
반응형

Entity 제약조건

우리가 도메인 제약조건을 잘 설정했다면 각 칼럼들은 제약조건에 맞는 올바른 데이터를 가지고 있을 것입니다.

만약 테이블 전체로 범위를 확대했을 때 결함이 없을까요?

중복된 레코드가 존재할 수 있다는 결함이 존재합니다.

각 칼럼은 올바른 값을 가지고 있지만  레코드 단위로 봤을 때 식별이 불가능합니다.

우리는 레코드가 같지 않다 라는 걸 식별할 수 있는 primary key가 필요합니다.

primary key로 설정한 식별 칼럼은 레코드 별 칼럼의 데이터를 식별할 수 있습니다.

primary key로 설정한 칼럼은 절대로 중복된 값이 존재할 수 없습니다. 또한 NULL값이 존재할 수없습니다.

UIQUE는 NULL은 허용하나 중복은 허용하지 않는 제약조건입니다.

 

EX)

 

CREATE TABLE MEMBER

(

ID NUMBER PRIMARY KEY --기본키 제약 조건

//ID NUMBER CONSTRAINT MEMBER_ID_PK PRIMARY KEY--만약 제약조건의 이름을 설정한다면

PWD VARCHAR2(50) NOT NULL

PHONE VARCHAR2(50) NOT NULL UNIQUE

REGDATE DATE DEFAULT STSDATE 

 

//깔끔하게 설정하기

CONSTRAINT MEMBER_ID_PK PRIMARY KEY(ID),

CONSTRAINT MEMBER_PHONE_UK UNIQUE(PHONE)

)

 

테이블이 이미 만들어져 있다면

ALTER TABLE MEMBER 

ADD CONSTRAINT MEMBER_ID_PK PRIMARY KEY(ID);

ALTER TABLE MEMBER

ADD CONSTRAINT MEMBER_PHONE_UK UNIQUE(PHONE);

 

또한 툴을 이용해 설정창에서 ENTITY 제약조건설정이 가능합니다.

 

 

UNIQUE설정

반응형

댓글