포스트

20. 관계 DB 모델

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 : 각 속성에 설정된 권한 사항들을 저장하는 테이블

이 기사는 저작권자의 CC BY-NC 4.0 라이센스를 따릅니다.