728x90
1.윈도우 함수
rows -> "차이점"
ranncte -> 같은 값 유무
rank: 중복 건너 뛰기 (1, 1, 3, 4)
dense_rank : 건너뛰기x (1, 1, 2, 3)
partition by
order by
여긴 무조건 문제 많이풀기!
2. 계층형 질의
Prior 자식데이터 = 부모데이터 프.자.부
=> 부모에서 자식으로 가는 경우 순방향 부.자.순
3. 절차형 PL/SQL
EXCEPTION = 예외처리 생략가능
PROCEDURE, TRIGGER, USER DEFINED FUNCTION 차이점
- TRIGGER는 COMMIT, ROLLBACK 안됨
- PROCEDURE는 반드시 값이 안나옴
- USER DEFIND FUNCTION은 반드시 값이 나옴
4. 데이터 모델링
업무 -> 데이터 모델화
엔터티 : 업무상 관리하고자 하는 대상
특징
- 반드시 해당 업무에서 필요하고 관리하고자 하는 정보이어야 한다
- 유일한 식별자에 의해 식별이 가능해야 한다
- 연속적으로 존재하는 인스턴스의 집합이어야 한다 -> 한 개가 아니라 두 개 이상
- 엔터티는 업무 프로세스에 의해 이용(관리)되어야 한다
- 엔터티는 반드시 속성(컬럼)이 있어야 한다
- 엔터티는 다른 엔터티와 최소 한 개 이상의 관계가 있어야 한다
분류
유개사 / 기중행
- 유형 엔터티 : 업무에서 도출되며 지속적으로 사용
- 개념 엔터티 : 물리적 형태가 없고 개념적으로 사용
- 사건 엔터티 : 비즈니스 프로세스를 실행하면서 생성되는 엔터티
- 기본 엔터티 : 키 엔터티, 다른 엔터티로부터 영향을 받지 않고 독립적으로 생성
- 중심 엔터티
- 기본 엔터티와 행위 엔터티 간의 중간에 있음
- 기본 엔터티로부터 발생되고 행위 엔터티를 생성
- 행위 엔터티 : 2개 이상의 엔터티로부터 발생
속성
- 고유한 성질 , 인스턴스의 집합
- 분류 (정의 확인하기)
기설파
- 기본 속성 : 비즈니스 프로세스에서 도출되는 본래의 속성
- 설계 속성 : 데이터 모델링 과정에서 발생되는 속성, 유일한 값을 부여
- 파생 속성 : 다른 속성에 의해서 만들어지는 속성
5. 도메인
데이터 유형, 크기, 제약조건
물리적 데이터 모델링 : CHECK, PRIMARY KEY
값의 범위
6.관계
- IE : 각진 네모, PK는 가장 맨위에 줄긋고
- 관계 선은 실선 및 까치발
- 필수 관계 : 선으로 그음
- 선택 관계 : 동그라미에 선
- BARKER : 둥근 네모, PK는 아래로 작성
- 실선 및 점선으로 표현
- 실선은 필수 관계
- 점선은 선택 관계(OPTIONAL)
7. 주식별자
식별자는 실선, 비식별자는 점선
특징 유최불존 -> 다 만족시 후보키 가능 (기본키 + 대체키 = 후보키)
- 유일성 : 인스턴스를 유일하게 구분할 수 있는 속성
- 최소성 : 여러가지 속성을 묶어서 식별하는 경우 그 수가 최소여야 함
- 불변성 : 한 번 만든 것은 바뀌지 않음
- 존재성 : NOT NULL 조건
8. 식별자와 비식별자 관계
식별 | 비식별 | |
정의 | 강한 연결 관계 | 약한 연결관계 |
단점 | SQL 구문 복잡 해진다 PK 속성수 증가 |
조인이 많아져서 느려짐 |
표기법 | 실선 부모자식 관꼐에서 자식이 부모의 식별자 참조해 자신의 주식별자로 설정 |
점선 부모자식 관꼐에서 자식이 부모의 주식별자를 외래 식별자로 참조해서 일반속성으로 사용 |
연결 고려사항 | 반드시 부모 엔터티 종속 자식 주식별자 구성에 부모 주식별자 포함 필 상속받은 주식별자 속성을 타엔터티에 이전필 |
약한 종속관계로서 자식 주식별자구성을 독립적 구성 자식 주식별자 구성에 부모 주식별자 부분 필요 상속받은 주식별자 속성을 타엔터이ㅔ 차단필요 부모쪽의 관계 참여가 선택관계 |
ERD서술 규칙시선
- 좌상 -> 우하관계명
- 반드시 표기 안해도 됨
- UML은 객체지향 모델링에서만 쓰임
9. 성능 데이터 모델링
아키텍쳐 모델링 (성능이 더 좋음) - 주방구조 바꾸기 | SQL 명령문 - 요리빨리나오게하기 |
|
|
10. .정규화
- 1차 : 원자성 확보
- 2차 : 부분함수 종속 제거
- 3차 : 이행함수 종속 제거
이상현상
- 삭제
- 삽입
성능
- SELECT는 느려질 수 있고(JOIN 때문에)
- INSERT, UPDATE는 빨라질 수 있음
11. 반정규화
데이터 무결성 해친다
- 대량범위
- 범위처리
- 통게처리
=> 응용 어플리케이션 시스템 점검, 클러스터링/인덱스, 뷰터이블 처리 해보고 안되면 반정규화
테이블 | 병합 : 1대1, 1대N, 슈퍼서브타입 병합 분할 : 부분테이블, 통계테이블, 중복테이블 |
속성 | 파생 컬럼 오류 발생하지 않도록 임시 컬럼 생성 이력 컬럼 추가 PK -> 속성 중복속성 |
관계 | 중복 관계 추가 |
=> 정의 및 무엇이 있는지 암기
대량 데이터에 따른 성능
- ROW MIGRATION
- CHAINING
- LIST
- RANGE : 관리가 쉬움, 가장 많이 쓰임
- HASH : 관리가 어려움
12. 슈퍼/서브타입
- 용량
- 적은 경우 - ONE TO ONE, 개별로 들어가는 경우
- 많은 경우
- 공통 / 차이 - PLUS TYPE
- 전체 통합 - SINGLE TYPE
- 트랜잭션
13. 분산데이터베이스
=> 데이터 무결성을 해친다
14.조인 수행 원리
- NL
- RANDOM 액세스
- 대용량 SORT 작업 시 유리
- SORT MERGE
- 조인키를 기준으로 정렬
- 등가/비등가 조인가능
- HASH
- 등가조인만 사용
- 선행테이블 작음
- 별도의 HASH 처리를 위한 공간이 필요
14. 옵티마이져
- CBO : 경로를 따졌을 때 제일 싼 것
- RBO : 규칙에 따라서 이루어짐
15. 인덱스
실행 예외
- 부정형
- LIKE
- 묵시적 형변환
인덱스 사용시 성능 감소되는 경우
- INSERT, UPDATE, DELETE 의 DML 사용하는 경우(수정될때마다 INDEX를 계속 변경해야 하므로 성능 저하)
16. 실행계획
순서
- 들여쓰기 : 제일 느린애부터 오른쪽에 씀
- 같은 레벨은 뭉텅이로
출처 : https://www.youtube.com/watch?v=PjCSvexo3Ow
728x90
'SQL' 카테고리의 다른 글
sqld 시험전 확인할 스피드 퀴즈 (0) | 2023.06.08 |
---|---|
SQLD 정리강의 정리 -1 (0) | 2023.06.06 |
sqld 1장 데이터 모델링의 이해 (0) | 2023.05.31 |
sqld rollup,cube ~윈도우함수 (108~127) (1) | 2023.05.30 |
sql 의 쿼리 실행 순서 (1) | 2023.02.21 |
댓글