관계형 데이터 모델
관계형 데이터 구조 : 릴레이션
•
관계형 데이터 모델에서 데이터를 원자 값으로 갖는 이차원 테이블로 표현하는 것을 의미함
•
물리적인 저장 구조가 아니라 논리적인 저장 구조
•
열(Column)을 속성(attribute), 행(Row)을 튜플이라고 함
•
원자(Atomic)값들의 집합을 도메인이라고 함
•
자료 저장의 형태가 2차원 구조의 표 또는 테이블로 표현됨
ER 모델을 관계형 데이터 모델로 변환
•
개념적 데이터 모델인 E-R 모델을 논리적 모델인 릴레이션 스키마로 변환하는 것으로, 매핑 룰(Mapping Rule)이라고도 함
릴레이션 스키마의 다른 표현
키의 개념 및 종류
슈퍼키(Super key)
•
한 릴레이션 내에 있는 속성들의 집합으로 구성된 키
•
릴레이션 구성하는 모든 튜플 중 슈퍼키로 구성된 속성의 집합과 동일한 값을 나타내지 않음
•
유일성(Unique)은 만족하지만, 최소성(Minimality)는 만족하지 못함
후보키(Candidate Key)
•
릴레이션을 구성하는 속성들 중에서 튜플을 유일하게 식별하기 위해 사용되는 속성들의 부분 집합
•
유일성 최소성을 모두 만족함
•
2개 이상의 필드를 조합하여 만든 키를 복합 키(Composite Key)라고 함
기본키(Primary Key)
•
후보키 중에서 특별히 선정된 키로 중복된 값을 가질 수 없음
•
유일성과 최소성을 가지며 튜플을 식별하기 위해 반드시 필요한 키(후보키의 성질을 가짐)
•
기본키는 NULL값을 가질 수 없음
대체키(Alternate Key)
•
대체키는 후보키 중에서 선정된 기본키를 제외한 나머지 후보키를 의미함
외래키(Foreign Key)
•
다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합
•
릴레이션의 관계를 표현할 때 사용
•
외래키는 참조 릴레이션의 기본키와 동일한 속성을 가짐
무결성(Integrity)
•
데이터베이스에 저장된 데이터 값과 그것이 표현하는 현실 세계의 실제 값이 일치하는 정확성을 의미
•
무결성 제약 조건(Constraint)은 데이터베이스에 저장된 데이터의 정확성을 보장하기 위해 정확하지 않은 데이터가 데이터베이스 내에 저장되는 것을 방지하기 위한 제약 조건을 의미
NULL 무결성
•
릴레이션의 특정 속성 값이 NULL이 될 수 없도록 하는 규정
고유(Unique) 무결성
•
릴레이션의 특정 속성에 대해 각 튜플이 갖는 속성 값들이 서로 달라야 한다는 규정
도메인 무결성
•
특정 속성의 값이 그 속성이 정의된 도메인에 속한 값이어야 한다는 규정
키 무결성
•
하나의 릴레이션에는 적어도 하나의 키가 존재해야 한다는 규정
관계 무결성
•
릴레이션에 어느 한 튜플의 삽입 가능 여부 또는 한 릴레이션과 다른 릴레이션의 튜플들 사이의 관계에 대한 적절성 여부를 지정한 규정
참조 무결성
•
외래키 값은 NULL이거나 참조 릴레이션의 기본키 값과 동일해야 한다는 규정
개체 무결성
•
기본 릴레이션의 기본키를 구성하는 어떤 속성도 NULL 일 수 없다는 규정
관계대수
•
관계대수는 관계형 데이터베이스에서 원하는 정보와 그 정보를 어떻게 유도하는가를 기술하는 절차적 언어
•
기본 연산인 SELECT, PROJECT, JOIN, DIVISION 등과 집합 연산인 UNION, DIFFERENCE, INTERSECTION, CARTESIAN, PRODUCT 등이 있다.
SELECT
•
릴레이션에 존재하는 튜플들 중에서 특정 조건을 만족하는 튜플들의 부분집합을 구하여 새로운 릴레이션을 만듦
•
릴레이션의 행에 해당하는 튜플을 구하는 것으로 수평 연산이라고도 함
•
연산자 기호는 그리스 문자 시그마(σ)
•
σ<조건>R 로 표현함, R은 릴레이션
PROJECT
•
주어진 릴레이션 속성 리스트에 제시된 속성 값만을 추출하여 새로운 릴레이션을 만듦(중복은 제거됨)
•
릴레이션의 열에 해당하는 속성을 추출하는 것으로 수직 연산이라고도 함
•
그리스 문자 파이(π)를 사용함
•
π<속성 리스트>R 로 표현함, R은 릴레이션
JOIN
•
두 개의 릴레이션을 하나로 합쳐서 새로운 릴레이션을 만듦
•
Join으로 만들어진 릴레이션의 차수는 조인된 두 릴레이션의 차수를 합한 것과 같음
•
JOIN 연산의 결과는 CARTESIAN PRODUCT 연산을 수행한 다음 SELECT 연산을 수행한 것과 같음
◦
CARTESIAN PRODUCT
▪
두 릴레이션에 존재하는 모든 튜플들을 대응시켜 새로운 릴레이션을 만드는 연산으로, 연산의 결과 차수는 두 릴레이션의 차수를 합한 것과 같고 튜플은 두 릴레이션의 튜플 수를 곱한 것과 같음
•
θ(Theta)로 표현될 수 있는 조인을 세타 조인(Theta) 이라고 함
•
Join 조건이 ‘=’ 일 때 동일한 속성이 2번 나타나게 되는데, 이 중 중복을 제거하여 같은 속성은 1번만 나타나게 하는 연산을 자연 조인(Natural join)이라 함
관계 해석
•
관계 데이터 모델 제안자인 코드(E. F. Codd)가 수학의 Predicate Calculus(술어해석)에 기반을 두고 관계 데이터베이스를 위해 제안
•
관계 데이터 연산을 표기하는 방법으로, 원하는 정보를 정의할 때 계산 수식을 사용
•
원하는 정보가 무엇이라는 것만 정의하는 비절차적 특성을 지님
•
튜플 관계해석과 도메인 관계해석이 있음
•
관계해석과 관계대수는 관계 데이터베이스를 처리하는 기능과 능력 면에서 동등하며, 관계대수로 표현한 식은 관계해석으로 표현할 수 있음
•
질의어로 표현