본문 바로가기

Big Data/Database26

GROUP BY와 ROLL UP ROLL UP은 GROUP BY 절과 함께 사용되는 데이터베이스의 집계(Aggregation) 기능 중 하나로, 계층적인 합계 정보를 생성하는데 사용됩니다. GROUP BY 절은 특정 컬럼의 값을 기준으로 데이터를 그룹화하고, 집계 함수를 사용하여 각 그룹의 합계, 평균, 카운트 등을 계산합니다. ROLL UP은 GROUP BY의 확장된 기능으로, GROUP BY로 생성한 그룹화 결과를 계층적으로 확장하여 다양한 레벨의 합계 정보를 얻을 수 있도록 합니다. ROLL UP을 사용하면, GROUP BY로 생성된 그룹화 결과에 대해 각 레벨별로 합계 정보를 보여줄 수 있습니다. 즉, 여러 컬럼의 그룹화를 한 번에 수행하고, 그룹화된 결과에 대해 여러 레벨의 집계 값을 동시에 확인할 수 있습니다. ROLL UP.. 2023. 7. 26.
NULL 처리 함수 NULLIF 함수 NULLIF 함수는 두 개의 인수를 비교하여 두 값이 같으면 NULL을 반환하고, 다르면 첫 번째 인수의 값을 반환합니다. 주로 두 값이 같을 때 NULL 값을 반환해야 하는 상황에 사용됩니다. 구문: NULLIF(expression1, expression2) 예제: SELECT NULLIF(10, 10) AS result; -- 결과: NULL SELECT NULLIF(20, 10) AS result; -- 결과: 20 SELECT NULLIF('hello', 'hello') AS result; -- 결과: NULL SELECT NULLIF('world', 'hello') AS result; -- 결과: 'world' IFNULL 함수 IFNULL 함수는 첫 번째 인수가 NULL이 아.. 2023. 7. 26.
NULL과 연산 SQL에서 모든 연산이 NULL을 만나면 빈 테이블이 반환되지 않습니다. NULL은 데이터가 없음을 나타내는 특별한 값으로, NULL과 다른 값을 연산하면 결과는 항상 NULL이 됩니다. 하지만 이렇게 연산 결과가 NULL이 된다고 해서 쿼리가 빈 테이블을 반환하는 것은 아닙니다. 실제로 SQL에서 연산 결과가 NULL이더라도, SELECT 문이나 다른 쿼리 구문에서는 NULL 값을 처리하는 방식이 다양합니다. NULL 값을 가진 레코드는 보통 다른 레코드와 함께 결과에 포함되며, NULL 값 처리를 위해 특정 함수나 조건문을 사용할 수 있습니다. 예를 들어, 다음과 같은 테이블이 있다고 가정해봅시다. 테이블: Employees 1 John Doe 50000 2 Jane Smith NULL 3 Mike .. 2023. 7. 26.
서브쿼리의 유형 서브쿼리(Subquery)에는 세 가지 주요 유형이 있습니다. 인라인 뷰(Inline View), 스칼라 서브쿼리(Scalar Subquery), 그리고 연관 서브쿼리(Correlated Subquery)가 있습니다. 인라인 뷰(Inline View) 인라인 뷰는 주 쿼리 내에서 서브쿼리가 사용되는 형태로, 서브쿼리 결과를 뷰(View)처럼 다루는 방식입니다. 주로 FROM 절에서 서브쿼리를 사용하여 데이터를 필터링하거나, 서브쿼리가 생성하는 가상 테이블을 사용하여 복잡한 연산을 수행합니다. 예를 들면, 다음과 같이 사용됩니다: SELECT column1, column2 FROM (SELECT column1, column2 FROM table1 WHERE condition) AS inline_view; .. 2023. 7. 25.
식별관계, 비식별관계 식별 관계와 비식별 관계는 데이터베이스 설계에서 엔티티 간의 관계를 나타내는 데 사용되는 개념입니다. 이 둘은 엔티티 간 관계를 표현하는 방법에 차이가 있습니다. * 관계에서는 다른 테이블의 컬럼을 사용하는데 해당 컬럼을 식별자로 사용하면 식별자 관계이며 사용하지 않으면 비식별자 관계입니다. 식별 관계 (Identifying Relationship) 식별 관계는 부모 엔티티와 자식 엔티티 간의 관계를 말합니다. 자식 엔티티의 주요 식별자(Primary Key)는 부모 엔티티의 식별자를 포함합니다. 즉, 자식 엔티티의 식별자는 부모 엔티티의 식별자에 의해 식별됩니다. 이러한 관계는 보통 일대일(1:1) 또는 일대다(1:N) 관계에서 나타납니다. 식별 관계는 세로선으로 표현됩니다. 비식별 관계 (Non-id.. 2023. 7. 24.
일관성과 무결성 데이터 일관성(Consistency)과 무결성(Integrity)은 데이터베이스에서 중요한 개념들로서, 데이터의 정확성과 신뢰성을 보장하기 위해 사용됩니다. 데이터 일관성과 무결성이 유지되면, 잘못된 데이터가 저장되는 것을 방지하고 데이터의 신뢰성과 정확성을 보장하여 품질 높은 서비스를 제공할 수 있게 됩니다. 데이터 일관성 (Consistency) 데이터 일관성은 데이터베이스의 상태가 항상 일관되고 정확한 상태를 유지하는 것을 의미합니다. 데이터베이스에 저장된 데이터는 언제나 논리적인 규칙과 제약 조건을 따라야 합니다. 예를 들어, 특정 고객의 정보를 한 번만 저장하도록 제약 조건이 설정되어 있다면, 같은 고객의 정보가 중복되어 저장되지 않도록 데이터 일관성을 유지합니다. 데이터 일관성은 트랜잭션(Tr.. 2023. 7. 24.
정규화(Normalization) 정규화(Normalization)는 관계형 데이터베이스에서 데이터를 구조화하는 프로세스로서, 중복을 최소화하고 데이터의 일관성과 무결성을 보장하기 위해 데이터를 여러 개의 테이블로 분할하는 작업을 말합니다. 정규화는 데이터의 논리적 설계 단계에서 주로 이루어지며, 데이터베이스의 성능과 유지보수를 향상시키는 데 도움이 됩니다. 여러 개의 정규화 레벨이 존재하며, 보통 1차 정규화부터 5차 정규화까지 있습니다. 높은 정규화 레벨은 데이터의 중복을 최소화하고 데이터의 일관성을 보장하는 대신, 데이터를 검색하는데 더 많은 조인 작업이 필요할 수 있습니다. 정규화 레벨은 프로젝트의 요구사항과 성능을 고려하여 결정해야 합니다. 1차 정규화 (1NF) 테이블의 모든 속성이 원자값(Atomic Value)을 가지도록 .. 2023. 7. 24.
데이터베이스의 종류 문서 기반 데이터베이스 (Document-based DB) 문서 기반 데이터베이스는 NoSQL 데이터베이스의 하나로, BSON(Binary JSON)이나 XML과 같은 형식으로 데이터를 저장하는 방식을 가지고 있습니다. 데이터를 "문서(Document)"라는 개념으로 저장하며, 이는 키-값 쌍으로 구성된 유연한 데이터 구조를 의미합니다. 주로 JSON 형식을 사용하여 데이터를 저장하고, 문서 간에는 스키마가 고정되어 있지 않아 유연하게 데이터를 관리할 수 있습니다. 대표적인 문서 기반 데이터베이스로는 MongoDB가 있습니다. 컬럼 기반 데이터베이스 (Columnar DB) 컬럼 기반 데이터베이스는 관계형 데이터베이스의 테이블과는 달리, 데이터를 행(row)이 아닌 컬럼(column) 단위로 저장하는 방.. 2023. 7. 24.