관계데이터모델링

박민주·2024년 1월 12일
0

[cs]-DB

목록 보기
4/8

데이터베이스 설계단계

데이터 베이스 설계

  • 사용자의 다양한 요구사항을 고려하여 데이터베이스를 생성하는 과정
  • E-R모델과 릴레이션 변환규칙을 이용한 설계의과정

관계 데이터 모델의 기본개념

  • 개념적 구조를 논리적 구조로 표현하는 논리적 데이터 모델
  • 하나의 개체 대한 데이터를 하나의 릴레이션에 저장

관계 데이터 모델의 기본용어

  • 릴레이션
    - 하나의 개체 관한 데이터를 2차원 테이블의 구조로 저장한 것
    - 파일 관리 시스템 관점에서 파일에 대응
  • 속성
    - 릴레이션의 열, 애트리뷰트
  • 튜플
    - 릴레이션의 행
  • 도메인
    - 하나의 속성이 가질 수 있는 모든 값의 집합
    - 속성값을 입력 및 수정할때 적합성의 판단 기준이 된다.
    - 일반적으로 속성의 특성을 고려한 데이터 타입으로 정의
  • 널(null)
    - 속성 값을 아직 모르거나 해당되는 값이 없음을 표현
  • 차수(degree)
    - 하나의 릴레이션에서 속성의 전체개수
    예) 고객 릴레이션의 차수 : 6
  • 카디널리티(cardinality)
    - 하나의 릴레이션에서 튜플의 전체개수. 실제값의 개수
    예) 고객 릴레이션의 카디널리티 : 4

릴레이션의 구성

  • 릴레이션 스키마
    - 릴레이션의 논리적 구조
    - 릴레이션의 이름과 릴레이션에 포함된 모든 속성이름으로 정의
    예) 고객(고객아이디, 고객이름, 나이, 등급, 직업, 적립금)
    - 릴레이션 내포라고도 함
    - 정적인 특징이 있음.
  • 릴레이션 인스턴스
    - 어느 한 시점에 릴레이션에 존재하는 튜플들의 집합
    - 릴레이션 외연이라고도함
    - 동적인 특징이 있음

관계 데이터 모델의 개념

데이터베이스의 구성

  • 데이터베이스 스키마
    - 데이터베이스의 전체구조
    - 데이터베이스를 구성하는 릴레이션 스키마의 모음
  • 데이터베이스 인스턴스
    - 데이터베이스를 구성하는 릴레이션 인스턴스의 모음

릴레이션의 특성

  • 튜플의 유일성
    - 하나의 릴레이션에는 동일한 튜플이 존재할 수 없다.
  • 튜플의 무순서
    - 하나의 릴레이션에서 튜플의 순서는 무의미하다.
  • 속성의 무순서
    - 하나의 릴레이션에서 속성의 순서는 무의미하다.
  • 속성의 원자성
    - 속성 값으로 원자 값만 사용할 수 있다.

다중값 속성을 포함하는 릴레이션은 실질적으로 릴레이션이라고 볼 수 없다.
속성의 원자성을 위반함

키(key)

  • 릴레이션에서 튜플들을 유일하게 구별하는 속성 또는 속성들의 집합
  • 키의 종류 : 기본키(primary key),후보키(candidate key),대체키(alternate key),슈퍼키(super key),외래키(foreign key)

키의 특성

  • 유일성(uniqueness)
    - 하나의 릴레이션에서 모든 튜플은 서로 다른 키 값을 가져야함
  • 최소성(minimality)
    - 꼭 필요한 최소한의 속성들로만 키를 구성

키의종류

  • 슈퍼키(super key)
    - 유일성을 만족하는 속성 또는 속성들의 집합
    • 예) 고객 릴레이션의 슈퍼키 : 고객아이디, (고객아이디, 고객이름), (고객이름, 주소) 등
  • 후보키(candidate key)
    - 유일성과 최소성을 만족하는 속성 또는 속성들의 집합
    • 예) 고객 릴레이션의 후보키 : 고객아이디, (고객이름,주소) 등
  • 기본키
    - 후보키 중에서 기본적으로 사용하기 위해 선택한 키
    • 널 값을 가질 수 있는 속성이 포함된 후보키는 부적합
    • 값이 자주 변경될 수 있는 속성이 포함된 후보키는 부적합
    • 단순한 후보키를 선택
    • 예) 두가지의 후보키 중 고객아이디가 기본키로 적절
  • 대체키(alternate key)
    - 기본키로 선택되지 못한 후보키
  • 외래키(foreign key)
    - 다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합
    - 릴레이션들 간의 관계를 표현
    • 참조하는 릴레이션 : 외래키를 가진 릴레이션(주문 릴레이션)
    • 참조되는 릴레이션 : 외래키가 참조하는 기본키를 가진 릴레이션(고객 릴레이션)

외래키의 역할?

고객릴레이션과 주문 릴레이션이 관계를 맺어 주문 릴레이션의 튜플과 연관성 있는 고객 릴레이션의 튜플을 연결할 수 있음

외래키 속성과 그것이 참조하는 기본키 속성의 이름은 달라도 되지만 도메인은 같아야한다.
=> 고객아이디와 주문고객으로 속성의 이름은 다르지만 도메인은 같아야한다.

하나의 릴레이션에는 외래키가 여러개 존재할 수도 있고, 외래키를 기본키로 사용할 수도 있다. 학번, 담당교사를 조합하여 기본키로 사용 할 수 있다. 같은 학생, 같은 선생이 상담을 여러번 할 경우 상담일자까지 같이 조합할 수 있다.

같은 릴레이션의 기본키를 참조하는 외래키도 정의할 수 있다. 그리고 외래키 속성은 널 값을 가질 수도 있다.

관계 데이터 모델의 제약

무결성 제약조건

  • 데이터의 무결성을 보장하고 일관된 상태로 유지하기 위한 규칙
  • 무결성 : 데이터를 결함이 없는 상태, 즉 정확하고 유요하게 유지하는 것

개체 무결성 제약 조건

  • 기본키를 구성하는 모든 속성은 널 값을 가질 수 없는 규칙

참조 무결성 제약조건

  • 외래키는 참조할 수 없는 키를 가질 수 없는 규칙
    외래키 속성이 널 값을 가진다고해서 참조 무결성 제약조건을 위반한 것은 아니다.

    참조 무결성 제약조건을 위반한 릴레이션의 예.
    주문 릴레이션의 cherry는 고객릴레이션에 없어 참조 할 수없는 값이다.

profile
개발자 되고싶다..

0개의 댓글