관계 데이터 모델 - 0907(2)

안씅👩🏻‍💻·2022년 9월 7일
0
post-thumbnail

관계 데이터 모델

relation(릴레이션)
: DB에서 행과 열로 이루어진 table을 말함.

relationship(관계)
: 하나 또는 하나 이상의 table의 관계형성을 말함.

  • relation(=테이블) 내에서 생성 가능함
  • relation 간에 생성 가능함

relation(=table) 명칭

table의 열
degree attribute colum이라고 함.

table의 행
cardinality row tuple이라고 함.


스키마의 표현법

  • 릴레이션 이름(속성1 : 도메인1, 속성2 : 도메인2, 속성3 : 도메인3 ...) 형싱으로 표현
    ex) 도서(도서번호, 도서이름, 출판사, 가격)


◼ 속성(attribute)은 단일 값을 가진다
◼ 속성(attribute)은 서로 다른 이름을 가진다
◼ 한 속성(attribute)의 값은 모두 같은 도메인 값을 가진다
◼ 속성(attribute)의 순서는 상관없다
◼ 릴레이션 내의 중복된 투플(tuple)은 허용하지 않는다
◼ 투플(tuple)의 순서는 상관없다




key

: 각각의 행을 구분할 때 사용하는 속성 or 속성의 집합

key의 종류

super key(슈퍼 키)

: 키가 될 수 있는 모든 경우의 수의 집합

candidate key(후보 키)

: super key중에서 최소 속성의 갯수로 이루어진 key

  • 후보키는 슈퍼키의 부분집합
  • 대체키(alternate key) 는 기본키로 선정되지 않은 후보키를 말함.

conposite key(복합 키)

: 두 개 이상의 속성으로 이루어진 키

primary key(기본 키)

: 여러가지 후보키 중에서 대표로 선정한 키

  • 기본 키 선정 기준
    • 릴레이션 내에 튜플에서 고유한 값을 갖을 것.
    • *NULL 값은 허용하지 않는 키로 선정할 것.
    • 키 값의 변동이 없을 것.
    • 최대한 적은 수의 속성 값을 갖은 키로 선정할 것.
    • 향후 해당 키를 사용할 때, 문제 발생 소지가 없을 것.

*NULL : 속성 값이 없는 상태
- Java) null은 힙메모리에 인스턴스 주소가 없는 상태

surrogate key(대리키) or artificial key(인조키)

: DBMS나 관련 SW에서 임의로 생성하는 키 값
+) 해당 키만을 보고 의미를 예측할 수 없다는 한계가 있음

foreign(외래키)

: 서로 다른 릴레이션의 기본키를 참조한는 키
ex) 도서(도서번호, ...) 고객(고객번호, ...) -> 주문(도서번호, 고객번호, ...)

  • 같은 릴레이션 안에서 외래키를 만들 수 있음.

  • 다른 릴레이션에서 가져온 외래키를 해당 릴레이션에서 키본키로 사용할 수 있음




무결성 제약조건

데이터 무결성(data integrity)

: 데이터베이스에 저장된 데이터의 일관성, 정확성을 지키는 것

  • 2차 데이터를 활용하기 위해서 모든 속성들이 데이터 무결성을 지켜야함.

*도메인 무결성 제약조건

: 릴레이션 내의 튜플들이 각 속성의 도메인에 지정된 값만 가져야함

*도메인 :

개체 무결성 제약조건

: 기본키는 NULL 값을 갖을 수 없고, 릴레이션 내에서 고유한 값을 가져야함.

  • 삽입 수정 삭제

참조 무결성 제약조건

:릴레이션 간의 참조 관계를 선언하는 제약조건.

  • 자식 릴레이션의 외래키는 부모 릴레이션의 기본키와 도메인이 동일해야 함.

  • 자식 릴레이션의 값이 변경될 때 부모 릴레이션의 제약을 받음.

  • 부모 릴레이션에서 투플을 삭제할 경우 다음 옵션 수행을 고려해야함.

    • RESTRICTED - 즉시 작업을 중지
    • CASCADE - 자식 릴레이션의 관련 투플을 삭제
    • DEFAULT - 초기에 설정된 다른 어떤 값으로 변경
    • NULL - NULL 값으로 설정



관계대수

:릴레이션에서 원하는 결과를 얻기 위해 수학의 대수와 같은 연산을 이용하여 질의하는 방법을
기술하는 언어

관계대수 연산

  • 단항 연산자 릴레이션이 한 개
  • 이항 연산자 릴레이션이 한 개 이상
    • 업로드중..

셀렉션(selection)

  • 기본 형식 : σ<조건> (R)
  • 조건 복합형식은 (and), (or), (not)을 사용해 표현함.
    ex) σ(가격<=8000 ∧ 도서번호 >=3) (도서)

카티전 프로덕트(cartesian product)

:두 릴레이션을 하나로 합칠 때 사용함.

  • 형식 : R × S

동등조인

: 카티전 프로덕트를 연산자를 사용한 조인을 말함. 보통 조인 연산이라고 하면 동등조인을 지칭함

  • 형식 : R (r = s) S

ex) 고객 (고객.고객번호 = 주문.주문번호) 주문
-> 고객table에서 고객번호, 주문table에서 고객번호가 동등하게 만들어 두 table을 합침.

외부조인(outer join)

: 조인에 실패한 투플을 모두 보여주되 값이 없는 대응 속성에는 NULL 값을 채워서 반환

  • left-outer join : 왼쪽 기준 조인
  • right-outer join : 오른쪽 기준 조인
  • full-outer join : 완전 조인

π도서이름, 출판사 (σ가격<=8000 도서)
-> 가격이 8000원 이하인 도서 행을 가져옴 -> 도서이름과 출판사 속성을 가져옴


profile
그냥 은근슬쩍 살다 가긴 싫어

0개의 댓글