1. 관계 대수
관계형 데이터베이스 언어로 사용되기 위해서는 관계적으로 완전한 언어를 사용해야 한다. 관계적으로 완전하다는 것은 관계 대수로 표현할수 있는 것이 SQL문으로 모두 매핑가능하다는것을 의미한다. 데이터 모델은 데이터구조 + 연산 + 제약조건으로 생각하면 되는데, 관계 대수는 릴레이션을 연산하는 절차적인 언어다.
릴레이션은 간단히 생각하면 표(행렬)에 여러가지 제약조건을 추가한것이다. 자바에서 클래스와 객체를 구분하는 것처럼, 릴레이션은 스키마와 인스턴스로 구분한다. 스키마는 데이터의 구조, 인스턴스는 실제로 존재하는 데이터의 집합이다. 예를들어 학생 릴레이션을 생각해보면,
스키마 : 학생(학번, 이름, 주소, 학과 , 학년)
201611837 |
한규확 |
서울 |
경제학과 |
2 |
201938199 |
이호연 |
경기 |
체육학과 |
1 |
201538294 |
이두희 |
광주 |
컴퓨터학과 |
4 |
여러가지 조건이나 용어가 많지만, 스키마와 인스턴스정도만 알아도 될거같다.
2. 연산
관계대수에서의 연산은 cloure property를 가지고 있다. 연산결과는 항상 릴레이션이기 때문에 중첩된 연산과 재귀적인 연산이 가능하다. 릴레이션은 인스턴스의 집합으로 정의되기 때문에 집합에서의 연산은 당연히 성립한다. 그리고 순수 관계연산이 있다. 프로젝트와 셀렉트가 세트고, 조인도 많이 사용된다. 프로젝트는 표에서 세로로 열을 뽑아내는 연산이고, 셀렉트는 표에서 가로로 열을 뽑아내는 연산이다. 보통 셀렉트 (프로젝트 (릴레이션)) 과 같은 형태로 사용된다.
3. SELECT문
관계 대수에서의 셀렉트와는 다르다. 보통 select ~ from ~ where ~; 형태로 많이 쓰인다.
SELECT 열 리스트
FROM 테이블 이름
WHERE 조건
GROUP BY 그룹화 기준
HAVING 집계함수의 조건
ORDER BY 정렬 기준
'default' 카테고리의 다른 글
210315 (0) | 2021.03.25 |
---|---|
[SQL] SQL SELECT TOP (0) | 2020.02.25 |
[알고리즘] 탐욕 알고리즘, 그리디 알고리즘 (0) | 2020.02.25 |
HTML 기초 (0) | 2020.02.22 |