관계형 데이터베이스2
2. 관계형 데이터베이스 (Realational Database)
유일한 이름을 갖는 릴레이션들로 이루어져있으며 이전에 포스팅했던 개체-관계 모델로 표현가능한 데이터베이스이다.
1) 구성요소
* 릴레이션, 테이블
정보를 저장하는 단위, 테이블이라고도한다. 표 형태이기 때문
* 스키마
릴레이션 이름과 일정 수의 속성들의 집합, 표에서 헤더 영역과 같다.
* 인스턴스
릴레이션에 포함된 레코드들의 집합, 표에서 헤더를 제외한 데이터 영역과 같다.
* 속성(Attribute), 열(Column), 필드(Field)
테이블의 세부 정보이다. 테이블의 한 열에 해당한다.
* 레코드(Record), 행(Row), 튜플(Tuple)
속성의 모임으로 구성되며, 테이블의 한 행에 해당한다.
* 기수(Cardinality)
테이블의 레코드 개수
2) 데이터 베이스 언어
데이터베이스 정보를 엑세스하기 위해 사용하는 언어로 관계형 데이터 베이스에서는 국제 표준 언어인 SQL을 사용한다. 그냥 줄여서 쿼리라고 부르기도한다.
이러한 언어를 효과적으로 사용하기 위해서는 관계 대수를 통해 쿼리 설계를 한 후 사용하면 좋다. 이러한 언어는 차후 추가적인 포스팅이 있을 예정이다.
3) 관계 대수(Relational Algebra)
하나 이상의 테이블을 입력으로 하여 새로운 테이블을 생성하는 것
* Select
대상 테이블 t에서 특정 조건 p를 만족하는 레코드들의 집합을 반환한다.
이 조건은 논리/비교 연산자들로 구성되어있다.
표현) $ \sigma _{p}(t)$
* Project
테이블 t의 대상 속성 $a1,a2,…$을 가져와서 새로운 테이블을 생성한다.
표현) $\Pi _{a1,a2,…}(t)$
* Union
테이블 A 또는 테이블 B에 존재하는 모든 레코드로 구성된 새로운 테이블을 구성한다.
표현) $A \cup B$
* Set Difference
테이블 A에는 속하지만 테이블 B에는 존재하지 않는 레코드들로 구성된 새로운 테이블을 구성한다.
표현) $A - B$
* Cartesian Product
테이블 A와 테이블 B의 레코드들의 모든 가능한 조합으로 구성된 테이블을 구성한다.
표현) $A \times B$
* Set Intersection
테이블 A와 테이블 B에 모두 포함되는 레코드들로 구성된 새로운 테이블로 구성된다.
표현) $A \cap B$
* Join
공통 속성을 중심으로 두 개의 테이블 A와 B를 합쳐 새로운 테이블을 생성한다.
- Natural Join
- 표현) A ⋈ B
- 공통 속성을 중복해서 출력하지 않음
- Theta Join
- 표현) A ⋈$_{θ}$ B
- 공통 속성을 중복해서 출력
- Equi Join
- 공통 속성이 둘다 같을 때 출력
- Outer Join
* Division
테이블 B의 레코드 값을 모두 가진 테이블 A의 레코드들로 구성된 새로운 테이블을 구성한다.
표현) A ÷ B
참고자료
- 위키백과 - 데이터베이스
- 대학생 시절 강의 자료
- 데이터베이스, 이한출판사, 김경창 외 2명