관계데이터모델4 - More Relation Operation

2022. 12. 15. 02:08· Computer Science/데이터베이스

Relational Algebra on Bags

Bag은 집합과 같지만 요소가 두 번 이상 나타날 수 있습니다.

Multiset은 Bag의 또 다른 이름입니다.
예시:
{1,2,1,3}은 Bag입니다.
{1,2,3}도 집합인 Bag입니다.

bag은 list와 비슷하지만 bag의 순서는 중요하지 않습니다.
예: bag에서는 {1,2,1} = {1,1,2} 이지만 리스트에서는  [1,2,1] != [1,1,2]입니다.

 

bag의 사용이유

관계형 데이터베이스의 가장 중요한 쿼리 언어인 SQL은 bag 언어입니다.
SQL은 중복을 제거하지만 일반적으로 명시적으로 그렇게 하도록 요청하는 경우에만 가능합니다.
프로젝션과 같은 일부 작업은 집합보다 bag에서 훨씬 더 효율적입니다.
-프로젝션: 다른 속성을 삭제하는 것 외에는 더 이상 작업이 없다.

 

 

 

Operations on Bag

  • Selection:
    각 튜플에 적용되며,
    bag에 미치는 영향은 세트에 미치는 영향과 같습니다.
  • Projection
    bag operator로서 우리는 중복을 제거하지 않습니다.
  • Product and joins
    각 쌍의 튜플에 대해 수행되므로 가방의 복제본은 우리가 작동하는 방식에 영향을 미치지 않습니다.

Example:

 

 

Bag Union, Intersection, Difference

Bag Union, Intersection, Difference(합집합, 교집합 및 차이)는 새로운 정의가 필요합니다.

 

Union: 각 백에 나타나는 횟수의 합으로 두 백의 합집합에 요소가 나타납니다.
예: {1,2,1} U {1,1,2,3,1} = {1,1,1,1,1,2,2,3}


Intersection: 요소는 두 백의 합집합에서 최소 횟수만큼 나타납니다.
예: {1,2,1} ∩ {1,2,3} = {1,2}.


Difference: 요소가 A에 나타나는 횟수에서 B에 나타나는 횟수를 뺀 만큼 가방의 차이 A – B에 나타납니다.
단, 0회 미만은 절대 아닙니다.
예: {1,2,1} – {1,2,3} = {1}.

 

 

주의 ! Bag규칙과 집합규칙은 다르다!

집합에 적용되는 모든 대수 법칙이 백에도 적용되는 것은 아닙니다.


예: 합집합의 교환법칙(R UNION S = S UNION R )은 백에 적용됩니다.
덧셈은 가환적이기 때문에 x가 R과 S에 나타나는 횟수를 더하는 것은 R과 S의 순서에 의존하지 않습니다.

반대 예:
합집합은 멱등적이며 S UNION S = S를 의미합니다.
그러나 가방의 경우 x가 S에서 n번 나타나면 S UNION S에서 2n번 나타납니다.
따라서 S UNION S != S 이다.

 

The Extended Algebra

  • δ: 백에서 중복을 제거합니다.
  • τL: 튜플을 정렬합니다.
    - L은 속성 목록입니다.
    - 정렬 결과: list(두 가방 모두 설정되지 않음)
  • 확장 프로젝션: 산술, 열 복제.
  • γ: grouping 및 aggregation.
  • OUTERJOIN (⋈): dangling tuples( 아무것도 결합하지 않는 튜플)을 피합니다.

Extended Projection

동일한 Π L 연산자를 사용하여 목록 L이 속성과 관련된 임의의 표현을 포함하도록 허용합니다. 

예를 들면 다음과 같습니다.

  • 속성에 대한 산술 연산(예: A+B).
  • 동일한 속성의 중복 발생.
  • 예: ΠA+B,A,A (R)

 

 

Aggregation Operators

aggregation 연산자는 관계 대수의 연산자가 아닙니다.
오히려 테이블의 전체 열에 적용되고 단일 결과를 생성합니다.
가장 중요한 예: SUM, AVG, COUNT, MIN 및 MAX.

 

Grouping Operator

R1:=γL(R2).
- L은 다음 중 하나에 해당하는 요소 목록입니다.

  • 개별(그룹화) 속성.
  • AGG(A), 여기서 AGG는 집계 연산자 중 하나이고 A는 속성입니다.

 

예시:
- StarsIn(제목, 연도, 별 이름)
- γ starName, MIN(연도)-> minYear,Count(제목) -> ctTitle (StarsIn)
- 세 번 이상 출연한 각 스타에 대해 영화에 출연한 가장 초기 연도를 찾으십시오.

  • R1:= γ starName, MIN(연도) ->  minYear, Count(title) -> ctTitle (StarsIn)
  • R2 := SELECT ctTitle 선택 >= 3 (R1)
  • R3 := PROJECT minYear(R2)

 

Outerjoin

우리가 R S에 합류한다고 가정합니다.
조인하는 S의 튜플이 없는 R의 튜플을 댕글링(dangling)이라고 합니다.
마찬가지로 S의 튜플에 대해서도 마찬가지입니다.
Outerjoin은 결과에 특수 NULL 기호를 채워서 매달린 튜플을 보존합니다.
- R⋈S

 

'Computer Science > 데이터베이스' 카테고리의 다른 글

트랜잭션  (0) 2022.12.15
관계데이터모델5 - Design Theory for Relational Databases  (1) 2022.12.15
관계 데이터 모델3- UML to Relational Model  (0) 2022.10.13
관계 데이터 모델1- 관계 모델의 기본  (0) 2022.10.13
UML 클래스 다이어그램3 - Weak Entity Sets, E-R Model  (0) 2022.10.10
'Computer Science/데이터베이스' 카테고리의 다른 글
  • 트랜잭션
  • 관계데이터모델5 - Design Theory for Relational Databases
  • 관계 데이터 모델3- UML to Relational Model
  • 관계 데이터 모델1- 관계 모델의 기본
윤재에요
윤재에요
윤재에요
yunzae.log
윤재에요
전체
오늘
어제
  • 분류 전체보기 (438)
    • Computer Science (115)
      • 데이터베이스 (50)
      • 네트워크 (18)
      • 소프트웨어 공학 (1)
      • 알고리즘 (10)
      • 자료구조 (9)
      • 컴퓨터구조 (0)
      • 운영체제 (0)
      • 데이터 통신 (16)
      • 프로그래밍언어론 (11)
    • Project (20)
      • 후크(Flutter) (1)
      • BDSR로그북(App,BackEnd) (2)
      • 나만의 주점(STM32,Arduino,androi.. (9)
      • 공다(App,BackEnd) (2)
      • 카카오쇼핑 클론코딩 (4)
      • 암호화폐자동매매 (2)
    • Problem Solving (208)
      • 자바 문법 (20)
      • 파이썬 문법,함수 (6)
      • 그리디 (5)
      • 구현 (43)
      • DFS (3)
      • BFS (17)
      • 정렬 (15)
      • 이진 탐색 (16)
      • 다이나믹 프로그래밍 (6)
      • 최단 경로 (5)
      • 그래프 (1)
      • 자료구조 (5)
      • 투포인터 (15)
      • SQL (44)
      • 구간합 (7)
    • I leaned (78)
      • 스프링,스프링부트 (31)
      • Git (6)
      • JAVA (5)
      • Etc (30)
    • 취업 (15)
      • PT면접 (6)
      • 기술면접 (9)
      • 인성면접 (0)
    • log (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • 글쓰기

공지사항

인기 글

태그

  • 그리디
  • 다이나믹
  • 플로이드 워셜
  • 참조 무결성
  • weak entity
  • 재시도
  • 다이어그램
  • Relationship model
  • 최단거리
  • 카카오테크캠퍼스
  • E-R Model
  • 개미전사
  • 먀
  • DP
  • 힙큐
  • 다이나믹프로그래밍
  • 이것이 코딩테스트다.
  • 이것이 코딩테스트다
  • 이것이코딩테스트다
  • 최단 거리
  • 기수정렬
  • 다익스트라
  • 데이터베이스
  • 계수정렬
  • UML
  • 효율적인화폐구성
  • 제약 사항
  • 파이썬
  • 교환정렬
  • 부품찾기

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
윤재에요
관계데이터모델4 - More Relation Operation
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.