SQL #9

데이터 모델과 SQL

트랜잭션이란?

데이터베이스의 논리적인 연산 단위 혹은 논리적인 업무단위.

ex. 쇼핑몰은 고객이 주문을 하면 주문정보를 저장한다. 하나의 주문정보에는 여러 상품이 있어서 주문상세정보로 저장을 한다.

 

주문 - 트랜잭션

  1. 주문 정보 저장
  2. 주문 상세 정보 저장

주문 완료! 이를 ERD로 표현해보면, 다음과 같은 결과를 얻을 수 있다.

 

주문 상세에서는 무조건 주문 정보가 필요하므로 O는 제거해준다.

트랜잭션을 ERD를 보고 이해할 수 있느냐가 KEY-POINT!

 

식별관계 VS 비식별관계

식별자관계 : 외래키(빌려온 키-FK)가 PK(식별자)의 일부분인가? - 강한연결관계
비식별자관계 : 외래키(빌려온 키-FK)가 PK(식별자)의 일부분이 아닌가? - 약한연결관계

  • IE표기법에서는 식별자관계를 실선, 비식별자관계를 점선으로 표기하지만,
  • Barker 표기법에서는 #에서 #으로 이어지는 관계를 식별자관계, * 에서 # 으로 이어지는 관계를 비식별자관계라고 표기한다.
더보기

Barker 표기법에서 점선은 IE표기법에서의 O의 의미로 O의 반대 방향에 표기한다. IE에서의 점선과 Barker에서의 점선은 다른 의미를 지니고 있다는 것을 기억하자.

 

NULL이란?

아직 정해지지 않은 값을 의미한다.

 

NULL이 필요한 이유

  1. 아직 어떤 값이 들어오지 않았음을 표현할 수 있다.
  2. 테이블(=엔터티)의 특성상 행X열 형태를 유지해야 한다.
더보기
  • IE표기법 에서는 각 속성에 null이 입력될 수 있는지 없는지 알 수 없다.
  • Barker표기법 에서는 O 속성이름 의 경우 null을 입력할 수 있다는 것을 의미한다. 반대로 * 속성이름 의 경우는 null을 입력할 수 없다.

 

식별자(Identifiers)란?

엔터티 내 유일하게 인스턴스를 식별할 수 있는 속성의 집합.

 

식별자 분류

  1. 대표성여부 : 주식별자 VS 보조식별자
  2. 스스로생성여부 : 내부식별자 VS 외부식별자
  3. 단일속성여부 : 단일식별자 VS 복합식별자
  4. 매체여부 : 본질식별자 VS 인조식별자
더보기
  • 본질식별자 VS 인조식별자

 

본질식별자 : 업무에 의해 생성된 식별자(본연 속성)
인조식별자 : 편의를 위해 임의의 코드로 인위로 변환해서 사용하는 식별자

 

 

 

 

 

 

https://www.youtube.com/watch?v=FWsIQlBnBxQ&list=PL6i7rGeEmTvpLoDkB-kECcuD1zDt_gaPn&index=5/

'SQL' 카테고리의 다른 글

SQL #11  (0) 2025.01.28
SQL #10  (0) 2025.01.20
SQL #8  (0) 2025.01.20
SQL #7  (4) 2024.11.28
SQL #6  (0) 2024.11.28