20. 관계 DB 모델
관계 데이터 모델
개념
데이터의 논리적 구조가 테이블 형태의 평면 파일로 표현되는 데이터 모델
테이블 형식을 이용하여 데이터를 정의하고 설명한 모델
릴레이션의 구조
Attribute
릴레이션의 각 열
데이터를 구성하는 가장 작은 논리적인 단위
개체의 특성을 기술
속성의 수 = Degree = 차수
Tuple
릴레이션의 행
속성들의 모임으로 구성
튜플의 수 = Cardinality = 기수
Domain
하나의 속성이 가질 수 있는 같은 타입의 모든 값의 집합, 각 속성의 도메인은 원자값을 가짐
성별은 남, 여를 가질 수 있고, 학년은 1~4를 가질 수 있음
속성 값에 도메인을 정해두면, 정해진 값 외에 다른 값이 삽입 될 수 없으므로 무결성이 유지
Degree
- 하나의 릴레이션에서 속성의 전체 개수
Cardinality
- 하나의 릴레이션에서 튜플의 전체 개수
Relation
- 데이터들을 2차원 테이블의 구조로 저장한 것
구성
릴레이션 스키마- 릴레이션 이름과 릴레이션에 포함된 모든 속성의 이름으로 정의하는 릴레이션의 논리적인 구조
릴레이션 인스턴스- 릴레이션 스키마에 실제로 저장된 데이터의 집합
특징
튜플의 유일성- 릴레이션 안에는 똑같은 튜플이 존재할 수 없음
튜플의 무순서성- 튜플 사이에는 순서가 없음
속성의 무순서성- 속성 사이에는 순서가 없음
속성의 원자성- 속성은 더 이상 분해할 수 없는 원자값만 가짐
- 튜플들의 삽입, 갱신, 삭제작업이 실시간으로 일어나므로 릴레이션은 수시로 변함
관계데이터 언어(관계대수, 관계해석)
관계대수
원하는 데이터를 얻기 위해, 데이터를 어떻게 찾는지에 대한 처리 과정을 명시하는 절차적인 언어
질의에 대한 해를 구하기 위해 수행해야 할 연산의 순서를 명시
릴레이션 조작을 위한 연산의 집합으로 피연산자와 결과가 모두 릴레이션
일반 집합 연산과 순수 관계 연산으로 구분
기본적으로 관계해석과 관계대수는 관계 DB를 처리하는 기능과 능력 면에서 동일
순수 관계 연산자
SELECT
릴레이션에서 주어진 조건을 만족하는 튜플을 선택하는 연산자
기호 : σ (시그마)
표기법 : σ <조건> (R)조건>
조건에서는 =, ≠, <, ≤, >, ≥ 등의 기호를 사용한 비교 연산이 허용
AND(∧), OR(∨), NOT(¬) 등의 논리 연산자를 사용
PROJECT
주어진 릴레이션에서 속성 리스트에 제시된 속성 값만을 추출하는 연산자
기호 : π (파이)
표기법 : π <리스트> (R)리스트>
JOIN
두 개의 릴레이션으로부터 연관된 튜플들을 결합하는 연산자
기호 : ⋈ (보타이)
표기법 : R ⋈ <조건> S조건>
DIVISION
릴레이션 S의 모든 튜플과 관련이 있는 릴레이션 R의 튜플들을 반환
기호 : ÷ (나누기)
표기법 : R ÷ S
일반 집합 연산자
합집합 | Union
두 릴레이션에 존재하는 튜플의 합집합을 구하되, 결과로 생성된 릴레이션에서 중복되는 튜플은 제거
표기법 : ∪
교집합 | Intersection
두 릴레이션에 존재하는 튜플의 교집합을 구현하는 연산
표기법 : ∩
차집합 | Difference
두 릴레이션에 존재하는 튜플의 차집합을 구하는 연산
표기법 : -
교차곱 | Cartesian Product
두 릴레이션에 있는 튜플들의 순서쌍을 구하는 연산
표기법 : X
관계 해석
관계 데이터 모델의 제안자인 코드(E, F, Codd)가 수학의 Predicate Calculus(술어 해석)에 기반을 두고 관계 DB를 위해 제안
관계해석은 관계 데이터의 연산을 표현하는 방법으로, 원하는 정보를 정의할 때 계산 수식을 사용
관계 해석은 원하는 정보가 무엇이라는 것만 정의하는 비절차적 특성
튜플 관계 해석과 도메인 관계 해석이 있음
질의어로 표현
관계 해석과 관계 대수는 관계 DB를 처리하는 기능과 능력 면에서 동등
연산자
∨ : OR 연산
∧ : AND 연산
¬ : NOT 연산정량자
∀ : 모든 가능한 튜플 ‘FOR ALL’
∃ : 어떤 튜플 하나라도 존재
시스템 카탈로그
개념
DB관리자의 도구로, DB에 저장되어 있는 모든 데이터 개체들에 대한 정의나 명세에 대한 정보가 수록되어 있는 시스템 테이블
Data Dictionary라고도 함
DDL의 결과로 구성되는 기본 릴레이션, 인덱스, 뷰, 사용자, 접근 권한 등의 DB 구조 및 통계 정보가 저장
저장된 내용을 메타데이터라고 함
사용자와 DBMS의 접근이 가능
내용
릴레이션 관련 정보
이름
저장된 파일 이름과 파일 구조
속성들에 대한 속성 이름과 타입(도메인)
정의된 각 인덱스의 이름
정의된 무결성 제약 조건
인덱스 관련 정보
이름
구조
키에 대한 정보
뷰에 관련 정보
이름
정의
소유자
통계 관련 정보
릴레이션 카디널리티 : 각 릴레이션에 저장된 레코드 수
인덱스 카디널리티 : 각 인덱스에 저장된 레코드 수
인덱스 높이 : 각 트리 인덱스에 대한 레벨
인덱스 범위 : 각 인덱스에 대한 최소 키 값과 최대 키 값
사용자 관련 정보
계정 정보
권한 정보
특징
시스템 카탈로그 자체도 시스템 테이블로 구성되어 있어 사용자가 SQL문을 이용하여 내용을 검색해 볼 수 있음
DBMS에 의해 생성되고 유지
사용자가 시스템 카탈로그를 직접 갱신하는 것은 허용되지 않음
구성요소
SYSTABLES : 기본 테이블 및 뷰 테이블의 정보를 저장하는 테이블
SYSCOLUMNS : 모든 테이블에 대한 정보를 열(속성) 중심으로 저장하는 테이블
SYSVIEW : 뷰에 대한 정보를 저장하는 테이블
SYSTABAUTH : 테이블에 설정된 권한 사항들을 저장하는 테이블
SYSCOLAUTH : 각 속성에 설정된 권한 사항들을 저장하는 테이블