UXO Studio
  • 데이터베이스 12 : 관계 대수 Relationship Algebra - 기본 연산자
    2024년 09월 25일 17시 16분 41초에 업로드 된 글입니다.
    작성자: UXO Studio

     

     

    01 관계형 모델의 예제 스키마 

    02 Select

    03 Project

    04 Union

    05 Set Difference

    06 Cartesian Product

     

     

     

     

    01 관계형 모델의 예제 스키마 

     

     

     ex) 관계형 모델의 예제 스키마 

     

     

     개체로부터 생성된 릴레이션들

     - Customer = (customer-name, street, customer-city)

     - Branch = (branch-name, branch-city, assets)

     - Account = (branch-name, account-number, balance)

     - Loan = (branch-name, loan-number, amount)

     

     

     관계로부터 생성된 릴레이션들

     - Depositor = (customer-name, account-number)

     - Borrower = (customer-name, loan-number)

     

     

     

     

    02 Select

     

     

     Notation: σP(r)

     - 릴레이션 r에서 조건 P를 만족하는 레코드들의 집합으로 구성된 새로운 릴레이션을 생성

        조건 P: 논리/비교 연산자들로 구성

        주요 연산자들: ∧, ∨, = , ≠, <, ≤, >, ≥

     

     

     Example

     - Account 테이블에서 'Brighton' 지점의 정보?

        σbranch-name = 'Brighton'(Account)

     - 'Brighton' 지점에서 잔고가 $800 이상인 계좌?

        σbranch-name ='Brighton' ∧ balance > 800(Account)

     

     

     

     

    03 Project

     

     

     Notation: πA1, A2, …, Ar(r)

     - 릴레이션 r의 속성 A1, A2, …, Ar을 가져와서 새로운 릴레이션으로 생성

     

     

     Examples

     - Account 테이블에서 계좌 번호와 잔고?

        πaccount-number, balance(Account)

     - Account 테이블에서 잔고가 $600 이상인 계좌의 번호와 잔고?

        πaccount-number, balance( σbalance > 600(Account))

        Composition of Relational Operations

     

     

     

     

    04 Union

     

     

     Notation: r ∪ s

     - 릴레이션 r 또는 s에 존재하는 모든 레코드들로 구성된 새로운 릴레이션을 생성

        card(r ∪ s) ≤ card(r) + card(s)

     - r과 s는 동일한 스키마를 가져야 함

        Attribute 수 동일

        Attribute type 동일 (Domain: Equal)

     

     

     Example

     - 은행과 거래하는 모든 고객들의 이름?

        πcustomer-name(borrower) ∪ πcustomer-name(depositor)

     

     

     

     

    05 Set Difference

     

     

     Notation: r – s

     - 릴레이션 r에는 속하지만 s에는 존재하지 않는 레코드들로 구성된 새로운 릴레이션을 생성

        card(r – s) ≤ card(r)

     - r과 s는 동일한 스키마를 가져야 함

        Attribute 수 동일

        Attribute type 동일 (Domain: Equal)

     

     

     Example

     - 은행에 예금은 하면서 대출은 받지 않은 모든 고객들의 이름?

        πcustomer-name(depositor) – πcustomer-name(borrower)

     

     

     

     

    06 Cartesian Product

     

     

     Notation: r × s

     - 릴레이션 r과 s의 레코드들의 모든 가능한 조합으로 구성된 새로운 릴레이션을 생성

        degree(r × s) = degree(r) + degree(s)

        card(r × s) = card(r) × card(s)

     

     

     Example

     - ‘Perryridge’ 지점에서 대출받은 고객들의 이름?

        Loan = (branch-name, loan-number, amount)

        Borrower = (customer-name, loan-number)

        πcustomer-name( σloan.loan-number = borrower.loan-number( σbranch-name = ‘Perryridge’(Loan × Borrower)))

     

     

     

     

    #관계형모델 #Select #Project #Union #SetDifference #CartesianProduct #관계형데이터베이스 #SQL연산 #데이터베이스쿼리 #릴레이션연산 #관계대수 #SQLSelect #SQLProject #SQLUnion #SQLSetDifference #SQLCartesianProduct #DBMS #데이터베이스스키마 #CustomerRelation #AccountRelation #BorrowerRelation #DepositorRelation #SQL쿼리예제

     

    댓글