#VIEW INDEX SYNONYM SEQUENCE

김유미·2021년 12월 22일
0

2021년 12월 22일 수요일

프롤로그

VIEW, INDEX, SYNONYM, SEQUENCE, 데이터사전에 대해서 정리해보도록 하겠습니다.

VIEW

  • 하나 이상의 테이블을 합하여 만든 가상의 테이블
  • 장점
    • 편리성 : 자주 사용되는 복잡한 질의를 뷰로 미리 정의해 놓을 수 있음
    • 보안성 : 각 사용자별로 필요한 데이터만 선별하여 보여줄 수 있음
  • 특징
    • 원본 데이터 값에 따라 같이 변함
    • 독립적인 인덱스 생성이 어려움
    • 삽입, 삭제, 갱신 연산에 많은 제약이 따름

<예제>
1) 판매가격이 20,000원 이상인 도서의 도서번호, 도서이름, 고객이름, 출판사, 판매가격을 보여주는 highorders 뷰를 생성하시오.

CREATE OR REPLACE VIEW vw_highorders
AS SELECT b.bookid, b.bookname, c.name, b.publisher, o.saleprice
FROM book b, orders o, customer c
WHERE b.bookid = o.bookid
AND o.custid = c.custid
AND o.saleprice >= 20000;

2) 생성한 뷰를 이용하여 판매된 도서의 이름과 고객의 이름을 출력하는 SQL 문을 작성하시오.

SELECT bookname, name
FROM vw_highorders;

INDEX

  • 인덱스는 데이터의 검색 속도를 향상시키기 위하여 사용하는 목차 같은 개념
  • 인덱스 생성 시 고려사항
    • 인덱스는 WHERE 절에 자주 사용되는 속성이어야 함
    • 인덱스는 조인에 자주 사용되는 속성이어야 함
    • 단일 테이블에 인덱스가 많으면 속도가 느려질 수 있음 (테이블당 4~5개 권장)
  • 인덱스 생성

    CREATE INDEX ix_book_bookname ON book(bookname);

  • 인덱스 수정

    ALTER INDEX ix_book_bookname REBUILD;

  • 인덱스 삭제

    DROP INDEX ix_book_bookname;

동의어(SYNONYM)

  • 데이터베이스 테이블 등의 객체에 대한 별칭, 동의어
  • 계정을 매번 사용하기 불편하여 시노님 사용
  • 시노님을 사용하기 위해서는 권한부여 필요
  • 생성, 수정

    CREATE OR REPLACE SYNONYM 별칭 FOR 별칭을 넣고자하는 계정의 테이블
    EX) CREATE OR REPLACE SYNONYM emp FOR scott.emp;

시퀀스 (SEQUENCE)

  • 자동으로 순번을 반환하는 객체
  • 시퀀스 생성

    CREATE SEQUENCE seq_book_bookid
    INCREMENT BY 1 -- 증감 숫자
    START WITH 1 -- 시작 숫자
    NOMINVALUE -- 최소값 지정 (NO는 지정하지 않겠다)
    NOMAXVALUE -- 최대값 지정 (NO는 지정하지 않겠다)
    NOCYCLE
    -- CYCLE : 최대값이 넘어가면 최소값부터 시작하게 만들어줌
    -- NOCYCLE : 최대값이 넘어가면 최소값부터 시작하게 만들어줌
    NOCACHE; -- 임시저장소에 저장하는 시퀀스 번호

  • 시퀀스 사용
    • 시퀀스의 현재 (순번) 값 : 시퀀스명.CURRVAL
    • 시퀀스의 다음 (순번) 값 : 시퀀스명.NEXTVAL
      -- NEXTVAL을 통해 증감함

데이터사전

  • 데이터베이스 메모리, 성능, 사용자, 권한, 객체 등 오라클 데이터베이스 운영에 중요한 데이터가 보관되어 있음
  • 주로 DBA가 관리하며, 대부분 조회 권한만 있음
  • 오라클은 데이터 사전을 읽어 개체의 존재여부, 사용자 권한 등을 확인하고 명령을 실행함

DBA_ : DB 전체에 포함되는 모든 객체에 대한 자세한 정보
ALL_ : 자신이 생성한 객체와 다른 사용자가 만든 객체중에서 자신이 볼 수 있는 정보
USER_ : 자신이 생성한 모든 객체에 대한 정보
V$_ : DB의 성능 분석/통계 정보를 제공하며 X$ 테이블에 대한 뷰
X$_ : DB의 성능 분석/통계 정보를 제공하는 테이블

0개의 댓글

관련 채용 정보