- 연산과 데이터 언어
- 연산(절차적) : 시스템 입장
- 데이터 언어(비절차적) : 사용자 입장
- 관계 데이터 언어
- 정형어 (C / JAVA등 문법이 명확한 언어)
- 관계 대수 (relational algebra)
- 절차언어 : how, what
- 관계 해석 (relational calculus)
- 비 절차 언어 : what
- 튜플 관계 해석
- 도메인 관계 해석
- 관계 대수 (relational algebra)
- 정형어 (C / JAVA등 문법이 명확한 언어)
관계 해석과 관계 대수는 표현과 기능 면에서 동등하다. (관계 해석으로 표현할수 있는것은 모두 관계 대수로도 표현할 수 있다.)
1. 관계 대수 (절차적 질의)
- 릴레이션(튜플의 집합)을 처리하기 위한 연산의 집합
- 기본 연산
- 일반 집합 연산자 (Relation에 대해 닫혀있다. (relation => relation))
- UNION (합집합)
- INTERSECT (교집합) :
- DIFFERENCE (차집합) :
- CARTESIAN PRODUCT (카티션 프로덕트) :
- 순수 관계 연산자 (Relation에만 가할수있는 연산자)
- SELECT :
- PROJECT :
- JOIN :
- 동일 조인
- 자연 조인
- 세타 조인
- 세미 조인
- 외부 조인
- DIVISION :
- RENAME (개명 연산) :
폐쇄 성질 :
- 피연산자와 연산의 결과가 모두 릴레이션(연산 결과가 또다른 연산자의 피연산자가 될 수 있다.)
- 중첩(Nested)된 수식의 표현이 가능
- 릴레이션으로 도출된 결과집합 (=수평적 부분집합)
1. 합병 가능한 릴레이션 (합집합 교집합 연산의 피연산자들은)
- 차수(애트리뷰트의 갯수)가 같아야 함
- 대응 애트리뷰트 쌍 별로 도메인(데이터의 형태 : 숫자, 문자,...)이 같아야 함
2. 합집합 교집합 카티션 프로덕트는 결합적이며 교환적이다.
- 교환법칙과 결합법칙이 적용되므로 피연산자의 순서가 상관없다.
- SELECT문은 조건들의 순서가 바뀌어도 상관없다.
- 선택도 : 피연산자 릴레이션 대비 결과 릴레이션의 튜플갯수 비율을 구한 것 (질의를 최적화 할때 사용)
- 셀렉트의 결과는 선택조건을 만족하는 릴레이션의 수평적 부분집합(horizontal subset) : 릴레이션의 가로요소(튜플) 들을 일부 가져옴
프로젝트
- 피연산 릴레이션의 특정 애트리뷰트 요소만 보려고 할때 사용
- 수직 요소(애트리뷰트)들을 결과로 사용하므로 릴레이션의 수직적 부분집합이다.
- 프로젝트의 결과에 중복이 있다면 제거하므로 원래 릴레이션보다 차수가 같거나 작다.
- X에 Y가 포함되어있다면 처음부터 R릴레이션에 Y를 프로젝트한것과 같다.
조인
동일 조인
- 세타 조인의 조건이 ' = ' 인 경우
자연 조인
- 동일 조인의 결과에 중복되는 애트리뷰트를 하나만 만드는 것
세타 조인
- <,>,= 등을 조건으로 하는 조인
세미 조인
- S와 자연 조인이 가능한 R의 튜플의 집합
- R과 S를 자연 조인 후, 앞에 있는 릴레이션의 애트리뷰트들만 나타낸 것
외부 조인
- 상대 릴레이션에 대응되는 투플이 없는경우, 상대를 null투플로 만들어 결과 릴레이션에 포함
- 누락 정보를 처리하기위한 조인의 확장
디비전
-
개명 연산 (Rename)
-
기본 연산
- 다른 연산으로 대체할 수 없는 하나의 논리적 기능을 수행하는 연산
복합 연산
- 몇개의 기본 연산으로 대체할 수 있는 연산
외부 합집합
- 합병 가능하지 않은 두 릴레이션의 모든 애트리뷰트를 포함하는 확장된 릴레이션으로 만듦
- 외부조인은 일부가 대응되는 투플이 없을때, 이건 전부 대응되지 않을때
집계 연산
- SUM : 집합내 합계
- AVG : 집합내 평균
- MAX : 집합내 최대값
- MIN : 집합내 최소값
- COUNT : 집합속 값들의 갯수
- GROUP : 특별히 지정한 애트리뷰트 값에 따라 투플들을 그룹짓는것.
예제
2. 관계 해석 (비절차적 질의)
- 관계 해석 : Predicate calculus에 기반
- predicate : 실행 결과가 반드시 참이나 거짓인 함수
- 관계 데이터 모델의 연산 표현 방법
종류
1. 튜플 관계 해석
불리언 연산자 (and/or/not)
2. 도메인 관계 해석
3. QBE
학년이 3학년인 학생의 학번을 출력하라
_STX : 도메인 변수
P : 명령어
한줄에 도메인 변수를 적으면 AND 여러줄로 나누면 OR
'Study > 데이터베이스' 카테고리의 다른 글
데이터베이스 7. 함수 종속, 1NF, 2NF (0) | 2023.11.04 |
---|---|
데이터베이스 6. SQL (0) | 2023.10.22 |
데이터베이스 4. 관계 데이터베이스 (0) | 2023.10.16 |
데이터베이스 3. 데이터베이스 시스템의 구성 (0) | 2023.10.15 |
데이터베이스 2. 데이터베이스 관리 시스템과 구성 (0) | 2023.10.15 |