본문 바로가기
💾 Backend/데이터베이스

📊 데이터베이스(mySQL) - 2. 관계 데이터 모델 - 관계대수

by 정람지 2024. 4. 22.

출처 : MySQL로 배우는 데이터베이스 개론과 실습(2판)


📊 관계대수

관계대수 :

어떤 데이터를 어떻게 찾는지에 대한 처리 절차를 명시하는 절차적인 언어

DBMS 내부의 처리 언어

 

관계해석 :

어떤 데이터를 찾는지만 명시하는 선언적인 언어


💾 관계대수

절차적 언어

 

관계대수 연산자

- 순수 관계연산

(셀렉션, 프로젝션, 조인, 개명, 디비전 )

- 일반 집합연산

(교집합, 합집합, 차집합, 카티션 프로덕트)

 

관계대수식 : 관계대수 연산을 수행하기 위한 식

 

중복튜플 없앰!!


💾 셀렉션과 프로젝션

단항 연산자

셀렉션

조건에 맞는 튜플을 반환시키기 위한 연산자

프로젝션

조건에 맞는 속성만 남기기 위한 연산자


💾 집합연산

이항 연산자

합집합,교집합,차집합 : 릴레이션의 차수, 도메인, 속성의 순서가 동일해야 함 (합병가능) 스키마 일치!

(카티션 프로덕트 제외)

 

합집합,교집합,차집합

수직적 연산

 

카디날리티의 개수가 반드시 릴1카디날리티 + 릴2카디날리티 ㄴㄴ

(튜플 중복되면 안 됨)

 

 

카티션 프로덕트

수평적 연산

 

카디날리티의 개수 = 릴1카디날리티 x 릴2카디날리티


💾 조인

두 릴레이션의 공통 속성을 기준으로 속성값이 같은 튜플을 수평으로 결합하는 연산

- 두 릴레이션의 조인에 참여하는 속성이 서로 동일한 도메인이어야 함

 

 

기본 조인 연산 : 세타조인, 동등조인, 자연조인

확장된 조인 연산 : 세미조인, 외부조인

 

🧬 세타조인

조인에 참여하는 두 릴레이션의 속성값을 비교하여 조건을 만족하는 튜플을 반환함

 

🧬 동등조인

세타조인 중 조건에 = 연산을 사용한 조인

 

🧬 자연조인

세타조인에서 조인에 참여한 속성이 2번 나오지 않도록 한 개 삭제한 것

차수 = 두 차수의 합 - 1

 

 

🧬 외부조인

자연조인의 확장형

자연 조인 시 조인에 실패한 튜플을 모두 (NULL을 채워) 보여줌

🧬 세미조인

자연 조인을 한 후 한쪽 릴레이션의 튜플만 반환함


💾 디비전

릴레이션 속성값의 집합으로 연산 수행

릴레이션 2에 있는 속성값이 든 튜플은 릴레이션 1에서 삭제, 릴레이션 2의 속성도 삭제


📊 관계대수 - 간단 정리

 

01 릴레이션

관계 데이터 모델의 핵심적인 개념

행과 열로 구성된 테이블

 

02 릴레이션 스키마
관계 데이터베이스의 릴레이션이 어떻게 구성되는지, 어떤 정보를 담고 있는지에 대한 기본적인 구조를 정의

 

03 릴레이션 인스턴스
릴레이션 스키마에 실제로 저장되는 데이터의 집합

 

04 관계 데이터베이스 시스템

관계 데이터 모델을 컴퓨터 시스템에 구현한 것

 

05 키

  • 슈퍼키: 투풀을 유일하게 식별할 수 있는 하나의 속성 혹은 속성의 집합
  • 후보키: 투플을 유일하게 식별할 수 있는 하나의 속성 혹은 속성의 집합으로, 속성의 최소 집합
  • 기본키: 여러 후보키 중 하나를 선정하여 대표로 삼은 키
  • 대리기: 일련번호 같은 가상의 속성을 만들어 기본키로 삼은 것
  • 외래키: 다른 릴레이션의 기본키를 참조하는 속성

06 무결성 제약조건

  • 도메인 무결성 제약조건: 모든 튜플은 릴레이션 스키마에 정의된 각 속성의 도메인에 지정된 값만 가져야 함
  • 개체 무결성 제약조건: 기본키는 NULL. 값을 가져서는 안 되며, 릴레이션 내에 오직 하나의 값만 존재해야 함
  • 참조 무결성 제약조건: 자식 릴레이션의 외래키는 부모 릴레이션의 기본키와 속성의 도메인이 동일해야 하며, 자식 릴레이션의 값 변경 시 부모 릴레이션의 값에 제약을 받음

 

07 참조 무결성 제약조건의 옵션
참조 무결성 제약조건을 수행하기 위한 네 가지 옵션으로 RESTRICTED. CASCADE DEFAULT, NULL이 있음

 

08 관계대수
릴레이션에서 원하는 결과를 얻기 위해 수학의 대수와 같은 연산을 이용하여 질의하는 방법을 기술하는 언어

 

09 디비전
속성 A와 B로 이루어진 릴레이션 R과 속성 B로 이루어진 릴레이션 S의 디비전 연산은 릴레이션 S의 속성 B값과 서로 동일하게 대응하는 릴레이션 R의 속성 A에 있는 투플들을 반환


📊 관계대수 - 문제 정리

조건 : AND, OR, NOT

 

 

릴레이션의 모든 속성값은 원자값이다

 

릴레이션 A(X, Y)에서 "A"는 릴레이션(테이블)의 이름이고, "X"와 "Y"는 그 테이블의 속성 이름을 나타냄. 이는 테이블 A가 두 개의 열인 X와 Y로 구성되어 있음을 의미

 

기본키 속성이 복합 속성인 경우 그 속성의 일부 요소 속성에서 NULL 값을 가질 수 있어?

ㄴㄴㄴ!

 

속성 다중값 안 됨

 

외래키도 기본키의 구성요소가 될 수 있음

하나의 릴레이션(테이블)에는 여러 개의 외래키(Foreign Key)가 존재할 수 있음

 

스키마는 변경 가능

 

 

심화는~ 나중에~