Oracle과 SQL Server의 사용자 아키텍처 차이

  • Oracle : 유저를 통해 DB에 접속을 하는 형태, ID와 PW 방식으로 인스턴스에 접속을 하고 그에 해당하는 스키마에 오브젝트 생성 등의 권한을 부여받게 됨
  • SQL Server : 인스턴스에 접속하기 위해 로그인이라 는 것을 생성하게 되며, 인스턴스 내에 존재하는 다수 의 DB에 연결하여 작업하기 위해 유저를 생성한 후 로그인과 유저를 매핑해 주어야 한다. Windows 인증 방식과 혼합 모드 방식이 존재함

GRANT : 권한 부여
REVOKE : 권한 취소

ROLE : 유저에게 알맞은 권한들을 한 번에 부여하기 위해 사용하는 것
CASCADE : 하위 오브젝트까지 삭제

절차형 SQL

  • SQL문의 연속적인 실행이나 조건에 따 른 분기처리를 이용하여 특정 기능을 수행하는 저장 모듈을 생성할 수 있다, Procedure, User Defined Function, Trigger 등이 있음

저장모듈

PL/SQL 문장을 DB 서버에 저장하여 사용자와 애플리케이션 사이에서 공유할 수 있도록 만든 일종의 SQL 컴포넌트 프로그램, 독립적으로 실행 되거나 다른 프로그램으로부터 실행될 수 있는 완전 한 실행 프로그램

📍 PL/SQL 특징 📍

  1. Block 구조로 되어있어 각 기능별로 모듈화 가능
  2. 변수, 상수 등을 선언하여 SQL 문장 간 값을 교환
  3. IF, LOOP 등의 절차형 언어를 사용하여 절차적인 프로그램이 가능하도록 한다.
  4. DBMS 정의 에러나 사용자 정의 에러를 정의하여 사용할 수 있다.
  5. PL/SQL은 Oracle에 내장되어 있으므로 호환성 Good
  6. 응용 프로그램의 성능을 향상시킨다.
  7. Block 단위로 처리-> 통신량을 줄일 수 있다.

DECLARE : BEGIN~END 절에서 사용될 변수에 대한 정의 및 데이터 타입 선언부
BEGIN~END : 개발자가 처리하고자 하는 SQL문과 여러가지 비교문, 제어문을 이용 + 필요한 로직처리
EXCEPTION : BEGIN~END 절에서 실행되는 SQL문이 실행될 때 에러가 발생하면 그 에러를 어떻게 처리할지 정의하는 예외 처리부

T-SQL

근본적으로 SQL Server를 제어하는 언어

Trigger

특정한 테이블에 INSERT, UPDATE, DELETE와 같은 DML문이 수행되었을 때, DB에서 자동으로 동작하도록 작성된 프로그램, 사용자 호출이 아닌 DB 자동 수행!!!

프로시저와 트리거의 차이점

프로시저는 BEGIN~END 절 내에 COMMIT, ROLLBACK과 같은 트랜잭션 종료 명령어 사용 가능, DB 트리거는 BEGIN~END절 내에서 사용 불가

옵티마이저

사용자가 질의한 SQL문에 대해 최적의 실행 방법을 결정하는 역할 수행

규칙기반 옵티마이저

우선순위를 가지고 실행계획을 생성한다. 우선 순위가 높은 규칙이 적은 일량으로 해당 작업을 수행한다고 판단한다, 인덱스 유무와 SQL문에서 참조하는 객체 등을 참고함

비용기반 옵티마이저

현재 대부분의 DB에서 사용, SQL문을 처리하는데 필요한 비용이 가장 적은 실행계획을 선택하는 방식 -> 비용이란 SQL문을 처리하기 위해 예상되는 소요시간 또는 자원 사용량을 의미, 테이블, 인덱스, 컬럼 등 다양한 객체 통계정보와 시스템 통계정보 등을 이용한다.

profile
민주입니다

0개의 댓글

관련 채용 정보

Powered by GraphCDN, the GraphQL CDN