1. 관계 데이터 모델의 개념
릴레이션의 개념
- 관계 데이터 모델의 기본 개념
- 개념적 구조를 논리적 구조로 표현하는 논리적 데이터 모델
- 하나의 개체에 관한 데이터를 하나의 릴레이션에 저장
- 릴레이션 : 행과 열로 구성된 테이블
- 릴레이션 (relation) : 행과 열로 구성된 테이블
- 하나의 개체에 관한 데이터를 2 차원 테이블의 구조로 저장한 것
- 파일 관리 시스템 관점에서 파일(field)에 대응
- 스키마와 인스턴스로 이루어짐
- 속성: 열
- 튜플: 행
릴레이션 스키마와 인스턴스
- 릴레이션 스키마
- 릴레이션의 논리적 구조
- 릴레이션 의 이름과 릴레이션에 포함된 모든 속성의 이름으로 정의
- 릴레이션 스키마의 표기
- 릴레이션 이름(속성 1, 속성 2, 속성 3)
- 릴레이션 이름(속성 1: 도메인 1, 속성 2: 도메인 2)
- 릴레이션 인스턴스
릴레이션의 특징
- 속성의 원자성: 속성은 단일값만! 다중값은 분리하기
- 속성의 무순서성
- 속성의 동일성(나이 속성은 모두 정수형)
- 튜플의 유일성
- 튜플의 무순서성
관계 데이터 모델
- 데이터를 2 차원 테이블 형태인 릴레이션으로 표현
- 릴레이션에 대한 제약조건과 관계 연산을 위한 관계대수를 정의
- 관계 데이터베이스 시스템
- 관계 데이터 모델 을 컴퓨터 시스템에 구현한 것
- 관계 데이터 모델에 기초하여 SQL 을 기반으로 구현
2. 무결성 제약조건
키
- 키(key): 릴레이션에서 특정 튜플들을 유일하게 구별하는 속성 또는 속성들의 집합
- 키의 특성: 유일성(서로 다른 값을 가져라), 최소성(꼭 필요한 것만)
- 키의 종류
- 슈퍼키: 유일성을 만족하는 속성 또는 속성들의 집합
- 후보키: 유일성과 최소성을 만족하는 속성 또는 속성들의 최소집합(슈퍼키 중에 기본키 뺀 나머지)
- 기본키: 후보키 중에서 기본적으로 사용하기 위해 선택한 키
- 대체키: 기본키가 아닌 후보키
- 대리키: 인위적으로 만든 기본키 . 편의성과 안전성을 위해 사용 주민번호
- 외래키: 다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합
화살표가 시작되는 지점이 외래키(자식)
무결성 제약조건
- 무결성: 데이터에 결함이 없는 상태 , 즉 데이터가 정확하고 유효하게 유지된 상태
- 무결성 제약조건
- 도메인 무결성 제약조건
- 도메인 제약 : 릴레이션 내의 튜플들이 각 속성의 도메인에 지정된 값만 가져야 한다는 조건
- 개체 무결성 제약조건
- 기본키 제약 : 기본키는 NULL 값을 가져서는 안 되며 릴레이션 내에 오직 하나의 값만 존재해야 함 을 지켜야 한다는 조건
- 계속 확인하여 일관적이게!
- 참조 무결성 제약조건
- 외래키 제약 : 릴레이션 간의 참조 관계를 선언하는 제약조건 자식 릴레이션의 외래키는 부모 릴레이션의 기본키와 도메인이 같아야 하며 ,자식 릴레이션의 값이 변경될 때 부모 릴레이션의 제약을 받는다
- 부모에 없는 값을 자식이 참조하면 위반
3. 관계대수
관계대수
- 관계대수란? → 릴레이션에서 원하는 결과를 얻기 위해 릴레이션의 처리 과정을 순서대로 기술하는 절차적 언어
- 릴레이션을 처리하는 연산자들의 모임
집합 연산
- 일반 집합 연산자: 릴레이션이 튜플의 집합이라는 개념을 이용
- 두 릴레이션이 합병 가능해야함! (차수가 같고, 대응되는 속성의 도메인이 같아야)
- 추가적으로... 카티션 프로젝트란? → 두 릴레이션의 튜플을 모두 연결하여 만들어진 새로운 튜플을 반환
셀렉션과 프로젝션
- 순수 관계 연산자: 릴레이션의 구조와 특성을 이용하는 연산자
- 셀렉트: 릴레이션에서 조건을 만족하는 튜플만 추출하기 위한 연산자
- 수학적 표현 : σ 조건식(릴레이션)
- 데이터 언어적 표현 : 릴레이션 where 조건식
- 고객 릴레이션에서 등급이 gold이고, 적립금이 2000 이상인 튜플 검색
- 프로젝트: 릴레이션의 속성을 추출하기 위한 단항 연산자
- 수학적 표현 : 𝛑속성리스트(릴레이션)
- 데이터 언어적 표현 : 릴레이션[속성리스트]
- 조인: 두 릴레이션의 공통 속성 을 기준으로 속성값이 같은 튜플을 수평으로 결합하는 연산으로
기본 연산자의 조합으로 구현할 수 있는 유도된 연산자
- 동등조인
- 세타 조인 중에서 비교 연산자가 "같다" 인 경우로 가장 많이 쓰임
- 양쪽 테이블의 공통 컬럼이 모두 결과에 나타남
- 세타조인
- 조인 조건에 비교연산자를 자유롭게 사용
- 양쪽 테이블의 공통 컬럼이 모두 결과에 나타남
- 자연조인
- 동등조건에서 중복되는 조인 컬럼을 하나 제거하여 더 깔끔하게 보여주는 조인
- 외부조인
- 자연조인 연산을 확장된 관계 대수 연산자
- 자연조인에서 조인 조건에 맞지 않아 제외되는 튜플도 버리지 않고 NULL을 채워 반환
- 세미조인
- 자연조인 연산을 확장한 관계 대수 연산자
- 자연조인을 한 후 두 릴레이션 중 한 쪽 릴레이션의 결과만 반환함
- 디비전
- 다른 연산과 달리 릴레이션 속성값의 집합으로 연산을 수행함
- 조인을 사용한 후 릴레이션 2 의 모든 튜플과 관련이 있는 릴레이션1 의 튜플을 추출하는 연산으로 활용
- 표현법 : 릴레이션 1 ÷ 릴레이션 2
4. 관계대수 사용 예
B1, B2 속성값의 쌍이 같은 튜플만 조인함!
- 외부 조인 - 자연 조인 시 조인에 실패한 튜플을 모두 보여주되 대응 속성에 NULL로 채워서 반환
R2에 2 없으므로 빈칸을 NULL로