2 minute read

DB02

Structure of Relation Databases


1

  • Attributes : domain내에 속한 속성들
  • relation은 순서가 없다.

Database Schema


  • 데이터베이스의 논리적 구조이다.

Keys


  • 슈퍼키 : 해당 relation에서 각각의 tuple들을 구별할 수 있는 키
  • 후보키 : 슈퍼키가 될 수 있는 여러가지의 키
  • 외래키 : 하나의 relation에 나타난 다른 relation의 참조키

Schema Diagrams


2

The Relational Algebra


3

Select

  • 주어진 조건을 만족하는 튜플들을 선택한다.
  • =,≠,>,≥,<,≤,∧(and),∨(or),¬(not) 연산을 사용할 수 있다.

Project

  • 남겨진 특정 속성을 가진 relation을 돌려준다.
  • 중복된 행은 결과에서 제거된다.

Composition of Relational Operations

  • 여러 연산을 합성해서 사용할 수 있다.

Cartesian-Product

  • 합성곱 연산은 두 개의 relation에서 선택된 속성의 relation를 합쳐서 돌려준다.

Join

  • 조인 연산은 select연산과 cartesian-product연산을 한 번에 연산해준다.

Union

  • 두 개의 relation을 합쳐준다.

Set-Intersection

  • 여러 입력 relation들에 공통적으로 존재하는 행을 찾아준다.

Set-Difference

  • 여러 입력 relations들에서 한 relation엔 존재하지만 다른 relation엔 존재하지 않는 행을 찾아준다.

Assignment

  • 연산의 결과를 임시로 저장할 수 있게 해주는 연산이다.

Rename

  • 재사용을 위한 연산의 결과에 이름을 붙여주는 연산이다.

Equivalent Queries

  • 형태는 다르지만 같은 결과를 돌려주는 쿼리들이 있다.

SQL


  • IBM 연구소에서 System R 프로젝트의 일환으로 개발된 언어이다.

SQL Parts


  • DML : db에 정보를 질의하고 튜플을 삽입하고 제거하고 수정하는 기능을 한다.
  • integrity : DDL은 무결성 제약성을 명시하는 명령어를 포함하고 있다.
  • view definition : DDL은 view를 정의하는 명령어를 포함한다.
  • transaction control : 트랜잭션의 시작과 끝을 정의하는 명령어를 포함한다.
  • embedded SQL and dynamic SQL : 일반적인 프로그래밍 언어에 SQL 명령문이 어떻게 삽입되는지 정의된다.
  • Authorization : relation과 view에 접근할 수 있는 명령어를 제공한다.

DDL

  • relation의 정보와 구조를 정의하는 언어이다.

도메인 타입 in SQL

  • char(n)
  • varchar(n)
  • int
  • smallint
  • numeric(p,d)
  • real, double precision
  • float(n)

Create Table Construct

  • SQL은 relation을 정의하기 위해 create table 명령어를 사용한다.

Updates to tables

  • insert : 행을 삽입
  • delete : relation을 삭제
  • drop table
  • alter

Select Clause

  • 쿼리의 결과에 명시된 속성들을 돌려준다.

Where Clause

  • 조건을 만족하는 결과를 보여준다.

from Clause

  • relation에 포함된 쿼리 결과를 보여준다.

as Clause

  • 결과 relation과 attributes를 재명명하도록 도와준다.

like Clause

  • 문자열 비교를 위한 문자열 매칭을 할 수 있는 연산자이다.
    • % : 아무 문자열이나 매칭된다.
    • _ : 아무 문자에 매칭된다.

order by Clause

  • 명시된 나열 순서에 따라 결과를 보여준다.

between Clause

  • 지정된 범위 내의 결과를 보여준다.

Set operation

  • union : 합집합 결과를 보여준다.
  • intersect : 교집합 결과를 보여준다.
  • except : 차집합 결과를 보여준다.
    • 뒤에 all을 붙이면 중복된 행을 유지해준다.

Null value

  • null은 미지정 값이나 값이 없다는 것을 나타낸다.
  • null과 다른 타입의 연산의 결과는 null이다.
  • is null or is not null 연산을 where 절에 넣어서 조건을 부여할 수도 있다

Aggregate function

  • avg: 평균을 구해준다.
  • min: 최솟값을 구해준다.
  • max: 최댓값을 구해준다.
  • sum: 합을 구해준다.
  • count: 개수를 구해준다.

Aggregate function - Group By

  • select clause 범위 밖의 aggregate function은 반드시 group by 절에 나타나야한다.

Aggregate function - Having

  • having절은 grouping된 정보에 적용되어야 한다.

Nested subqueries

  • 다른 쿼리 내에서 쓸 수 있는 select-from-where query이다.
  • in : subquery의 결과에서 결과를 찾는다.
  • > some : subquery의 결과의 일부와 비교한다.
  • > all : subquery의 모든 결과와 비교한다.
  • exists / not exists : subquery의 결과에 존재하는지 아닌지 알려준다.
  • unique : subquery의 결과가 중복을 포함하는지 아닌지 알려준다.

subqueries in From Clause

  • SQL은 from절에서 subquery를 쓸 수 있게 해준다.

With Clause

  • With 절에 나타난 query에 결과에서만 존재하는 임시 relation을 정의하는 방법을 제공해준다.

Scalar Subquery

  • 하나의 값으로 귀결되는 subquery이다.

Categories:

Updated: