독서/데이터베이스 개론 2판

[30분 요약] 데이터 모델과 연산

오렌지색 귤 2022. 3. 7. 22:42
반응형

데이터 모델링

 

 

데이터 모델링과 데이터 모델의 개념

 

데이터 모델링 : 현실 세계에 존재하는 데이터를 컴퓨터 세계의 데이터베이스로 옮기는 변환 과정, 추상화 작업이 필요하다

 

  • 개념적 모델링 : 현실 세계의 중요 데이터를 추출하여 개념 세계로 옮기는 작업
  • 논리적 모델링 : 개념 세계의 데이터를 데이터베이스에 저장할 구조를 결정하고 이 구조로 표현하는 작업

 

 

데이터 모델 : 데이터 모델링의 결과물을 표현하는 도구로 개념적 데이터 모델과 논리적 데이터 모델이 있다

 

  • 구성 요소
    - 데이터 구조 : 자주 변하지 않고 정적이다
    - 연산 : 값이 연산에 의해 변경될 수 있어 동적이다
    - 제약조건 : 구조적 측면의 제약 사항과 연산을 적용하는 경우 허용할 수 있는 의미적 측면의 제약 사항이 있다

 

  • 데이터베이스 설계 = 개념적 데이터 모델링 + 논리적 데이터 모델링
    - 개체 관계 모델 (E-R model)

 

 

 

 

개체 관계 모델, Entity Relationship Diagram

 

 

개체

 

정의 : 현실 세계에서 조직을 운영하는 데 꼭 필요한 사람이나 사물과 같이 구별되는 모든 것

 

특징 : 다른 개체와 구별되는 고유한 특성을 하나 이상 가지고 있다

 

E-R 다이어그램에서 사각형으로 표현한다

 

 

 

속성

 

정의 : 개체가 가지고 있는 고유의 특성, 의미 있는 데이터의 가장 작은 논리적 단위

 

E-R 다이어그램에서 타원으로 표현한다

 

 

 

분류

 

1. 속성 값의 개수

  • 단일 값 속성 : 특정 개체를 구성하는 속성의 값이 하나
  • 다중 값 속성 : 속성이 값을 여러개 가질 수 있는 경우
    • 한 사람은 여러 전화번호를 가질 수 있다

 

2. 의미의 분해 가능성

  • 단순 속성 : 의미를 더는 분해할 수 없는 속성
  • 복합 속성 : 의미를 분해할 수 있어 값이 여러 개의 의미를 포함
    • 주소 속성은 도, 시, 동, 우편번호 등으로 의미가 나눠진다

 

3. 기존 속성 값에서 유도

  • 유도 속성 : 값이 별도로 저장되지 않고 기존의 저장 속성 값이에 유도되어 결정되는 속성
    • 가격과 할인율으로 계산되는 판매가격
    • E-R 다이어그램에서 점선 타원으로 표현

 

4. 그 외 속성

  • 널 속성 : 아직 결정되지 않았거나 모르는 값, 공백이나 0과는 다르다
  • 키 속성 : 개체 집합에 존재하는 각 개체 인스턴스들을 식별하는 데 사용
    • E-R 다이어그램에서 밑줄을 그어 표현

 

 

 

 

관계

 

정의 : 개체와 개체가 맺고 있는 의미 있는 연관성, 즉 매핑을 의미한다

 

E-R 다이어그램에서 마름모로 표현한다

 

  1. 유형 (분류 기준 : 매핑 카디널리티)
    1. 일대일 관계
    2. 일대다 관계
    3. 다대다 관계
  2. 참여 특성
    1. 필수적 참여 관계 : E-R 다이어그램에서 이중선으로 표현
    2. 선택적 참여 관계
  3. 종속성
    1. 강한 개체 : 다른 개체의 존재 여부를 결정하는 개체
      • 약한 개체는 이중 사각형으로 표현
      • 약한 개체가 강한 개체와 맺는 관계는 이중 마름모로 표현약한 개체 : 다른 개체의 존재 여부에 의존적인 개체

 

 

일반적으로 강한 개체와 약한 개체는 일대다의 관계이며, 약한 개체는 강한 개체와의 관계에 필수적으로 참여한다

또한, 약한 개체는 자신의 키 속성(구별자, 부분키)에 강한 개체의 키를 포함하여 키를 구성한다

 

 

 

 


관계 데이터 모델

 

 

 

관계 데이터 모델의 개념

 

개념

 

  1. 속성 : 릴레이션의 열을 속성, attribute라고 한다
    • 릴레이션과 속성은 각각 파일 관리 시스템에서의 파일, 필드에 대응되는 개념
  2. 튜플 : 릴레이션의 행
    • 파일 관리 시스템 관점에서 레코드에 대응하는 개념
  3. 도메인 : 속성 하나가 가질 수 있는 모든 값의 집합
    • INT, CHAR(20) 등의 데이터 타입 제한으로 잘못된 연산 방지
  4. 널 값 : 특정 속성에 해당되는 값이 없음을 나타낸다
  5. 차수 : 하나의 릴레이션에서 속성의 전체 개수
    • 모든 릴레이션은 최소 하나 이상의 차수를 유지해야 하며, 일반적으로 자주 변하지 않는 정적인 특징이 있다
  6. 카디널리티 : 하나의 릴레이션에서 튜플의 전체 개수
    • 튜플이 없는 릴레이션이 존재할 수 있으며, 일반적으로 자주 변한다는 동적인 특징이 있다

 

 

 

릴레이션의 특성

 

  1. 튜플의 유일성 : 하나의 릴레이션에는 동일한 튜플이 존재할 수 없다
    • 적어도 key 값은 유일하게 구별 가능한 속성이어야 한다
  2. 튜플의 무순서 : 하나의 릴레이션에서 튜플 사이의 순서는 무의미하다
    • DB는 위치가 아닌 내용으로 검색되므로 순서가 중요치 않다
  3. 속성의 무순서 : 하나의 릴레이션에서 속성 사이의 순서는 무의미하다
  4. 속성의 원자성 : 속성 값으로 원자 값만 사용할 수 있다

 

 

 

키의 종류

 

  1. 슈퍼키 : 유일성의 특성을 만족하는 속성 또는 속성들의 집합
  2. 후보키 : 유일성과 최소성을 만족하는 속성 또는 속성들의 집합
  3. 기본키 : 여러 후보키 중에 기본적으로 사용할 하나의 키
    • 기본키 선택 기준
      1. 널 값을 가질 수 있는 속성은 배제
      2. 값이 자주 변경될 수 있는 속성은 배제
      3. 단순한 후보키를 기본키로 선택
  4. 대체키 : 기본키로 선택되지 못한 후보키의 집합
  5. 외래키 : 다른 릴레이션의 기본키를 그대로 참조하는 속성의 집합
    • 릴레이션 사이의 관계를 올바르게 표현하기 위해 필요하다

 

 

 

관계 데이터 모델의 제약

 

무결성 : 데이터에 결함이 없는 상태, 즉 데이터가 정확하고 유효하게 유지된 상태

 

무결성 제약조건의 주요 목적 : 데이터베이스에 저장된 데이터의 무결성을 보장하고, 데이터베이스의 상태를 일관되게 유지하는 것

 

보안이 권한이 없는 사용자로부터 데이터를 보호하는 것이라면, 무결성은 권한이 있는 사용자의 잘못된 요구에 의해 데이터가 부정확해지지 않도록 보호하는 것이다

 

 

두가지 기본 제약조건

 

  1. 개체 무결성 제약조건 (entity integrity constraint) : 모든 속성은 널 값을 가지면 안된다는 규칙
  2. 참조 무결성 제약조건 (referential integrity constraint) : 외래키는 참조할 수 없는 값을 가질 수 없다는 규칙

 

 

 

 


관계 데이터 연산

 

 

관계 데이터 연산의 개념

 

앞서 언긋했듯이 데이터 모델은 데이터 구조, 연산, 제약조건으로 구성된다

 

관계 데이터 모델에서 연산은 원하는 데이터를 얻기 위해 릴레이션에 필요한 처리 요구를 수행하는 것이다

  • 데이터에 대한 처리 요구를 일반적으로 질의 (query)라 한다

 

 

관계 데이터 연산에는 관계 대수, 관계 해석이 있다

  1. 관계 대수 (relational algebra) : 원하는 결과를 얻기 위해 데이터의 처리 과정을 순서대로 기술하는 절차 언어
  2. 관계 해석 (relational calculus) : 원하는 결과를 얻기 위해 처리를 원하는 데이터가 무엇인지만 기술하는 비절차 언어

 

Q. 관계 대수와 관계 해석은 상용화된 RDB에서는 실제로 사용되지 않는 개념적 언어인데도 공부해야 하는 이유는 무엇일까?

새로운 데이터 언어가 제안되면 해당 데이터 언어의 유용성을 검증해야 하는데 검증의 기준 역할을 하는 것이 관계 대수와 관계 해석이다.
관계 대수나 관계 해석으로 기술할 수 있는 모든 질의를 새로 제안된 데이터 언어로 기술할 수 있으면 관계적으로 완전(relationally complete)하다고 하고, 이를 통해 해당 언어가 어느 정도 검증됐다고 판단한다.

 

 

관계 대수

 

폐쇄 특성 (closure property) : 관계 대수의 피연산자, 결과 모두 릴레이션이다

 

 

대표적인 연산자 8개

 

  1. 일반 집합 연산자 (set operation) : 수학의 집합 연산자를 차용
    • 합집합
    • 교집합
    • 차집합
    • 카티션 프로덕트
  2. 순수 관계 연산자 (relational operation) : 릴레이션의 구조와 특성을 이용하는 것으로 관계 데이터 모델에서 새로 제시된 연산자
    • 셀렉트
    • 프로젝트
    • 조인
    • 디비전

 

 

일반 집합 연산자

 

제약조건

 

  1. 일반 집합 연산자는 연산을 위해 피연산자가 2개 필요
  2. 합집합, 교집합, 차집합은 피연산자인 2개의 릴레이션이 합병 가능(union-compatible) 해야 한다.
    • 카티션 프로덕트는 합병 가능 여부와 상관없이 연산 가능

 

합병 가능
두 릴레이션의 차수가 같다. 즉, 두 릴레이션은 속성 개수가 같다
2개의 릴레이션에서 서로 대응되는 속성의 도메인이 같다. 단, 도메인이 같으면 속성의 이름은 달라도 된다

 

 

모든 연산의 결과는 릴레이션이므로 중복 튜플이 존재하지 않도록 만들어진다

 

 

합집합, union

 

결과 릴레이션의 차수는 같으며, 카디널리티는 피연산자들의 튜플 개수를 더한 것과 같거나 적어진다

교환, 결합 법칙이 성립한다

 

 

 

교집합, intersection

 

결과 릴레이션의 차수는 같으며, 카디널리티는 피연산자 둘 중 어느 릴레이션의 카디널리티보다 크지 않다

교환, 결합 법칙이 성립한다

 

 

 

차집합, difference

 

결과 릴레이션의 차수는 같으며, 카디널리티는 A - B 일때 릴레이션 A의 카디널리티와 같거나 적다

교환, 결합 법칙이 성립하지 않는다

 

 

 

카티션 프로덕트, cartesian product

 

도메인이 다른 속성은 릴레이션이름.속성이름 형식으로 표기된다

 

결과 릴레이션의 차수는 피연산자들의 차수를 더한 것과 같으며, 카디널리티는 피연산자들의 카디널리티를 곱한 것과 같다

 

교환, 결합 법칙이 성립한다

 

 

 

 

순수 관계 연산자

 

select

 

릴레이션에서 주어진 조건을 만족하는 튜플만 선택해 결과 릴레이션을 구성하며, 수평으로 절단한 모양이다

 

조건식은 비교 연산자를 이용해 구성하며, 논리 연산자를 사용해 조건식을 더 복잡하게 구성할 수 있다

 

where 문을 이용한다

 

 

 

project

 

릴레이션에서 선택한 속성에 해당하는 값으로 결과 릴레이션을 구성하며, 수직적 부분집합을 생성하는 것과 같다

 

A[B, C] 와 같은 일반 데이터 언어의 형식으로 표현한다

 

 

 

join

 

릴레이션 하나로 원하는 데이터를 얻을 수 없어 관계가 있는 여러 릴레이션을 함께 사용해야 하는 경우 이용한다

 

조인 속성을 이용해 두 릴레이션을 조합하여 하나의 결과 릴레이션을 구성한다.

 

  • natural join (자연 조인) : 속성 값의 쌍이 같은 튜플만 조인 연산에 참여한다
  • theta join (세타 조인) : 주어진 조인 조건을 만족하는 두 릴레이션의 모든 튜플을 연결한 새로운 튜플로 결과 릴레이션을 구성한다
    • 세로 방향의 카티션 프로덕트 연산이라고 할 수 있다
  • equi join (동일 조인) : 세타 연산자가 =인 세타 조인이며, 일반 자연 조인의 결과와 달리 속성이 중복되어 나타난다.

 

 

 

division

 

R / S 연산에서 릴레이션 R이 릴레이션 S의 모든 속성을 포함하고 있어야 한다

 

 

 

 

확장된 관계 대수 연산자

 

  • semi join (세미 조인) : 뒷 릴레이션의 조인 속성으로만 프로젝트한 릴레이션을 앞의 릴레이션에 자연 조인하는 것이다
    • 결과적으로 뒷 릴레이션의 속성은 결과에 나타나지 않는다
    • 교환적 특성이 없으니 주의해야 한다
  • outer join (외부 조인) : 두 릴레이션에서 자연 조인 연산을 수행할 때 조인 속성 값이 같은 튜플이 상대 릴레이션에 존재하지 않아 조인 연산에서 제외된 모든 튜플을 결과 릴레이션에 포함시킨다
    • 주로 null 값으로 처리된다

 

 

 

 


PS

데이터베이스 개론 2판, 한빛아카데미, 김연희 저

반응형