Backend
home
🖊️

Database 이론 2

생성 일시
2025/02/11 02:53
태그
Database
게시일
2025/02/11
최종 편집 일시
2025/02/11 04:54

관계형 데이터 모델

관계형 데이터 구조 : 릴레이션

관계형 데이터 모델에서 데이터를 원자 값으로 갖는 이차원 테이블로 표현하는 것을 의미함
물리적인 저장 구조가 아니라 논리적인 저장 구조
열(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(술어해석)에 기반을 두고 관계 데이터베이스를 위해 제안
관계 데이터 연산을 표기하는 방법으로, 원하는 정보를 정의할 때 계산 수식을 사용
원하는 정보가 무엇이라는 것만 정의하는 비절차적 특성을 지님
튜플 관계해석과 도메인 관계해석이 있음
관계해석과 관계대수는 관계 데이터베이스를 처리하는 기능과 능력 면에서 동등하며, 관계대수로 표현한 식은 관계해석으로 표현할 수 있음
질의어로 표현