db 15

DELETE vs TRUNCATE

DELETE 테이블에서 특정 조건에 맞는 데이터를 삭제하는 SQL 명령어데이터를 하나씩 삭제하며, 삭제된 데이터는 복구가 가능(트랜잭션을 통해 롤백 가능)DELETE FROM employeesWHERE department = 'HR';TRUNCATE 테이블에 있는 모든 데이터를 한 번에 삭제하는 SQL 명령어데이터의 구조(테이블 스키마)는 유지하지만, 삭제된 데이터는 복구가 불가능TRUNCATE TABLE employees;DELETE vs TRUNCATE 비교 항목DELETETRUNCATE데이터 삭제 범위조건에 따라 삭제 가능테이블 전체 데이터 삭제속도느림 (트랜잭션 로그 기록)빠름복구 가능 여부트랜잭션 롤백을 통해 복구 가능복구 불가트리거(trigger)트리거 호출트리거 호출되지 않음외래 키 사용 테..

DB/MySQL 2025.02.26

트랜젝션 (Transaction)

트랜젝션 (Transaction) 트랜잭션은 데이터베이스 작업의 논리적인 작업 단위를 말합니다. 테이블 내용을 변경하는 여러 개의 데이터 조작(INSERT, UPDATE, DELETE 등)이 하나의 트랜잭션으로 묶여 처리되며, 작업이 성공적으로 완료되거나 실패할 경우 데이터베이스의 상태를 일관되게 유지하도록 보장합니다.쉽게 말하자면 :트랜잭션은 여러 작업을 하나로 묶어 "전부 성공" 또는 "전부 실패"로 처리합니다.ex. 은행 송금에서 "출금"과 "입금"은 반드시 함께 성공하거나 함께 실패해야 합니다.특징 트랜잭션은 데이터 무결성을 보장하기 위해 다음 네 가지 속성(ACID)을 충족해야 합니다.1. 원자성 (Atomicity)정의 : 트랜잭션 내의 모든 작업은 하나의 단위로 실행되며, 모두 성공하거나 전..

DB/MySQL 2025.02.01

JDBC 의존성 (Dependency)

의존성 (Dependency) 의존성이란, 한 객체나 모듈이 다른 객체나 모듈에 의존하는 관계를 의미합니다.즉, 어떤 코드가 다른 코드(또는 라이브러리)가 없으면 동작할 수 없는 상태를 나타냅니다.JDBC 의존성 JDBC를 사용하는 애플리케이션은 데이터베이스와 연결하기 위해 JDBC 드라이버에 의존합니다.JDBC 드라이버는 애플리케이션과 특정 DBMS(MySQL, Oracle, PostgreSQL 등) 간의 통신을 담당합니다.JDBC 드라이버 없이 JDBC 코드가 작동할 수 없습니다.ex. MySQL 데이터베이스를 사용할 때는 mysql-connector-java 드라이버를 추가해야 합니다.예시 1.  MySQL JDBC 드라이버 의존성 (1) 의존성 추가 (Maven 사용)Maven 프로젝트에서 MyS..

DB/JDBC 2025.01.11

JDBC (Java Database Connectivity)

JDBC (Java Database Connectivity)JDBC는 자바 애플리케이션과 데이터베이스를 연결하고 상호작용할 수 있도록 지원하는 표준 API입니다.이를 통해 자바 프로그램은 데이터베이스에서 데이터를 읽고 쓰거나 업데이트하며, 다양한 데이터베이스 시스템과 독립적으로 작업할 수 있습니다. 소규모 애플리케이션에서 데이터베이스와 직접 연결해 작업대규모 애플리케이션에서는 JDBC를 기반으로 한 ORM 도구(Hibernate, JPA)와 함께 사용역할 데이터베이스 연결데이터베이스와 연결을 설정하고 종료합니다.SQL 실행SELECT, INSERT, UPDATE, DELETE와 같은 SQL 쿼리를 실행합니다.결과 처리SQL 쿼리의 실행 결과(조회된 데이터 등)를 처리합니다.DB 독립성 제공MySQL, O..

DB/JDBC 2025.01.09

물리적 데이터 모델링 역정규화 (Denormalization) 활용

원본 테이블 이 데이터 구조는 정규화된 상태로, 데이터의 중복을 최소화하고 데이터 무결성을 유지하도록 설계되어 있습니다.  • author: 작성자 정보 (id, name, profile) • topic : 주제 정보 (title, description, created, author_id) • topic_tag_relation : 주제와 태그 간의 관계를 나타내는 테이블 (topic_title, tag_id) • tag : 태그 정보 (id, name)방법 1 . 컬럼 중복 → JOIN 줄이기topic_tag_relation 테이블에 tag_name이라는 열을 추가하여, 태그 이름(rdb, free, commercial)을 바로 확인할 수 있도록 만듭니다. 1. 역정규화 이전 쿼리SELECT tag.na..

DB/RDB 2024.12.26

물리적 데이터 모델링 역정규화 (Denormalization)

역정규화 (Denormalization)  역정규화(Denormalization)는 정규화를 통해 잘게 분리된 테이블을 다시 통합하거나, 데이터 중복을 추가하여 데이터베이스의 읽기 성능을 최적화하는 기법입니다.주로 물리적 데이터 모델링 단계에서 적용되며, 데이터를 더 빠르게 조회하고 쿼리 성능을 개선하기 위해 사용됩니다.필요한 경우 읽기 성능 향상테이블을 통합하거나 중복 데이터를 저장하여, 자주 사용되는 데이터를 JOIN 없이 조회 가능JOIN 비용 감소정규화된 데이터베이스는 여러 테이블을 JOIN해야 필요한 데이터를 얻을 수 있는데, JOIN 연산은 성능에 부담을 줄 수 있음역정규화는 이 문제를 완화실시간 응답 속도 요구실시간 처리 시스템에서 빠른 데이터 조회가 중요한 경우, 역정규화를 통해 성능 최적..

DB/RDB 2024.12.25

물리적 데이터 모델링 (Physical Data Modeling)

물리적 데이터 모델링 물리적 데이터 모델링(Physical Data Modeling)은 논리적 데이터 모델을 기반으로, 실제 데이터베이스에서 구현 가능한 구조를 설계하는 단계입니다.이 단계에서는 DBMS의 특성, 성능 요구사항, 저장 장치의 구조 등을 고려하여 데이터베이스를 최적화된 형태로 설계하고, 결과적으로 SQL 문으로 변환하여 데이터베이스를 생성합니다.특히, 이 단계에서는 성능을 향상 시키는 것이 가장 중요한데, 이를 위해서는 find slow query, 즉, 병목 현상이 발생하는 지점을 찾는게 중요하다. * slow query각 DBMS 마다 설정이 다르다.MySQL : https://bemeal2.tistory.com/314 mysql / mariadb 슬로우쿼리(slowquery) 탐지하기..

DB/RDB 2024.12.24

논리적 데이터 모델링 도메인 (Domain)

도메인 (Domain)  도메인(Domain)은 데이터베이스 설계에서 속성(Attribute)에 허용되는 값들의 집합을 의미합니다. 특정 속성이 가질 수 있는 데이터의 범위나 타입을 정의하는 개념입니다.데이터 타입 : INTEGER, VARCHAR, DATE 등값의 제약 조건 : 범위 제한, 특정 형식 등특징 값의 범위 제한도메인은 속성이 가질 수 있는 값의 유형과 허용 범위를 정의합니다.ex. 나이 속성의 도메인은 0~120 사이의 정수(Integer)일 수 있습니다.속성의 데이터 타입과 제약 조건 포함도메인은 데이터 타입(ex. INTEGER, VARCHAR, DATE)뿐 아니라, 제약 조건(ex. UNIQUE, NOT NULL, CHECK)을 포함하여 속성을 더 구체적으로 정의할 수 있습니다.속성 ..

DB/RDB 2024.12.23

논리적 데이터 모델링 정규화 (Normalization)

정규화 (Normalization) 정규화(Normalization)는 데이터베이스 설계에서 데이터의 중복을 줄이고 무결성을 유지하기 위해 테이블을 체계적으로 분리하는 과정입니다. 논리적 데이터 모델링 단계에서 정규화는 데이터를 구조화하고 관계형 데이터베이스의 최적화된 설계를 만드는 핵심 작업입니다. * 목적 데이터 중복 제거데이터를 여러 테이블로 나눔으로써 중복된 데이터를 줄입니다.데이터 무결성 유지데이터를 체계적으로 저장하여 삽입, 수정, 삭제 시 발생할 수 있는 이상현상(Anomalies)을 방지합니다.데이터 구조 최적화데이터를 논리적으로 구조화하여 관계형 데이터베이스의 성능과 일관성을 향상시킵니다.제1정규형 (1NF : First Normal Form) 조건모든 속성이 원자값(Atomic Valu..

DB/RDB 2024.12.20

논리적 데이터 모델링 Mapping Table

Mapping Table Mapping Table(매핑 테이블)은 관계형 데이터베이스에서 N:M 관계를 구현하기 위해 생성되는 중간 테이블(Junction Table)을 의미합니다. Mapping Table은 두 개의 엔터티 간 다대다(N:M) 관계를 일대다(1:N) 관계로 분리하여 처리합니다.특징 N:M 관계를 해결두 엔터티 간의 N:M 관계를 각각 1:N 관계로 분리각 엔터티는 Mapping Table과 1:N 관계를 맺습니다.교차 테이블 역할Mapping Table은 두 테이블의 기본 키(Primary Key)를 포함하여, 이를 복합 키(Composite Key) 또는 개별 열로 사용하여 두 테이블 간 관계를 정의합니다.데이터 연결Mapping Table은 두 테이블 간의 연결 정보를 저장하는 용도..

DB/RDB 2024.12.19
반응형