주저리주저리

SQLD 정리

zkvlkat /ᐠ。ꞈ。ᐟ\ 2024. 11. 15. 23:43

※ 일정한 순서 없이 제가 제대로 모르는 부분만 작성되었습니다.

 

[1] JOIN

1) INNER JOIN / LEFT OUTER JOIN {    WHERE A = B(+)    } / FULL OUTER JOIN / CROSS JOIN / NATURAL JOIN

 

 

ex) SELECT * FROM TAB1 A FULL OUTER JOIN TAB2 B ON (A.KEY1 = B.KEY2)

  • TAB1과 TAB2를 FULL OUTER JOIN 하는 경우, TAB1 테이블에서 A.KEY1(B,C,D,E)과 일치하는 B.KEY2(A,B,B,E)를 찾습니다.

A.KEY1에서 B와 일치하는  B 2개, C 1개, D 1개, E와 일치하는 E 1개로 5개가 됩니다.

  • 다 찾은 뒤에는, TAB2 테이블에서 B.KEY2와 일치하는 A.KEY1를 찾습니다.

B.KEY1의 (B, E)는 LEFT JOIN에서 찾았기 때문에 건너뛰고 A와 일치하는걸 찾아서 없으니, 1개를 반환합니다.

 

 

[2] 1과목 (1장 정리)

1과목 1장
데이터 모델링의 특징
엔터티와 ERD
속성과 관계
식별자

 

1. 데이터 모델링의 특징 3333

3개씩 4가지 종류를 암기.

1)DM 특징

추상화

단순화

명확화

2)DM 유의점

중복

비유연성

비일관성

3)DM 종류

개념적 Data Modeling

논리적

물리적

4)DB 스키마 구조

외부 스키마 : 사용자 관점 (DB 사용하는 유저 기준)

개념 스키마 : 사용자 관점을 통합 (설계 과정)

내부 스키마 : 개발자 관점, DB 저장 (물리적)

 

 

2. 엔터티와 ERD

1) ERD 작성 순서 ★  

  1. 엔터티를 그린다(혹은 도출한다).
  2. 엔터티를 적절하게 배치한다.
  3. 엔터티간 관계를 설정한다.
  4. 관계명을 기술한다.
  5. 관계의 참여도를 기술한다.
  6. 관계의 필수여부를 기술한다.

2) 엔터티 특징

  • 유일한 식별자로 식별 가능
  • 2개 이상의 (인스턴스)의 집합
  • 2개 이상의 (속성)을 가지는 엔터티
  • 엔터티는 다른 엔터티와 반드시 관계가 존재
  • 줄임말, 약칭은 쓰지 말자

3) 속성과 관계

속성? - 분리되지 않는 최소의 데이터 단위

 

(빈출 유형)

- 한 개의 속성은 반드시 1개의 속성 값만을 가집니다.

- 한 개의 엔터티는 최소 1개 이상의 다른 엔터티와의 관계를 가집니다.

- 한 개의 엔터티는 최소 2개 이상의 속성을 가집니다.

- 한 개의 엔터티는 최소 2개 이상의 인스턴스 집합이어야 한다.

 

 

속성의 종류

기본속성 - ex)원금

설계속성 - ex)예금분류

파생속성 - 주로 계산하는 값  - ex)이자

 

속성 주의할 점

1) 해당업무에서 사용하는 이름을 부여 한다.

2) 서술식 속성명은 사용하지 않는다.

3) 약어사용은 가급적 지양한다.

4) 유일성을 통해 구분할 수 있도록 하자.

 

도메인

속성이 가질 수 있는 값의 범위

 

관계 (개념모음)

1)존재에 의한 관계(ex.소속)

2)행위에 의한 관계(ex.행위 그 자체)

3)관계 표기 -> ( 관계명 / 관계차수 / 관계선택사양 ) 3가지 기입

4)관계차수 1:1 1:M M:N

 

 

4) 식별자

주식별자 / 보조식별자

내부식별자 / 외부식별자(FK)본질식별자(업무) / 인조식별자단일식별자(속성이 1개) / 복합식별자

 

주식별자 특징 4

유일성 - 모든 인스턴스를 유일하게 구분최소성 - 속성의 수 최소로불변성 - 한 번 특정되면 변하지 않음존재성 - 주식별자는 반드시 value가 존재

 

(빈출유형)

Q. 다음 중 아래에서 엔터티 내에 주식별자를 도출하는 기준은?

1) 해당 업무에서 자주 이용되는 속성을 주식별자로 지정한다.

2) 명칭,내역 등과 같이 이름으로 기술되는 것들을 주식별자로 지정한다.

3) 복합으로 주식별자를 구성할 경우 너무 많은 속성을 포함하지 않도록 한다.

4) 자주 수정되는 속성을 주식별자로 지정한다.

 

비식별자

"약한 연결 관계",

부모 - 자식 상호작용은........... 선택사항

 

 


[3] 1과목 (2장 정리)

1과목 2장
성능 데이터 모델링
정규화
반정규화
분산DB활용

 

 

1)성능 데이터 모델링

잘 참고중인 블로그입니다. 완성되진 않았지만 잘 정리되어있다고 생각합니다.

https://wikidocs.net/170735

 

20. 성능 데이터 모델링

# 성능 데이터모델 > 분석 및 설계 단계에서부터 성능과 관련한 데이터모델링을 수행하는 것입니다. > 정규화, 반정규화, 테이블 분할/병합/추가, 칼럼 추가 , PK/FK 조정,…

wikidocs.net

 

2)정규화

제1정규화 : 고유키,원자성(중복속성제거)

column1
가,나,다,라

 

위 테이블처럼 값이 여러 개인 경우, 이를 제거해야 한다.

 

제2정규화 : 기본키가 2개이상이면 (부분함수_종속성)제거

 

2차 정규화 이전 2차 정규화 이후 (기본키)
 

제3정규화 : 기본키 아닌 속성끼리 종속 불가 - (이행함수_종속성)제거

3)반정규화

데이터를 중복하여 성능 시키기 위한 방법 (→ 정규화 수행 안함)

1. 정규화가 되어있지만 느린 경우

2. 큰 양을 자주 처리하는 경우

3. 특정 범위만 자주 사용하는 경우

4)분산DB활용

6가지 종류 존재하지만 자주 나오는 3가지만 정리

분할 : Relation,릴레이션

위치 : 데이터 저장장소 명시 불필요

지역사상: Mapping,매핑