차근차근/Oracle

인덱스 INDEX

예쁜꽃이피었으면 2021. 12. 22. 10:53

pk는 자동으로 인덱스가 생성된다고 알고 있었는데.. 맞나 하는 의문이 들었다..

 

PK(Primary Key)

- 일반적인 DBMS에서 PK는 자동으로 Index가 적용된다. => 오라클도 일반적인 DBMS겠지..?

- PK는 개념적인 값으로 여러 Tuple중 유일한 Tuple임을 보장한다.(중복될 수 없는 유일한 단일값)

- Not Null

- Object속성은 Constraint로써 제약조건으로 생성된다.

- 실제 값은 있으나 물리적으로 따로 저장하지는 않는다.

- 테이블 당 하나

 

Index

- Tuple들의 유일성을 보장하지 않는다. (인덱스가 걸려있는 컬럼에 중복될 수 없는 유일한 값만을 보장하고, 인덱스가 걸려있는 컬럼에 null값은 입력가능하다.)

- Object속성은 Index이다.

- 테이블에서 Tuple보다 빨리 찾기 위해 사용한다.

- index를 걸면 index를 거는 컬럼을 기준으로 새로운 자료구조(B-tree등)를 생성하여 별도의 공간에 저장한다.

- 한 테이블에 여러개 생성할 수 있다.

- PK컬럼에 인덱스가 생성되어 있지 않은 경우 PK생성시 자동으로 UNIQUE INDEX가 생성된다.


PK생성방법

1. 테이블 생성시 컬럼 레벨에서 생성하기

2. 테이블 생성시 테이블 레벨에서 생성하기

3. 테이블 생성 후 alter table명령어로 추가하기

4. 이미 컬럼에 인덱스가 생성되어 있는 상황에서 pk생성하기

: pk를 생성하려는 컬럼에 이미 인덱스가 있을 때에는 새로 인덱스를 생성하지 않고 기존에 있는 인덱스를 그대로 사용하며,  Nonunique index인 경우에도 그대로 사용한다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


[참조]

https://goodgid.github.io/Index-vs-Primary-Key/

 

Index와 Primary Key의 차이점

Index

goodgid.github.io

 

https://bae9086.tistory.com/163

 

PK와 Unique Index

PK와 Unique Index간의 헷갈리는 부분이 있어서 포스팅하면서 정리해보도록 하겠습니다. PK PK는 Primary Key로써, 중복될 수 없는 유일한 단일값(Unique)을 가집니다. 그리고 값이 비어있지(Not Null) 않아야

bae9086.tistory.com

http://dbcafe.co.kr/wiki/index.php/%EC%98%A4%EB%9D%BC%ED%81%B4_PK_%EC%83%9D%EC%84%B1

 

오라클 PK 생성 - DB CAFE

 

dbcafe.co.kr

 

 

반응형

'차근차근 > Oracle' 카테고리의 다른 글

IN, EXISTS  (0) 2022.01.03
NVL , NVL2, LNNVL  (0) 2021.12.30
뷰 View  (0) 2021.12.22
패키지 Package  (0) 2021.12.22
트리거(TRIGGER)  (0) 2021.12.22