You YoungSEok yys@kangwon.ac.kr 고급 SQL You YoungSEok yys@kangwon.ac.kr.

Slides:



Advertisements
Similar presentations
CUBRID 소개 (Object 개념) 서비스 사업부 / 기술지원팀. 목차 구조 일반적 특징 객체지향 특징 ORDB 개념을 이용한 스키마 ORDB 개념을 이용한 질의.
Advertisements

Oracle DB 구조 및 트랜잭션 관리 이경화 Database 의 구조 Program Global Area (PGA) Instance Database Buffer Cache Redo Log Buffer Library Cache Shared.
뇌를 자극하는 SQL Server 장. 트랜잭션과 잠금. 뇌를 자극하는 SQL Server 장. 트랜잭션과 잠금 2 / 18 트랜잭션 개념과 문법 트랜잭션 개념  하나의 논리적 작업단위로 수행되는 일련의 작업  전부 되거나, 전부 안 되거나의.
SQL Server 2000 트랜잭션과 잠금 데브피아 세미나
다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL
SQL 언어 SQL.
제 3장 오라클 소개 오라클 소개 오라클 설치 방법 오라클 구조 제 3 장 오라클 개요.
Allow reverse scans allow reverse scnas. allow reverse scans allow reverse scnas.
DB Injection과 대응방안 nwkim.
PARK SUNGJIN Oracle 설치 PARK SUNGJIN
소리가 작으면 이어폰 사용 권장!.
Oracle10g 데이터 관리 데이터 동기화 오라클 데이터 공유방안 Materialized View
DRIMS-Cloud 소개.
PL/SQL.
소프트웨어시스템설계(6주) 데이터베이스 연동
질의어와 SQL 기본 SQL 고급 SQL 데이타의 수정 데이타 정의 언어 내장 SQL
관계 대수와 SQL.
Database & Internet Computing Laboratory 한 양 대 학 교
Chapter 5 SQL: 확장된 질의, 주장, 트리거, 뷰.
제 5 장 인덱스 생성 및 관리.
4장. 관계 대수와 SQL SQL 관계 데이터 모델에서 지원되는 두 가지 정형적인 언어
SQL 개요 SQL 개요 - SQL은 현재 DBMS 시장에서 관계 DBMS가 압도적인 우위를 차지하는 데 중요한 요인의 하나
10장. 데이터베이스 보안과 권한 관리 데이터베이스 보안과 권한 관리
SQL Server 2005 데이터베이스 가용성 강화 측면에서 본 데이터베이스 미러링과 스냅샷, 복제
데이터베이스 담당교수 신정식 Chapter 4 SQL(1).
Toad for Oracle 설치 방법.
데이터베이스 와 JDBC 1.데이터베이스와 데이터베이스 관리 시스템은? 2.데이터베이스 장점?
Chapter 01 데이터베이스 시스템.
11장. 데이터베이스 서버 구축과 운영.
롯데마트 CRM 데이터 분석 교육 2014년 12월 > RE::VISION 전용준 리비젼컨설팅 대표
기초 T-SQL.
트랜잭션과 잠금 트랜잭션 처리 메커니즘을 자세히 이해한다. 트랜잭션의 종류를 파악한다.
14장 뷰.
Chapter 05 데이터베이스 프로그래밍.
4.2 SQL 개요 SQL 개요 SQL은 IBM 연구소에서 1974년에 System R이라는 관계 DBMS 시제품을 연구할 때 관계 대수와 관계 해석을 기반으로, 집단 함수, 그룹화, 갱신 연산 등을 추가하여 개발된 언어 1986년에 ANSI(미국 표준 기구)에서 SQL.
SQL Server™ 2000: DBA의 역할과 책임 하 성희.
SQL Server 2000 세미나 Profiler를 이용한 문제해결
차례 튜닝 - 프로필러를 이용한 튜닝 프로필러 친해지기 프로필러 결과 테이블로 만들기 프로필러 결과 분석하기
14 뷰(View) 뷰의 개념 뷰 관리.
16장. 테이블의 변경 새로운 행 삽입 테이블에서 테이블로 행을 복사 행 값의 변경 테이블에서 행 삭제
9장 테이블 생성 및 변경, 삭제하기(DDL).
DP-ORA 쿼리 최적화 가이드 쿼리 최적화 방법 2014년 7월.
SQL.
YOU Youngseok 트랜잭션(Transaction) YOU Youngseok
01 데이터베이스 개론 데이터베이스의 등장 배경 데이터베이스의 발전 과정 데이터베이스의 정의 데이터베이스의 특징
KIM HEESANG PL/SQL 2 KIM HEESANG
You YoungSEok Oracle 설치 You YoungSEok
문양세 (1st version: 문성우) (revised by 손시운)
다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL
다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL
CHAPTER 06. 데이터베이스 자료의 조직적 집합체_데이터베이스 시스템의 이해
정보처리기사 8조 신원철 양진원 유민호 이기목 김다연 윤현경 임수빈 조현진.
SQL Query in the SSMS : DB, Table
제 20 장 오라클에서 회복 및 백업 기능.
View(뷰) 1 가상 테이블(Virtual Relation)
데이터베이스 (Database) SQL 추가 기능: 주장, 뷰, 프로그래밍 기법 문양세 강원대학교 IT대학 컴퓨터과학전공.
Database 중고차 매매 DB 비즈니스IT 윤동섭.
정치학원론 5주차 제 4장 정치체계론 행정학과 구경완, 김정은, 박하륜, 양민지, 이환규.
인터넷응용프로그래밍 과제 실습.
3장. SQL Server 2008전체 운영 실습 및 DB와 프로그램의 연동
15 사용자 권한 제어 데이터베이스 보안 권한 롤 동의어.
06. SQL 명지대학교 ICT 융합대학 김정호.
SQL Server 2000 세미나 View, SP &Trigger
테이블 관리 테이블 생성,수정,삭제 데이터 입력 수정, 삭제 2010학년도 2학기.
뇌를 자극하는 Windows Server 장. 데이터베이스 서버.
Stored program 2 장종원
Stored program 장종원
간식의 세계!!.
제 5 장 MariaDB인덱스 생성 및 관리.
Report #3- 문제 1 Set(집합) 추상 데이터 타입을 정의하고, 다음과 같은 연산자들을 포함시켜라. 여기서 S, S1, S2는 집합을 나타내고, i는 집합 원소를 나타낸다. 연산 의미 create() Return {} insert(S, i) If i є S then.
Presentation transcript:

You YoungSEok yys@kangwon.ac.kr 고급 SQL You YoungSEok yys@kangwon.ac.kr

목 차 View Materialized View Trigger

View View의 생성 View의 수정 View의 삭제

View 뷰(View)는 하나 이상의 테이블을 합쳐서 만든 가상 테이블 장점 편리성 재사용성 보안성 미리 정의된 뷰를 일반 테이블처럼 사용할 수 있기 때문에 편리 사용자가 필요한 정보만 요구에 맞게 가공하여 뷰로 만들어 쓸 수 있음 재사용성 자주 사용되는 질의를 뷰로 미리 정의해 놓을 수 있음 보안성 각 사용자 별 필요한 데이터만 선별하여 보여줄 수 있음 중요한 질의의 경우 질의 내용을 암호화할 수 있음

View의 생성 기본 문법 tbl_book 테이블에서 ‘축구’라는 문구가 포함된 자료만 보여주는 뷰 CREATE VIEW 뷰이름 AS SELECT 구문; tbl_book 테이블에서 ‘축구’라는 문구가 포함된 자료만 보여주는 뷰 위 SELECT 문을 이용해 작성한 뷰 정의문

View의 수정 기본 문법 CREATE OR REPLACE VIEW 뷰이름 AS SELECT 구문; 앞에 만들었던 tbl_book 테이블에서 ‘축구’라는 문구가 포함된 자료만 보여주는 뷰를 ‘야구’라는 문구가 포함된 자료만 보여주는 뷰로 수정 위 SELECT 문을 이용해 작성한 뷰 정의문

View의 삭제 기본 문법 DROP VIEW 뷰이름 앞서 생성한 뷰 v_book를 삭제 DROP VIEW v_book;

실습 2-1 주소에 ‘대한민국’을 포함하는 고객들로 구성된 뷰를 만드시오.

실습 2-2 실습 2-1에서 만든 뷰를 ‘영국’ 주소를 가진 고객으로 변경하시오.

실습 2-3 도서명, 도서출판사, 고객명을 확인할 수 있는 뷰를 만드시오. Join 참고 http://asubf.or.kr/zeroboard/skin/ggambo7000_board/print.php?id=language&no=18 http://www.dofactory.com/sql/join

실습 2-4 고객이름과 도서이름을 바로 확인할 수 있는 뷰를 생성한 후, ‘김연아’ 고객이 구 입한 도서의 주문번호, 도서이름, 주문 금액을 조회하시오. JOIN을 이용해 테이블들을 합쳐야 함

Materialized View Mview의 생성 Mview의 삭제

Materialized View 일반 뷰는 쿼리 요청마다 테이블에서 해당되는 데이터를 가져옴 하지만 MView에서 해당되는 데이터를 View에 저장해 둠 장점 데이터를 View에서 바로 가져오기 때문에 속도가 빠름 단점 원본 테이블이 수정 될 때마다 View의 내용과 동기화 해줘야 함 구체화 뷰를 만들기 전에 생성권한을 얻어야 함 GRANT CREATE MATERIALIZED VIEW TO system; ALTER SESSION SET query_rewrite_enabled = true; ALTER SESSION SET query_rewrite_integrity = enforced;

Mview의 생성 기본 문법 tbl_book 테이블에서 ‘축구’라는 문구가 포함된 자료만 보여주는 구체화 뷰 CREATE MATERIALIZED VIEW 뷰이름 BUILD IMMEDIATE : Mview를 생성하는 즉시 서브쿼리를 수행하여 데이터를 Mview에 저장함 REFRESH ON [ DEMEND | COMMIT ] DEMEND 동기화 관련 프로시저를 수행하면 동기화 함 COMMIT 원본 테이블에 데이터 변경이 생기면 동기화 [ COMPLETE | FAST | FORCE | NEVER ] COMPLETE 모든 데이터를 동기화 FAST 원본 테이블에서 변경된 데이터만 동기화 (View Log를 사용해야 함) FORCE FAST가 가능하면 FAST로 아니면 COMPLETE로 동기화 NEVER 동기화를 사용하지 않음 AS SELECT 문 tbl_book 테이블에서 ‘축구’라는 문구가 포함된 자료만 보여주는 구체화 뷰 위 SELECT 문을 이용해 작성한 구체화 뷰 정의문

Mview의 삭제 기본 문법 앞서 생성한 뷰 mv_book를 삭제 DROP MATERIALIZED VIEW 뷰이름 DROP MATERIALIZED VIEW mv_book;

실습 2-5 도서 별 주문 금액을 확인할 수 있는 구체화 뷰를 만드시오. 데이터 변경마다 동기화가 일어나게 하시오. 도서 별 주문 금액을 확인할 수 있는 구체화 뷰를 만드시오. 데이터 변경마다 동기화가 일어나게 하시오. JOIN을 이용하여 테이블을 합쳐야 함 GROUP BY 절을 이용하여 도서 이름을 그룹으로 묶어야 함 집계함수를 이용하여 합계를 구해야 함 SUM() 주문금액으로 정렬(내림차순)

Trigger Trigger의 생성 Trigger의 수정 Trigger의 삭제

Trigger 임의의 Table에 SQL이 실행 되면 암시적으로 실행되는 프로시저 뷰가 아닌 Table에 대해서만 정의가 가능 트랜잭션 제어문을 사용할 수 없음

Trigger의 생성 기본 문법 CREATE TRIGGER 트리거이름 BEFORE | AFTER [INSERT OR DELETE OR UPDATE] ON 테이블이름 어떤 쿼리에 반응할지 정함 ex ) INSERT OR UPDATE , INSERT OR DELETE OR UPDATE [FOR EACH ROW] 데이터 처리 시 매 건마다 트리거 실행 (INESRT와 DELETE에는 필수) DECLARE 변수 선언부 BEGIN 트리거 코드 END;

Trigger의 생성 tbl_book 테이블의 특정 bookid(2)를 INSERT/UPDATE/DELETE 할 수 없게 하는 트리거

Trigger의 수정 기본 문법 CREATE OR REPLACE TRIGGER 트리거이름 BEFORE | AFTER [INSERT OR DELETE OR UPDATE] ON 테이블이름 어떤 쿼리에 반응할지 정함 ex ) INSERT OR UPDATE , INSERT OR DELETE OR UPDATE [FOR EACH ROW] 데이터 처리 시 매 건마다 트리거 실행 (INESRT와 DELETE에는 필수) DECLARE 변수 선언부 BEGIN 트리거 코드 EXCEPTION WHEN 예외 처리 END

Trigger의 수정 앞에 만든 트리거에서 UPDATE 쿼리는 허용하게 하는 트리거

Trigger의 삭제 기본 문법 앞에서 만든 트리거를 삭제 DROP TRIGGER 트리거 이름 DROP TRIGGER REFUSE_BOOKID_2

실습 2-6 tbl_book테이블에 INSERT, UPDATE 쿼리의 처리가 완료 된 후에 쿼리들의 실행 기록을 기록하는 트리거를 작성하라. CREATE TABLE tbl_book_log (type VARCHAR(20), updatetime VARCHAR(30)); 현재 시간 받아오는 함수 : to_char(sysdate,'yyyy/mm/dd hh24:mi:ss')