SQL 5주차

2023. 4. 9. 00:26·DataBase
Chapter 1 ER Model Design Consideration

 

Person이 n개 Product는 1개
여러명이 똑같은 제품을 살 수 있다
한 사람이 물건 하나만 살 수 있다
 
아래 관계는 여러 사람이 한 나라의 대통령이 될 수 있는 것처럼 표현했기에 잘못됨

 어떤 가게에서 어떤 물건을 어떤 날에어디에 주소를 가지고 있는 어떤 사람이 구매했다.
단 attributes들을 릴레이션에 포함시켰기에 잘못된 표현이다.

  이 경우는 date 자체가 attributes이기 때문에 Dates가 엔티티로 있기 보단 릴레이션에 바로 date가 연결되는 것이 바람직함

(A) = addr1과 addr2를 같이 표현
(B) = 주소와 우편번호를 같이 적는 경우를 표현
 
모든 Employee가 정확히 두개의 주소를 갖고있음을 표현한 A 릴레이션
또한 주소가 2개 이상인 경우가 있을 수 있으므로 이와 같은 제약은 좋지 못하다
 
그에 반해 B와 같이 하나의 독립된 엔티티처럼 관리하면 어떨까?
한 사람이 여러개의 주소를 가질 수 있다. 고 표현했기 때문에 타당하다.
 
 

Chapter 2 Constraints and Weak Entity Set

 

제약 조건 
  • 몇가지 제약 조건을 표시할 수 있어야 한다.
    • Keys : 엔티티의 밑줄을 그어 표시하는 기본키
    • Single-Value constraints : 어떤 사람은 아버지가 한명이다와 같이 1대 N의 관계 혹은 유일한 값을 가져야하는 제약조건
    • Referential integrity constraints  : 참조 무결성 
      • 기본키를 참조하는 엔티티 셋과 기본키가 있는데 양쪽에 항상 같은 정보가 있어야한다는 것
      • 단 기본키에는 있는데 외래키에는 없는 경우는 상관없으나 외래키에는 있는데 기본키에 있는 경우는 문제 됨(삽입, 삭제 시에 고려)
      • 외래키 값은 참조하는 테이블의 기본키 값과 동일해야한다.
      • 참조하는 테이블의 기본키 값이 변경되면 이를 참조하는 모든 테이블의 외래키 값도 함께 변경되어야 한다
    • 이를 통해 테이블간 일관성 있는 데이터를 유지

 
 
 

strong relationship & weak relationship

 

ER Model을 보면 위의 선은 얇고 아래 선은 굵다
 

  • 강한 연결 고리
    • 관계형 데이터베이스에서는 외래키를 사용해 테이블간 관계를 맺는다
    • 이 때 강한 연결고리는 두 개체 사이에 한 개체가 다른 개체의 기본키를 참조하는 경우를 의미
    • EX) 모든 제품은 반드시 만든 회사가 있어야 한다
  • 약한 연결고리
    • 관계를 맺는 개체중 하나가 다른 개체의 기본키를 참조하지 않는 경우를 의미
    • EX) 특정 컴퍼니가 존재하지만 제품이 없는 경우도 존재한다는 것을 의미

 

Referential integrity constraints (참조 무결성)

얇은 선은 어떤 회사가 만들었는지 확인이 안되는 제품들이있을 수 있다.
그렇기에 모든 제품이 오른쪽에 있는 테이블 어떤 값과 항상 연결되어 있다를 표현한다.
만약 Product->makes 일 경우 만든 회사가 꼭 하나 존재한다는 의미이다.
 

'DataBase' 카테고리의 다른 글

SQL 6주차  (1) 2023.04.10
SQL 4주차  (0) 2023.04.08
SQL 3주차  (0) 2023.04.05
SQL 2주차  (0) 2023.03.21
DataBase - Relation Data Model  (0) 2022.10.12
'DataBase' 카테고리의 다른 글
  • SQL 6주차
  • SQL 4주차
  • SQL 3주차
  • SQL 2주차
해변
해변
  • 해변
    이노 메모장
    해변
  • 전체
    오늘
    어제
    • 분류 전체보기
      • Java
      • C
      • Python
      • HTML
      • Project
      • Algorithm
      • DataBase
      • OS
      • Block Chain
      • CHATGPT
      • ML
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    8퀸문제
    자료구조
    java
    링크드리스트
    재귀함수
    Do it! 클론코딩
    c
    니꼴라스
    Big-O
    AWT
    python
    )
    자바GUI
    자바
    버블정렬
    시간복잡도
    알고리즘
    wㅜ
    빅오표기법
    정렬알고리즘
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
해변
SQL 5주차

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.