1. 인덱스 개념
검색 성능을 향상 시키기 위한 부가적인 자료 구조
- 질의 명령문의 검색 속도를 향상시키기 위해 칼럼에 대해 생성하는 객체
- 데이터와 위치주소(ROWID)를 쌍으로 저장하고 관리됨.
1.1 인덱스 사용 여부 판단
인덱스를 사용해야 하는 경우 | 인덱스를 사용하지 말아야 하는 경우 |
테이블에 행의 수가 많을 때 | 테이블에 행의 수가 적을 때 |
WHERE 문에 해당 컬럼이 많이 사용될 때 | WHERE 문에 해당 컬럼이 자주 사용되지 않을 때 |
검색 결과가 전체 데이터의 2~4% 정도 일 때 | 검색 결과가 전체 데이터의 10~15%이상일 때 |
JOIN에 자주 사용되는 칼럼이나 NULL을 포함하는 컬럼이 많을 경우 |
테이블에 DML 작업이 많은 경우 입력, 수정, 삭제 등이 자주 일어날 경우 |
1.2 인덱스 종류
1) 인덱스 칼럼 값의 중복 여부에 따라
고유 인덱스(unique index), 비고유 인덱스(non-unique index)
단일 인덱스 (single index), 결합 인덱스(composite index)
함수 기반 인덱스(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 |