관계 대수 확장
관계 연산자 기능
관계 대수 한계
- 관계 대수는 산술 연산을 할 수 없음
- 집단 함수 (aggregate function)를 지원하지 않음
- 데이터베이스를 수정할 수 없음
- 프로젝션 연산의 결과에 중복된 튜플을 나타낼 수 없음
- 연산의 결과를 정렬하여 나타낼 수 없음
관계 대수의 확장
세미 조인, 외부 조인, 외부 합집합, 집단 함수, 그룹화
외부 합집합
집단 함수
SUM, AVG, COUNT, MAX, MIN
그룹화
Attribute들 값에 의해서 그룹으로 분할되고, 분할된 각 그룹의 튜플들의 집합에 대해서 집단 함수 적용
관계 해석(relational calculus)
수학의 프레디킷 해석에 기반함(predicate : a function whose values is true or false)
원하는 데이터만 명시하고 질의를 어떻게 수행할 것인가는 명시하지 않는 선언적인 언어(비절차 언어)
- 튜플 관계 해석(tuple relation calculus) - 튜플을 기준으로 데이터 조회
- 도메인 관계 해석(domain relation calculus) - 속성을 기준으로 데이터 조회
관계 해석 기호
- ∃: 존재의의미(There exist)
- ∈ : t가r에원소(속함) ( t ∈ r )
- ∀ : 모든것(임의의) 에대하여(for all)
- ∪ : 합집합
튜플 관계 해석
- 연산 단위가 튜플
- 원하는 relation을 튜플 해석식 (tuple calculus expression)표기
- 튜플 해석식의 구성요소
튜플변수
- 지정된 relation의 한 튜플만을 값으로 취하는 변수
- 튜플 변수는 취할 수 있는 튜플의 relation이 명세되어야 함
- 튜플 변수의 예 : R(t)
한정 속성
- 튜플 변수에서 특정 속성의 값을 갖는 속성(t.A)
튜플 해석식의 구성요소
- 원자(atom) - 원자의 실행 결과는 참 또는 거짓 예) R(t), t.Aθ u.B, t.Aθ c
- 정형식(well-formed formula), 원자, 불리언 연산자, 정량자가 결합된 식
- 정형식의 예) s.Sno = 100, c.Cno≠ e.Cno, s.Sno= e.Sno∧ e.Cno≠ c.Cno, ·(∃e)(e.Sno= s.Sno∧ e.Cno= 'C413')
튜플 관계 해석식
- 셀렉트연산: { t | EMPLOYEE(t) and t.SALARY>5000 }
- 프로젝트연산: { t.FNAME, t.LNAME| EMPLOYEE(t) }
- -셀렉트+ 프로젝트: { t.FNAME, t.LNAME| EMPLOYEE(t) and t.SALARY> 50000}
도메인 관계 해석
- 원하는 릴레이션을 도메인 해석식으로 표현
- 연산의 단위가 도메인
- 도메인 해석식의 구성요소(도메인 변수, 원자, 정형식)
도메인 해석식의 구성요소
- 도메인 변수
- 지정된 attribute에 대한 도메인의 한 원소만을 취하는 변수
- 각 도메인 변수는 해당 도메인을 선언해야함
- x회원번호, x회원명
- 범위식 : 도서(x도서번호, x도서명, x출판사)
- 원자 (atom)
R(x1 ,x2 ,…,xn ), x θ y, x θ c
①R : 범위릴레이션
②x, y : 도메인변수
③θ : 비교연산자(=, ≠, <, ≤, >,≥)
④c : 상수
- 정형식(WFF, Well-Formed Formila)
원자, 불리언연산자(∧, ∨, ), 정량자(∀,∃)가다음규칙에따라결합되어표현된식
①모든원자는WFF
②F가WFF이면, (F)와 F도WFF
③F와G가WFF이면, F∧G와F∨G도WFF
④도메인변수x가자유변수로사용된F(x)가WFF이면, (∀x)(F(x))와(∃x)(F(x))도WFF
⑤위의규칙만을 반복 적용해서 만들어진 식은 WFF
도메인 해석식 예제
- { xSname|STUDENT(xSno, xSname, xYear, xDept)}
- { xSname|(∃xDept)(STUDENT(xSno, xSname, xYear, xDept)∧ xDept='컴퓨터’) }
- { xSno, xDept|STUDENT(xSno, xSname, xYear, xDept)∧ (∃xxSno) (∃xGrade)(ENROL(xxSno, xCno, xGrade, xMidterm, xFinal) ∧ xSno=xxSno ∧ xGrade='A‘) }
관계 연산 정리
관계 데이터 연산
- 원하는 데이터를 얻기 위해 필요한 처리 요구를 relation에 수행하는 것
- 관계 대수(relational algebra)
- relation을 처리하기 위한 연산의 집합
- 어떻게 질의를 수행할 것인가 명시하는 절차적 언어(How, What)
- 관계 대수는 상용 관계 DBMS들에서 널리 사용되는 SQL의 이론적인 기초
관계 해석(relational calculus)
- 원하는 데이터만 명시하고 질의를 어떻게 수행할 것인가는 명시하지 않음(What)
- 비절차 언어(nonprocedurral language)
- 튜플 관계 해석과 도메인 관계 해석
관계 대수 연산자
- 일반 집합 연산자와 순수 관계 연산자로 구성
- 일반 집합 연산자와 순수 관계 연산자로 구성
일반 집합 연산자
- -합집합(UNION, ∪) ,교집합(INTERSECT, ∩), 차집합(DIFFERENCE, -)
- 카티션프로덕트(CARTESIAN PRODUCT, ×)
순수 관계 연산자
- SELECT, PROJECT, JOIN, DIVISION
관계 해석
수학의 프레디킷 해석에 기반, predicate : a function whose values is true or false
원하는 데이터만 명시하고 질의를 어떻게 수행할 것인가는 명시하지 않는 선언적인 언어
- 비절차 언어(nonprocedurral language)
분류
- 튜플 관계 해석(tuple relation calculus), 튜플을 기준으로 데이터 조회
- 도메인 관계 해석(domain relation calculus), 속성을 기준으로 데이터 조회
관계 대수의 한계
집단함수 : SUM, AVG, COCUNT, MAX, MIN
그룹화 : attribute들의 값에 의해서 그룹으로 분할되고, 분할된 각 그룹의 튜플들의 집합에 대해서 집단 함수를 적용
관계 해석
- 원하는 데이터만 명시하고 질의를 어떻게 수행할 것인가는 명시하지 않는 선언적인 언어
- 튜플관계 해석 : 범위식, 튜플 변수, 한정 속성, 원자, 정형식
- 도메인 관계 해석 : 도메인 변수, 원자, 정형식
'23년 이전 글 > 데이터베이스' 카테고리의 다른 글
SQL 개요와 데이터 정의어 (0) | 2022.08.06 |
---|---|
Microsoft SQL Server, SSMS 설치 및 기본설정 (0) | 2022.08.04 |
관계 연산자, 조인 (0) | 2022.07.27 |
관계 데이터 연산(select, project, 집합 연산) (0) | 2022.07.26 |
Relation과 무결성 제약 (0) | 2022.07.26 |