SubQuery 복습


    1) 학생 '300'의 기말고사 평균보다 높은 기말 성적을 받은 학생의 학번과 과목번호, 기말고사 성적을 출력

    SELECT sno, cno, final

    FROM enrol

    WHERE fianl > (

    SELECT avg(final)

    FROM enrol

    WHERE sno='300'

    )


    2) 과목번호 'C413'의 기말고사 평균보다 그 과목의 기말고사 성적이 높은 학생의 학번, 학생이름, 기말고사 성적을 출력

    SELECT s.sno, sname, final

    FROM enrol e JOIN student s ON s.sno=e.sno

    WHERE cno='C413' and final > (

    SELECT avg(final)

    FROM enrol

    WHERE cno='C413'

    )


    1. UNION


    SELECT sno

    FROM student

    WHERE syear=3

    UNION

    SELECT sno

    FROM enrol

    WHERE cno='C413'


    일때 UNION은 두 질의의 합집합을 가져오고 중복은 제거된다.

    UNION의 사용법은 SELECT의 컬럼의 순서가 맞고, 타입이 맞고, 개수가 같아야한다.


    2. VIEW


    Virtual Table = Storage Query

    다른 테이블로부터 유도되어 만들어진 논리적 가상 테이블


    Create View [View name]

    AS SELECT

    FROM

    WHERE


    특정 내용을 추려 새로운 가상 테이블을 생성할 수 있다.

    보는 것도 편하다.

    SELECT *

    FROM [View_name]


    2.1 View의 장단점


    장점!

    1. 데이터의 논리적 독립성을 어느정도 제공할 수 있다.

    즉, 컬럼의 추가, 설계 변경이 일어나더라도 뷰에는 영향이 미치지않는다.


    2. 데이터의 접근을 제어함으로써 보안을 제공해준다.

    새로운 뷰를 만들어 그 뷰로만 접근하게 한다면 뷰에 나타나지 않은 데이터는 보지못하므로 데이터 보호가 가능하다.


    3. 사용자의 데이터관리를 간단하고 쉽게 해준다.

    4. 여러 사용자의 상이한 응용이나 요구를 지원해준다.


    단점!

    1. 뷰는 그 정의를 변경할 수 없다.(Alter 불가)

    2. 뷰는 삽입 삭제 갱신 연산에 많은 제한을 가지고 있다.

    즉, 될때도 있고 안될때도 있다. 무조건 되는건 아니다!!!!





    1.데이터 처리 시스템

    1.1 일괄처리

    데이타를 수집해서 분류하고 정렬시킨 다음, 일괄처리하는 데이타 처리 방법

    즉, 유사한 트랜젝션들을 모아 일정시간에 한꺼번에 처리함으로써 사용자의 요구를 만족시키고 시스템의 효율성을 높인다.


    장점 - 여러 트랜젝션을 한데 모아 일괄적으로 처리하기 때문에 각 트랜젝션당 처리비용이 적게든다.

    시스템측면에서는 단위 시간당 처리되는 작업수가 많게 되어 자연히 시스템 성능을 높일 수 있다.


    단점 - 사용자 개별적 측면에서는 보낸 데이터가 즉시 처리되지않아 처리결과를 위해서는 대기해야한다.(긴 처리시간)

    일괄처리를 위한 여러가지 사전 준비 작업도 거쳐야한다.(원시 데이타의 수집 및 분류)


    * 트랜젝션이란? 논리적 작업 단위로서, 하나의 단위로 처리되어야 하는 분리될 수 없는 연산 그룹을 말한다.


    1.2 온라인

    일괄 처리 방식이 필요로 했던 사전 준비 작업 없이 곧바로 데이타를 처리하는 방식


    데이타가 생성되자마자 곧바로 컴퓨터에 전송되고, 전송된 데이타는 즉시 처리해 결과를 보내주는 것을 온라인 실시간 처리,

    입력을 통한 데이타의 전송을 받아 일정 시간에 일괄처리되는 것을 온라인 일괄 처리 라고 한다.


    장점 - 데이타 처리를 위한 대기 시간이 없다.

    일괄처리에 있어서 데이타 입력에 따른 데이타의 분류 및 정리 작업이 절약된다.

    입력에 있어 데이타의 오류도 입력시에 즉시발견, 교정할 수 있다.

    질의, 검색은 물론이고 갱신도 수행할 수 있어 데이타의 현재성을 편리하게 유지시켜준다.


    단점 - 많은 원격 터미널들과 계속적 통신을 유지, 이를 위한 통신제어기가 필요하므로 자연스레 구조는 복잡하게 된다.

    응답시간의 최소화를 위해 데이타가들어오면 CPU에 인터럽트를 걸어 CPU의 효율성이 낮아지게된다.

    짧은 응답시간을 위해서는 시스템이 항상 가동되야하기때문에 결과적으로 작업 당 처리비용이 높아진다.

    온라인 환경이기때문에 프로그램의 테스트나 보수 유지의 어려움이 발생하고 회복도 매우 복잡해진다.



    1.3 분산처리


    물리적을 분산되어 있는 처리기와 데이타베이스를 네트워크로 연결시켜 마치 하나의 시스템을 사용하는 것처럼 데이타를 처리해주는 시스템이다. 구성요소로는 분산 처리기, 통신 네트워크, 분산 데이터베이스가 있다.


    장점 - 지역문제 발생에 대한 신속한 조치, 지역 업무에 대한  책임 구분, 새로운 응용에 대한 모듈식 구축의 용이, 지역처리 능력과 함께 시스템 장애에 대비한 자원의 다원적 재편성을 통한 신뢰성 증대, 시스템 운영에 큰 영향을 주지 않고 노드의 폐쇄나 확장이 가능할 뿐만아니라 상이한 하드웨어가 허용될 수 있기때문에 지속적 확장 발전해 나갈 수 있다.


    *) 데이타가 저장된 곳을 중심으로 그 기능들이 집중되는 것을 중앙집중 시스템이라고한다.


    2. DB의 정의

    2.1 통합 데이타

    데이타의 중복성의 완전한 배제가 아닌 최소화

    이런것을 최소화의 중복(Minimal Redundancy) 또는 통제된 중복(Controlled Redundancy)라고 한다.

    2.2 저장 데이타

    컴퓨터가 접근할 수 있는 저장매체에 저장된 데이타, 계산된 값이 아님

    2.3 운영 데이타

    조직의 고유기능을 수행하기 위해 반드시 유지해야할 데이타

    2.4 공용 데이타

    공동 소유, 공동소지하여 사용하는 데이타


    3. DB의 특성

    3.1 실시간 접근성

    의사결정에 바로 반영할 수 있게 처리하는 방식

    3.2 계속적인 변화

    데이타의 현재성, 즉 삽입,삭제,갱신에 의한 변화를 정확하게 반영해야한다.

    3.3 동시 공용

    여러 사용자가 병렬적으로 동시에 데이타베이스의 데이타에 접근할 수 있어야한다.

    3.4 내용에 의한 참조

    사용자가 참조하기를 원하는 데이타의 특성이나 조건을 명세하면 이 조건을 만족하는 모든 레코드들은 그들이 어디의 위치에 있던지 그들은 하나의 논리적 단위로 취급되고 접근된다. 컴퓨터의 주소로 참조되는 것과는 다르다.


    4. DB의 구성요소

    4.1 개체(Entity)

    유형, 무형의 객체로써 서로 구별되는 것

    4.2 속성

    개체의 특성이나 상태를 기술한 것

    4.3 관계

    개체 집합과 개체 집합간의 여러가지 유형의 관계


    개체들이 구체적인 값을 가졌을 때 하나의 개체 값을 개체 인스턴스라고 부른다.

    이 개체 인스턴스들의 집합을 개체 집합이라고 한다.


    이 개체들의 속성 이름들로만 기술된 개체의 정의를 개체 타입이라고 한다.


    5. DBMS의 정의

    사용자(응용 프로그램)과 데이타의 중재자로써 모든 응용 프로그램들이 데이타 베이스를 공용할 수 있게끔 관리해주는 

    소프트웨어 시스템


    즉, 응용프로그램이 DBMS에게 Request하면 DBMS가 데이타베이스에서 작업을 처리하고 Response해준다.


    5.1 DBMS의 발전 배경

     파일시스템의 문제, 데이타의 종속성, 데이타의 중복성을 해결하기 위해 DBMS가 발전되었다.


    5.1.1 데이타의 종속성

    응용프로그램과 데이타간의 상호의존적 관계

    데이타의 접근방식이 바뀌게 된다면 응용프로그램에서도 동시에 바꿔주어야한다.


    5.1.2 데이타의 중복성

    똑같은 데이타가있는데 그중 하나의 데이타가 바뀌게 되어버리면 두개는 더이상 같지 않은 데이타가 되어버린다.

    즉, 일관성이 깨져버린다.


    5.2 DBMS의 필수 기능

    5.2.1 정의기능

    다양한 응용프로그램과 데이타베이스가 서로 인터페이스를 할 수 있는 방법을 제공해준다.

    5.2.2 조작기능

    사용자와 데이타베이스 사이의 인터페이스를 위한 수단

    삽입, 수정, 삭제의 기능을 완전하고 명확하게 제공해준다.

    5.2.3 제어 기능

    공용목적으로 관리되는 데이타 베이스에 대해 항상 적확성과 안정성을 유지할 수 있는 데이타 제어 기능을 가지고 있어야한다.


    1) 갱신, 삽입, 삭제 작업이 정확하게 수행되게 하여 데이타의 무결성이 파괴되지 않도록 제어해야한다.

    2) 정당한 사용자만이 허가된 데이타만을 접근할 수 있도록 보장하기 위한 권한 검사 및 보안유지가 되어야한다.

    3) 동시 접근 처리를 하더라도 정확성의 유지, 병행제어의 기능을 가져야한다.


    5.3 DBMS의 장단점


    장점

    1. 데이타 중복의 최소화
    2. 데이타의 공용
    3. 데이타의 일관성 유지    -    중복의 최소화를 통한 일관성 유지
    4. 데이타의 무결성 유지    -    저장된 데이타와 현실세계의 데이타와 일치하는 정확성을 가져야한다.
    5. 데이타의 보안 보장
    6. 표준화

    단점


    1. 운영 비용의 증대
    2. 특정 응용 프로그램의 복잡화
    3. 복잡한 백업과 회복        - 동시 공용되었을 때 장애가 일어났을때 정확한 이유나 상태파악이 힘들다. 또한 정교한 백업조치를 하지않으면 데이타베이스 이용에 막대한 지장을 초례할 수 있다.
    4. 시스템의 취약성 - 통합시스템이기에 DB 의존도가 높을 수 밖에없으며 DB가 오류가 났다면 전체시스템이 중지될 수 있다. 


    6. DB의 시스템 구성


    6.1 데이타 언어

    6.1.1. DDL

    데이타 정의어 - Data Definition Language

    6.2.2 DML

    데이타 조작어 - Data Manipulation Language


    절차적 데이타 조작어(Procedual)

    비절차적 데이타 조작어(NoProcedual)


    6.2.3 DCL

    데이타 제어어 - Data Control Language


    6.2 사용자

    6.2.1 일반사용자

    비 절차적 데이타 조작어를 사용할 수 있다.

    6.2.2 응용 프로그래머

    절차적, 비적차적 데이타 조작어를 사용할 수 있다.

    6.2.3 데이타베이스 관리자

    모두 사용 가능하다.


    6.3 DataBase Administrator가 하는일


    1. 설계와 운영
    2. 행정관리 및 불평 해결
    3. 시스템 감시 및 성능분석

    1) 설계와 운영

    1. 논리적 설계, 즉 개체, 속성, 관계를 정한다.
    2. 스키마를 정의
    3. 물리적 설계, 저장구조와 접근 방법을 결정한다.
    4. 보안 및 권한 부여 정책, 데이타의 유효성 검사방법을 수립
    5. 백업 회복 절차를 수립
    6. 무결성 유지를 위한 대책을 수립
    7. 성능향상과 새로운 요구에 대응하기 위해 필요한 경우 데이타베이스 재구성
    8. 시스템 카탈로그 유지, 관리

    2) 행정관리 및 불평해결

    1. 데이타의 표현이나 시스템 문서화에 표준을정하여 시행
    2. 사용자의 요구와 불평을 청취하고 해결

    3) 시스템 감시 및 성능 분석

    1. 시스템 자원의 이용도, 병목 현상, 장비 및 시스템 성능을 감시
    2. 각종 통계등을 종합하고 분석한다.



    * 스키마란?

    데이타 베이스 구조와 제약조건에 대한 명세를 기술한 것이다.


    * 시스템 카탈로그란?

    데이타 사전, 시스템 테이타베이스, 메타 데이타라고도 불린다.

    데이터베이스에 저장되어있는 모든 데이타 개체들에 대한 정의나 명세(스키마)에 관한 정보를 유지관리한다.


    시스템 카탈로그는 시스템 데이타베이스로 시스템에서 자동생성되며, 필요하면 사용자가 접근할 수 있다.


    데이타에 관한 데이타를 메타 데이타라고도 한다.


    * 데이타 디렉터리

    실제 접근하는데 필요한 위치, 시스템만 접근 가능하다.


    ' > 데이터베이스' 카테고리의 다른 글

    정규화(Nomalize)  (0) 2017.05.27
    4. 데이터 베이스  (0) 2017.05.27
    2. 데이터베이스  (0) 2017.05.14
    1. 데이터베이스  (0) 2017.05.14
    5. 데이터베이스  (0) 2017.04.19
    Posted by Config