데이터베이스 개론과 실습 2주차 - 관계 데이터 모델

2021. 9. 19. 17:30·CS/데이터베이스 정리

관계 데이터 모델

Relational Data Model

 

정의

관계 데이터 모델은 릴레이션으로 표현하고, 릴레이션에 대한 제약조건과 관계 연산을 위한 관계 대수를 정의한다.

테이블 형태의 릴레이션 구조에 데이터를 저장하는 방식이다.

 

1. 릴레이션

릴레이션이란?

  • 행과 열로 이뤄진 테이블 구조이다. 릴레이션은 스키마와 인스턴스로 구성된다.

스키마

  • 관계 데이터베이스의 릴레이션이 어떻게 구성되는지 어떤 정보를 담고 있는지에 대한 기본적인 구조를 정의한다.
  • 테이블의 첫 행인 헤더에 나타나고, 각 데이터의 특징을 나타내는 속성, 자료 타입 등의 정보를 갖는다.

스키마는 속성(attribute)로 구성된다.

  • 속성은 릴레이션 스키마의 column이다.
  • 속성의 개수 : 차수 (degree)
  • 속성이 가질 수 있는 값의 범위 : domain

 

인스턴스

  • 정의된 스키마에 따라 테이블에 실제로 저장되는 데이터의 집합을 말한다.
  • 인스턴스는 튜플의 집합이고, 등록, 수정, 삭제에 따라 수시로 변한다.

인스턴스는 튜블로 구성된다.

  • 튜플은 릴레이션 인스턴스의 row이다.
  • 튜플의 개수 : 카디널리티(cardinality)

 

릴레이션의 특징

  • attribute는 단일 값을 갖는다 (원자값)
    • 하나의 속성값에 복수의 값이 올 수 없다.
    • 취미 애트리뷰트에 대해서 {축구, 야구}로 올 수 없다.
  • attribute는 서로 다른 이름을 갖는다.
    • 하나의 릴레이션 내에 같은 속성의 이름이 올 수 없다.
  • 하나의 속성에 대한 모든 열은 동일한 도메인을 갖는다.
  • 속성의 순서는 상관이없다.
  • 릴레이션 내 튜플의 중복은 허용하지 않는다.
  • 튜플의 순서는 상관이 없다.

2. 무결성 제약 조건

무결성 제약조건

  • 데이터베이스에 저장된 데이터는 결함이 없어야하고, 질의에 대해 신뢰성 있는 답을 제공해야한다.
  • 데이터베이스는 데이터를 저장할 때 일관성을 유지하고, 중복을 제거하는 등 데이터의 신뢰도를 유지해야한다.

 

Q. 데이터 무결성이란?

A. 데이터베이스에 저장된 데이터의 정확성과 일관성을 지키는 것. 이를 위해 등록, 삭제, 수정 시 데이터의 제약조건 준수 여부를 확인해야 한다.

 

도메인 무결성 제약조건 (도메인 제약)

  • 속성값과 관련된 무결성
  • 릴레이션 내 투플들이 각 속성의 도메인에 지정된 값만을 가져야 한다는 것.

 

개체 무결성 제약조건 (기본키 제약)

  • 개체와 관련된 무결성, 기본키는 NULL 값을 가지지 않아야하고 릴레이션의 기본키 속성 내에 유일해야 한다는 조건.

 

참조 무결성 제약조건 (외래키 제약)

  • 릴레이션 간 참조관계를 선언하는 제약조건
  • 자식 릴레이션의 외래키는 부모 릴레이션의 기본키와 도메인이 동일해야 하며, 자식 릴레이션의 값이 변경될 때 부모 릴레이션의 제약을 받는다.

자식 릴레이션 : 참조하는 릴레이션

부모 렐레이션 : 참보받는 릴레이션

 

반응형
저작자표시 (새창열림)

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

데이터베이스 개론과 실습 5주차 - 정규화 (1~3 정규형, BCNF)  (0) 2021.10.29
데이터베이스 개론과 실습 4주차 - 이상현상과 함수종속  (0) 2021.10.15
데이터베이스 개론과 실습 3주차 - 관계대수 (집합연산, 관계연산)  (0) 2021.10.01
데이터베이스 개론과 실습 1주차 - 데이터베이스 시스템  (0) 2021.09.11
'CS/데이터베이스 정리' 카테고리의 다른 글
  • 데이터베이스 개론과 실습 5주차 - 정규화 (1~3 정규형, BCNF)
  • 데이터베이스 개론과 실습 4주차 - 이상현상과 함수종속
  • 데이터베이스 개론과 실습 3주차 - 관계대수 (집합연산, 관계연산)
  • 데이터베이스 개론과 실습 1주차 - 데이터베이스 시스템
구름뭉치
구름뭉치
구름의 개발일기장
  • 구름뭉치
    구름 개발일기장
    구름뭉치
  • 전체
    오늘
    어제
    • ALL (283)
      • 프로젝트 (23)
        • 토스페이먼츠 PG 연동 시리즈 (12)
        • JWT 방식 인증&인가 시리즈 (6)
        • 스우미 웹 애플리케이션 프로젝트 (1)
        • 스프링부트 기본 보일러 플레이트 구축 시리즈 (2)
        • 마이크로서비스 아키텍쳐 시리즈 (1)
      • 스프링 (43)
        • 스프링부트 API 설계 정리 (8)
        • 스프링부트 RestAPI 프로젝트 (18)
        • 스프링부트 WebSocket 적용기 (3)
        • 스프링 JPA 정리 시리즈 (5)
        • 스프링 MVC (5)
        • 스프링 배치 (2)
        • 토비의 스프링 정리 (2)
      • 기술 학습 (28)
        • 아파치 카프카 (9)
        • 클린 코드 (4)
        • 디자인 패턴의 아름다움 (2)
        • 모던 자바 인 액션 (7)
        • JVM 스레드 딥다이브 (6)
      • Web (25)
        • 정리글 (20)
        • GraphQL 정리글 (2)
        • Jenkins 정리글 (3)
      • 취업 (6)
      • CS (77)
        • 네트워크 전공 수업 정리 (11)
        • OSI 7계층 정리 (12)
        • 운영체제 정리 (19)
        • 데이터베이스 정리 (5)
        • MySql 정리 (17)
        • GoF의 Design Pattern 정리 (12)
      • 알고리즘 (70)
        • 백준 (56)
        • 프로그래머스 (12)
        • 알고리즘 정리본 (1)
      • 기초 지식 정리 (2)
      • 일상 (8)
  • 블로그 메뉴

    • 홈
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    레이저
    크로아티아
    동유럽
    류블라냐
    마우스
    마우스 패드
    키보드 손목 받침대
    mx master s3 for mac
    부다페스트
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
구름뭉치
데이터베이스 개론과 실습 2주차 - 관계 데이터 모델
상단으로

티스토리툴바