기초 물방울/데이터베이스

데이터 모델(튜플,릴레이션...), 관계 대수/해석(수업) #2

Weeding 2022. 7. 11. 20:15
반응형
SMALL

데이터 모델 D

  • S, O, C
  • Structure(구조), Operation(연산), Constraint(제약조건)
  • ex) 정수(Integer)
    구조 : ..., -2 -1 0 1 2, ...
    연산 : 사칙연산(+,-,x,/)
    제약조건 ↓

제약조건

 

 

 

구조

  • 데이터의 정적인 성질
  • 개체 타입과 이들 간의 관계를 표현

 

 

연산

  • 데이터의 동적인 성질
  • 개체를 처리하는 작업에 대한 명세, 데이터 조작 기법

 

 

제약조건

  • 데이터의 논리적 제약
  • 데이터 조작의 한계를 표현한 규정

 

 

 


 

 

데이터베이스의 구성 요소

1. 개념적 구조

  • 사용자 입장에서의 구성 요소
  • ex) 데이터베이스 = {개체,관계}
  • 개체 (Entyty)
    - 표현하고자 하는 현실 세계에 존재하는 유/무형의 객체
    - 반드시 물질적으로 존재할 필요는 없음. -> ex) 수강신청, 계약
    - 데이터베이스에 표현되는 정보의 단위
    - 개체는 하나 이상의 속성(Attribute)로 구성
    - 파일 시스템의 레코드(Record)에 대응되는 개념
    - 개체 집합(Entity Set) <-> 개체 인스턴스(Entity Instance)
  • ** 속성 : 데이터의 가장 작은 논리적인 단위 / 물리적인 단위 : Bit

  • 개체 타입(Entity Type)
    - 개체 집합에 속한 개체 인스턴스들이 공통으로 가지는 특징(구조)

  • 관계(Reationship)
    - 개체들 사이에 존재하는 연관성
    - ex) 교수와 학생 사이에는 지도 관계 / 신랑과 신부 사이에는 결혼 관계

 

 

 

2. 논리적 구조

  • 컴퓨터가 처리할 수 있는 데이터 모델!
  • 컴퓨터가 인식하고 처리할 수 있는 데이터의 논리적 구조
  • 데이터베이스 관리 시스템과 사용자가 공통으로 인식하는 구조
  • -> 데이터의 논리적 배치와 구성을 나타냄
  • 데이터베이스는 주로 관계형 데이터 모델에 기반함
  • 최근 데이터베이스 관리 시스템들은 "객체 관계형 모델"을 사용

객체관계형 모델 데이터베이스 = ORDBMS

 

 

 

 

3. 물리적 구조

  • 저장 미디어에서 본 데이터의 물리적 배치 및 구성
  • 하드 디스크, SSD, DVD와 같은 저장 미디어에서 본 데이터의 물리적인 배치 및 구성
  • 컴퓨터 위주의 표현 방식으로 저장 장치에 저장된 데이터의 "실제 구조 및 접근 방법"
  • 일반 사용자나 응용 프로그래머들은 물리적 구조를 "인지하거나 파악하지 못함"

 

 

데이터베이스 구성 시 유의사항

  • 데이터베이스의 논리적 구조는 "사용자가 숙지"하고 있어야 함
  • 물리적 구조는 일반 사용자가 숙지할 필요는 없음
  • 논리적 구조와 물리적 구조 사이의 "도표화(Mapping)는 데이터베이스 관리 시스템이 지원함"
  • 데이터 종속성의 해결 -> 데이터 독립성

 

 

 


 

 

관계형 데이터 모델

  • Relational Data Model
  • 데이터베이스에서 "가장 많이" 쓰이고 있는 논리적 모델
  • 단순한 모델 구조
  • 수학적 이론(집합론(Set Theory))에 기반한 모델의 강건(Sound)함
  • SQL이라는 간단한 비절차적 언어로 쉬운 데이터 처리 가능!

 

 

집합론

  • 창시자 : 독일 수학자 칸토어
  • 우리의 직관 또는 사고의 대상 중에서 "확정"되어 있고 "서로 명확히 구별" 되는 것들의 모임
  • 구체적/객관적 기준에 의해 원소를 명확히 구분 가능해야 함.
    -> 집합을 구성하는 원소 : 집합 내에서 유일하게 식별 될 수 있어야 함.
  • 논리적인 개념도 집합의 구성 요소가 될 수 잇음.
    -> 눈으로 보거나 손으로 만질 수 없더라도 첫 번째 조건을 충족하는 개념이라면 이 역시 집합이 될 수 있음!

 

 

집합 

  1. 군집(Colleciton) 
    - "동일한 유형"의 원소들이 모여 있는 군집 (=타입이 같다)
    - 하위 타입 : Set, Bag, List, Array

  2. Set (집합)
    - 원소의 "중복 불가"
    - 원소들 간의 순서 없음
    ex) {1,2,3} = {3,1,2} ≠ {1,2,2,3}

  3. Bag (또는 Multi-Set)
    - 원소의 "중복 허용"
    - 원소들 간의 순서 없음
    ex) {1,2,2,3} = {3,1,2,2}

  4. list
    - 원소의 중복 불가
    - 원소들 간의 "순서 있음"
    ex) {1,2,3} ≠ {3,1,2}

  5. Array
    - 원소의 중복 허용
    - 원소들 간의 "순서 있음"

예시본

 

 

 

관계형 데이터 모델의 구성요소

  1. 구조
    - 릴레이션(또는 테이블)

  2. 연산
    - 관계 대수(Relational Algebra)
    - 관계 해석(Relational Calculus)

  3. 제약조건
    - 무결성(Integrity) 제약조건

 

 

 

 

릴레이션

1. 관계형 데이터 모델의 구조(Structure)

  • 2차원 테이블 구조
  • 테이블의 행(Row) : 튜플(Tuple)
  • 릴레이션은 튜플들의 집합 (-> 중복x , 순서x)
  • 개념적 모델의 개체(Entity)가 관계형 모델에서 한 튜플에 대응됨
  • 개념적 모델의 관계(Relationship)도 관계형 모델에서 한 튜플에 대응됨

  • 테이블의 열(Column) : 속성(Attribute)
  • 도메인 (Domain) = 한 속성이 가질 수 있는 값의 범위!

 

 

 

2. 속성(Attribute)

  • 관계형 데이터 모델에서 데이터의 가장 작은 논리적 단위
  • 관계형 모델에서는 이 데이터 값들을 더 분해하려고 해도 더 분해할 수 없는 원자 값(Atomic Value)만을 허용
  • -> 원자 값은 아무런 내부적 구조를 지니고 있지 않음!

 

 

3. 도메인(Domain)

  • 하나의 속성이 취할 수 있는 값들의 집합
  • 도메인과 속성의 관계는 프로그래밍 언어에서 "타입과 변수에 비유"
  • 어떤 데이터 타입으로 선언된 변수는 언제 어느 때고 그 선언된 데이터 타입의 값만을 가짐!
    ex) int x -> 변수 x는 정수형 값만을 가진다.
  • 속성 정의시 도메인도 함께 명세함으로써 실제 속성이 지니는 값이 합법적인지 아닌지를 데이터베이스 관리 시스템(DBMS)을 통해 검사 가능!

  • 어떤 릴레이션 R이 n개(=속성이 n개)의 도메인 D1, D2, ..., Dn으로 구성될 때

릴레이션 R은 릴레이션 스키마와 릴레이션 인스턴스로 구성

 

 

 

4. 수학적 정의

 

  • X : 카티션 프로덕트(Cartesian Product)
    - 집합론에서 사용되는 곱셈 연산
    - 두 집합에 속한 원소들을 이용하여 모든 가능한 쌍 만들기

학년 = {1,2,3,4}     //    학과 = {컴공,전자,기계}

 

 

 

  • t ∈R : t를 릴레이션 R에 속한 한 튜플이라고 가정한 경우

 

 

 

 

5. 릴레이션의 특성

  1. 튜플의 유일성
    - 릴레이션은 튜플의 집합
    - 집합은 "중복을 허용하지 않음"

  2. 튜플의 무순서성
    - 릴레이션은 튜플의 집합
    - 집합에서 "원소들 간의 순서는 없음"

  3. 속성의 무순서성
    - 스키마는 속성들의 집합

  4. 속성의 원자성(Atomicity)
    - 속성 값은 원자 값
    - **원자(Atom) : 더 이상 쪼갤 수 없는 "물질의 최소 단위"

    - 속성은 개체를 구성하는 가장 작은 논리적 단위
    - **논리적으로 더 분해할 수 없음

    - 한 릴레이션에 나타난 속성값은 논리적으로 더 이상 분해될 수 없는 원자값!
    - **처리상의 단위 값 : Unit Value

    - 이 성질의 근본적인 의미 : 튜플의 속성값은 하나의 값만을 허용 ★
    - ** 반복 그룹, 즉 값의 집합은 허용하지 않음
    - ** 반복 그룹을 허용하지 않는 릴레이션 : 정규화 릴레이션(Normalized Relation)
    - 관계형 데이터 모델은 이 정규화 릴레이션만을 취급합! 

 

 

 

 

1. 속성 (Attribute) 

학번, 이름, 학과명, 성별, 성적

 

2. 도메인

성별 속성의 도메인은 남, 녀

 

3. 차수

학번, 이름, 학과명, 성별, 성적 = 총 5개

 

4. 튜플

첫번째 행의 20051201 김철수 컴퓨터 남 85 = 하나의 튜플

 

5. 카디널리티

튜플의수 = 5개

 

6. 릴레이션

테이블 = 중복된 튜플 x / 중복된 속성 x

 

 


 

 

관계 대수와 관계 해석

  • 릴레이션을 조작하기 위한 연산

 

 

관계 해석

  • Relational Calculus
  • 관계 대수로 명시할 수 있는 모든 검색 요구는 관계 해석으로도 명시할 수 있으며, 그 역도 성립됨이 증명됨
  • --> 두 언어의 표현력(Expression Power)은 동등

  • 관계형 데이터베이스의 표준 질의 언어 : SQL
  • --> 관계 해석(튜플 관계 해석)을 기반으로 만들어짐.
  • --> 무엇(What)만을 기술

  • 관계형 데이터베이스 내에서 SQL을 처리하는 방법
  • --> 관계 대수를 기반으로 함
    --> 어떤 순서로 처리하는지가 중요해 짐 --> 질의 최적화

  • 관계 해석의 기반 : 수학의 술어해석(Predicate Calculus)
  • 관계 해석의 제안 : 데이터베이스 언어의 기초로 사용되기 위해 코드(E.F. Codd)박사에 의하여 제안

 

 

튜플 관계 해석

  • 튜플 변수(Tuple Variable)를 명시
  • 튜플 변수의 범위 : 릴레이션
    -> 튜플 변수는 주어진 릴레이션의 어떤 튜플도 값으로 가질 수 있음!
  • 형태

 

ex) 성적이 3.5 이상인 학생을 구하는 튜플 해석식

  • 튜플 관계 해석식에서 명시해야 하는 것
    1. 각 튜플 변수 t의 범위 릴레이션
    2. 튜플들을 특정 조합들로 선택하기 위한 조건
    3. 검색 속성들의 집합

 

  • 일반적인 튜플 관계 해석식

 

 

WFF

  • 원자(Atom)들로 구성된 식
  • 원자(Atom)
    - R(t)형태 : 튜플 변수와 대응되는 범위 릴레이션

  • 원자는 WFF
  • F(어떠한 식)가 WFF이면 (F)와  ¬(not을 뜻함)F도 WFF
  • F와 G가 WFF이면 F and G와 F or G도 WFF
  • F(t)가 WFF이면 ∀t(F(t))와 ∃t(F(t))도 WFF

 

자유 변수와 한정 변수

 

 

 

튜플 관계 해석 예시

예시 1 : 학번이 100번인 학생의 이름, 주소를 검색하시오

  • 해당 질의에 대한 튜플 해석식이 오직 하나만 있는 것은 아님
  • 같은 결과를 얻을 수 있는 많은 식이 있음.

ex) 1+1 = 1-1+2 = 1/1+1 = ....

 

 

 

예시 2 : 컴퓨터공학과에 속한 모든 학생의 이름과 학번을 구하시오.

  • 해당 질의에 학생 릴레이션은 학과번호를 속성으로 가짐
  • 학과 릴레이션에 학과명과 학과번호가 있음.

 

 


 

 

도메인 관계 해석

  • 튜플 관계 해석을 기반으로 한 언어인 SQL은 IBM 산호세연구소에서 개발
  • 도메인 관계 해석을 기반으로 한 QBE가 IBM 왓슨연구소에서 개발
  • 도메인 해석과 튜플 해석은 "사용되는 변수의 유형만 다를 뿐" 유사함
  • 도메인 해석에서 변수의 범위는 튜플이 아니라 "속성의 도메인에 속한 값"

==> 질의 결과로 차수가 n인 릴레이션을 생성하기 위해서는, 각 속성 마다 하나씩 총 n개의 도메인 변수(Domain Variable)이 필요함.

 

  • 도메인 해석과 튜플 해석 : 사용되는 변수의 유형만 다를 뿐 유사함
  • 도메인 해석에서 변수의 범위 : 속성의 도메인에 속한 값

==> 질의 결과로 차수가 n인 릴레이션을 생성하기 위해서는 각 속성 마다 하나씩 총 n개의 도메인 변수가 필요함!

 

 

 

 

도메인 관계 해석식

 

 

  • 원자식이  필요함

 

 

 

 

WFF(Well Formed Formula)

  • 원자는 WFF
  • F가 WFF이면 (F)와 ¬F도 WFF
  • F와 G가 WFF이면 F and G와 F or G도 WFF
  • F(x)가 WFF이면 ∀x(F(x))와 ∃x(F(x))도 WFF

 

ex) 컴퓨터공학과에 속한 모든 학생의이름과 학번을 구하시오.

  • 학생 릴레이션은 학과번호를 속성으로 가짐
  • 학과 릴레이션에 학과명과 학과번호가 있음

 

 


 

 

QBE

  • Query By Example
  • 2차원 그래픽 터미널 이용
  • MS-ACCESS에서 QBE를 지원
  • Microsoft 사에서 제공되는 데이터베이스 관리용 애플리케이션
    - 간단하고 편리한 기능 제공
    - 초보 사용자가 데이터베이스를 구축, 관리에 용이함

 

 

 

MS-ACCESS의 쿼리 디자인 기능

 

  • 고객관리 테이블에서 성별이 "남"인 고객의 정보를 검색

 

 

  • 고객관리 테이블에서 성별이 "여"이고 고객번호가 3보다 큰 고객 정보를 검색

 

 

 

다중 테이블 검색

  • 상품목록 테이블과 판매관리 테이블을 이용하여 각 판매정보에 상품명을 표시

*의 의미는 판매관리 모든 속성 

 

 

 


 

 

관계 대수

  • Relational Algebra
  • 관계 해석은 "질의"를 나타내기 위한 "선언적 표기법"
  • 관계형 모델에서의 "기본적인 연산들의 집합"
  • 관계 대수의 중요성
    1. 관계형 모델의 연산을 위한 공식적인 토대를 제공
    2. DBMS에서 질의를 구현하고 최적화 하기 위한 기반
    3. 관계 대수의 몇 가지 개념은 SQL 표준 질의에 반영됨

 

 

 

관계형 모델에 기반한 분류 / 피연산자의 수에 따른 분류

릴레이션 = 튜플들의 집합 , 기본적으로 집합 이론에서 왔기에 수학적 연산 기호가 있음.

 

 

 

단항 연산자

  • 셀렉트 연산
    - 릴레이션에 선택 조건을 기술하여 "조건을 만족하는 튜플들을 선택"하는데 사용하는 연산
  • 프로젝트 연산
    - 릴레이션에서 "특정 속성들만을 선택"하는 연산

 

이항 연산자 

  • 합집합, 교집합, 차집합, 카티션 곱
    - 릴레이션은 튜플들의 집합
    - 따라서 "집합 연산자를 사용 가능"
  • 조인
    - 두 릴레이션으로부터 "관련된 튜플들을 결합"하여 하나의 튜플로 만듦

 

 

폐쇄 성질 (Closure Property)

  • 피연산자와 연산자의 결과가 같은 자료형
  • 피연산자(Operand) = 연산에 참여하는 자료
  • 연산자(Operator) = 자료를 처리하는 방법
  • 모든 연산자가 폐쇄 성질을 가지는 것은 아님!

 

폐쇄 성질의 특징

  • 관계 대수의 모든 연산은 릴레이션에 대하여 폐쇄 성질을 지님
    - 어떤 릴레이션에 관계 대수 연산을 수행하면 그 결과도 릴레이션(튜플의 집합) 임
  • 관계 대수는 "질의 처리의 대상(What)과 절차(How)를 나타냄!
    - 폐쇄 성질이 없으면 절차를 자유스럽게 표현하기 어려움
  • 폐쇄 성질에 따라서 "연산자의 중첩(Nesting) 순서" 를 표현
    - 연산자 3(연산자2(연산자1(릴레이션))) -->> 릴레이션

 

 

셀렉트

  • 릴레이션에 선택 조건을 기술하면 조건을 만족하는 튜플들을 선택하는데 사용

 

조인

  • 두 릴레이션으로부터 관련된 튜플들을 결합하여 하나의 튜플들로 만듦

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형
LIST