본문 바로가기
데이터베이스

The Relational Data Model

by kwon5346 2024. 4. 15.
반응형

Relational Model Concepts

  • 관계 모델은 데이터베이스를 relation들의 모임으로 표현한다.
  • relation은 값의 테이블로 볼 수 있다.
  • table의 각 행은 관련된 데이터 값들의 모임을 나타낸다.
  • table의 각 열은 각 행의 데이터 값들을 어떻게 해석할 것인가를 명시한다.
  • 행은 튜플(tuple)로, 열은 attribute로, table은 relation으로 부른다.
  • 각 행에는 각 행에는 테이블에서 해당 행을 고유하게 식별하는 데이터 항목의 값을 key라고 한다. STUDENT table에서 Ssn이 key.

Schema

예시 : CUSTOMER (Cust-id, Cust-name, Address, Phone#)

  • relation name: CUSTOMER
  • 4가지 attributes: Cust-id,Cust-name,Address,Phone
  • 각 attribute에는 domain 또는 유효한 값 집합이 있다.
  • 예를 들어, Cust-id의 domain은 6자리 숫자이다.

Tuple

예시 : <632895, "John Smith", "101 Main St. Atlanta, GA 30332", "(404) 894-2000">

  • 4개의 값을 가지므로 4-tuple이라고 한다.
  • 관계의 정도(or arity)는 해당 관계 스키마의 속성 n의 개수이다.
  • 관계는 이러한 튜플의 집합이다(튜플 간에는 순서가 없음).

Domain

예시 : “USA_phone_numbers” 는 미국에서 유효한 10자리 전화번호 집합이다.

  • 데이터 유형 또는 이에 대해 정의된 형식이 있다.
  • USA_phone_numbers의 형식은 (ddd)ddd-dddd(여기서 각 d는 십진수)일 수 있다.

예시 : Cust-name 속성은 최대 길이 25의 문자 문자열 도메인에 정의됩니다.

  • dom(Cust-name)은 varchar(25)이다.

State

  • relation state(관계 인스턴스)는 해당 속성의 도메인의 카티션 곱의 하위 집합이다.
    -각 도메인은 속성이 취할 수 있는 모든 가능한 값의 집합을 포함한다.

Formal Definitions - Example

R(a1,a2) be a realtion schema :

  • Let dom(A1) = {0,1}
  • Let dom(A2) = {a,b,c}

Then: dom(A1) X dom(A2) is all posssible combinations:

  • { <0,a>, <0,b>, <0,c>, <1,a>, <1,b>, <1,c> }

relation state r(R)은 dom(A1) X dom(A2)의 부분집합이다.

Difinition Summary


Characteristics of Relations

관계 r(R)에서 튜플의 순서

  • relation은 튜플들의 집합으로 구성된다.
  • 수학적으로 집합의 원소들 사이에는 순서가 없다. 따라서 관계에서도 튜플들은 특정 순서를 갖지 않는다.

튜플 내에서의 값들의 순서

  • n-tuple은 n개의 값의 순서 리스트이다.
  • 따라서 한 튜플 내에서의 값들의 순서는 중요하다.
  • 즉 릴레이션 스키마를 정의할때 애트리뷰트들의 순서가 중요하다.

튜플 내에서의 값들과 NULL

  • 튜플 내의 각 값은 원자값이다(더이상 나누어질 수 없다).
  • 튜플의 각 값은 해당 열에 대한 속성의 도메인에서 가져온 값이어야 한다.
  • 즉, 각 vi는 dom(Ai)의 값이어야 한다.
  • 특정 튜플에서 알 수 없거나 사용할 수 없거나 적용할 수 없는(정의되지 않은) 값을 나타내기 위해 특수한 null 값이 사용된다.

Constraints

제약 조건은 데이터베이스에서 허용되는 값과 허용되지 않는 값을 결정한다.
데이터베이스에서의 제약 조건은 크게 다음 세 가지로 구분된다.

  1. Inherent of Implicit Constraints(내제적 또는 함축적 제약조건)
    데이터 모델 자체에 존재하는 제약 조건.
  2. 스키마 기반 제약조건 또는 명시적 제약조건
    데이터 모델의 스키마에서 직접 표현 가능한 제약 조건.
    주로 DDL로 명시한다.
  3. application 기반 제약 조건 또는 의미적 제약 조건
    데이터 모델의 스키마에서 직접 표현이 불가능한 제약 조건.
    SQL 질의로 명시될 수 있다.

Relational Integrity Constraints

제약 조건은 모든 유효한 관계 상태에 대해 유지되어야 하는 조건이다.
관계 모델에서 표현할 수 있는 (명시적 스키마 기반) 제약 조건에는 세 가지 주요 유형이 있다

  • 키 제약 조건
  • 엔티티 무결성 제약 조건
  • 참조 무결성 제약 조건

또 다른 스키마 기반 제약 조건은 도메인 제약 조건이다.
튜플의 모든 값은 해당 속성의 도메인에 속해야 합니다(또는 해당 속성에 대해 허용되는 경우 null일 수 있음).

Key Constraints

Superkey of R

  • 릴레이션 스키마 R의 릴레이션 상태 r의 어떠한 두 튜플도 서로 다른 값들을 갖는 애트리뷰트들의 부분집합이 존재한다. 이러한 부분집합을 SK라고 표기할 수 있다.
  • 관계 상태 r(R)의 두 튜플은 SK에 대해 동일한 key attribute값을 가질 수 없다. 이 유일성 성질은 슈퍼키에도 적용된다.
  • 키는 최소의 슈퍼키(minimal superkey)이다. 즉, 슈퍼키 내의 어떤 애트리뷰트도 제거하지 않아야 유일성 제약 조건을 만족할 수 있따. 이 최소 성질은 key에는 필수적이지만 슈퍼키에는 선택적이다.

즉, 키는 슈퍼키이지만 슈퍼키는 키가 아닐 수 있다.
예를들면 STUDENT 릴레이션을 생각해보자. Ssn은 STUDENT 릴레이션의 Key이다. 그럼 Ssn을 포함하는 어떤 부분집합 {Ssn,Name,Age}도 슈퍼키가 될수 있다. 하지만 Name,Age가 없어도 여전히 슈퍼키가 되므로 STUDENT의 키가 아니다. 여러 개의 애트리뷰트들로 구성된 키는 유일성을 만족하기 위해 여러 애트리뷰트 모두가 꼭 필요하다.

  • 릴레이션 스키마는 하나 이상의 키를 가질 수 있다. 이 경우 각 key를 후보 키라고 한다.
  • 후보키들 중의 하나를 primary key(기본 키)로 지정한다.

  • 두개의 후보키: License_number, Engine_serial_number를 갖는 CAR relation.
  • primary key : LicenseNumber

Relational Database Schema and State

관계형 데이터베이스 스키마 S:

  • S = {R1, R2, ..., Rn} 및 무결성 제약 조건의 집합 IC이다.
  • R1, R2, ..., Rn은 데이터베이스 S 내의 개별 관계 스키마의 이름입니다.

S의 관계형 데이터베이스 상태 DB는 릴레이션 상태들의 집합이다.

  • 즉 DB = {r1, r2, ..., rm}의 집합.
  • 관계형 데이터베이스 스냅샷 또는 인스턴스라고도 합니다.
  • 인스턴스라는 용어는 단일 튜플에도 적용되므로 여기서는 사용하지 않는다.

COMPANY Database Schema

Populated database state for COMPANY

)

Entity Intergrity Constraint(엔티티 무결성 제약 조건)

  • 어떠한 기본키 값도 널 값이 될 수 없다.
  • 기본키 값이 널 값이면 튜플들을 식별할 수가 없기 때문이다.

Referential integrity constraint(참조 무결성 제약 조건)

  • 한 릴레이션에 있는 튜플이 다른 릴레이션에 있는 튜플을 참조하려면 반드시 참조되는 튜플이 그 릴레이션 내에 존재해야 한다는 것이다.
  • 예를 들어, 위 그림에서 EMPLOYEE 릴레이션의 Dno값은 DEPARTMENT 릴레이션의 어떤 튜플의 Dnumber값과 반드시 일치해야 한다.

외래키가 되기 위해서는 두 릴레이션 스키마 R1과 R2 사이의 참조 무결성 제약조건이 만족되어야 한다.

  1. FK의 애트리뷰트는 R2의 기본키 PK 애트리뷰트와 동일한 domain을 가진다.
  2. R1의 한 튜플 내의 FK값은 R2의 한 튜플 내의 PK값과 일치하거나 널값을 가져야 한다.

Other Types of Constraints

Semantic intergrity constraints(의미적 무결성 제약 조건)

  • 예시: 한 사원이 주당 모든 프로젝트에서 일할 수 있는 시간은 최대 56시간이다.

SQL에서 CREATE ASSERTION과 CREATE TRIGGER 문장이 이런 목적을 위해 사용된다.


Update Operations on Relations

릴레이션에 대한 기본 갱신 연산은 다음과 같은 세가지가 있다.

  • INSERT a tuple
    • 릴레이션에 새로운 튜플을 삽입
  • DELETE a tuple
    • 튜플 삭제
  • MODIFY a tuple
    • 기존의 튜플의 몇 개 애트리뷰트의 값을 바꾸는데 사용

업데이트 작업으로 인해 무결성 제약 조건이 위반되어선 안된다.

Possible violations for each operation

삽입 연산은4가지 종류의 제약 조건을 위반할 수 있다.

  • Domain constraint
  • Key constraint
  • Referential integrity
  • Entity integrity

삭제 연산은 참조 제약 조건만 위반할 수 있다.

  • 삭제되는 튜플이 데이터베이스의 다른 튜플에 의해 외래키로 참조되고 있는 경우

갱신(수정)연산은 기본키나 외래키가 아닌 애트리뷰트의 갱신에는 아무런 문제가 없다.

  • 외래키 애트리뷰트가 변경된다면 DBMS는 참조되는 릴레이션의 기존 튜플을 변경된 값이 참조되거나 NULL이 되도록 보장해야 한다.

반응형

'데이터베이스' 카테고리의 다른 글

More SQL  (0) 2024.04.22
Basic SQL  (0) 2024.04.16
Entity-Relationship Model  (0) 2024.04.09
Database System Concepts and Architecture  (0) 2024.04.08
Databases and Database Users  (0) 2024.04.07