SQL 32

[DB] ERD(개체관계 다이어그램)과 논리적 데이터 모델

개체관계 다이어그램(ERD)이란, Entity Relationship Diagram의 약어로 각 업무 분석에서 도출된 개체 간의 관계를 이해하기 쉽게 도식화한 다이어그램을 말한다. ERD는 개체-관계(E-R) 모델을 다이어그램으로 나타낸 것인데, 여기서 개체-관계 모델이란 현실 세계에 존재하는 데이터와 그 데이터들 간의 관계를 사람이 이해할 수 있는 형태로 명확하게 표현하기 위한 모델을 의미한다. 개체-관계(E-R) 모델의 구성요소 : 개체, 속성, 관계 구성요소 설명 특징 개체(Entity) 사물, 사람 등 유무형의 정보를 가지고 있는 요소 물리적 설계 단계에서 테이블로 변환 속성(Attribute) 개체가 갖는 속성을 의미 물리적 설계 단계에서 컬럼으로 변환 관계(Relationship) 두 개 이상..

DB/Data modeling 2024.02.19

[SQL] 날짜 데이터 타입 - date, timestamp

오라클에서 제공하는 날짜 데이터 타입 중 자주 사용하는 타입은 DATE와 TIMESTAMP이다. 보통 날짜 데이터의 경우 사용자가 직접 입력하기 보단 특정 시점에 데이터를 저장할 때 그 시점을 자동으로 저장하는 용도로 많이 사용한다. 그래서 INSERT문으로 데이터를 입력할 때 날짜와 관련된 값은 디폴트값으로 저장하는 경우가 많다. 얼마나 세밀한 데이터가 필요한 지에 따라, 상황에 따라 DATE나 TIMESTAMP를 선택할 수 있다. 사실 이 두 타입 말고도 날짜형 데이터 타입이 더 있긴 하다. 예를 들면, INTERVAL_DAY TO SECOND, TIMESTAMP WITH TIME ZONE, TIMESTAMP WITH LOCAL TIME ZONE 등이 있다. DATE DATE 는 연,월,일,시,분,초..

DB/SQL - Oracle 2024.02.19

[DB] 데이터 모델링(Data Modeling) 및 DB 설계 절차

데이터베이스 상에서 데이터 모델(Data Model)은 현실 세계의 정보를 인간과 컴퓨터가 이해할 수 있도록 추상화하여 표현한 모델이다. 데이터 모델링(Data Modeling)이란, 조직의 정보 수집과 관리 시스템을 정의하는 시각적 표현 또는 청사진을 생성하는 프로세스를 말한다. 이 청사진 또는 데이터 모델은 데이터 분석자, 과학자, 엔지니어와 같은 다양한 이해관계자들이 조직의 데이터에 대한 통일된 개념을 생성할 수 있게 돕는다. 이 모델은 해당 비즈니스가 수집하는 데이터, 서로 다른 데이터 세트 사이의 관계, 데이터를 저장하고 분석하는 데 사용되는 방식을 설명한다. 출처 : https://aws.amazon.com/ko/what-is/data-modeling/ 다시 말해 데이터 모델링은 데이터베이스 ..

DB/Data modeling 2024.02.18

[SQL] 그룹 함수 (1) ROLLUP(소그룹 간 소계 출력), CUBE(다차원 소계 출력)

먼저, 그룹 함수란 무엇인지 살펴보자. 그룹 합수(Group Funtion)는 테이블의 전체 행을 하나 이상의 컬럼을 기준으로 컬럼 값에 따라 그룹화하여 그룹별로 결과를 출력하는 함수를 말한다. 소계* 및 총계 등을 구하기 위해서 그룹 함수를 사용한다면 단일 DML만으로도 원하는 작업을 할 수 있다. *소계 : 전체가 아닌 어느 한 부분만 계산한 합계 그룹 함수의 유형에는 ROLLUP, CUBE, GROUPING SETS가 있다. 그 중 ROLLUP과 CUBE는 GROUP BY절에서 사용되어 그룹별 소계를 추가로 보여주는 역할을 한다. 이번에 다룰 ROLLUP과 CUBE의 특징을 요약하자면, ROLLUP의 경우 레벨별로, CUBE의 경우 가능한 조합별로 집계를 수행한다. ROLLUP(expr1, expr..

DB/SQL - Oracle 2024.02.18

[SQL] 그룹 함수 (2) GROUPING SETS(특정 항목에 대한 소계 출력)

이번에는 그룹쿼리의 일종인 GROUPING SETS에 대해 다뤄보고자 한다. UNION ALL의 개념이 섞여 있어서 집합 연산자 내용과 함께 보면 좀 더 이해하기 수월한 개념이다. 2024.02.17 - [DB/SQL - Oracle] - [SQL] 집합 연산자 : UNION, UNION ALL, INTERSECT, MINUS [SQL] 집합 연산자 : UNION, UNION ALL, INTERSECT, MINUS SELECT 문으로 반환된 결과를 데이터 집합이라 한다. 이러한 데이터 집합(Set)을 연결하는 역할을 하는 것이 바로 집합 연산자(Set Operator)이다. 먼저 각 개념에 대해 살펴보고 예시를 통해 유의사항 bio-logisch.tistory.com 그룹 함수에 대한 개념과 앞서 다룬 ..

DB/SQL - Oracle 2024.02.18

[SQL] 집합 연산자(Set Operator) - UNION, UNION ALL, INTERSECT, MINUS

SELECT 문으로 반환된 결과를 데이터 집합이라 한다. 이러한 데이터 집합(Set)을 연결하는 역할을 하는 것이 바로 집합 연산자(Set Operator)이다. 먼저 각 개념에 대해 살펴보고 예시를 통해 유의사항에 대해서도 함께 다뤄보고자 한다. 집합 연산자의 개념과 특징 집합 연산자는 두 개 이상의 테이블에서 여러 개의 질의의 결과를 연결하여 하나로 결합하는 연산자를 말한다. 데이터 집합이 대상이므로 집합 연산자를 사용할 때 데이터 집합의 수는 한 개 이상을 사용할 수 있다. 즉, 여러 개의 SELECT문을 연결해 또 다른 하나의 쿼리를 만드는 역할을 한다고 볼 수 있다. 집합 연산자는 수학의 집합 개념과 같고, 합집합은 UNION, 대상 집합에서 중복된 건까지 모두 포함한 합집합은 UNION ALL..

DB/SQL - Oracle 2024.02.17

[SQL] Sub-Query(서브쿼리) - 스칼라, 인라인 뷰, 중첩 서브쿼리

서브 쿼리(Sub-Query)란, 한 쿼리문 안에 포함된 또 다른 SELECT 문을 의미한다. 최종 결과를 출력하는 쿼리를 메인쿼리라고 한다면, 이를 위한 중간 단계 혹은 보조 역할을 하는 SELECT문을 서브쿼리라 한다. ***메인쿼리는 SELECT문 외에도 INSERT, UPDATE, MERGE, DELETE문도 가능하다. 하지만 서브쿼리는 SELECT문만 가능하다. 서브쿼리의 특징 메인쿼리와 서브쿼리의 관계는 주종 관계로서, 서브쿼리에 작성된 컬럼명은 메인쿼리의 컬럼명을 가져와서 사용할 수 있으나 그 역은 성립하지 않는다. 하나의 SQL 문을 기준으로 메인쿼리를 제외한 나머지 모든 SELECT문을 서브쿼리로 보면 된다. 하나의 메인쿼리 안에는 1개 이상의 서브쿼리를 사용할 수 있다. (물론 필요없으..

DB/SQL - Oracle 2024.02.16

[SQL] 조인(JOIN) - Inner join, outer join, cross join

조인(JOIN)은 두 개 이상의 테이블(뷰나 서브쿼리와 같은 논리 테이블 포함)을 연결하여 데이터를 검색하는 방법이다. 두 개 이상의 릴레이션(테이블)로부터 '관련된 튜플들'을 결합하여 하나의 튜플로 만드는 가장 대표적인 데이터 연결 방법이다. 여기서 포인트는 '관련된 튜플들'이라는 점이다. 조인의 전제조건으로는 연결하려는 테이블에 각각 '관련된 튜플들', 즉 매칭되는 컬럼이 있어야 한다. 예를 들어, 회원 테이블에 있는 회원명 컬럼과 자동차 등록정보 테이블에 있는 소유주명 컬럼과 같이 값이 사람의 이름이며, 조인 시 관련 튜플로서 연결될 수 있는 컬럼을 기준으로 조인할 수 있는 것이다. 조인의 종류 조인은 크게 논리적 조인과 물리적 조인으로 구분된다. 분류 설명 유형 예시 논리적 조인 사용자 SQL 문..

DB/SQL - Oracle 2024.02.16

[SQL] DML(데이터 조작어) - select *order by* 정렬 + ASCII(아스키코드) + UNICODE(유니코드)

SQL 종류 1. 데이터를 정의하는 쿼리 - DDL(데이터 정의어) : create, drop, alter, truncate 2. 데이터를 조작하는 쿼리 - DML(데이터 조작어) : insert, select, update, delete 3. 데이터를 제어하는 쿼리 - DCL(데이터 제어어) : grant, revoke 4. 트랜잭션 제어하는 쿼리 - TCL(트랜잭션 제어어) : commit, rollback, checkpoint SELECT에 대한 기본적인 내용은 아래 글을 참고해주세요! 2024.02.02 - [DB/SQL - Oracle] - [SQL] DML(데이터 조작어) - select [SQL] DML(데이터 조작어) - select SQL 종류 1. 데이터를 정의하는 쿼리 - DDL(데이..

DB/SQL - Oracle 2024.02.16

[SQL] DML(데이터 조작어) - select *group by, having* 그룹화

SQL 종류 1. 데이터를 정의하는 쿼리 - DDL(데이터 정의어) : create, drop, alter, truncate 2. 데이터를 조작하는 쿼리 - DML(데이터 조작어) : insert, select, update, delete 3. 데이터를 제어하는 쿼리 - DCL(데이터 제어어) : grant, revoke 4. 트랜잭션 제어하는 쿼리 - TCL(트랜잭션 제어어) : commit, rollback, checkpoint SELECT에 대한 기본적인 내용은 아래 글을 참고해주세요! 2024.02.02 - [DB/SQL - Oracle] - [SQL] DML(데이터 조작어) - select [SQL] DML(데이터 조작어) - select SQL 종류 1. 데이터를 정의하는 쿼리 - DDL(데이..

DB/SQL - Oracle 2024.02.16