본문 바로가기

데이터베이스

오라클 - 제약사항 (190611)

 

1. primary key는 unique key + not null -> 데이터가 반드시 존재해야 한다

주민번호 ?

예를 들어 성인 웹 사이트에서 주민번호는 대표성을 지니므로 primary key가 될 수 있음

Primary key도 unique index가 자동으로 생성된다.

 

 

Primary key VS Unique key

가장 큰 차이점은 테이블에 Primary key는 하나만 정의할 수 있음. 

 

공공기관 ? 주민번호가 대표성을 지닐 수 있음.

               반면 네이버나 페이스북은 이메일, ID가 대표성을 지님.

               즉, Business Rule ( 도메인의 영역 ) 에 따라 Primary key 가 결정된다.

 

 

              

2. unique key 데이터의 고유성을 보장하면서 null을 허용 (포털 사이트의 회원가입)

   unique key의 예로는 핸드폰 번호 등이 있음

   unique index를 자동으로 생성 ? Quick Search 

 

 

 

 

PWD VARCHAR2(8) CONSTRAINT CUSTOMER_PWD_NN - > 제약사항에 이름을 줄 수 있음!

제약사항에 이름을 지어주지 않으면 SYS_CN으로 DBMS가 자동으로 해줌.

그런데 하는게 좋음

 

제약사항은 SELECT와 관련이 없다. → DML (INSERT, DELETE, UPDATE) 과 관련된 것이다 

 

 

CHECK 제약 사항이 NULL을 체크 못하므로 M 또는 F 일지라도 NULL이 삽입된다

해결책은 DEFAULT !

 

COMMIT을 하지 않아도 에러시 전체 롤백 - STATEMENT LEVEL ROLLBACK

 

왜 유니크를 정의하면 유니크 인덱스가 만들어질까?

 

INDEX의 역할 : QUICK SEARCH 

 

7번의 INSERT가 왜 안돼? UNIQUE 속성

 

DBMS가 INSERT 하기 전에 유니크 인덱스로 찾아보고 삽입 여부를 결정함. 

(인덱스를 통해 데이터 무결성을 보장한다)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'데이터베이스' 카테고리의 다른 글

오라클 정리 (190612)  (0) 2019.06.12
오라클 - 기본키와 외래키 (190611)  (0) 2019.06.11
오라클 실습 (190610)  (0) 2019.06.10
[생활코딩] LEFT/RIGHT OUTER JOIN  (0) 2019.05.30
Hash  (0) 2019.05.10