1. 관계대수 ( Relational Algebra )
관계대수는 관계형 데이터베이스에서 데이터를 조작하고 검색하는 수학적 연산 집합이다. 이를 통해 원하는 데이터를 효과적으로 추출할 수 있다.
1. 관계대수 연산
- 순수 관계 연산 ( 기본 연산 )
- SELECT ( σ, 시그마 연산 ) : 조건을 만족하는 튜플 ( 행 )만 선택
- PROJECT ( π, 파이 연산 ) : 특정 속성( 열 )만 선택
- JOIN ( ⋈, 조인 연산 ) : 두 개의 릴레이션을 특정 조건으로 결합
- DIVISION ( ÷, 디비전 연산 ) : 특정 속성을 포함하는 부분집합을 찾는 연산
- 일반 집합 연산
- 합집합 ( ∪, UNION ) : 두 릴레이션을 합침 ( 중복 제거 )
- 교집합 ( ∩, INTERSECT ) : 공통된 튜플만 선택
- 차집합 ( -, DIFFERENCE ) : 첫 번째 릴레이션에서 두 번째 릴레이션을 제외한 결과
- 카티션 프로덕트 ( ×, Cartesian Product ) : 모든 튜플을 조합하여 새로운 튜플 생성
2. 관계 함수 ( Relational Function )
관계 데이터 모델에서 릴레이션 간의 관계를 나타내는 함수적 종속성을 의미한다.
1. 함수적 종속 ( Functional Dependency, FD )
- X → Y : X가 Y를 결정한다.
- 예시: 학번 → 학생이름 ( 학번이 같으면 학생이름도 동일해야 함 )
2. 함수적 종속의 종류
- 완전 함수적 종속 ( Full Functional Dependency ) : 기본키 전체가 결정자로 작용
- 부분 함수적 종속 ( Partial Functional Dependency ) : 기본키 일부 속성만으로 결정됨
- 이행적 종속 ( Transitive Dependency ) : A → B, B → C이면 A → C 성립
- 다치 종속 ( Multivalued Dependency, MVD ) : 하나의 속성이 여러 값을 가질 때 발생
- 조인 종속 ( Join Dependency, JD ) : 특정 릴레이션이 두 개 이상의 하위 릴레이션으로 분해될 수 있을 때 발생\
3. 데이터베이스 정규화 ( Normalization )
정규화는 데이터의 중복을 최소화하고 데이터 무결성을 유지하기 위한 과정이다.
1. 정규화의 단계
- 제1정규형 ( 1NF ) - 원자성 ( Atomicity ) 확보
- 한 속성에 하나의 값만 저장해야 함
- 예) ‘전화번호’ 속성에 여러 개의 번호 저장 ❌ → 별도 테이블로 분리
- 제2정규형 ( 2NF ) - 부분 함수적 종속 제거
- 기본키 전체가 아닌 일부 속성만으로 결정되는 경우 제거
- 예) ( 학번, 과목코드 ) → 성적 → 학번 → 학생이름 ( 부분적 종속 발생 ) → 분리 필요
- 제3정규형 ( 3NF ) - 이행적 종속 제거
- 기본키가 아닌 속성 간의 종속 관계 제거
- 예) 학번 → 지도교수ID, 지도교수ID → 교수이름 → 학번 → 교수이름 ( 이행적 종속 발생 )
- BCNF ( Boyce-Codd Normal Form ) - 결정자가 후보키가 아니면 분리
- 더 강력한 형태의 3NF, 모든 결정자가 후보키가 되도록 구성
- 제4정규형 ( 4NF ) - 다치 종속 제거
- 하나의 속성이 여러 값을 가질 경우 분리 ( MVD 해결 )
- 제5정규형 ( 5NF ) - 조인 종속 제거
- 데이터를 분리하여 다시 조인해도 원본이 유지될 수 있도록 구성
2. 정규화의 장점과 단점
- 장점
- 데이터 중복 제거로 저장 공간 절약
- 데이터 무결성 및 일관성 유지
- 삽입, 삭제 이상 ( Anomaly ) 방지
- 단점
- 너무 높은 정규화는 성능 저하를 유발할 수 있음
- 복잡한 질의 ( Query ) 실행 시 속도 저하 가능
4. 정리
- 관계대수는 데이터를 조작하는 연산 방법이며, SELECT(σ), PROJECT(π), JOIN(⋈) 등이 포함됨.
- 관계 함수는 데이터 간의 종속 관계를 나타내며, 함수적 종속 ( Functional Dependency ) 개념을 이해하는 것이 중요함.
- 정규화는 데이터베이스 설계를 최적화하는 과정으로, 1NF → 2NF → 3NF → BCNF → 4NF → 5NF 순으로 진행됨.
- 정규화는 중복을 최소화하고 무결성을 유지하지만, 지나치면 성능 문제가 발생할 수 있음.
'CS 공부' 카테고리의 다른 글
CS) 객체지향 설계 원칙과 OOAD (0) | 2025.02.20 |
---|---|
CS) 응집도 ( Cohesion ) (0) | 2025.02.18 |
CS) 정처기 대비 요약 정리 (0) | 2025.02.15 |
CS) 소프트웨어 프로젝트 관리에서 3P와 애자일에서의 적용 (0) | 2025.02.14 |
CS) 결합도 ( Coupling ) (0) | 2025.02.13 |