[정처기 필기] 「3」 | 논리 데이터베이스 설계 - (1.3) 관계대수 및 관계해석
「1」 소프트웨어 설계
「2」 소프트웨어 개발
> 「3」 데이터베이스 구축
- > 논리 데이터베이스 설계, 물리 데이터베이스 설계, SQL 응용, SQL 활용, 데이터 전환
「4」 프로그래밍 언어 활용
「5」 정보시스템 구축 관리
1 데이터베이스 설계
2 데이터 모델의 개념
3 E-R 모델
4 관계형 데이터베이스의 구조
5 관계형 데이터베이스의 제약 조건 - 키(Key)
6 관계형 데이터베이스의 제약 조건 - 무결성
> 7 관계대수 및 관계해석
8 정규화(Normalization)
9 반정규화(Denormalization)
10 시스템 카탈로그
7. 관계대수 및 관계해석
관계대수의 개요
관계형 데이터베이스에서 원하는 정보와 그 정보를 검색하기 위해 어떻게 유도하는가 기술하는 절차적 언어
- 릴레이션을 처리하기 위해 연산자, 연산규칙 제공, 피연산자가 릴레이션, 결과도 릴레이션
- 질의에 대한 해를 구하기 위해 수행할 연산의 순서를 명시
- 릴레이션 조작을 위한 연산의 집합
- 특별히 개발한 순수 관계 연산자와 수학적 집합 이론에서 사용하는 일반 집합 연산자
- 순수 관계 연산자 : Select, Project, Join, Division
- 일반 집합 연산자 : UNION(합집합), INTERSECTION(교집합), DIFFERENCE(차집합), CARTESIAN PRODUCT(교차곱)
Select
튜플 중 조건을 만족하는 튜플의 부분집합을 구하여 새로운 릴레이션으로 만드는 연산
- 릴레이션의 행에 해당하는 튜플을 구하는 것, 수평연산
- 연산자 기호 : 시그마 σ
- 표기 형식 : σ<조건>(R)
: R은 릴레이션 이름
: 조건에서 =, ≠, <, ≤ 등 비교 연산 허용, AND(∧), OR(∨), NOT(¬) 등 논리 연산자 사용하여 여러 조건을 결합
ex) σAvg ≥ 90 (성적) : <성적> 릴레이션에서 'Avg'이 90점 이상인 튜플들 추출
Project
속성 리스트(Attribute List)에 제시된 속성 값만 추출하여 새로운 릴레이션으로 만드는 연산, 중복 제거
- 릴레이션의 열에 해당하는 속성을 추출하는 것, 수직 연산자
- 연산자 기호 : 파이 π
- 표기 형식 : π<속성리스트>(R)
: R은 릴레이션 이름
ex) πName, Avg(성적) : <성적> 릴레이션에서 'Name'과 'Avg' 속성을 추출
Join
공통 속성을 중심으로 두 개의 릴레이션을 하나로 합쳐 새로운 릴레이션을 만드는 연산
- 만들어진 릴레이션 차수는 두 릴레이션의 차수를 합한 것
- 결과는 Cartesian Product(교차곱) 수행 후 Select 수행한 것과 같음
- 조건이 '='일 때 동일한 속성이 2번 나타남
- 연산자 기호 : 보타이 ⋈
- 표기 형식 : R ⋈키속성 r = 키속성 s S
: 키 속성 r은 릴레이션 R의 속성, 키 속성 s은 릴레이션 S의 속성
ex) 성적 ⋈No = No 학적부 : <성적> 릴레이션과 <학적부> 릴레이션을 'No' 속성을 기준으로 합침
>자연 조인(Natural Join)<
조인 조건이 '='일 때 동일한 속성이 2번 나타나는데, 중복된 속성을 제거하여 표기하는 방법, 자연 조인이 성립되려면 두 릴레이션의 속성명, 도메인 같아야 함
Division
X ⊃ Y인 두 개의 릴레이션 R(X), S(Y)가 있을 때, R 속성이 S 속성값을 모두 가진 튜플에서 S 속성을 제외한 속성만 구하는 연산
- 연산자 기호 : 나누기 ÷
- 표기 형식 : R [속성r ÷ 속성s] S
: 속성 r은 릴레이션 R의 속성, 속성 s는 릴레이션 S의 속성, 속성 r과 속성 s는 동일 속성값을 가지는 속성
ex) 구입자 [이름, 구입품 코드 ÷ 이름, 생산품 코드] 생산품 : <구입자> 릴레이션에서 '이름', '구입품 코드' 속성을 제외한 나머지 속성 추출하는데, 이때 <생산품> 릴레이션의 모든 튜플과 연관되어 있는 튜플만 추출
일반 집합 연산자
수학적 집합 이론에서 사용하는 연산자로 그대로 적용
- 합집합(UNION), 교집합(INTERSECTION), 차집합(DIFFERENCE)을 처리하기 위해 합병 조건(릴레이션 R의 i번째 속성과 릴레이션 S의 i번째 속성의 도메인이 서로 같아야 함)을 만족해야 함
합집합 UNION ∪
: 두 릴레이션에 존재하는 튜플의 합집합, 중복 제거
: R ∪ S = { t | t ∈ R ∨ t ∈ S } (t는 릴레이션 R 또는 릴레이션 S에 존재하는 튜플)
- 카디널리티
: |R ∪ S| ≤ |R| + |S|
ex) π이름(사원) ∪ π이름(직원) : <사원> 릴레이션과 <직원> 릴레이션에서 '이름'을 추출한 것의 합집합
교집합 INTERSECTION ∩
: 두 릴레이션에 존재하는 튜플의 교집합
: R ∩ S = { t | t ∈ R ∧ t ∈ S } (t는 릴레이션 R 그리고 릴레이션 S에 동시에 존재하는 튜플)
- 카디널리티
: |R ∩ S| ≤ MIN{|R|, |S|}
ex) π이름(사원) ∩ π이름(직원) : <사원> 릴레이션과 <직원> 릴레이션에서 '이름'을 추출한 것의 교집합
차집합 DIFFERENCE ㅡ
: 두 릴레이션에 존재하는 튜플의 차집합
: R ㅡ S = { t | t ∈ R ∧ t ∉ S } (t는 릴레이션 R에는 존재, 릴레이션 S에 없는 튜플)
- 카디널리티
: |R ㅡ S| ≤ |R|
ex) π이름(사원) ㅡ π이름(직원) : <사원> 릴레이션과 <직원> 릴레이션에서 '이름'을 추출한 것의 차집합
교차곱 CARTESIAN PRODUCT X
: 두 릴레이션에 있는 튜플들의 순서쌍을 구함
: R X S = { r · s | r ∈ R∧s∈ S} (r은 릴레이션 R에 존재, s는 릴레이션 S에 존재하는 튜플)
- 카디널리티
: |R X S| = |R| X |S|
: 교차곱의 디그리 - 두 릴레이션 디그리 더한 것, 카디널리티 - 두 릴레이션의 카디널리티 곱한 것
ex) π이름(사원) X π이름(직원) : <사원> 릴레이션과 <직원> 릴레이션에서 '이름'을 추출한 것의 교차곱
관계해석(Relational Calculus)
코드(E. F. Codd)가 수학의 술어 해석에 기반을 두고 관계 데이터베이스를 위해 제안, 원하는 정보가 무엇이라는 것만 정의하는 비절차적 언어
- 관계 데이터의 연산을 표현하는 방법, 원하는 정보를 정의할 때 계산 수식 사용
- 튜플 관계해석, 도메인 관계해석
- 관계해석과 관계대수는 관계 데이터를 처리하는 기능, 능력에서 동등, 관계대수로 표현한 식은 관계해석으로도 표현 가능
- 질의어로 표현
전칭 정량자 ∀ : 가능한 모든 튜플에 대하여(For All)
존재 정량자 ∃ : 하나라도 일치하는 튜플이 있음(There Exists)
출처 | <시나공> 정보처리기사 필기 2024 기본서 (길벗알앤디)
'💠기타 > 자격증' 카테고리의 다른 글
[정처기 필기] 「3」 | 물리 데이터베이스 설계 - (2.1) 트랜잭션, CRUD 분석 (2) | 2024.02.09 |
---|---|
[정처기 필기] 「3」 | 논리 데이터베이스 설계 - (1.4) 정규화, 반정규화, 시스템 카탈로그 (1) | 2024.02.08 |
[정처기 필기] 「3」 | 논리 데이터베이스 설계 - (1.2) 관계형 데이터베이스의 구조, 제약 조건 - 키, 무결성 (0) | 2024.02.05 |
[정처기 필기] 「3」 | 논리 데이터베이스 설계 - (1.1) 데이터베이스 설계, 데이터 모델의 개념, E-R 모델 (2) | 2024.02.04 |
[정처기 필기] 「2」 | 인터페이스 구현 - (5.2) 인터페이스 구현, 보안, 구현 검증 (0) | 2024.02.01 |