데이터 모델은 데이터 구조, 제약조건, 연산으로 이루어져 있다.
데이터 구조와 제약조건은 데이터베이스를 구축하고 연산은 데이터베이스를 검색한다.
01 관계 데이터 연산
수학적 모델의 구성
- 대상에 대한 '정의'와 대상으로 수행하는 '연산'으로 구성된다.
- 정의 : 대상이 무엇인지 명시하는 기능
- 연산 : 대상을 활용하는 역할 수행
연산 (operation)
- '정의역'에 속하는 어떤 '입력' 값을 받아서 해당 '연산'을 수행하고 '출력' 값을 결과로 내보내는 함수이다.
관계 데이터 연산 (relational data operation)
- 관계 데이터 (릴레이션)를 검색하여 활용하는 목적으로 정의된 계산들이다.
ex) 셀렉션 (selection)
질의 (query)
- 데이터에서 사용자가 검색하고자 하는 결과에 대한 설명이다.
- 하나 이상의 관계 데이터 연산을 중첩해서 만든 '연산식'으로 표현하여 계산한다.
ex) 질의: 고객 릴레이션에서 나이가 25 이하이고 고객번호가 100인 데이터는?
- 관계 데이터 연산과 질의를 효과적으로 표현할 수 있는 관계 대수와 관계 해석이라는 표준화된 표현법이 있다.
관계 대수
- 관계 데이터 연산의 기호적 표현법이다.
ex) σ {나이≤25} (고객)
관계 해석
- 관계 데이터 연산의 집합적 표현법이다.
ex) {고객 | 고객 and 고객.나이 ≤ 25}
- 관계 대수와 관계 해석은 기능과 표현력 측면에서 능력이 동등하다.
- 관계 대수는 질의의 계산 순서가 표현된 '절차 언어(procedural language)'이다.
- 관계 해석은 질의의 계산 순서가 표현되지 않고 질의의 결과물만 기술된 '비절차적 언어(nonprocedural language)' 이다.
- 관계 대수가 관계 해석보다 표현이 쉬워서 더 많이 쓰인다.
SQL
- 실제 데이터베이스 시스템에서 관계 대수를 사용하기 위해 정의한 데이터 언어이다.
- 관계적으로 완전(relationally complete)하다.
-> 관계 대수로 기술할 수 있는 모든 질의를 기술할 수 있다.
02 관계 대수
- 관계 대수는 입출력에 대해 닫혀 있다. -> 입출력이 모두 릴레이션이다.
입력에 따른 분류
- 단항 연산자 : 릴레이션 한 개를 입력으로 받는 연산자이다.
- 다항 연산자 : 릴레이션 한 개 이상을 입력으로 받는 연산자이다.
대체 가능성에 따른 분류
- 필수 연산자 : 다른 연산자로 기능을 대체할 수 없는 연산자이다.
- 유도된 연산자 : 필수 연산자 조합으로 기능을 대체할 수 있는 연산자이다.
-> 세타 조인은 카디션 곱과 설렉션 연산자 조합으로 대체 가능하다.
셀렉션 (selection)
- 입력 : 릴레이션, 조건식
- 출력 : 입력 릴레이션에서 조건식을 만족하는 튜플로 선택된 릴레이션
- 관계대수 표현법 : σ{조건식}(릴레이션)
조건식 (predicate, 프레디킷)
- 속성 및 상수로 이루어진 비교식이다.
- 비교 연산자, 논리 연산자를 사용한다.
셀렉션의 특징
- 셀렉션은 행에 대한 부분집합 연산이다.
-> 결과 릴레이션의 카디날리티는 입력 릴레이션의 카디날리티보다 작거나 같다.
-셀렉션은 열에 대해서 무관하다.
-> 결과 릴레이션 차수와 입력 릴레이션 차수와 같다.
- 교환법칙이 성립한다.
-> 순서는 다르지만 결과는 같다.
프로젝션 (projection)
- 입력 : 릴레이션, 속성리스트
- 출력 : 입력 릴레이션에서 속성리스트의 속성들로 선택된 릴레이션
- 관계대수 표현법 : 𝜋{속성리스트}(릴레이션)
-> 중복이 있으면 안 된다.
프로젝션 특징
- 프로젝션은 열에 대한 부분집합 연산이다.
-> 결과 릴레이션의 차수는 입력 릴레이션의 차수보다 작거나 같다.
- 프로젝션은 행에 대해서 무관하다.
-> 결과 릴레이션의 카디널리티는 입력 릴레이션의 카디널리티와 같다.
집합 연산자 3종
- 합집합, 차집합, 교집합이 있다.
- 릴레이션은 집합형 자료형임으로 일반 집합 연산이 동일하게 릴레이션에 적용 가능하다.
- 필수 연산자 : 합집합, 차집합
- 유도 연산자 : 교집합
- 집합 연산자는 합병 가능 (union-compatible) 조건을 만족해야 한다.
합병 가능 (union-compatible) 조건
- 두 릴레이션의 차수가 같아야 한다.
- 두 릴레이션에서 서로 대응되는 속성의 도메인이 같아야 한다. (속성 이름은 무관하다.)
합집합 (union)
- 입력 : 두 릴레이션
- 출력 : 두 릴레이션의 합집합 릴레이션
- 전체 조건 : 두 릴레이션은 합병 가능 (union-compatible) 해야 한다.
- 관계대수 표현법 : 릴레이션 1 ∪ 릴레이션 2
합집합(union)의 특징
- 차수는 결과 릴레이션과 입력 릴레이션이 같다.
- 카디널리티는 결과 릴레이션이 입력 릴레이션보다 크거나 같다.
- 교환법칙과 결합법칙이 성립한다.
교집합 (intersection)
- 입력 : 두 릴레이션
- 출력 : 두 릴레이션의 교집합 릴레이션
- 전체 조건 : 두 릴레이션은 합병 가능 (union-compatible) 해야 한다.
- 관계대수 표현법 : 릴레이션 1 ∩ 릴레이션 2
교집합(intersection)의 특징
- 차수는 결과 릴레이션과 입력 릴레이션이 같다.
- 카디널리티는 결과 릴레이션이 입력 릴레이션보다 작거나 같다.
- 교환법칙과 결합법칙이 성립한다.
차집합 (difference)
- 입력 : 두 릴레이션
- 출력 : 두 릴레이션의 차집합 릴레이션
- 전체 조건 : 두 릴레이션은 합병 가능 (union-compatible) 해야 한다.
- 관계대수 표현법 : 릴레이션 1 - 릴레이션 2
차집합(difference)의 특징
- 차수는 불변
- R-S의 카디널리티는 릴레이션 R의 카디널리티와 작거나 같다.
- 교환/결합법칙 성립하지 않는다.
카디션 곱 (카티선 프로덕트, cartesian product)
- 입력 : 두 릴레이션
- 출력 : 두 릴레이션의 모든 조합 튜플로 이루어진 릴레이션
- 관계 대수 표현법 : 릴레이션 1 x 릴레이션 2
카티션 곱의 특징
- 차수는 두 입력 릴레이션의 차수의 합이다.
- 카디널리티는 두 입력 릴레이션 카디널리티의 곱이다.
- 교환법칙/결합법칙이 성립한다.
'Major Study > 25-1 Database' 카테고리의 다른 글
[Database] 06 데이터입력 SQL (3) | 2025.04.18 |
---|---|
[Database] 05 관계형 데이터 모델 (0) | 2025.04.17 |
[Database] 04 관계형 데이터 모델과 릴레이션 (0) | 2025.04.17 |
[Database] 03 데이터베이스 설계 (0) | 2025.04.17 |
[Database] 02 데이터 수집과 구조 (3) | 2025.04.09 |