SQL

기타 스키마 객체

별다방체리콕 2024. 1. 5. 09:35

 

 

 

 

 

 

데이터베이스 객체

객체 설명
테이블 기본 저장 단위이며 행으로 구성
하나 이상의 테이블에 있는 데이터의 부분 집합을 논리적으로 나타냄
시퀀스 숫자 값 생성
인덱스 데이터 검색 쿼리의 성능 향상
동의어 객체에 대해 이름 부여

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

단순 뷰와 복합 뷰

기능 단순 뷰 복합 뷰
테이블 수 한 개 하나 이상
함수 포함 아니오
데이터 그룹 포함 아니오
뷰를 통해 DML 작업 항상은 아님

 

 

 

 

 

 

 

 

뷰 생성

 

 

 

 

 

 

 

 

 

 

뷰에 대한 DML 작업 수행 규칙 1

💡 뷰에 다음 항목이 포함되어 있으면서 행 제거 불가능

  • 그룹 함수
  • GROUP BY 절
  • DISTINCT 키워드
  • pseudocolumn ROWNUM 키워드

 

 

 

 

 

 

 

 

 

 

뷰에 대한 DML 작업 수행 규칙 2

💡 뷰에 다음 항목이 포함되어 있으면 뷰의 데이터 수정 불가능

  • 그룹 함수
  • GROUP BY 절
  • DISTINCT 키워드
  • pseudocolumn ROWNUM 키워드
  • 표현식으로 정의된 열

 

 

 

 

 

 

 

 

 

뷰에 대한 DML 작업 수행 규칙 3

💡 뷰에 다음 항목이 포함되어 있으면 뷰를 통한 데이터 추가 불가능

  • 그룹 함수
  • GROUP BY 절
  • DISTINCT 키워드
  • pseudocolumn ROWNUM 키워드
  • 표현식으로 정의된 열
  • 뷰에서 선택되지 않은 기본 테이블의 NOT NULL 열

 

 

 

 

 

 

 

 

 

DML 작업 거부

  • WITH READ ONLY 옵션을 뷰 정의에 추가하여 DML 작업이 수행되지 않도록 함
  • 뷰에 있는 임의의 행에서 DML 작업을 수행하려고 시도하면 Oracle 서버 오류 발생

 

 

 

 

 

 

뷰 제거

💡 데이터베이스의 기본 테이블을 기반으로 하기 때문에 뷰를 제거해도 데이터 손실 X

 

 

 

 

 

 

 

 

 

시퀀스

객체 설명
테이블 기본 저장 단위이며 행으로 구성
하나 이상의 테이블에 있는 데이터의 부분 집합을 논리적으로 나타냄
시퀀스 숫자 값 생성
인덱스 일부 쿼리의 성능 향상
동의 객체에 대해 이름 부여

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

NEXTVAL 및 CURRVAL Pseudocolumn

  • NEXTVAL은 사용 가능한 다음 시퀀스 값 반환
  • CURRVAL은 현재 시퀀스 값 구함
  • CURRVAL이 값을 포함하기 전에 해당 시퀀스에 대해 NEXTVAL이 실행되어야 함

 

 

 

 

 

 

 

시퀀스 값 캐시

  • 시퀀스 값을 메모리에 캐시하면 해당 값에 빠르게 액세스 가능
  • 다음과 같은 경우 시퀀스 값에 간격 발생
    • 롤백이 발생하는 경우
    • 시스템이 중단되는 경우
    • 시퀀스가 다른 테이블에서 사용되는 경우

 

 

 

 

 

 

 

시퀀스 수정 지침

  • 시퀀스의 소유자이거나 시퀀스에 대해 ALTER 권한이 있어야 함
  • 후속 시퀀스 번호에만 적용
  • 다른 번호로 시퀀스를 재시작하려면 시퀀스를 삭제하고 다시 생성해야 함
  • 일부 유효성 검사 수행
  • 시퀀스 제거하려면 DROP 문 사용

 

 

 

 

 

 

 

 

 

인덱스

객체 설명
테이블 기본 저장 단위이며 행으로 구성
하나 이상의 테이블에 있는 데이터의 부분 집합을 논리적으로 나타냄
시퀀스 숫자 값 생성
인덱스 일부 쿼리의 성능 향상
동의어 객체에 대체 이름 부여

 

 

 

 

 

 

 

 

 

 

 

 

 

인덱스가 생성되는 방식

  • 자동으로 테이블 정의에서 PRIMARY KEY 또는 UNIQUE 제약 조건을 정의하면 고유 인덱스가 자동으로 생성
  • 수동으로 행에 액세스하는 속도를 높이기 위해 유저가 열의 비고유 인덱스를 생성할 수 있음

 

 

 

 

 

 

 

 

동의어

객체 설명
테이블 기본 저장 단위이며 행으로 구성
하나 이상의 테이블에 있는 데이터의 부분 집합을 논리적으로 나타냄
시퀀스 숫자 값 생성
인덱스 일부 쿼리의 성능 향상
동의어 객체에 대체 이름 부여

 

 

 

 

 

 

 

 

 

 

객체의 동의어 생성

💡 동의어를 생성하면 객체를 쉽게 엑세스 가능

  • 다른 유저가 소유한 테이블을 쉽게 참조
  • 긴 객체 이름을 짧게 만듬

 

 

 

 

 

 

 

 

 

'SQL' 카테고리의 다른 글

스키마 객체 관리  (1) 2024.01.05
유저 액세스  (1) 2024.01.05
DDL 문 사용  (1) 2024.01.05
데이터 조작  (2) 2024.01.05
집합 연산자 사용  (1) 2024.01.05