관계형 모델

김주형·2023년 5월 22일
0
post-thumbnail

Reference

🙇🏻‍♂️ 스스로 다시 보려고 기록하는 내용입니다

-한국방송통신대학교


데이터베이스 모델링 과정


개념적 데이터 모델링의 결과


논리적 데이터 모델링 단계

  1. DBMS에서 사용하는 데이터 모델에 맞추어 데이터를 표현하는 과정
  2. 데이터 정의 언어로 기술된 개념 스키마 생성
  3. 관계형 모델(relational model)
    1. from 1969 에드가 F. 코드
    2. 릴레이션으로 데이터를 표현
    3. 현재 많은 DBMS의 기초 -> 오라클, DB2, PostgreSQL, MySQL, MSSQL..

릴레이션의 구성

  • 관계형은 표의 형태로 구성

릴레이션의 특징

  1. 레코드의 유일성: 중복된 레코드의 존재가 불가능
  2. 레코드의 무순서성: 레코드의 순서는 의미가 없음
  3. 컬럼의 무순수성: 컬럼은 순서가 없고, 이름과 값의 쌍
  4. 컬럼값의 원자성: 모든 값들은 나눌 수 없는, 단 하나의 의미임을 의미

키(key)의 역할

  1. 키의 속성
  • 유일성 (uniqueness) + 최소성
  1. 키의 종류
  • 슈퍼키: 유일성 만족
  • 후보키: 유리성, 최소성 만족
  • 기본키(PK): 레코드의 구분을 위해 선택된 후보키
  • 외래키(FK): 참조된 다른 릴레이션의 기본키

관계형 모델의 예

키의 참조 (외래키)

  • 두 릴레이션에 포함된 레코드 간 연관성을 표현

관계형 모델의 제약조건

  1. 영역 제약조건: 도메인(컬럼에 정의된 영역)에 속한 값으로만 컬럼 값이 결정된다.
  2. 키 제약조건: 키는 레코드를 고유하게 구별하는 값으로 구성
  3. 개체 무결성 제약조건: 어떠한 기본키 값도 null이 될 수 없음
  4. 참조무결성 제약조건: 반드시 존재하는 레코드의 기본키만 참조 가능 -> 없는 것 참조 불가

Null : 입력한 적 없는 || 적용 불가능한 값


ERD의 변환

ER 다이어그램 변환 규칙

논리적 데이터 모델링

  1. DBMS의 구현 모델에 맞춰 데이터를 표현하는 과정
  2. 데이터 정의 언어로 기술된 개념 스키마 생성
  3. 논리적 데이터 모델링의 필요
  • 관계형 DBMS(RDBMS)의 구현 모델에 맞춰 데이터의 구조와 관계를 표현
  • 작성된 ERD를 RDBMS가 수용하는 구조로 변환

관계형 모델로 변환방법

  1. 개체 집합: 개체 집합은 릴레이션으로 변환
  2. 약한 개체 집합: 강한 개체 집합의 키 속성을 약한 개체 집합의 릴레이션에 포함
  3. 일대일 관계: 두 릴레이션 중에서 한 릴레이션의 기본키를 다른 릴레이션에서 외래키로 참조
  4. 일대다 혹은 다대일 관계: 쪽의 기본키를 쪽 릴레이션에서 외래키로 참조
  5. 다대다 관계: 관계 릴레이션을 생성하고 두 릴레이션의 기본키를 각각 참조하는 외래키를 복합키 형태의 컬럼으로 구성
  6. 다중값 속성: 릴레이션의 기본키를 참조하는 외래키와 다중값 속성으로 별도의 릴레이션으로 구성
  7. 관계 집합의 속성: 외래키가 위치한 릴레이션의 컬럼으로 삽입

ER 다이어그램의 변환

  • 1:N => 외래키는 N쪽에 붙고

  • N:N => 하나의 릴레이션이 추가된다.

  • 1:1 => 외래키 양쪽 다 가능, 하지만 되도록 갯수가 적은 쪽으로 지향하는게 좋다.
    - 복합키가 외래키를 이룬다.

  • 참조하는 외래키가 기본키가 된다.
    (학생이 없어졌을 경우 참조무결성에 의해 없어지도록 하기 위해)


데이터 연산

관계 연산의 개념

  1. 관계형 모델을 기반으로 구성된 릴레이션을 사용하여 새로운 릴레이션을 생성하는 표현
  2. 사용자의 관점에서 필요한 데이터를 릴레이션에서 추출하는 방법을 제공하는 도구
  3. 관계대수

셀렉트 연산

  • ex) 연봉이 5000만원 이상인 컴퓨터과학과 교수

프로젝트 연산


관계대수 연산식의 활용


집합 연산자


카티시언 프로덕트 연산




조인연산

  • 조건기반의 카티시언 프로덕트 연산 (카티시언 프로덕트 + 셀렉트)

(과목 릴레이션 교수번호 == 교수 릴레이션 교수번호) 인 경우만 남기고 나머지는 버려야 제대로 처리 가능

=> 조인 연산자 사용한 식으로 도출하는 경우


집계 함수 연산

  • 통계할 때 사용



-> B는 컬럼리스트

profile
우리스러움

0개의 댓글