뷰와 저장 프로시저 뷰의 개념을 이해한다. 뷰의 정의와 관리 방법을 이해한다. 뷰를 사용함으로써 생기는 장점을 알아본다.

Slides:



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

1 SQL 정보보호학과 양 계 탁. 2 SQL 개요 SQL 개요 3 Database u 연관된 데이터들의 집합 u 데이터를 쉽게 관리하는 프로그램 종 류종 류 관계형 데이터베이스 객체지향형 데이터베이스 계층형 데이터베이스 네트워크 데이터베이스 데이터를 2 차원적인 테.
널 (null) 의 처리 널을 검색하는 방법 형식 예 ) takes 테이블에서 아직 학점이 부여되지 않은 학생의 학번을 검색 is null is not null ( 질의 64) select stu_id from takes where grade is null.
SQLite 소개 및 안드로이드에서의 사용법
다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL
SQL 언어 SQL.
19.(코드+년도+월)별,(코드)별,전체총액을 한번에
소리가 작으면 이어폰 사용 권장!.
소프트웨어시스템설계(6주) 데이터베이스 연동
질의어와 SQL 기본 SQL 고급 SQL 데이타의 수정 데이타 정의 언어 내장 SQL
관계 대수와 SQL.
SQL Server Migration Assistant For Oracle
Database & Internet Computing Laboratory 한 양 대 학 교
SELECT 문 사원 테이블의 모든 정보를 출력하는 예제 1. 비교 연산자 SELECT 문의 형태
4장. 관계 대수와 SQL SQL 관계 데이터 모델에서 지원되는 두 가지 정형적인 언어
제 09 장 데이터베이스와 MySQL 학기 인터넷비즈니스과 강 환수 교수.
JDBC 프로그래밍 이수지 이동주 1.
다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL
Apache Hive 빅데이터 분산 컴퓨팅 박영택.
SQL 개요 SQL 개요 - SQL은 현재 DBMS 시장에서 관계 DBMS가 압도적인 우위를 차지하는 데 중요한 요인의 하나
10장. 데이터베이스 보안과 권한 관리 데이터베이스 보안과 권한 관리
MySQL performance Xhark 김재홍.
데이터베이스 담당교수 신정식 Chapter 4 SQL(1).
Toad for Oracle 설치 방법.
데이터베이스 와 JDBC 1.데이터베이스와 데이터베이스 관리 시스템은? 2.데이터베이스 장점?
Chapter 01 데이터베이스 시스템.
DB2.
11장. 데이터베이스 서버 구축과 운영.
오라클 데이터베이스 성능 튜닝.
기초 T-SQL.
MySQL 기본 사용법.
트랜잭션과 잠금 트랜잭션 처리 메커니즘을 자세히 이해한다. 트랜잭션의 종류를 파악한다.
14장 뷰.
Chapter 05 데이터베이스 프로그래밍.
4.2 SQL 개요 SQL 개요 SQL은 IBM 연구소에서 1974년에 System R이라는 관계 DBMS 시제품을 연구할 때 관계 대수와 관계 해석을 기반으로, 집단 함수, 그룹화, 갱신 연산 등을 추가하여 개발된 언어 1986년에 ANSI(미국 표준 기구)에서 SQL.
SQL Server 2000 세미나 Profiler를 이용한 문제해결
차례 튜닝 - 프로필러를 이용한 튜닝 프로필러 친해지기 프로필러 결과 테이블로 만들기 프로필러 결과 분석하기
단일 테이블 조회를 위한 SELECT 문을 이해한다. 열 제약조건과 행 제약조건을 이해한다. 결과 집합 변경 방법을 이해한다.
14 뷰(View) 뷰의 개념 뷰 관리.
16장. 테이블의 변경 새로운 행 삽입 테이블에서 테이블로 행을 복사 행 값의 변경 테이블에서 행 삭제
9장 테이블 생성 및 변경, 삭제하기(DDL).
SQL.
YOU Youngseok 트랜잭션(Transaction) YOU Youngseok
01 데이터베이스 개론 데이터베이스의 등장 배경 데이터베이스의 발전 과정 데이터베이스의 정의 데이터베이스의 특징
강사: 이종인 다우 교육원 전임강사 / 온디멘드 수석 컨설턴트 / FMG 수석 컨설턴트
SQL (structured query language)
다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL
고급 T-SQL.
상용 DBMS에서 사용하는 다차원색인 컴퓨터과학과 이돈규 상용 DBMS에서의 다차원색인.
CHAPTER 06. 데이터베이스 자료의 조직적 집합체_데이터베이스 시스템의 이해
13장 무결성 제약조건.
정보처리기사 8조 신원철 양진원 유민호 이기목 김다연 윤현경 임수빈 조현진.
SQL Query in the SSMS : DB, Table
JSP 게시판 구현.
View(뷰) 1 가상 테이블(Virtual Relation)
데이터베이스 (Database) SQL 추가 기능: 주장, 뷰, 프로그래밍 기법 문양세 강원대학교 IT대학 컴퓨터과학전공.
Database 중고차 매매 DB 비즈니스IT 윤동섭.
인터넷응용프로그래밍 과제 실습.
11장. GROUP BY와 HAVING 열의 그룹화 2개 이상의 열에 대한 그룹화
3장. SQL Server 2008전체 운영 실습 및 DB와 프로그램의 연동
기본적인 SELECT문 작성.
8장 테이블의 생성 및 변경 정인기.
컬럼 대칭키 암호화 작업(SQL 2008) ① 마스터 키 생성 ② 인증서 생성 초기 한번만 실행 ③ 대칭키 생성
MS-SQL7.0 Implementation 강의 노트
06. SQL 명지대학교 ICT 융합대학 김정호.
SQL Server 2000 세미나 View, SP &Trigger
뇌를 자극하는 Windows Server 장. 데이터베이스 서버.
Stored program 장종원
Data Base Mysql.
Presentation transcript:

뷰와 저장 프로시저 뷰의 개념을 이해한다. 뷰의 정의와 관리 방법을 이해한다. 뷰를 사용함으로써 생기는 장점을 알아본다. 뷰를 만들고 기본적인 방법으로 이용할 수 있다. 저장 프로시저의 개념과 처리 메커니즘을 이해한다. 저장 프로시저의 작성 및 호출 방법을 익힌다.

뷰 저장 프로시저

1. 뷰 뷰의 개념 및 장점 뷰(view): 미리 정의된 단일 질의를 나중에 사용하기 위해 데이터 베이스에 개체로 저장해 놓은 것 단일 질의의 예 기반 테이블의 행이나 열의 부분 집합 기반 테이블 두 개 이상의 유니온 기반 테이블 두 개 이상의 조인 기반 테이블의 통계적 요약 다른 뷰의 부분 집합 뷰와 기반 테이블의 결합

1. 뷰 뷰의 개념 및 장점 기반 테이블(base table) : 뷰를 정의하는 데 사용되는, 데이터를 가진 진짜 테이블 단일 질의로 구성된 뷰를 정의해 놓고(①), 이 뷰를 테이블처럼 사용 하여 SELECT 문을 실행하면(③) 뷰의 단일 질의가 실행되어 결과 집합을 만들고(②), 이 결과 집합을 이용하여 최종적인 결과 집합을 얻는다(④).

1. 뷰 뷰의 개념 및 장점 뷰의 개념도

1. 뷰 뷰의 개념 및 장점 구문 schema_name에서는 뷰 개체의 스키마를 지정한다. column은 뷰의 열 이름을 지정한다. select_statement에서 열이 산술 식, 함수 또는 상수에서 파생된 경우, 조인으로 인해 둘 이상의 열이 같은 이름을 갖는 경우, 그리고 뷰의 열이 파생된 열과 다른 이름을 갖는 경우에는 열 이름을 지정해주어야 한다. select_statement는 뷰를 정의하는 SELECT 문이다. select_statement 에는 ORDER BY 절을 포함할 수 없는 등의 제약 사항이 있다.

1. 뷰 뷰의 개념 및 장점 [그림 1]의 개념도를 구현해보자. 1 USE AdventureWorksLT; 2 GO 3 CREATE VIEW vw_ProductCategory 4 AS 5 SELECT ProductCategoryID, NAME 6 FROM SalesLT.ProductCategory; 7 GO 8 SELECT * 9 FROM vw_ProductCategory 10 WHERE ProductCategoryID <= 4; 예제 1

1. 뷰 뷰의 개념 및 장점

1. 뷰 뷰의 개념 및 장점 뷰를 사용할 때의 장점 사용자를 위한 데이터에 초점을 맞춘다. - 사용자에게 꼭 필요한 데이터만 보여주고, 그 밖의 데이터는 감춘다. 사용자는 뷰가 돌려주는 데이터를 기반 테이블의 데이터처럼 조작할 수 있다. 데이터베이스의 복잡도를 줄여준다. - 데이터베이스 구조를 바꾸지 않고도 사용자에게 필요한 맞춤식 데이터를 제공할 수 있다. 또한 복잡한 질의 대신 단순화된 뷰를 쓸 수 있다. 사용자 액세스 관리를 단순화시켜준다. - 기반 테이블의 특정 열에 대해 사용자의 액세스권한 등을 설정할 필요 없이, 사용자들이 뷰를 통해서만 데이터를 액세스하도록 설정하면 되므로 관리가 쉬워진다.

1. 뷰 뷰의 개념 및 장점 테이블 구조가 바뀌었을 경우, 이전 버전과 호환되는 뷰를 만들어서 기존의 응용 프로그램이 사용하도록 하면 이전 버전과의 호환성을 제공할 수 있다. 다른 응용 프로그램에서 사용할 때‘데이터 내보내기’를 할 수 있다. - 복잡한 질의에 기반을 둔 뷰를 만들고, 이를 통해 데이터를 내보내 다른 응용 프로그램이 사용하도록 할 수 있다.

1. 뷰 뷰의 수정 및 삭제 뷰를 수정하거나 삭제할 때 사용하는 기본 구문 뷰를 삭제한 후에 다시 만들면 액세스 허가를 모두 새로 설정해야 하지 만, ALTER VIEW 문으로 뷰를 수정하면 액세스 권한이 그대로 유지된다. DROP VIEW 문으로 삭제된 뷰를 참조하는 개체(예: 또 다른 뷰)를 액세스하면 오류가 발생한다. 또, 뷰를 참조하는 개체가 삭제되더라도 해당되는 뷰는 자동으로 삭제되지 않으므로 수작업으로 삭제해주어야 한다.

1. 뷰 뷰의 수정 및 삭제 뷰에 열을 하나 더 추가하도록 수정해보자. 1 USE AdventureWorksLT; 2 GO 3 ALTER VIEW vw_ProductCategory 4 AS 5 SELECT ProductCategoryID, ParentProductCategoryID, NAME 6 FROM SalesLT.ProductCategory; 7 GO 8 SELECT * 9 FROM vw_ProductCategory 10 WHERE ProductCategoryID BETWEEN 5 AND 8; 예제 2

1. 뷰 뷰의 수정 및 삭제

1. 뷰 뷰의 수정 및 삭제 뷰를 삭제해보자. 예제 3 DROP VIEW vw_ProductCategory;

1. 뷰 뷰의 수정 및 삭제 [예제 3]과 같이 뷰를 삭제할 때 발생하는 오류를 살펴보자. - 만약 삭제하려는 뷰 vw_ProductCategory가 없다면 오류가 발생 한다. SQL에서는 이를 방지하기 위해 IF 문으로 뷰가 있는지 테스트 한 후, 해당 뷰가 있을 때만 삭제할 수 있다. 1 IF object_id('vw_ProductCategory', 'V') IS NOT NULL 2 DROP VIEW vw_ProductCategory; 예제 4

2. 저장 프로시저 저장 프로시저의 개념 저장 프로시저(stored procedure): 선택적으로 매개변수를 받아 일련의 SQL 문을 통해 처리하고, 선택적으로 상태 값을 돌려주는 프로시저 데이터베이스에서 범용 프로그래밍 언어의 하부 프로시저(sub- procedure)에 해당하는 개념이다. 복잡한 데이터 처리나 주기적인 업무 처리를 위해서는 저장 프로시저 의 작성이 반드시 필요하다.

2. 저장 프로시저 저장 프로시저의 개념 저장 프로시저의 개념도

2. 저장 프로시저 저장 프로시저의 개념 저장 프로시저를 이용하지 않고 SQL 문을 직접 사용할 경우, 네트 워크를 통해 일련의 복잡한 SQL 문을 직접 SQL 서버로 보내고, 이 문을 일일이 컴파일하고 실행해야 한다. 그러나 이 SQL 문을 저장 프로시저로 작성해 놓으면 저장 프로시저의 이름만 SQL 서버로 보내면 된다(필요 시 매개변수를 포함한다). 대부분의 DBMS에서 저장 프로시저는 첫 번째 실행 시 컴파일된 실행 계획을 저장해 놓고, 두 번째부터는 이 실행 계획을 직접 실행하므로 처리 속도도 빠르다.

2. 저장 프로시저 저장 프로시저의 개념 저장 프로시저를 사용할 때의 장점 프로그램 로직을 다른 응용 프로그램과 공유하며, 이에 따라 데이터 액세스나 변경을 일관성 있게 처리할 수 있다. 사용자가 필요로 하는 기능을 저장 프로시저로 제공할 경우, 테이블을 직접 액세스할 필요가 없으므로 보안이 강화된다. 사용자는 직접 액세스 할 권한이 없는 테이블이나 뷰를 저장 프로시저를 통하여 액세스할 수 있다. 저장 프로시저를 반복적으로 호출할 경우, 컴파일되고 저장되어 있는 실행 계획을 직접 실행하므로 성능을 향상시킬 수 있다. 네트워크를 통해 SQL 문 수십 또는 수백 개를 데이터베이스 서버로 보내지 않고 하나의 저장 프로시저 호출문을 보냄으로써 네트워크 트래픽을 줄일 수 있다.

2. 저장 프로시저 저장 프로시저의 정의 저장 프로시저 정의를 위한 기본적인 구문 schema_name에서는 저장 프로시저 개체의 스키마를 지정한다. (Transact-SQL에서 이것을 생략하면 기본 스키마 또는 dbo가 지정됨) procedure_name은 저장 프로시저 이름이다. parameter는 매개변수 이름, data_type은 매개변수의 데이터 형식 sql_statement는 하나 이상의 확장 SQL(예: Transact-SQL, PL/SQL 등) 문들이다.

2. 저장 프로시저 저장 프로시저의 개념 저장 프로시저를 사용해보자. 예제 5 1 USE AdventureWorksLT; 2 GO 3 CREATE PROCEDURE usp_GetProductCategory ( 4 @ID int 5 ) 6 AS 7 SELECT * 8 FROM SalesLT.ProductCategory 9 WHERE @ID = ProductCategoryID; 10 GO

2. 저장 프로시저 저장 프로시저의 호출 저장 프로시저의 호출 방법은 DBMS마다 다르다. Oracle, MySQL 등에서는 CALL 문을 사용하는데, 여기서는Transact-SQL의 호출 방법 위주로 설명하기로 한다. EXECUTE 또는 EXEC 키워드는 생략해도 되지만, 여러 명령문을 한꺼번에 실행할 때 이것을 생략하면 오류가 발생한다. 따라서 가급적 생략하지 말기 바란다. “@parameter =”를 사용하는 것을 참조 값 전달(Passing Values by Reference 또는 Named Parameter)이라고 하는데, 매개변수의 이름과 함께 매개변수 값을 넘기는 방식이다.

2. 저장 프로시저 저장 프로시저의 호출 반면,“ @parameter =”를 사용하지 않고 단순히 매개변수 값만 넘기는 방식을 위치 값 전달(Passing Values by Position 또는 Positioned Parameter) 방식이라고 한다(일반적인 프로그래밍 언어의 Call-by- Value 또는 Call-by-Reference와는 완전히 다른 개념이므로 혼동하지 말길 바란다). 참조 값 전달 방식이 위치 값 전달 방식보다 훨씬 더 융통성이 있다. 매개변수의 이름을 명시함으로써 임의 위치의 매개변수를 생략할 수 있으 며, 심지어 매개변수의 순서를 바꿔 호출할 수도 있다.

2. 저장 프로시저 저장 프로시저의 호출 저장 프로시저를 호출해보자. 예제 6 1 EXEC usp_GetProductCategory @ID = 5; 2 EXEC usp_GetProductCategory 6;

2. 저장 프로시저 저장 프로시저의 호출 Oracle에서의 호출 방법 1행의 예를 들면, EXEC 대신 CALL을 사용하고, 매개변수 이름의 첫 글자 @는 생략하고,‘ =’대신‘=>’를 사용하며, 반드시 ( )를 사용한다. 1 CALL usp_GetProductCategory(ID => 5); 2 CALL usp_GetProductCategory(6);