오라클 객체

이수보🧑🏻‍💻·2022년 1월 26일
0

오라클

목록 보기
10/11

  • 객체

  1. 테이블
  2. SQL문
  3. 데이터 사전(data dictionary)
  4. 인덱스(index)
  5. 뷰(view)
  6. 시퀀스(sequence)
  7. 동의어(synonym)

객체는 총 7가지 종류로 데이터 보관 및 관리를 위한 여러 기능과 저장공간을 객체를 통해 제공한다.


우리는 여기서 자주 쓰이는 인덱스, 뷰, 시퀀스, 동의어를 살펴보자

  • 인덱스(index)

- 검색의 효율성을 증대시키기 위한 객체
- 데이터베이스 서버의 성능을 결정하는 요소 중 하나
- 데이터 검색, 삽입, 변경 시 해당 자료의 선택의 효율성을 위해 사용
    검색,삽입,변경에도 항상 WHERE로 인해 행을 찾아야 하는 일이 생기기 때문
- 별도의 저장공간 및 처리 프로세서 필요
- 찾고자 할 때 같이 저장한 인덱스를 사용하여 검색의 효율을 높인다

  • 인덱스객체 생성
CREATE INDEX 인덱스명 ON 테이블명(컬럼명)

-- 기본 생성 시 NON-UNIQUE INDEX로 생성되어 중복값을 허용한다.
-- 중복값을 허용하지 않고 싶다면 CREATE UNIQUE 인덱스명...
  • 인덱스객체 제거
DROP INDEX 인덱스명;

-- 객체이므로 DROP로 제거한다.
  • 인덱스객체 재구성
ALTER INDEX 인덱스명 REBUILD;

-- 데이터베이스 테이블이 다른 저장공간으로 이동되거나 
-- 원본테이블 자료의 입출력이 빈번히 발생한 직후 인덱스 재구성이 필요

  • 뷰(View)

- 테이블과 유사한 객체
- SELECT문의 실행결과의 집합(가상 테이블)
- 필요한 정보가 여러 테이블에 분산되어 Query 작성에 방해되는 경우
- 특정 자료에 접근은 제한하고 결과만 제공하고자 하는 경우(보안)

  • 뷰 객체 생성
CREATE VIEW 뷰이름 (컬럼명1, 컬럼명2)
    AS
SELECT ~~~
  FROM ~~
 WHERE ~~~;

- 생성의 부가요소
1. REPLACE : 이미 같은 이름의 뷰가 있다면 대치시킨다.
2. FORCE : 기준 테이블이 없어도 뷰 생성
3. WITH READ ONLY : 읽기전용 -> 삽입, 삭제, 갱신이 적용되지 않는다.

  • 시퀀스(SEQUENCE)

- 자동으로 증가(감소)되는 숫자를 생성
- 일부 다른 DBMS에선 AUTO INCREMENT로 구현되어 있다.
- 오라클에선 테이블과 독립된 객체

  • 시퀀스 객체 생성
CREATE SEQUENCE 시퀀스명   -아래는 선택 사항
START WITH n - 시작값
INCREMENT BY n - 증감값
MAXVALUE n  - 최대값
MINVALUE n - 최소값
CYCLE/NOCYCLE - 반복 여부

테이블과 독립적으로 운영되는 객체이기 때문에
테이블에서 값이 삭제되더라도 시작하는 값은 같다.
ex) 13까지 증가된 시퀀스를 그대로 아무 자료 없는 테이블에서 사용 시 첫번째 값은 13부터 시작


  • 동의어(SYNONYM)

- 오라클 객체들에 부여된 또 다른 이름으로 보면된다.
- 테이블 별칭은 SQL문에서만 유효하지만 동의어는 언제나 사용 가능
- 다른 소유자의 객체에 접근하거나 긴 객체명을 사용시 유용하다.

즉 우린 다른 계정의 테이블에 접근하려면 접속계정을 변환하거나 [계정명.테이블명]을 사용해서 접근해 왔지만 동의어를 사용함으로 귀차니즘인 우린 귀찮음에서 벗어날 수 있다.

  • 동의어 객체 생성
CREATE SYNONYM 동의어 FOR 객체명;

-- '동의어' : '객체명에 부여할 별칭'
-- '객체명' : 별칭을 부여할 테이블명

ex) SOOBO 계정의 JAVA 테이블에 대해 별칭을 지어주려면
    CREATE SYNONYM 'soja' FOR SOOBO.JAVA

0개의 댓글