본문 바로가기
정보처리기사

5. 관계 데이터 모델 - 2과목 데이터 베이스 구축

by 공불러 2024. 4. 1.
728x90
반응형

5. 관계 데이터 모델 - 2과목 데이터 베이스 구축

지난 시간에는 클러스터, 뷰, 인덱스, 시스템 카탈로그에 대해 알아봤습니다. 물리 데이터 베이스 설계에서 정규화를 진행했는데도 성능 향상이 안되는 경우가 있습니다.

이때, 반정규화를 진행하면 되지만, 이게 녹록치 않을 때 위 방법들을 이용합니다.

이러한 설정들에 기반이 되는 관계 데이터베이스 모델에 대한 내용이 이번 내용입니다.

목차

    관계 데이터 모델이란?

    관계 데이터 모델은 데이터를 테이블 형식으로 구조화하고, 데이터 간의 관계를 표현하는 데 사용되는 데이터 모델입니다.

    이 모델에서 데이터는 테이블이라는 열과 행의 구조로 표현되며, 각 테이블은 고유한 이름을 가지고 있습니다.

    데이터 간의 관계는 테이블 간의 관계를 나타내는 키(Foreign Key)를 사용하여 정의됩니다.

    관계 데이터 모델 구조

    아래 구조명은 매우 기본적인 내용이기 때문에 반드시 알아야합니다. 정처기 시험 나왔는데 틀리면 안됩니다.

    구조명 설명
    카디널리티
    Cardinality)
    테이블에서 각 속성이 가질 수 있는 고유한 값의 개수를 나타냅니다.
    차수
    Degree)
    테이블의 열(컬럼)의 개수를 나타냅니다.
    튜플
    (Tuple)
    테이블에서 각 행에 해당하는 데이터의 집합을 의미합니다.
    도메인
    Domain)
    성별과 같이 특정 값의 범위가 제한된 속성에 대한 유효한 값의 집합을 나타냅니다.
    속성
    Attribute)
    테이블의 열(컬럼)에 해당하는 데이터의 특성을 나타냅니다.

    릴레이션이란?

    릴레이션 구조

    • 릴레이션 스키마 (Relation Schema): 릴레이션의 구조를 정의하는 것으로, 각 열(속성)의 이름과 데이터 유형 등을 명시합니다.
    • 릴레이션 인스턴스 (Relation Instance): 릴레이션 스키마에 따라 구성된 실제 데이터 집합을 나타냅니다. 즉, 릴레이션의 현재 상태를 의미합니다.

    릴레이션 특징

    • 튜플의 유일성 (Uniqueness of Tuples): 릴레이션 내의 각 튜플은 고유해야 합니다. 즉, 중복된 튜플이 없어야 합니다.
      • 기본키가 서로 다르므로 중복되는 튜플은 없음
    • 튜플의 무순서성 (Unorderedness of Tuples): 튜플은 순서에 의미가 없는 집합으로 간주됩니다. 즉, 튜플의 순서는 데이터에 영향을 미치지 않습니다.
    • 속성의 무순서성 (Unorderedness of Attributes): 속성은 순서에 의미가 없는 집합으로 간주됩니다. 따라서 속성의 순서는 데이터의 의미나 해석에 영향을 미치지 않습니다.
    • 속성의 원자성 (Atomicity of Attributes): 각 속성은 원자적인 값으로 구성되어야 합니다. 즉, 속성은 더 이상 분해되지 않는 단일 값이어야 합니다.
    • 튜플들의 삽입, 갱신, 삭제 작업이 실시간으로 일어나므로 릴레이션은 수시로 변한다.

    관계 데이터 언어(관계대수, 관계해석)

    관계 데이터 언어는 관계형 데이터베이스에서 데이터를 조작하고 관리하기 위해 사용되는 언어입니다. 주로 데이터의 쿼리, 정의 및 조작을 위해 사용됩니다.

     

    관계 대수 : 절차적 언어

    관계 해석 : 비절차적 언어

    관계 대수란?

    관계형 데이터베이스에서 데이터를 처리하고 질의하기 위한 절차적인 언어입니다.

    관계 대수는 관계형 모델의 기초를 이루는 수학적인 개념을 기반으로 하며, 데이터베이스 시스템의 내부 동작과 상관없이 데이터의 논리적인 구조를 다룹니다.

    순수 관계 연산자

    셀튜프열

    연산자 기호 조건 예시 조건에서 사용되는 기호 및 연산자
    SELECT σ σ(조건)(R) σ나이 > 30(학생)
    나이가 30이상인 학생만 가져옴
    주어진 조건을 만족하는 튜플 선택
    PROJECT π π(속성)(R) π이름, 성별(학생)
    학생테이블에서 이름과 성별을 가져옴
    조건에 만족하는 열(속성) 값을 가지고 옴
    속성의 목록이 사용됩니다.
    (예: π(이름, 나이)(R))
    JOIN R ⋈(조건) S (학생) ⋈학번 = 학번(수강과목)
    학생과 수강과목에서
    학번이 같은 것을 가져옴
    조인 조건을 표시하는 일반적인 기호 및 연산자 (=, <, >, 등등)
    DIVISION ÷ R ÷ S (R) ÷ (S1)
    R에 있는 것중 S1에 연관된것만 가져옴
    릴레이션 S의 모든 튜플과 관련이 있는 릴레이션 R 튜플들을 반환한다.

     

    순수관계 연산자에서 쓰이는 기호

    개념 기호/표기법 예시
    등호(Equality) = 나이 = 30
    부등호(Inequality) <, >, 나이 > 30
    부정(Negation) ¬ NOT 성별 = '여성' 또는 ~성별 = '여성'
    AND 나이 > 30 ∧ 성별 = '남성'
    OR 성별 = '남성' ∨ 성별 = '여성'
    부정 부등호(Negated Inequality) <> 또는 != 나이 <> 30

    일반 집합 연산자

    개념 기호 설명 예시
    합집합 두 개의 집합의 모든 요소를 포함한 집합
    중복 튜플을 제거
    A = {1, 2, 3, 4}, B = {3, 4, 5} => A ∪ B = {1, 2, 3, 4, 5}
    교집합 두 개의 집합에서 공통된 요소를 포함한 집합
    동시에 존재하는 것
    A = {1, 2, 3}, B = {3, 4, 5} => A ∩ B = {3}
    차집합 - 한 집합에서 다른 집합의 요소를 제외한 집합
    튜플 제거
    A = {1, 2, 3}, B = {3, 4, 5} => A - B = {1, 2}
    교차곱 × 두 개의 집합의 모든 조합을 포함한 집합
    모든 튜플의 조합
    2*2 = 4
    A = {1, 2}, B = {a, b} => A × B = {(1, a), (1, b), (2, a), (2, b)}

     

    관계해석이란?

    관계 해석은 관계 데이터 모델에서 사용되는 비절차적 언어 중 하나입니다.

    관계 해석은 관계 대수와 함께 관계형 데이터베이스의 쿼리 작성을 위해 사용됩니다.

    이 언어는 관계 대수의 확장으로 간주되며 일반적으로 더 직관적이고 간결한 구문을 제공합니다.

    처리면에선 관계 대수와 동일

    관계해석 연산자

    1. 연산자 기호
      • OR: ∨ (또는)
      • AND: ∧ (그리고)
      • NOT: ¬ (부정)
    2. 정량자 기호
      • 모든 가능한 튜플(For all): ∀ (모든)
      • 어떤 튜플 하나라도 존재: ∃ (존재)
    728x90
    반응형

    댓글