데일리/2023
[SQL] 데이터 모델링, 엔터티, 식별자
데이터 모델링 중복, 비유연성, 비일관성 개념적 데이터 모델링 - 추상화 수준 높고, 업무중심적, 포괄적 논리적 데이터 모델링 - 속성, 관계 등을 정확하게 표현 물리적 데이터 모델링 - 실제로 쓸 수 있도록 성능, 저장 고려 외부 스키마 - 개개인 사용자가 보는 개인적 DB 스키마 개념 스키마 - 모든 사용자 관점을 통합한 전체 스키마 내부 스키마 - 물적적 장치에서 데이터가 실제적 저장 ERD 작성 순서 : 그리고 배치하고 관계설정하고 관계명 기술하고 참여도 기술하고 필수여부 기술 엔터티 엔터티 : 업무에 필요하고 유용한 정보를 저장, 관리하기 위한 집합적인 것 특징 : 유일한 식별자에 의해 식별 가능, 두 개 이상의 인스턴스 집합, 업부 프로세스에 이용, 반드시 속성 필요, 다른 인터테와 1개 이상..
[SQL] START WITH, CONNECT BY, PRIOR, ORDER SIBLINGS BY
START WITH, CONNECT BY, PRIOR, ORDER SIBLINGS BY table TAB1 C1 C2 C3 1 A 2 1 B 3 1 C 4 2 D SELECT C3 FROM TAB1 START WITH C2 IS NULL CONNECT BY PRIOR C1 = C2 ORDER SIBLINGS BY C3 DESC result C3 A C B D START WITH C2 IS NULL : 시작점을 정의. 여기서 시작점은 C2가 NULL인 행. CONNECT BY PRIOR C1 = C2 : CONNECT BY 절은 부모와 자식 사이의 계층 구조를 정의 여기서는 현재 행의 C1 값이 이전 행의 C2 값과 일치하는 경우 연결된다. ORDER SIBLINGS BY C3 DESC : ORDER SI..
[SQL] 중첩집계함수, SQL 실행순서, 이너조인, 아우터조인
중첩 집계 함수 중첩된 집계 함수 - 하나 이상의 집계 함수가 서로 중첩되어 사용되는 경우를 의미 SELECT 메뉴ID, 사용유형코드, AVG(COUNT(*)) AS AVGCNT FROM 시스템사용이력 GROUP BY 메뉴ID, 사용유형코드; AVG(COUNT(*))와 같은 구문에서는 COUNT 함수가 먼저 실행되어 각 그룹에서 레코드 수를 계산하고, 이후 AVG 함수가 이 레코드 수의 평균을 계산하려고 시도하는데 이는 각 그룹에 대한 평균을 계산하기 위해 이미 계산된 값들에 대해 또 다른 집계 함수를 적용하려고 하기 때문에 문제가 발생 중첩된 집계 함수를 사용하려는 경우에는 서브쿼리를 활용하여 중첩된 집계 함수를 방지할 수 있음 SQL 실행순서 FROM -> WHERE -> GROUP BY -> HAV..