Hello

[정처기 필기] 관계 대수, 관계 해석, SQL, VIEW, 시스템카탈로

by 볼빵빵오춘기

관계 대수(Relational Algebra)

  • 원하는 정보와 그 정보를 어떻게 유도하는가를 기술하는 절차적인 방법이다.
  • 주어진 릴레이션 조작을 위한 연산의 집합이다.
  • 일반 집합 연산과 순수 관계 연산으로 구분된다.
  • 질의에 대한 해를 구하기 위해 수행해야 할 연산의 순서를 명시한다.

 

관계 해석(Relational Calculus)

  • 원하는 정보가 무엇이라는 것만 정의하는 비절차적인 방법이다.
  • 도메인 관계 해석과 튜플 관계 해석이 있다.

 

순수 관계 연산자의 종류

  • Select(σ) : 튜플을 검색한다. / σ(조건)(R)
  • Project(π) : 속성 집합을 검색한다. / π(속성 리스트)(R)
  • Join() : 두 릴레이션의 공통 속성을 연결한다. / R▷◁(JOIN 조건)S
  • Division(÷) : 두 릴레이션에서 특성 속성을 제외한 속성만 검색한다. / R[속성r ÷ 속성s]S

 

집합 연산자

합집합 ∪ 두 릴레이션의 튜플의 합집합을 구하는 연산

교집합 두 릴레이션의 튜플의 교집합을 구하는 연산
차집합 - 두 릴레이션의 튜플의 차집합을 구하는 연산
교차곱 X 두 릴레이션의 튜플의 교차곱(순서쌍)을 구하는 연산

 

SQL(Structued Query Language)

  • 관계형 데이터베이스의 표준 질의어
  • 종류 : DDL, DML, DCL

 

DDL(Data Definition Language, 데이터 정의어)의 종류

  • create : 테이블 생성문
  • create table 테이블이름
  • alter : 테이블 구조(필드 추가, 삭제, 변경) 변경문
    • add : 새로운 열(속성)을 추가할 때 사용한다.
      alter table 테이블이름 add 열이름 데이터타입 default 값;
    • alter : 특정 열(속성)의 디폴트 값을 변경할 때 사용한다.
      alter table 테이블이름 alter 열이름 set default 값;
    • drop : 틀정 열(속성)을 제거할 때 사용한다.
      alter table 테이블이름 drop 열이름 casecade;

 

  • drop : 테이블 삭제문
    • casecade : 옵션을 사용하면 삭제할 요소가 다른 개체서 참조 중이라도 삭제가 수행된다.
    • restrict : 옵션을 사용하면 삭제할 요소가 다른 개체에서 참조 중이라면 삭제가 수행되지 않는다.
    • drop table 테이블이름 [casecade | restrict]

 

 

DCL(Data Control Language, 데이터 제어어) 의 종류

  • commit : 명령어로 수행된 결과를 실제 물리적 디스크로 저장하고, 명령어로 수행을 성공적으로 완료하였음을 선언한다.
  • rollback : 명령어로 수행에 실패하였음을 알리고, 수행된 결과를 원상 복귀시킨다.
  • grant : 데이터베이스 사용자에게 사용 권한을 부여한다.
  • revoke : 데이터베이스 사용자로부터 사용 권한을 취소한다.

DML(Data Manipulation Language, 데이터 조작어) 의 종류

  • select
  • insert
  • delete
  • update

Between

  • 구간값 조건식
  • where 점수 >= 80 and 점수 <= 90 표현할 수 있다.

그룹 함수의 종류

  • count / sum / avg / max / min

group by ~ having

select 과목이름, count(*) as 학생수
from sungjuk
where 점수 >=90
group by 과목이름
having count(*) >= 1
  • GROUP BY 절을 사용하여 그룹별 건수나 합계를 얻을 수 있다.
  • 그룹별 집계된 결과에서 원하는 조건의 결과만 필터링하기 위해서는 HAVING 절을 사용하여 필터 조건을 사용할 수 있다.

order by

  • 특정 항목을 기준으로 오름차순(asc), 내림차순(desc) 정렬할 때 사용한다.
  • 생략하면 asc가 디폴트 값이 된다.

뷰(View)

사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위해 기본 테이블에서 유도되는 가상 테이블

뷰(View)의 특징

  • 뷰의 생성 시 create문, 검색 시 select문을 사용한다.
  • 뷰의 정의 변경 시 alter문을 사용할 수 없고 drop문을 이용한다.
  • ⇒ drop 후 다시 만들어야한다!!
  • 뷰를 이용한 다른 뷰의 생성이 가능하다.
  • 하나의 뷰 제거 시 그 뷰를 기초로 정의된 다른 뷰도 함께 삭제된다.
  • 뷰에 대한 조작에서 삽입, 갱신, 삭제 연산은 제약이 따른다.
  • 뷰가 정의된 기본 테이블이 제거되면 뷰도 자동적으로 제거된다.

뷰(View)의 장단점

장점

  • 논리적 데이터 독립성을 제공, 사용자 데이터 관리 편의성을 제공한다.
  • 접근 제어를 통한 보안을 제공한다.

단점

  • alter view문으로 뷰의 정의 변경이 불가능하다.
  • 삽입, 갱신, 삭제 연산에 제약이 따른다.

시스템 카탈로그(System Catalog)

  • 시스템 자신이 필요로 하는 여러가지 객체(기본 테이블, 뷰, 인덱스, DB, 패키지, 접근 권한 등)에 관한 정보를 포함하고 있는 시스템 데이터베이스이다.
  • 데이터 사전(Data Ductionary), 메타 데이터(Meta Data)라고도 한다.
  • 시스템 카탈로그 자체도 시스템 테이블로 구성되어 있어 SQL문을 이용하여 내용 검색이 가능하다.
  • 사용자가 시스템 카탈로그를 직접 갱신할 수는 없으나 SQL문으로 여러 가지 객체에 변화를 주면 시스템이 자동 갱신된다.

블로그의 정보

Hello 춘기's world

볼빵빵오춘기

활동하기