본문 바로가기
728x90

데이터베이스6

[SQL] 5. 윈도우 함수(Window Functions) 1. 윈도우 함수 개념윈도우 함수는 결과 집합 내에서 ‘현재 행을 기준으로 주변 행’을 참조해 계산OVER( [PARTITION BY …] [ORDER BY …] ) 절 필수2. 기본 형태함수명(컬럼_or_식) OVER ( [PARTITION BY 분할컬럼…] [ORDER BY 정렬컬럼…])PARTITION BY: 그룹화 (GROUP BY와 유사하나, 결과행 수는 유지)ORDER BY: 윈도우 내 순서 지정윈도우 프레임 지정 없이 기본값은 RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW3. 순위 함수3-1. ROW_NUMBER(): 순번 부여 (중복 없이 1,2,3…)SELECT department_id, employee_id, sal.. 2025. 5. 19.
[SQL] 4. 뷰(View), 인덱스(Index), 시퀀스(Sequence) 1. 뷰(View)뷰는 하나 이상의 테이블을 조합하여 만든 가상의 테이블입니다. 복잡한 SELECT 문을 이름 붙여 재사용하거나, 특정 컬럼·행만 노출할 때 유용합니다.1-1. 뷰 생성CREATE OR REPLACE VIEW 직원_연봉_VIEW ASSELECT EMPLOYEE_ID, FIRST_NAME, LAST_NAME, SALARY, DEPARTMENT_IDFROM EMPLOYEESWHERE SALARY > 3000;1-2. 뷰 사용SELECT *FROM 직원_연봉_VIEWORDER BY SALARY DESC;1-3. 뷰 장단점장점복잡한 쿼리를 단순화권한 분리: 민감한 컬럼은 뷰에선 제외 가능단점업데이트 가능한 뷰인지 확인 필요너무 많은 뷰는 관리.. 2025. 5. 19.
[SQL] 3.집합 연산(SET OPERATIONS) 1. UNION / UNION ALLUNION: 두 개 이상의 SELECT 결과를 합치되, 중복 행 제거UNION ALL: 합칠 때 중복을 그대로 포함 -- 부서 10 직원과 부서 20 직원을 합쳐서 조회 (중복 제거)SELECT EMPLOYEE_ID, FIRST_NAME, DEPARTMENT_IDFROM EMPLOYEESWHERE DEPARTMENT_ID = 10UNIONSELECT EMPLOYEE_ID, FIRST_NAME, DEPARTMENT_IDFROM EMPLOYEESWHERE DEPARTMENT_ID = 20ORDER BY DEPARTMENT_ID;-- 중복 포함 버전SELECT … WHERE DEPARTMENT_ID = 10UNION ALLSELECT … WHERE DEPARTME.. 2025. 5. 19.
[SQL] 1. JOIN 1. 조인의 기본 개념여러 테이블에 흩어진 관련 데이터를 한 번에 조회할 때 사용합니다.SELECT … FROM 테이블A A [INNER | LEFT | RIGHT | FULL] JOIN 테이블B B ON A.공통컬럼 = B.공통컬럼;1-1. INNER JOIN두 테이블에서 매칭되는 행만 조회SELECT E.EMPLOYEE_ID, E.FIRST_NAME, D.DEPARTMENT_NAME FROM EMPLOYEES E INNER JOIN DEPARTMENTS D ON E.DEPARTMENT_ID = D.DEPARTMENT_ID;1-2. LEFT OUTER JOIN왼쪽 테이블의 모든 행 + 매칭되는 오른쪽 행오른쪽에 매칭이 없으면 NULLSELECT E.EMPLOYEE_ID, E.FIRST_NA.. 2025. 5. 19.
NoSQL 유형 별 개념 및 특성 정리/ MongoDB 선정 이유와 후기 개요 작년 말 조직개편으로 다른 분이 진행하던 프로젝트를 떠맡게 되었다ㅠㅠ 우리 회사 빌링시스템의 여러 모듈은 Oracle 공통 DB를 바라보고 있는데, 여기에서 일부 업무를 분리하여 MongoDB로 전환하는 프로젝트이다. 안정적으로 운영하고 있는 Oracle에서 MongoDB로 전환하는 것에 대한 윗분들의 걱정이 크셔서 윗분들을 설득하기 위해(내가 제안한게 아니라서 나도 설득 필요 ㅠㅠ) RDB부터 NoSQL까지 데이터베이스 유형별 비교가 필요하여 정리한다. 주요 내용은 "7 데이터베이스, 에릭 레드몬드, 짐 R. 윌슨"을 참조하였다. 일단 내가 맡은 프로젝트는 대략 아래와 같은 특성과 목표를 가지고 있다. 공통 DB(Oracle)의 다양한 테이블을 조인하여 MongoDB에 한 개의 Collection.. 2022. 9. 21.
[Database] ACID, BASE, CAP 이론과 DB 선택 방법 회사에서 NoSQL DBMS 도입을 검토하면서 ACID, BASE, CAP 이라는 용어를 접했습니다. ACID는 어디서 많이 들어본거 같은데, BASE와 CAP은 처음 들어봤습니다. 각 용어의 정의와 어떤 때 어떤 조건을 충족시켜야 할지 고민해보겠습니다. 1. ACID ACID(원자성, 일관성, 고립성, 지속성)는 데이터베이스 트랜잭션이 안전하게 수행된다는 것을 보장하기 위한 성질을 가리키는 약어 입니다. (위키백과, ACID) 데이터베이스에서 데이터에 대한 하나의 논리적 실행단계를 트랜잭션이라고 합니다. 예를 들어, 은행에서의 계좌이체를 트랜잭션이라고 할 수 있는데, 계좌이체라는 트랜잭션이 내부적으로는 여러단계로 이루어질 수 있지만, '송신자 계좌의 금액 감소', '수신자 계좌의 금액 증가'가 한 동작.. 2022. 9. 13.
728x90