Database

데이터 모델링

k9e4h 2024. 9. 12. 11:06

 

상속과 관계

https://swingswing.tistory.com/6

 

ER모델, E-R 모델을 관계 데이터 모델로 사상_관계, 강한개체, 전체참여, 참조외래키, 부서, 직원

▣ E-R 모델을 관계 데이터 모델로 사상_관계, 강한개체, 전체참여, 참조외래키 ER 모델 관계 스키마 2진 관계 1:1양방향 완전관계 두 릴레이션을 하나로 통합(일반적인 경우) 두 엔티티타입과 관계

swingswing.tistory.com

 

ie 표기법 , baker 표기법

https://b-programmer.tistory.com/357

 

[database] ERD 표기 법 IE vs Barker

ERD를 표기하는데 자주 사용하는 표기법으로 IE표기 법과 Barker표기법이 있다고 한다. 엔티티, 속성, 관계(카니널리티), 관계(옵셔널리티) 엔티티 db라는게 현실에 존재한 것을 데이터화 시키는걸

b-programmer.tistory.com

 

함수종속성

https://been2.tistory.com/40

 

[Normalization/정규화] 함수 종속성이란?

함수 종속성이란? 완전 함수 종속 (Full Functional Dependency) 부분 함수 종속 (Partial Functional Dependency) 이행적 종속 (transitive Dependency) 함수 종속성이란? 함수 종속성은 DB에서 속성들간 종속 관계를 말

been2.tistory.com

 

Oracle PS - Precision Scale

PS 를 필수로 지정하자, 나중에 DBMS를 옮긴다던지 데이터 유형을 변경할 때 그 때 데이터를 분석하기는 어렵다.

https://m.blog.naver.com/drv98/221620162305

 

오라클 데이터 타입

데이터 타입(DataType) 정의 데이터 타입(자료형)이란 컴퓨터 시스템과 프로그래밍 언어에서 실수, 정수,...

blog.naver.com

 

 

Oracle InitTrans

https://blog.naver.com/nunoyoon/90038240419

 

INITRANS, MAXTRANS란?

INITRANS, MAXTRANS란?Update시 오라클의 SQL처리과정은 Parse와 Execute과정을 거...

blog.naver.com

 

statement cache

https://log-laboratory.tistory.com/240

 

[Cassandra][java] PreparedStatement vs Statement

PreparedStatement, Staement 개념 PreparedStatement와 Statement의 가장 큰 차이점은 캐시(cache) 사용여부이다. 주요 역할 ① 쿼리 문장 분석 ② 컴파일 ③ 실행 Statement를 사용하면 매번 쿼리할때마다 3가지 주

log-laboratory.tistory.com

 

lateral sql 

https://gngsn.tistory.com/273

 

LATERAL JOIN, 어렵지 않게 사용하기

본 포스팅은 LATERAL JOIN을 이해하고 실습해보기 위한 포스팅입니다. LATERAL JOIN 은 PostgreSQL, Oracle, DB2, MS SQL 등에서 사용될 수 있지만, 잘 알려지지는 않은 기능입니다. 최근 쿼리를 작성하면서 LATERA

gngsn.tistory.com

 

통계정보

https://ssunws.tistory.com/24

 

[ORACLE] 통계정보

통계정보란? - 데이터베이스의 SQL 성능을 좌우하는 요소 중 하나 - oracle의 옵티마이저가 실행계획 수립 시 참조하는 정보 - 실행계획을 최적화하기 위해 수집된 통계정보를 참고하여 최적의 실

ssunws.tistory.com

 

분포도

https://khdscor.tistory.com/50

 


 

Oracle의 Index

별도 index를 지정하지 않으면 B-Tree 인덱스 구조이다.

오라클의 경우 인덱스 구성 컬럼이 모두 NULL인 경우 인덱스를 저장하지 않는다.

Leaf BLock은 항상 인덱스 키 컬럼 순으로 정렬되어 있어 범위 스캔이 가능하다.

인덱스는 위로 성장한다.

인덱스는 Single BLock I/O를 수행한다.

데이터 삭제시 테이블의 데이터는 삭제되지만, 인덱스는 논리적으로 삭제(flag) 한다. DML이 많은 인덱스 컬럼인 경우 주기적인 Rebuild 필요

 

인덱스를 잘 타면 읽어야하는 버퍼가 확연히 줄어든다. ( Tree 를 잘타서 방향을 찾을 수 있으니까 )

composite tree일 경우 null도 저장한다.

 

 

composite 인덱스를 사용하기 위해 고려해야할 것

1단계 항상 사용되는가?

2단계 항상 = 로 사용되는가?

3단계 어느것이 더 좋은 분포도를 갖는가?

4단계 자주 정렬되는 순서는?

5단계 부가적으로 추가시킬 컬럼은?

 

 

인덱스 활용이 불가능한 경우

1. 인덱스 컬럼절을 변형한 경우

where to_chat(등록일,'YYYYMMDD') = 20200910

==> where 등록일 = to_date('20200910,'YYYYMMDD'')

2. 묵시적으로 데이터 형 변환이 일어난 경우 

where 등록일 = '20200910'

==> where 등록일 = to_date(20200910,'YYYMMDD')

3. 부정형으로 조건을 사용한 경우

==> a,b,c 일때 != a 보다는 in (b,c) 로 하는 것이 좋다

4. Like 연산자 앞에 %를 붙이는 경우

5. 인덱스에 있는 컬럼은 모두 작성해야한다. (필요없는 조건이더라도 )

처음,중간, 마지막 모두

6. Index의 OR 조건이 필요한 경우 or 인덱스를 추가하거나 union dmfh cjflgkfrjt

 

 

예측 실행계획과 Run-time 실행계획(성능)은 다르다.

동일한 쿼리에 대해 Explain Plan을 통해 조회한 예측 실행계획과 실제 수행한 실행계획이 다른 경우가 발생한다.

바인드 피킹 - 실제 런타임에는 데이터를 바인딩하는 과정이 있음

변수를 바인딩하면서 변수 형변환등이 생길 수 있음

 

where절에서 인덱스를 타야할 수도 있는 쿼리에는 sysdate를 사용하지않는다!!

 

 

 

 


 

 

...

ANSI SQL

 

반응형

'Database' 카테고리의 다른 글

Linux에 MySQL client 설치하기  (0) 2023.01.17
Rolling Update Vs Blue-Green Update  (0) 2022.11.02
Oracle 여러 다중 행 Insert (Insert All)  (0) 2022.10.25
[Oracle] Describe Table  (0) 2022.06.14
[MySQL] Limit 성능  (0) 2021.07.01