본문 바로가기

스파르타 코딩클럽/[강의] SQLD 자격증 대비반

(12)
[SQLD 자격증 대비반] 챕터 13. 그룹 함수, 윈도우 함수 AGGREGATE FUCTION / 집계함수 GROUP 함수의 한 부분으로 분류 가능 COUN, SUM, AVG, MAX, MIN 모두 집계 함수이며 그 외에도 다양한 집계 함수 존재 GROUP FUNCTION / 그룹함수 데이터에 대한 결산 개념의 연산을 할 때 주로 사용 ROLLUP 칼럼으로 그룹을 만든 후 각 칼럼의 중간 합계를 만들기 위해 사용 함수 내부 인자로 지정된 그룹화 칼럼은 소계를 생성하는 데 사용 그룹화된 칼럼의 수가 N개면 소계는 N+1개 생성됨 (총계 포함) 계층 구조이기 때문에 함수 내의 인자 순서가 바뀌면 결과도 바뀜 계층 간 집계에 대해서는 LEVEL 별 순서를 정렬하지만 계층 내 GROUP BY 수행 시 생성되는 표준 집계에는 별도의 정렬을 지원하지 않기 때문에 별도의 ORD..
[SQLD 자격증 대비반] 챕터 12. 서브쿼리 집합 연산자 SELECT를 통해 얻은 결과 간의 집합 연산을 수행 2개 이상의 쿼리 수행 결과를 하나의 결과로 만들어 줌 집합 연산자를 사용하기 위해서는 SELECT 절의 칼럼 수가 동일해야 함 ORDER BY는 최종 결과에 대한 정렬 처리이므로 가장 마지막 줄에 한 번만 기술 종류 : UNION, UNION ALL, INTERSECT, MINUS(EXCEPT) 서브쿼리 하나의 SQL문 안에 포함되어 있는 또다른 SQL 문을 의미 서브쿼리는 조인과 다르게 자유로운 형태의 참조가 아닌 특정 조건에 맞게 참조해야 함 알려지지 않은 기준을 이용한 검색을 위해 사용되기 때문에 메인쿼리가 서브쿼리를 포함하는 형태 ➡️서브쿼리는 레벨과 상관없이 항상 메인쿼리 레벨로 결과 집합이 생성 서브쿼리는 소괄호()로 감싸서 ..
[SQLD 자격증 대비반] 챕터 11. JOIN JOIN 두 개 이상의 테이블을 연결 또는 결합하여 데이터를 출력하는 것 일반적인 경우 행들은 PK나 FK 값의 관계에 의해 JOIN이 성립되지만 어떤 경우는 논리적인 값들의 연관만으로도 JOIN이 가능 EQUI JOIN 두 테이블 간에 칼럼 값들이 서로 같은 경우 두 데이터를 하나로 합치는 JOIN 주로 사용되는 칼럼이 PK와 FK이며, 다른 칼럼의 값으로도 성립됨 기본 구조 JOIN 할 두 테이블을 FROM 절에 나열 JOIN의 조건은 WHERE 절에 = 연산자를 사용하여 표현 테이블명과 칼럼명을 같이 명시하는 이유는 칼럼명이 동일한 경우 어느 테이블의 칼럼인지 명확하게 알 수 없기 때문이다. 즉, 가독성과 유지보수를 높이기 위해 같이 명시 테이블명이 길고 SQL의 복잡도가 높아지면 가독성이 떨어지기..
[SQLD 자격증 대비반] 챕터 10. TCL과 DCL 집계 함수 여러 데이터들의 정보를 집계하여 연산을 해주는 함수 GROUP BY 절에서 작성한 칼럼 기준으로, 그룹으로 모인 상태에서 각 그룹의 집계를 계산하는 데 사용 기본 구조 ALL - 모든 값을 기준으로 집계할 때 사용하는 옵션 - 기본값이므로 생략 가능 DISTINCT - 같은 값을 하나의 데이터로 간주할 때 사용하는 옵션 - SELECT 문의 결과에서 유일한 하나의 행만 출력 집계 함수명( [DISTINCT | ALL] 칼럼이나 표현식 ) 집계 함수 종류 COUNT(*) NULL 값을 포함한 행의 수 출력 COUNT(표현식) 표현식 값이 NULL 값인 것을 제외한 행의 수 출력 SUM([DISTINCT | ALL] 표현식) 표현식의 NULL 값을 제외한 합계 출력 AVG([DISTINCT | A..
[SQLD 자격증 대비반] 챕터 9. WHERE, ROWNUM, ROWID, 함수 WHERE 원하는 데이터만 조회, 수정, 삭제할 때 사용 단독으로 사용하지 않고 조회, 수정, 삭제시 함께 사용 - SELECT [ALL|DISTINCT] 칼럼명 [AS 별명] FROM 테이블명 WHERE 조건식; - UPDATE 테이블명 SET 칼럼명=값 WHERE 조건식; - DELETE FROM 테이블명 WHERE 조건식; 비교 연산자 숫자 혹은 문자 값의 대/소 그리고 동일하지를 확일할 때 사용하는 가장 기본적인 연산자 =, >, >=,
[SQLD 자격증 대비반] 챕터 8. DML과 SELECT DML 테이블에 데이터를 삽입(INSERT), 삭제(DELETE), 수정(UPDATE), 조회(SELECT)하는 일을 수행하는 SQL로 구성 추가적으로 SQL문을 수행하고 난 이후 이를 데이터베이스에 완전하게 반영하는 커밋(COMMIT)과 작업 취소를 위한 롤백(ROLLBACK)이 있음 INSERT 필요한 데이터를 저장할 때 사용하는 명령어 데이터 저장 방법 2가지 칼럼 리스트 명시 : 어떤 칼럼에 값을 넣을지 명시하며 저장할 데이터도 칼럼의 순서에 맞게 작성 칼럼 리스트 명시 X : 모든 칼럼에 값을 넣을 것이라는 의미로 테이블에 정의된 칼럼의 개수에 맞춰 저장되는 값을 순서대로 입력 -- 칼럼 리스트 명시 INSERT INTO 테이블_이름 (컬럼1, 컬럼2, ...) VALUES (값1, 값2, ....
[SQLD 자격증 대비반] 챕터 7. 관계형 데이터베이스와 DDL 관계형 데이터베이스(Relational Database) 데이터베이스를 체계적으로 관리하고 운영하는 소프트웨어 사용자가 정해진 방식으로 요청하고 행과 열의 2차원 관계로 정의된 데이터(테이블 형태)의 생성, 수정, 삭제, 조회 가능(=CRUD) 관계형 데이터베이스 관리 시스템(RDBMS) RDBMS는 메타 데이터를 총관 관리할 수 있기 때문에 데이터의 성격, 속성 또는 표현 방법 등을 체계화할 수 있고, 데이터 표준화를 통해 데이터 품질 확보 가능 RDBMS는 인증된 사용자만이 참조할 수 있도록 보안 기능 제공, 사용자가 실수로 조건에 위배되는 행동을 할 경우 이를 방지하여 데이터 무결성 보장 RDBMS는 시스템의 갑작스러운 장애로부터 사용자가 입력, 수정, 삭제하던 데이터가 제대로 반영될 수 있도록 보..
[SQLD 자격증 대비반] 챕터 5. 데이터베이스 성능 대량 데이터 발생에 따른 테이블 분할 데이터 양이 많을 경우 테이블 내에서 수많은 트랜잭션 발생 ➡️ 데이터베이스 성능 저하 수평 분할 : 행 단위로 요소를 분할하여 디스크 입/출력 비용 감소 수직 분할 : 칼럼 단위로 요소를 분할하여 디스크 입/출력 비용 감소 성능 저하 현상 로우 체이닝 행 데이터가 길어서 2개 이상의 데이터 블록에 걸쳐 하나의 행이 저장된 형태 하나의 행을 읽을 때 2개 이상의 데이터 블록 읽음 ➡️ 읽어야 하는 데이터 증가하여 성능 저하 로우 마이그레이션 데이터 블록에서 수정이 발생하면 수정된 데이터를 해당 블록에 저장하지 못하고, 다른 블록의 빈 공간을 찾아서 저장 로우 체이닝과 마찬가지로 절대적으로 읽어야 하는 데이터 블록 수가 증가하여 성능 저하 테이블 수직 분할 한 테이블에..
[SQLD 자격증 대비반] 챕터 4. 성능 데이터 모델링과 정규화 성능 데이터 모델링 처음부터 데이터베이스 성능 향상을 목적으로 하는 작업 프로젝트 수행 중보단 사전에 철저하게 설계된 상태로 도입할수록 비용이 적게 듦 분석/설계 단계에서 성능 데이터 모델링을 수행할 경우 성능 저하로 인해 발생하는 재업무 비용 최소화 성능 데이터 모델링 고려사항 정규화를 정확하게 수행 데이터를 주요 관심사별로 분산 정규화를 통해 중복된 데이터가 쌓이는 것 막을 수 있음 데이터베이스 용량 산정 수행 어떤 테이블(엔터티)에 데이터 집중되는지 파악 가능 필요한 경우 테이블 분리와 조인을 통한 데이터 수집 필요 데이터베이스에서 발생되는 트랜잭션 유형 파악 CRUD 매트릭스 혹은 시퀸스 다이어그램을 보면 파악하기 용이 데이터 조회에 필요한 조인 관계 등 파악 가능 데이터베이스의 용량과 트랜잭션 ..
[SQLD 자격증 대비반] 챕터 3. 데이터 모델링의 요소 엔터티(Entity) "개체" 라고 표현하며 정보의 세계에서 의미있는 하나의 정보 단위를 뜻함 데이터베이스에서 레코드가 개체에 해당 엔터티와 인스턴스 엔터티는 인스턴스(Instance)의 집합 인스턴스는 데이터베이스 테이블에 저장된 특정한 데이터 내용의 전체 집합 즉, 하나의 행(row)을 의미 하나의 인스턴스가 갖는 각각의 특징을 속성(Attribute)라고 하고 이는 테이블의 열(column)에 해당 엔터티의 특징 업무에서 필요로 하는 정보 식별 가능 여부 : 인스턴스가 식별자에 의해 한 개씩만 존재하는지 검증 인스턴스의 집합 : 기본적으로 2개 이상의 인스턴스로 엔터티 구성 업무 프로세스에 의해 활용되어야 함 속성을 포함해야 함 : 주식별자만 존재하고 일반 속성이 없는 경우 엔터티 X 관계의 존재 ..