2020년 4월 23일 목요일

Day_05. Catalog



The catalog
정의
모든 schema object의 정보를 소유하고 있으며 system tablespae 라고 부른다
일반 질의(query)를 이용하듯 dictionary에 질의가 가능하다,(sys_tables, sys_column에 query가 가능)



Catalog의 self-describing(including catalog table) 특징
=catalog 역시 table로 표현되기 때문에 SQL 로 질의가 가능하다, 이를 catalog의 self describing 기능이라 한다


Ex) ((tale joiin column) where colcount < 5) [tabname , colname] 은 무슨 뜻인가?
으로 구성되어 있는 TABLE을 JOIN 해서 “TABLE” 테이블의 COLCOUNT 값이 5이하인 TUPLE을 찾아서 TABNAME , COLNAME을 추출하는 것



Base Relvar(Relation value)와 view
Base relvar 이란?
=named relvar
=independent existence ( CREAT TABLE 등의 DDL로 생성한 OBJECT를 의미한다)



Drived Relvar
=obtained from base rlvars
=depend on base relvars
=defined in terms of other relvars (view처럼 수동적으로 존재하는 것, 원본 오브젝트가 없이 존재존재 없는 것)



View
특징
=window 를 이용해서 table을 보는것과 같다
=실제로 존재하지 않고 view를 정의하는 것만 있음
=view 정의시 catalog에 기록되어 view에 질의(query)를 날리면 catalog가 view에 해당하는 부분을 base relvar에 있는 정보로 바꿔서 query를 동작시킨다
=ANSI/SPARC에서 정의하는 VIEW와 DB에서 의미하는 VIEW는 차이가 있음,ANSI/SPARC에서 정의하는 VIEW는 “External view”로서 relational vaiable의 집합이다

(view has a specific meaning in relational context that is not identical to ANSI/SPARC)
=RDBMS에서 VIEW는 named, derived, relatiional variable 이다
=실제 data를 보는 방법의 차이를 주는 오브젝트임



Transaction
=Logical unt of work – 작업의 최소 단위
=begin transaction , commit , rollback 등의 키워드로 제어
=transaction의 성질
==Atomicity , durability , isolation , consistency , serializability(수천의 작업이 와도 1건씩 요청한것처럼 작동해야한다)



Chapter 4. Introduction to SQL


1.데이터 정의(Defnition 기능)
=Create 키워드를 이용
=DB에서 사용할 Data type은 사용자가 정의할수 없고 system에 지정된 형식을 사용해야 한다(pre- define 되어있다)



2.데이터 조작 – manipulate
=SELECT ,INSERT, UPDATE,DELETE ( restrict , project연산과 대응됨)
=Join dustd
=subquery기능으로 연산 결과를 다른 table에 연동시킬수 있음
=SQL doe not include a direct analog of the relational assignment operation



3.Catalog
=information schema ( system dictionary)
=DB의 모든 정보를 담고있다



4.Information schema
=catalog 안에 relation 의 모든 정보를 담고 있는 것(table,column view등의 정보)



5.Embeed SQL
=Prefix exec SQL -> “EXEC SQL” 키워드로 시작
=Terminated special terminator – 특정 키워드를 통한 작업의 생성과 소멸
=Can inlude references to host variable
=Host language (C,JAVA등) 안에 SQL이 들어가 있다
=어떤 위치에서도 호출해서 사용이 가능하다



사용방법
=사용할 변수의 데이터 타입을 맞춰서 사용해야한다
=HOST language의 변수는 sql 부분에서도 사용이 가능하다
=”SQLSTATE” 항목을 통해 제어하게 되는데 반환되는 결과가 00000이면 정상 실행되었음을 알수있다, Host language에서 if sqlstate를 통해 제어한다
=when ever 를 사용해 에러처리를 하다



6.DML 종류
=SELECT=원하는 COLUMN을 추출
=INSERT=table에 새로운 값 넣기
=Update=기존값의 변경, where 절이 중요하게 작용하다
=Delete=table의 특정 data를 삭제, where절의 조건이 중요하다



7.Cursor 의 사용
=OPEN,FETCH,CLOSE 문으로 제어
=Declare 를 사용해 all 정의하고 사용한다
=여러 개의 값이 반환ㄴ되는 구조를 가진다



8.Dynamicc SQL
=Online 상황에서 동작하는 APP에 사용
=command 인식 – 분석 – 적절한 SQL수행 – 결과값 반환
=Prepare , execute로 관리



9.SQL call level interface - CLI
=어떤 APP에서도 DB에 접근해서 작업이 가능하다
=CLI permit on application written in one of the usual host language to issue database request by invoking certain vender provided CLI routines
**Dynamic SQL 과의 차이점**
Dynamic SQL은 프로그램 CODE에 녹아있어서 –Code standard – CLI 는 Routine invoke 개념으로 DB에 쉽게 접근이 가능하다
**ODBCC 라고 보는게 편하다, 다양한 시스템에서 이것만 있으면 붙힐수 있기 때문에**


S1,,,Sn 까지 다른 시스템들이 동일 DB에 접근

**Relational model의 모든 것을 지원하는 제품(Product )는 아직까지 시장에 존재하지 않는다**

댓글 없음:

댓글 쓰기