Relational Algebra

꾸Jun·2023년 11월 20일
0

📚 Database

목록 보기
17/20

Relational Algebra(관계 대수)

  • Relation
    • 이름을 가지고 있는 2D 데이터
    • ex) Empolyee(EMP_ID, Name, Dept_Name, Salary)
  • Relational Data Model
    • Data Structure: 어디에 어떻게 저장을 하는 지
    • Data Integrity: 어떻게 무결성을 지키는 지
    • Data Manipulation: 어떻게 데이터를 가져다가 사용하는 지
  • Relational Algebra
    • 어떻게 데이터를 끄집어 내서 사용하는지에 대한 연산
    • 연산들의 집합, SQL의 바탕
    • relation들로 부터 데이터들을 꺼내서 사용하는지에 대한연산
    • SELECT, PROJECT, Mathematical Set Operation 연산이 있음

1. SELECT Operation

  • relation의 튜플에서 selection 조건을 만족하는 값들을 가져오기 위해 사용
  • 결과를 새로운 relation에 저장
  • 표현식
    • 시그마가 오고 아래 첨자에 selection condition이 오고 ()안에 relation을 씀
  • Select condition
    • 표현식의 결과가 true/false로 나옴
    • 각각의 relation의 튜플 하나하나에 적용
    • 만약 각각의 튜플의 결과가 true가 되면 result relation에 나타남
    • 가령 EMPLOYEE1에 selection condition으로 salary > 50000인 select operation을 하면 EMPLOYEE1_RESULT relation에 그 값들이 들어감
    • "attribute 이름, 비교연산자, attribute 값" 또는 "attribute 이름, 비교연산자, attribute 이름"으로 select condition이 들어갈 수 있음
    • Select condition이 2개 이상이면 AND, OR 연산자를 추가함
    • (Select condition1) AND (Select condition2)
      • TRUE AND TRUE = TRUE
      • TRUE AND FALSE = FALSE
      • FALSE AND FALSE = FALSE
    • (Select condition1) OR (Select condition2)
      • TRUE AND TRUE = TRUE
      • TRUE AND FALSE = TRUE
      • FALSE AND FALSE = FALSE
    • NOT 연산자를 사용할 수 있음
  • Select Operation은 오직 한 개만 사용이 가능함
  • Relation의 자리에 Select Operation이 올 수 있음
    • Select Operation의 결과값이 relation이라 가능함

2. PROJECT Operation

  • Relation에서 column의 결과를 보고싶을 때 사용
  • 결과를 새로운 relation에 저장
  • 표현식
    • 파이가 오고 아래 첨자에 column 이름이 오고 ()안에 relation을 씀
  • Relation의 자리에 SELECT Operation이 올 수 있음
    • 먼저 select operation이 실행되어서 원하는 레코드들을 relation으로 남기고 project operation해서 원하는 column들을 결과로 받음
  • 결과 relation(원하는 column이름)을 통해 column 이름을 바꿀 수 있음

3. Mathematical Set Operation

  • 수학적 집합 연산을 적용할 수 있음
  • 순서가 없음
  • 중복은 카운트되지 않음
  • 수학적 집합 연산이 있음
    • Union
    • Intersection
    • Difference
  • Union
    • 결과 relation에는 2개의 relation의 모든 튜플들이 들어감
    • 중복은 없애줌
    • column의 개수가 같고 column에 해당하는 domain이 같아야 union이 가능함
  • Intersection
    • 결과 relation에는 2개의 relation에서 공유되는 튜플들이 들어감
  • Difference
    • 결과 relation에는 하나의 relation에서 다른 하나의 relation과 중복되는 값들을 제외한 튜플들이 들어감

4. Cartesian Product Operation

  • R, S 2개의 relation이 있을 때 R X S로 나타냄
  • 결과 relation에는 R, S에 있는 모든 attribute들이 모두 들어감
  • 결과 relation의 각각의 튜플들은 R과 S에서 온 튜플들의 조합
  • Join 연산은 cartesian product의 select 연산과 같음

5. Join Operation

  • 결과 relation에는 R, S에 있는 모든 attribute들이 들어감
  • 결과 relation의 각각의 튜플들은 join condition을 만족하는 R과 S에서 온 튜플들의 조합
  • 나비 넥타이 모양의 연산 기호를 사용
  • Join Operation은 EQUIJOIN, NATURAL JOIN 2개
  • EQUIJOIN
    • 가장 일반적인 Join 연산
    • =, join condition이 포함
  • NATURAL JOIN
    • 추가적인 액션과 요구가 필요한 특별한 EQUIJOIN
      • 추가적인 액션: 불필요한 attribute를 제거함
      • 추가적인 요구: join condition의 join attribute의 이름이 같아야 함
    • 양쪽에서 join codition에 사용되는 attribute가 같을 때 사용
    • *를 사용

6. Outer Join Operation

  • 넥타이 모양의 한쪽이 나와있는 연산자를 사용
    • LEFT OUTER JOIN은 왼쪽이 나와있는 넥타이
    • RIGHT OUTER JOIN은 오른쪽이 나와있는 넥타이
  • LEFT OUTER JOIN
    • 결과 relation에는 R, S에 있는 모든 attribute들이 들어감
    • 결과 relation에는 S가 join condition을 만족하면, R쪽에서 온 튜플과 S의 튜플을 붙임
    • 결과 relation에는 S가 join condition을 만족하지 않으면, R쪽에서 온 튜플과 null을 붙임
  • RIGHT OUTER JOIN
profile
꾸준🐢

0개의 댓글