Entity의 특징 ⭐ 1. 반드시 해당 업무에서 필요하고 관리하고자 하는 정보여야 한다 (ex. 환자, 토익의 응시횟수) 2. 유일한 식별자에 의해 식별이 가능해야 한다 3. 영속적으로 존재하는 두 개 이상의 인스턴스의 집합이어야 한다 4. 엔터티는 업무 프로세스에 의해 이용되어야 한다 5. 엔터티는 반드시 속성이 있어야 한다 6. 엔터티는 다른 엔터티와 최소 한 개 이상의 관계가 있어야 한다 자격증/SQLD 2024.03.07
[SQL 자격검정 실전문제 / 1과목] p.5 5번, 6번 ⭐⭐ 데이터 독립성의 구성요소 - 외부 스키마 : View 단계는 여러 사용자 관점으로 구성 - 개념 스키마 : 통합된 모든 사용자의 관점 : 조직 전체 관점의 통합적 표현 - 내부 스키마 : 물리적 저장 구조 ⭐⭐ 두 영영의 데이터 독립성 - 논리적 독립성 : 개념 스키마가 변경되어도 외부 스키마에는 영향 없음 : 논리적 구조가 변경되어도 응용 프로그램에는 영향 없음 : 외부 단계와 개념적 단계에서 고려 - 물리적 독립성 : 내부 스키마가 변경되어도 외부/개념 스키마는 영향 받지 않음 : 저장장치의 구조 변경은 응용 프로그램과 개념 스키마에 영향 없음 자격증/SQLD 2024.03.07
헷갈리는거 모음 (추가 중) ⭐ 정규화는 논리 데이터 모델 상세화 과정의 대표적인 활동 - 논리 데이터 모델의 일관성을 확보하고 중복을 제거하여 속성들이 가장 적절한 엔터티에 배치되도록 함으로써 보다 더 신뢰성 있는 데이터 구조를 얻는 데 목적이 있음 ⭐ ' ' - ORACLE 에서는 NULL - SQL SERVER 에서는 빈 문자열 ⭐ GROUP BY 절은 NULL 데이터도 집계에 포함 ⭐ CASE ~ - ELSE 없으면 ELSE NULL 이라고 생각하면 됨 ⭐ DDL 실행 시 AUTO COMMIT → AUTO COMMIT 설정을 FALSE 로 한다면? : ORACLE 에서는 그래도 AUTO COMMIT !!!!!!!!!!!! MYSQL SERVER에서는 COMMIT 안함 ⭐ FROM 절에서는 ALIAS 키워드를 사용.. 자격증/SQLD 2024.03.07
[SQLD 기출 / 34회] 30번 정답 : 3 ⭐ ORACLE은 AUTO COMMIT이 FALSE로 설정되어있어도 DDL 수행 후 AUTO COMMIT !!! SQL SERVER 는 AUTO COMMIT이 FALSE로 설정되어 있다면 DDL 수행 후 자동으로 COMMIT 되지 않음 → 문제에서 AUTO COMMIT을 FALSE로 설정했다고 했으므로 ORACLE SERVER에서는 ROLLBACK이 된 후 모두 취소된다 그러나 ORACLE은 설정과 상관없이 DDL 수행 후 AUTO COMMIT 되기 때문에 ROLLBACK이 된 후에도 취소되는게 없다 (CREATE는 DDL) 자격증/SQLD 2024.03.04
WINDOW 함수 SELECT WINDOW함수( ) OVER ( ) FROM TABLE; - 행과 행 사이의 연산을 하기 위함 - OVER : 대상, ~에게 - ( ) : 윈도우 함수 지정 범위 - 행 분할 : PARTITION BY (GROUP BY 역할) - 행 정렬 : ORDER BY (ORDER BY 역할) - 행 지정 : ROWS 또는 RANGE (WHERE 역할) - 순위 함수 : RANK, DENSE_RANK, ROW_NUMBER - 윈도우 집계 함수 : SUM, MAX, MIN, AVG, COUNT - 비율 함수 : RATIO_TO_REPORT, PERCENT_RANK, CUME_DIST, NTITLE ex) SELECT JOB, SUM(SAL) OVER (PARTITION BY JOB ORDER BY SA.. 자격증/SQLD 2024.03.02
서브 쿼리 - 쿼리 문장 안에 들어가 있는 쿼리 - 괄호 안에 넣어줌 - WHERE절에는 집계함수를 쓸 수 없는데 이를 서브쿼리를 통해 해결 단일행 서브 쿼리 - 서브 쿼리의 결과가 단 1건 이하인 서브 쿼리 다중행 서브 쿼리 - 서브 쿼리의 실행 결과가 여러 행인 서브 쿼리 - 반드시 IN, ALL, ANY SOME, EXISTS 의 비교 연산자를 사용 자격증/SQLD 2024.03.02
그룹 합수 ROLLUP 함수 - 하나씩 증가하는 형태 GROUP BY ROLLUP(A) : 전체 합계, 컬럼 A소계(소그룹 집계) GROUP BY ROLLUP(A, B) : 전체 합계, 컬럼 A소계, 컬럼 A,B 조합 소계 GROUP BY ROLLUP(A, B, C) : 전체 합계, 컬럼 A소계, 컬럼 A,B 조합 소계 , 컬럼 A,B,C 조합 소계 CUBE 함수 - 모든 가능한 소계 구함 GROUP BY CUBE(A) : 전체 합계, 컬럼 A소계 GROUP BY CUBE(A, B) : 전체 합계, 컬럼 A소계, 컬럼 B소계, 컬럼 A,B 조합 소계 - 2^n,, 가능한 모든 조합의 소계 및 합계를 생성하기 때문에 시스템에 무리가 갈 수 있음 GROUPING SETS 함수 GROUP BY GROUPING SETS .. 자격증/SQLD 2024.03.02
NULL 관련 함수 NVL (A, B) - Null VaLue - A의 값이 NULL VALUE? → 맞다면 B 출력 - 인수는 반드시 2개만 - ORACLE ISNULL (A, B) - A의 값이 NULL VALUE? → 맞다면 B 출력 - 인수는 반드시 2개만 - SQL SERVER NULLIF (A, B) - NULL IF (A = B) : 만약 A = B 이면 NULL 값 출력 - 그렇지 않다면 A 출력 COALESCE (A, B, C, ....) - A, B,C, ... 순서대로 검사해서 NULL 값이 아닌 최초의 값 출력 자격증/SQLD 2024.03.02
COUNT 집계 함수 COUNT(*), COUNT(1), COUNT(2),,,,,, - 전체 테이블의 행의 수를 출력 - NULL 값 포함해서 행의 수 계산 COUNT(컬럼명) - NULL 제외한 행의 수 계산 COUNT(DISTICT 컬럼) - 중복 제외 - 컬럼이 가지고 있는 고유의 종류의 수를 계산 ex) [T1] COL1 1 2 2 3 NULL 1) SELECT COUNT(*) FROM T1; → NULL 값 포함한 행의 수 → 5 2) SELECT COUNT(1) FROM T1; COL1 1 1 1 2 1 2 1 3 1 NULL 1 SELECT COL1, 1 FROM T1; → 1 값으로 가득 찬 파생 컬럼이 생김 → 1 컬럼에 대해서는 NULL 값이 존재하지 않기 때문에 COUNT(1)은 COUNT(*)와 동일 →.. 자격증/SQLD 2024.03.02
계층형 질의 START WITH~ - 계층 구조 시작점 - 루트 노드 - 계층 구조의 시작 LEVEL은 "1", 자식노드 한 층이 이동할 때 마다 값이 1씩 증가 리프 노드 (leaf node) - 끝에 위치하여 자식노드를 가지지 않음 형제 노드 - 같은 LEVEL CONNECY BY~ - 상하 계층이 이루어지는 조건 NOCYCLE - 계속 반복해서 사이클이 생기는 경우가 있는데, 이런 경우 런타임 오류가 일어남 → NOCYCLE 키워드를 입력하여 1사이클만 생성되도록 할 수 있음 - 표시는 option PRIOR - CONNECT BY PRIOR 자식컬럼 = 부모컬럼 → 부모에서 자식으로 트리 그리기 : 순방향전개 - CONNECT BY 부모컬럼 = PRIOR 자식컬럼 → 부모에서 자식으로 트리 그리기 : 순방향전.. 자격증/SQLD 2024.03.02