DB/SQL

[ORACLE] INDEX,VIEW,SYNONYM 개념 정리

정데브 2022. 2. 23. 16:03

1. 인덱스 개념

검색 성능을 향상 시키기 위한 부가적인 자료 구조

- 질의 명령문의 검색 속도를 향상시키기 위해 칼럼에 대해 생성하는 객체

- 데이터위치주소(ROWID)를 쌍으로 저장하고 관리됨.

 

1.1 인덱스 사용 여부 판단

인덱스를 사용해야 하는 경우 인덱스를 사용하지 말아야 하는 경우
테이블에 행의 수가 많을 때 테이블에 행의 수가 적을 때
WHERE 문에 해당 컬럼이 많이 사용될 때 WHERE 문에 해당 컬럼이 자주 사용되지 않을 때
검색 결과가 전체 데이터의 2~4% 정도 일 때 검색 결과가 전체 데이터의 10~15%이상일 때
JOIN에 자주 사용되는 칼럼이나
NULL을 포함하는 컬럼이 많을 경우
테이블에 DML 작업이 많은 경우
입력, 수정, 삭제 등이 자주 일어날 경우

 

1.2 인덱스 종류

1) 인덱스 칼럼 값의 중복 여부에 따라
고유 인덱스(unique index), 비고유 인덱스(non-unique index)

2) 칼럼의 결합 여부에 따라
단일 인덱스 (single index), 결합 인덱스(composite index)
3) 연산자 또는 함수의 적용 결과에 의해 생성되는 인덱스
함수 기반 인덱스(function-based index)

 

1.3 인덱스 생성

CREATE INDEX 인덱스명 ON 테이블명(컬럼명);

 

2. 뷰 개념

: 하나 이상의 기본 테이블이나 다른 뷰를 이용하여 생성되는 가상 테이블

- 기본 테이블디스크에 공간이 할당되어 데이터를 저장함

-  데이터 딕셔너리 (Data Dictionary) 테이블에 뷰에 대한 정의 (SQL ) 만 저장되어 디스크

   저장 공간 할당이 이루어지지 않음

- 전체 데이터 중에서 일부만 접근할 수 있도록 함

- 뷰에 대한 수정 결과는 뷰를 정의한 기본 테이블에 적용됨

 

2.1 뷰 종류

단순뷰
하나의 기본 테이블 위에 정의된 

복합 
두개이상의 기본 테이블로부터 파생된 

 

2.2 뷰 생성

CREATE VIEW 뷰명 AS SELECT 문;

 

3. 시노님 개념

: 객체들에 대한 동의어를 만드는데 사용

-보통 다른 유저의 객체(테이블, , 프로시저, 함수, 패키지, 시퀀스 등)참조할 때 많이 사용

-실제로 시노님을 이용하는 이유는 다른 유저의 객체를 사용할 때 유저의 이름과 객체의 실제이름사용하는데
두개를 감춤으로써 데이터베이스의 보안을 개선하기 위해 사용되어 짐.

 

3.1 시노님 종류

Private Synonym
전용 시노님은 특정 사용자만 이용할 수 있다.
Public Synonym

공용 시노님은 공용 사용자 그룹이 소유하며 그 데이터베이스에 있는 모든 사용자가 공유한다.

 

3.2 시노님 생성

CREATE [PUBLIC] SYNONYM [시노님 이름] FOR [객체 이름]

* PUBLIC은 모든 사용자가 접근이 가능하도록 설정해주는 것입니다.

* PUBLIC을 선언해주지 않으면 기본값으로 PRIVATE가 선언됩니다.

 

'DB > SQL' 카테고리의 다른 글

SQL (ERD 추출하기)  (0) 2021.08.05
SQL 필기 개념 1)  (0) 2021.08.02
SQL 필기 (File system과 DB system)  (0) 2021.08.01