3 분 소요


▶ 데이터 모델

개념

  • 컴퓨터에 저장할 데이터의 구조를 논리적으로 표현하기 위해 사용하는 지능적 도구


▷ 구성요소

  • 데이터 구조

    • 어떤 요소로 이루어져 있는지, 데이터를 어떤 모습으로 저장할 것인지 표현
    • 정적
  • 연산

    • 데이터 구조에 따라 표현된 값들을 처리하는 작업
  • 제약조건

    • 데이터 무결성 유지를 위한 구조적 측면(허용될 수 있는 개체 인스턴스), 의미적 측면(허용되는 연산의 한계)의 제약사항




▷ 관계 데이터 모델⭐

개념

  • 2차원 구조의 테이블 형태를 통해 자료를 표현하는 것을 말한다.(집합이론에 기초)
  • 직관적인 테이블 형태로 구성


▷ 용어

① 속성 (Attribute)

  • DB를 구성하는 가장 작은 논리적 단위
  • 릴레이션의 열
  • 동일 릴레이션 내에는 동일한 이름의 속성이 존재할 수 없음
  • 릴레이션의 차수(degree): 속성의 개수


② 튜플 (Tuple)

  • 속성의 모임으로구성
  • 릴레이션의 행
  • 릴레이션의 카디널리티: 릴레이션에 포함되어 있는 튜플의 수


③ 도메인 (Domain)

  • 속성 하나가 가질 수 있는 모든 값의 집합
  • 일반적으로 데이터 타입으로 정의


④ 널 (Null)

  • 값이 없음을 표현함, (≠ 0, 공백문자)




▶ 릴레이션 (Relation)

  • 릴레이션(Relation)은 데이터들의 표(Table)의 형태로 표현한 것을 말한다.
  • ⭐릴레이션 = 릴레이션 스키마 + 릴레이션 인스턴스
  • 엑셀처럼 DB도 데이터를 테이블로 만들어 관리 → 이 표를 릴레이션이라고 함
  • 개체나 관계를 모두 릴레이션으로 표현
  • But: 릴레이션 ≠ 테이블


▷ 구성 요소

① 릴레이션 인스턴스

  • 릴레이션에 포함되어있는 튜플들의 집합
  • 릴레이션의 내용, 상태
  • 동적: 삽입, 삭제, 수정 등으로 시간에 따라 변함


② 릴레이션 스키마

  • 릴레이션의 구조를 논리적인 구조
  • 릴레이션 이름과 릴레이션에 포함된 속성들의 집합
  • 정적: 자주 변경되지 않음
  • ex. 고객(고객 아이디, 고객 이름, 나이, 직업)


▷ 릴레이션의 특성⭐

① 튜플의 유일성

  • 한 릴레이션의 튜플들은 모두 다르며, 유일한 존재이다.


② 튜플의 무순서성

  • 한 릴레이션의 튜플의 순서는 의미가 없다. (값을 구성하는 원소가 동일하기 때문)


③ 속성의 원자성

  • 모든 속성은 단일 값을 가진다.




▶ (관계) DB

  • DB 스키마 + DB 인스턴스

▷ DB 스키마

  • DB 전체 구조
  • DB를 구성하는 릴레이션 스키마 모음 + 무결성 제약조건


▷ DB 인스턴스

  • DB를 구성하는 릴레이션 인스턴스의 모음
  • DB를 시간에 따라 그 내용(상태)이 변할 수 있는 테이블 형태로 표현




▶ 키(Key)

개념

  • 릴레이션에서 각 튜플을 유일하게 식별하는 속성 또는 속성들의 집합
  • 데이터를 검색하거나 정렬할 떄 기준이 되는 유일하게 구분되는 속성


▷ 키의 필요성

  • 아래와 같이 한 학과에 동명 이인이 있을 수 있다.
  • 따라서 구분을 위해 키(ex. 학번)를 추가해야 한다.


▷ 유일성과 최소성⭐

  • 유일성

    • 키의 값만으로도 하나의 튜플을 유일하게 식별할 수 있는 능력
  • 최소성

    • 각 튜플을 유일하게 식별하는데 꼭 필요한 속성으로만 키가 구성되어야 한다.


  • 예시 : 학생
    • {학번}, {학번, 주민번호}, {학번, 이름, 학과}

      • 유일성을 만족하지만 최소성 만족x (슈퍼키)


    • {주민번호}, {이메일 주소}, {전화 번호}
      • 유일성 만족x
    • 학생이 이메일이나 전화번호가 없을 수도 있기 때문


▷ 키 종류

① 슈퍼키 (Super Key)

  • 유일성은 만족하지만 최소성은 만족하지 않는 속성 또는 속성들의 집합


② 후보키 (Candidate Key)

  • 유일성과 최소성을 모두 만족하는 속성 또는 속성들의 집합


③ 기본키 (PK: Primary Key)

  • 튜플을 식별하기 위해 후보키 중에서 DB 설계자가 지정한 하나의 키
  • null 값을 가질 수 없다.


④ 대체키 (Alternate Key)

  • 후보키 중에서 기본키로 선택되지 못한 후보키, 보조키


⑤ 외래키 (FK: Foreign Key)⭐

개념

  • 어떤 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합
  • 중복을 최소화하기 위해 사용한다.


특징

  • 외래키 속성의 도메인과 참조되는 기본키 속성의 도메인은 같아야 한다. (이름은 달라도 됨)


  • 한 릴레이션에 외래키는 여러 개 존재할 수 있다.
  • 외래키를 기본 키로 사용할 수도 있다.


  • 같은 릴레이션의 기본키를 참조하는 외래키도 가능


▷ 기본키 vs 외래키⭐⭐

  • 기본키와 외래키의 관계는 개체와 개체를 연결하는 도구로 사용된다.
  • 릴레이션과 릴레이션의 연관성을 나타내는 방법이다


  • 기본키 : 개체 식별자
  • 외래키 : 개체 참조




▷ 참조 관계

  • 학과 릴레이션에서 멀티미디어 학과 튜플이 삭제되면?
  • 학과 릴레이션에서 정보통신 학과의 학과번호가25로 변경되면?
  • 학생 릴레이션에 학과번호가 50인 학생 튜플이 삽입되면?


-> 데이터 무결성 문제가 발생한다. 따라서 무결성 유지하기 위해 제한이 필요하다.




▶ 무결성 제약조건⭐

  • DB가 만족시켜야 하는 조건
  • 데이터의 무결성, 일관성을 유지하기 위한 규칙


▷ 종류

① 개체 무결성 제약조건

  • 데이터 식별을 위해 기본키를 구성하는 어떤 속성도 null 값을 가질 수 없다.


② 참조 무결성 제약조건

  • 릴레이션의 외래키는 참조할 수 없는 값을 가질 수 없다.
  • ⭐외래키의 값은 반드시 피참조 릴레이션의 기본키 값이거나 null 이어야 함 ( ⚠️ null 값을 가질 수 있다 ! )
  • 두 릴레이션의 연관된 튜플 사이 일관성 유지 위해 필요


③ 도메인 제약조건

  • 각 속성 값이 반드시 원자값이여야 함
  • 데이터 타입을 통해 값들의 유형을 제한
  • 속성에 저장되는 범위를 제한 (ex. 나이: 1 ~ 100)
  • NOT NULL : 모든 튜플에서 해당 속성 값이 존재하도록 보장


④ 키 제약조건

  • 키(기본키, 대체키) 속성에 중복된 값이 존재해서는 안됨


▷ 무결성 제약조건의 유지

  • 현재 DB가 무결성 제약조건을 모두 만족하고 있을 경우 삽입, 삭제, 수정 연산을 수행한 경우 제약조건에 위배될 수 있다. (검색은 변경 가능성이 없기 때문에 제약조건 위배 가능성 없음)

삽입

  • 무결성 제약조건을 위배하는 삽입 연산은 DBMS가 거절하여 무결성 유지할 수 있다.


삭제

  • 참조 무결성 제약조건을 만족시키기 위한 옵션
    • 제한(restricted) : 참조 걸려있는 튜플 삭제 연산 거절
    • 연쇄(cascade) : 참조 릴레이션의 참조 튜플도 삭제
    • 널값(nullify) : 참조 릴레이션의 참조 튜플의 외래키에 널 값을 설정
    • 기본값(default) : 참조 릴레이션의 참조 튜플의 외래키에 기본값을 설정


수정

  • 삭제에서처럼 제한, 연쇄, 널 값, 기본값 옵션을 릴레이션 정의문에 명시




▶ 정리 문제




📎참조

  • https://eastroot1590.tistory.com/entry/%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EC%9A%A9%EC%96%B4-%ED%8A%9C%ED%94%8CTuple%EA%B3%BC-%EC%96%B4%ED%8A%B8%EB%A6%AC%EB%B7%B0%ED%8A%B8Attribute
  • https://mangkyu.tistory.com/21
  • https://dodo000.tistory.com/17

태그: ,

카테고리:

업데이트:

댓글남기기