db 31

[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] 관계 데이터 모델(Relation Data Model)

관계 데이터 모델(Relation Data Model)은 실제 세계의 데이터가 테이블 형태로 구성된 데이터 모델을 의미한다. 관계 데이터 모델의 구성요소 구성요소 설명 릴레이션 (Relation) 행(Row)과 열(Column)로 구성된 테이블 튜플 (Tuple) 릴레이션의 행(Row)에 해당하는 요소 속성 (Attribute) 릴레이션의 열(Column)에 해당하는 요소 카디널리티 (Cardinality) 튜플(Row)의 수 차수 (Degree) 애트리뷰트(속성, Column)의 수 스키마 (Schema) 데이터베이스의 구조, 제약조건 등의 정보를 담고 있는 기본적인 구조 인스턴스 (Instance) 정의된 스키마에 따라 생성된 테이블에 실제 저장된 데이터의 집합(값의 집합) 식별자 (Identifie..

DB/Data modeling 2024.02.18

[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] 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 *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

[SQL] 뷰(VIEW)의 생성과 삭제 그리고 장단점

뷰(VIEW)는 논리적인, 가상의 테이블을 말한다. 즉, 실제 데이터를 저장하지 않고 쿼리 결과를 가상의 테이블 형태로 제공하는 논리 테이블이라고 보면 된다. 뷰는 실제 존재하는 물리 테이블로부터 생성될 수 있으며 다수의 테이블 또는 다른 뷰를 이용해서 만들 수 있다. VIEW의 장점 VIEW는 데이터베이스의 저장 공간을 차지하지 않으면서, 또한 데이터베이스에 어떠한 영향을 주지 않으면서도 애플리케이션이 원하는 형태로 데이터에 접근할 수 있게 해준다. 또한 복잡한 쿼리나 자주 사용되는 데이터를 간단하게 조회할 수 있는 방법을 제공한다. 예를 들어, 여러 테이블을 조인하여 필요한 데이터를 가져오거나, 특정 조건에 따라 필터링된 데이터를 조회할 수 있다. 하나의 뷰에 여러 개의 테이블에 대한 데이터가 담겨 ..

DB/SQL - Oracle 2024.02.15