일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- rnn
- ICT멘토링
- 인터넷의이해
- Spring Boot
- 코딩도장
- Spring
- Github
- 고등학생 대상
- KAKAO
- API
- suricata
- cloud
- 국가과제
- Database
- Web
- Resnet
- OSS
- Docker
- LINUX MASTER
- 크롤링 개발
- Powershell
- git
- VSCode
- ChatGPT
- colab
- GoogleDrive
- C언어
- Python
- Rocky Linux
- Machine Learning
- Today
- Total
코딩두의 포트폴리오
Database - # 06 본문
관계 데이터 연산이라는 도구의 중요성을 이해
일반 집합 연산자 / 순수 관계 연산자로 구분되는 관계 데이터 연산의 기능을 정확히 파악
6.1 관계 데이터 연산의 개념
데이터 모델 = 데이터 구조 + 연산 + 제약조건
관계 데이터 연산(relational data operation)
관계 데이터 모델의 연산: 릴레이션에 필요한 처리 요구를 수행
관계 데이터 연산의 종류
관계 대수(절차적 언어) - 원하는 결과를 얻기 위해 데이터의 처리 과정을 순서대로 기술
관계 해석(비절차적 언어) - 원하는 결과를 얻기 위해 처리를 원하는 데이터가 무엇인지만 기술
관계 대수와 관계 해석의 관련
질의(query): 데이터에 대한 처리 요구
데이터 언어의 유용성을 검증하는 기준
관계 대수나 관계 해석으로 모든 질의를 기술할 수 있는 데이터 언어를 관계적으로 완전하다고 함
6.2 관계 대수
관계 대수(relational algebra)의 개념
원하는 결과를 얻기 위해 릴레이션의 처리 과정을 순서대로 기술하는 언어
절차적 언어이며 피연산자가 릴레이션 -> 릴레이션을 연산
피연산자도 릴레이션, 연산의 결과도 릴레이션
관계 대수의 연산자
일반 집합 연산자 (set opration)
릴레이션이 튜플의 집합이라는 개념 이용, 수학의 집합 관련 연산자를 차용
일반 집합 연산의 제약조건
연산을 위해 2개의 피연산자 필요 -> 2개의 릴레이션을 대상으로 연산 수행
합집합, 교집합, 차집합은 피연산자인 두릴레이션이 합병 가능
합병 조건 -> 두 릴레이션 차수, 대응되는 속성 도메인이 동일해야 함 / 속성 개수가 같아야 함
일반 집합 연산자 - 합집합(Union)
합병 가능한 두 릴레이션 R과 S의 합집합
릴레이션 R에 속하거나 릴레이션 S에 속하는 모든 튜플로 결과 릴레이션 구성 (중복 부분만 배제)
결과 릴레이션 특성
- 릴레이션 R 차수 = 릴레이션 S 차수
- 중복이 제거됨으로 카디널리티는 릴레이션 R과 S의 카디널리티를 더한 것과 같거나 적어짐
교환적 특징 R∪S = S∪R
결합적 특징 (R∪S)∪T = R∪(S∪T)
일반 집합 연산자 - 교집합(intersection)
합병 가능한 두 릴레이션 R과 S의 교집합
릴레이션 R과 S에 공통으로 속하는 튜플로 결과 릴레이션 구성
결과 릴레이션 특성
릴레이션 R 차수 ≠ 릴레이션 S 차수
카디널리티는 릴레이션 R과 S의 어떤 카디널리티보다 크지 않음
합집합과 마찬가지로 교환적, 결합적 특징이 있음
일반 집합 연산자 - 차집합(difference)
합병 가능한 두 릴레이션 R과 S의 차집합
릴레이션 R에는 존재하지만 릴레이션 S에는 존재하지 않는 튜플로 결과 릴레이션 구성
결과 릴레이션 특성
릴레이션 R 차수 = 릴레이션 S 차수
R-S의 카디널리티는 릴레이션 R의 카디널리티와 같거나 적음
S-R의 카디널리티는 릴레이션 S의 카디널리티와 같거나 적음
교환적, 결합적 특징 X -> 피연산자의 순서에 따라 결과 릴레이션이 달라져서
일반 집합 연산자 - 카티션 프로덕트(carteslan product)
두 릴레이션 R과 S의 카티션 프로덕트
릴레이션 R에 속한 각 튜플 + 릴레이션 S에 속한 각 튜플을 모두 연결 -> 결과 릴레이션
차수 = 릴레이션 R 차수 + 릴레이션 S 차수
카디널리티 = 릴레이션 R 카디널리티 x 릴레이션 S 카디널리티
교환적, 결합적 특징 O
순수 관계 연산자(relational operation)
릴레이션의 구조와 특성을 이용하는 연산자
고객 릴레이션
고객 릴레이션 & 주문 릴레이션
순수 관계 연산자 - 셀렉트(select)
릴레이션에서 주어진 조건을 만족하는 튜플만 선택 -> 결과 릴레이션 구성(수평적 부분집합)
수학적 표현법: σ조건식(릴레이션)
하나의 릴레이션을 대상으로 연산 수행
데이터 언어적 표현법 - 릴레이션 where 조건식
Q. 고객 릴레이션에서 등급이 gold인 튜플을 검색하시오.
Q. 고객 릴레이션에서 등급이 gold이고, 적립금이 2000 이상인 튜플을 검색하시오.
- 셀렉트 연산은 교환적 특징이 있음
순수 관계 연산자 - 프로젝트(project)
릴레이션에서 선택한 속성의 값으로 결과 릴레이션을 구성
결과 릴레이션이 주어진 릴레이션의 일부 열로만 구성 -> 해당 릴레이션에서 수직적 부분집합 생성
수학적 표현법: π속성리스트(릴레이션)
데이터 언어적 표현법: 릴레이션[속성리스트]
Q. 고객 릴레이션에서 고객이름, 등급, 적립금을 검색하시오.
Q. 고객 릴레이션에서 등급을 검색하시오.
-> 결과 릴레이션에서 동일한 튜플은 중복되지않고 한 번만 나타남
순수 관계 연산자 - 조인(join)
조인 속성을 이용해 두 릴레이션을 조합 -> 결과 릴레이션 구성
조인 속성의 값이 같은 튜플만 연결 / 두 릴레이션이 공통으로 가지고 있는 속성
표현법:릴레이션1 ▷◁ 릴레이션2
- 보통 자연 조인( ▷◁ n)을 의미,
고객 ▷◁주문
고객 릴레이션과 주문 릴레이션에 대한 조인 연산
릴레이션 조인 이유? -> 고객 데이터와 고객과 관련된 주문 데이터가 모두 필요
조인 속성 여러 개 속성으로 구성된 경우? B1과 B2 속성 값의 쌍이 같은 튜플로 조인 연산에 참여
세타 조인(Θ) - 조인 조건을 만족하는 두 릴레이션의 모든 튜플 연결
동일 조인 - Θ 연산자가 '='인 세타 조인
순수 관계 연산자 - 디비전(division)
표현법: 릴레이션1 ÷ 릴레이션 2
릴레이션2의 모든 튜플과 관련이 있는 릴레이션1의 튜플로 결과 릴레이션 구성
릴레이션1이 릴레이션2의 모든 속성을 포함해야 연산 가능 -> 도메인이 같아야 함
관계 대수를 이용한 질의 표현
ex) 여러 개의 관계 대수 연산자를 사용한 예시
Q. 등급이 gold인 고객의 이름과 나이를 검색하시오.
Q. 고객이름이 원유선인 고객의 등급과, 원유선 고객이 주문한 주문제품, 수량을 검색하시오.
'Database' 카테고리의 다른 글
Database - # 07_02 (0) | 2024.05.27 |
---|---|
Database - # 07_01 (0) | 2024.04.11 |
Database - # 05 (0) | 2024.04.01 |
Database - # 04 (1) | 2024.03.31 |
Database - # 03 (0) | 2024.03.30 |