본문 바로가기
컴퓨터과학[3-2]/D.B

데이터베이스 설계 및 구현 - [제9강] 데이터 조작언어 3

by boolean 2016. 7. 31.
728x90

데이터베이스 설계 및 구현 - [제9강] 데이터 조작언어 3

조인질의 ․부속질의 ․뷰 사용

데이터베이스 용어정리

  • 내부조인
    두 개 이상의 테이블의 관련성을 조인 조건에 기술하여 조건을 만족하는 레코드를 통합한 후 데이터를 검색하는 질의기법
  • 외부조인
    조인 조건에 만족하지 않는 레코드도 검색결과에 함께 포함시키고 만족하는 않는 레코드의 컬럼은 NULL로 대체하여 출력하는 질의문
  • 셀프조인
    두 개 이상의 테이블의 관련성을 조인 조건에 기술하여 조건을 만족하는 레코드를 통합한 후 데이터를 검색하는 질의기법 외부조인 조인 조건에 만족하지 않는 레코드도 검색결과에 함께 포함시키고 만족하는 않는 레코드의 컬럼은 NULL로 대체하여 출력하는 질의문 셀프조인 한 테이블이 자기 자신과 조인되는 유형의 질의문
  • 부속질의
    한 개의 완벽한 질의문이 다른 질의문에 내포되는 형태의 질의문으로 내포된 검색 질의문의 결과를 재사용하는 유형의 질의문.
  • 주어진 조건에 따라 레코드를 그룹화하고 여러 통계적인 연산을 수행하는 질의
  • 요점정리

    1. 조인은 테이블 간의 관련성(기본키, 외래키 참조관계 등)을 이용하여 한 개 이상의 테이블로부터 레코드를 결합하여 검색하는 질의방법을 말한다.
    2.  내부조인은 조인 조건을 만족하는 레코드만을 결합하여 검색 결과에 포함시키는 질의를 말한다. 조인 조건에서 동등(=) 연산자를 사용한 내부조인을 동등조인, 비동등(>, <, >=, <= 등)의 연산자를 사용한 비동등조인으로 구분된다.
    3.  외부조인이란 조인 조건을 만족하는 레코드만을 결합하여 검색 결과에 포함시키는 내부조인과는 달리 조인 조건을 만족하지 않는 레코드도 검색 결과에 포함시키고 결합되지 않는 레코드의 일부분을 NULL로 대체하여 출력하는 조인을 말한다.
    4. 외부조인을 사용하는 SQL의 FROM 절에서 조인 조건에 일치하지 않더라도 왼쪽에 위치한 테이블의 레코드를 모두 출력하는 외부조인을 왼쪽 외부조인, 오른쪽에 위치한 테이블의 레코드를 모두 출력하는 오른쪽 외부조인, 그리고 양쪽 테이블의 레코드를 모두 출력하는 완전 외부조인으로 구분된다.
    5.  한 개의 테이블 만을 사용하여 자신 자신과 조인하는 형태의 조인을 셀프조인 또는 자기조인이라고 한다. 셀프조인을 사용하는 SQL은 테이블 명의 혼란을 피하기 위해 반드시 별칭을 사용하여야만 한다.
    6. 한 개의 완벽한 검색문 내에 또 다른 검색문이 내포되어 있는 질의문을 부속질의라고 한다. 1차적으로 내포되어 란 실제 데이터를 가지고 있는 데이터베이스에서 하나 이상의 테이블을 근거로 만들어지는 가상의 테이블을 말한다. 뷰는 내부적으로 SELECT 문으로 정의된다. 그러나 뷰는 단순히 검색을 위해 사용할 뿐만 아니라 INSERT, UPDATE 기능으로도 활용될 수 있다. 

    연습문제

    • 연습문제1

      다음 중 조인 조건이 기술되는 절은?

      답을 체크하세요
      정답 :
      SELECT 문에서 조인에 대한 조건은 ON 절에 기술된다. WHERE 절은 조인 조건 이외의 조건을 기술할 때 사용한다.
    • 연습문제2

      다음 중 SQL 문 작성 시 테이블의 별칭을 반드시 사용해야하는 것은?

      답을 체크하세요
      정답 :
      조인 시 SQL 문의 가독성을 높이고 효율적으로 사용하기 위해서는 테이블의 별칭을 사용하는 것이 좋다. 그러나 자기 자신과 조인하는 셀프조인의 경우 조인하는 테이블 명이 동일 때문에 반드시 별칭을 사용하여야 한다.
    • 연습문제3

      아래의 명령을 수행하기 위한 SQL 명령문으로 정확하게 작성된 것은?

      컴퓨터과학과 소속의 교수의 교수이름, 직위, 그리고 교수가 담당하는 강의이름, 이수구분을 출력하시오.
      답을 체크하세요
      정답 :
      교수에 대한 컬럼과 강의에 대한 컬럼이 검색 결과에 포함되므로 조인이 사용되며, 조건을 일치하는(강의를 하는) 레코드만을 검색되므로 내부조인(INNER JOIN)이 사용된다. 내부조인의 조인 조건 ‘교수.교수번호 = 강의.교수번호’은 ON 절에 기술하며, 컴퓨과학과 소속의 교수만을 검색하기 위한 조건 ‘교수.소속학과 = ‘컴퓨터과학과’는 WHERE 절에 기술해야한다.
    • 연습문제4

      A와 B 테이블을 조인할 때 아래 그림은 어떤 조인을 표현한 것인가?



      답을 체크하세요
      정답 :
      두 집합의 교집합 만을 검색 결과에 포함시키면 내부조인, A를 모두 포함시키면 왼쪽 외부조인,
      B를 모두 포함시키면 오른쪽 외부조인, 합집합을 검색 결과에 포함시키면 완전 외부조인이다.
    • 연습문제5

      아래의 명령을 수행하기 위한 SQL 명령문으로 정확하게 작성된 것은?

      교수의 교수이름, 직위, 그리고 교수가 담당하는 강의이름, 이수구분을 출력하시오. 단, 강의를 하지 않는 교수도 검색 결과에 포함시키시오.
      답을 체크하세요
      정답 :
      위 질의문을 처리하는데 교수와 강의 테이블이 필요하므로 조인을 사용해야 한다. 그러나 조인 검색 결과에 강의를 하지 않는 교수에 대한 레코드를 검색 결과에 포함해야하므로 외부조인을 사용한다. FROM 절에서 교수 테이블은 왼쪽, 강의 테이블은 오른쪽에 위치하므로 LEFT OUTER JOIN을 사용하여 조인한다.
    • 연습문제6

      아래의 명령을 수행하기 위한 SQL 명령문으로 정확하게 작성된 것은?

      이수구분이 전공과목인 강의를 출력하는 전공강의 뷰를 생성하시오.
      답을 체크하세요
      정답 :
      뷰 생성은 CREATE VIEW 구분을 사용하여 뷰의 행동을 결정하는 SELECT 문 앞에 AS를 기술한다. 또한 전공과목의 종류는 전공필수와 전공선택이 있으므로 전공이 포함된 이수구분을 검색하기 위해서 LIKE 연산자를 사용해야한다. 

    댓글