데이터베이스

데이터베이스_02.관계 데이터 모델과 제약조건

강용민 2021. 10. 3. 21:46

관계 데이터 모델의 큰 장점

  1. 바탕이 되는 데이터 구조로서 간단한 테이블을 사용하고,
  2. 중첩된 복잡한 구조가 없고
  3. 관계 데이터 모델이전의 계층 데이터 모델, 네트워크 데이터 모델이 데이터를 레코드 위주로 처리를 했던 반면에 집합 위주로 데이터를 처리하고,
  4. 고급 언어인 sQL을 제공하고,
  5. 숙련되지 않은 사용자도 쉽게 이해할 수 있고,
  6. 트랜잭쳔 관리 기능을 제공한다는 것이다.
  7. 또한 표준 데이터베이스 응용에 대해 좋은 성능을 보이고,
  8. 다른 데이터 모델에 비해 이론이 잘 정립되었다. 특히 관계 데이터베이스 설계와 효율적인 질의 처리 면에서 뛰어난 장점을 갖는다.

 

2.1 관계 데이터 모델의 개념

동일한 구조의 관점에서 모든 데이터를 논리적으로 구성하며 선언적인 질의어를 통한 데이터 접근을 제공한다.

응용 프로그램들은 데이터베이스 내의 레코드들의 어떠한 순서와도 무관하게 작성된다.

 

목적

높은 데이터 독립성을 제공하는 것, 그리하여 사용자는 원하는 데이터만 명시하고, 어떻게 이 데이터를 찾을 것인가는 명시할 필요가 없다.

 

기본적인 용어

 

  • Relation - 2차원의 테이블, 정보는 행과 열들로 표현
  • 레코드, 투플(tuple) - Relation의 각 행, 릴레이션이 나타내는 엔티티의 특정 인스턴스에 관한 사실(값)들의 모임.
  • 속성(attribute) - Relation의 각 열
  • 도메인(domain) - 한 Attribute에 나타날 수 있는 값들의 집합
  • 차수(degree) - 한 relation에 들어 있는 attribute들의 수(행)
  • cardinality - relation의 tuple 수(열)

스키마와 인스턴스

relation schema(내포) - relation의 이름과 relation의 attribute들의 집합, 스키마는 릴레이션을 위한 틀

relation instance(외연) - relation에 어느 시점에 들어 있는 투플들의 집합.

 

릴레이션이름(에트리뷰트1, 에트리뷰트2, ..., 에트리뷰트N)

 

릴레이션 이름 다음에 릴레이션이 포함 하는 attribute들의 이름을 열거하는데,  기본 키 애트리뷰트에는 밑줄 표시를 한다.

 

2.2릴레이션의 특징

관게 데이터 모델에서 릴레이션은 투플들의 집합이기 떄문에 여러 가지 특성을 갖는다.

  • 각 릴레이션은 오직 하나의 레코드 타입만 포함한다.
  • 한 애트리뷰트 내의 값들은 모두 같은 유형이다.
  • 애트리뷰트들의 순서는 중요하지 않다.
  • 릴레이션이 투플들의 집합이기에 동일한 투플이 두 개 이상 존재하지 않는다.
  • 한 투플의 각 애트리뷰트는 원잣값을 갖는다. 즉, 값들의 리스트나 집합 등은 허용되지 않는다.
  • 릴레이션이 투플들의 집합이기에 투플들의 순서는 중요하지 않다.
  • 각 애트리뷰트의 이름은 한 릴레이션 내에서만 고유하다.
    따라서 한 릴레이션의 NAME이라는 애트리뷰트가 다른 릴레이션에서도 존재할 수 있으나, 한 릴레이션 내에는 NAME이라는 애트리뷰트가 두 개 이상 있을 수 없다.

릴레이션의 키

특정 투플을 검색하거나 다른 투플들과 연관시킬 수 있도록 하기 위해서 한 릴레이션 내의 각 투플을 그 투플의 애트리뷰트들의 값을 사용해서 고유하게 식별할 수 있어야 하는데 그 해답이 키다.

키 - 각 투플을 고유하게 식별할 수 있는 하나 이상의 애트리뷰트들의 모임

릴레이션의 키는 여러 가지 종류로 구분한다.

  • 수퍼 키 - 한 릴레이션 내의 특정 투플을 고유하게 식별하는 하나의 애트리뷰트 또는 애트리뷰트들의 집합 (ex: 신용카드번호, 주민등록번호)
  • 후보 키 - 각 투플을 고유하게 식별하는 최소한의 애트리뷰트들의 모임. 즉, 후보 키를 구성하는 애트리뷰트들 중에서 어느 한 애트리뷰트라도 빼면 고유하게 식별하는 능령을 상실
  • 기본 키 - 한 릴레이션에 후보 키가 두 개 이상 있으면 이들 중에서 하나를 기본 키로 선정한다. 후보 키가 하나면 해당 후보 키가 기본 키가 된다.
  • 대체 키 - 기본 키로 선정되지 않은 후보 키
  • 외래 키 - 어떤 릴레이션의 기본 키를 참조하는 애트리뷰트, 릴레이션들 간의 관계를 나타내기 위해서 사용

2.4 무결성 제약조건

데이터 모델은 데이터 구조, 연산자, 데이터 무경성의 세가지 구성요소를 갖는다.

데이터 무결성 - 데이터의 정확성 또는 유효성

무결성 제약조건의 목적은 일관된 데이터베이스 상태를 정의하는 규칙들을 묵시적으로 또는 명시적으로 정의하는 것이다.

더보기

무결성 제약조건의 장점은 스키마를 정의할 떄 일관성 조건을 오직 한 번만 명시하고, 데이터베이스가 갱신될 때 DBMS가 자동적으로 일관성 조건을 검사하므로 응용 프로그램들은 일관성 조건을 검사할 필요가 없다.
예를 들어, DBMS에 무결성 제약조건으로 은해의 고객 릴레이션에 잔고(balance) >= 0이라는 무결성 제약조건을 정의하면 응용 프로그래머들은 잔고가 0보다 작아지는 경우를 검사하는 문장을 프로그램에 나타낼 필요가 없다.

도메인 제약조건

가장 간단한 형태의 제약조건으로, 각 애트리뷰트 값이 반드시 원잣값이어야 하며, 데이터 형식을 통해 값들의 유형(정수,실수형등)을 제한하고, 애트리뷰트의 디폴트 값을 지정하고, 애트리뷰트에 저장되는 값들의 범위를 제한할 수 있다.

 

키 제약조건

키 애트리뷰트에 중복된 값이 존재해서는 안 된다는 것

 

기본 키와 엔티티 무결성 제약조건

릴레이션의 기본 키를 구성하는 어떤 애트리뷰트도 널(null)값을 가질 수 없다.

기본 키는 투플들을 고유하게 식별하고, 효율적으로 빠르게 접근하는 데 사용되는데, 널값을 가지면 구별할 수 없기 떄문이다.

 

외래 키와 참조 무결성 제약조건

두 릴레이션의 연관된 투플들 사이의 일관성을 유지하는 데 사용된다.

  • 외래 키의 값은 R1의 어떤 투플의 기본 키 값과 같다.
  • 외래 키가 자신을 포함하고 있는 릴레이션의 기본 키를 구성하고 있지 않으면 널값을 가진다.

 

참고 : ORACLE을 기반으로 하는 데이터베이스 배움터