728x90 728x90 Database18 PostgreSQL 트랜잭션 완전 정복: ACID, 격리 수준, WAL 쉽게 이해하기 안녕하세요! 이번 포스팅에서는 PostgreSQL을 사용하는 분들이 꼭 알아야 할 핵심 개념인 트랜잭션(Transaction)과 관련된 ACID, 그리고 그 핵심 기능인 격리 수준(Isolation Level)과 WAL(Write-Ahead Logging)까지 초보자도 쉽게 이해할 수 있도록 정리해봤어요!🚀 먼저, 트랜잭션이란?트랜잭션은 데이터베이스에서 여러 작업을 하나의 묶음으로 처리하는 단위입니다. 은행에서 돈을 이체할 때, "보내는 사람의 계좌에서 출금" + "받는 사람의 계좌에 입금"이 동시에 이뤄져야 하죠? 이처럼 하나의 작업처럼 보장되어야 하는 연산들을 트랜잭션이라 부릅니다.✅ ACID란?ACID는 데이터베이스 트랜잭션이 안정적이고 일관되게 동작하도록 보장하는 4가지 성질을 말합니다. Pos.. 2025. 4. 8. [MySQL; 마이에스큐엘] 오류 / 에러 / this is incompatible with sql_mode=only_full_group_by MySQL 5.7org.springframework.jdbc.BadSqlGrammarException: ### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'db.a.id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by5.7 버전에 sql_mode라는 항목이 생겼는데 그 옵션 중 only_full_group.. 2024. 6. 14. [MariaDB; 마리아디비] SUPER 권한 / 슈퍼 권한 부여하기 SUPER PrivilegeGRANTGRANT SUPER ON *.* TO 'USERNAME'@'HOSTNAME';REVOKEREVOKE SUPER ON *.* FROM 'USERNAME'@'HOSTNAME';SHOW OutputSHOW GRANTS FOR 'app_user'@'192.0.2.%';+----------------------------------------------+| Grants for app_user@192.0.2.% |+----------------------------------------------+| GRANT SUPER ON *.* TO 'app_user'@'192.0.2.%' |+----------------------------------.. 2024. 6. 9. [MariaDB; 마리아디비] 대소문자 구분 무시하기 Table [테이블명] doesn't exist 후배의 개인 프로젝트 도움 요청을 받아 VirtualBox에 개발서버 구축을 하고 프로젝트를 실행시켰다. 실행도 잘되고 아무 문제가 없는 거 같았는데 문제는 회원 등록하는 부분에서 생겼다. Table 'MEMBER' doesn't exist 금방 로그인까지 했는데 등록이 안된다. 한참을 헤매다가 쿼리에서 차이점을 찾았다. SELECT문은 테이블명이 소문자로 되어있었다. INSERT문은 테이블명이 대문자로 되어있었다. 그리고 데이터베이스에는 소문자로 되어있었다. 이거구나 싶어서 바로 마리아디비 대소문자 설정을 해줬다. cd /etc/mysql/mariadb.conf.d vi 50-server.cnf 설정파일 위치는 디비 버전, 설정 마다 다를 수 있으니 주의.. 2024. 2. 22. [MariaDB; 마리아디비] USER / 유저 / 계정 / 사용자 / 이름 변경 ( 수정 ) / 비밀번호 변경 사용자 이름 변경하기 'user_name'@'localhost'를 'daddy'@'%'로 변경하기 RENAME USER 'user_name'@'localhost' TO 'daddy'@'%'; 사용자 비밀번호 변경하기 'daddy'@'%'의 비밀번호를 변경하기 SET PASSWORD FOR 'daddy'@'%' = PASSWORD('changedPassword'); 끝. 2024. 2. 6. [MariaDB; 마리아디비] foreign key ( 외래키 ) 추가 / 삭제 / 확인 추가 - foreign key 추가 ALTER TABLE [테이블명] ADD CONSTRAINT [제약조건명] FOREIGN KEY(컬럼) REFERENCES [관련_테이블명](PK컬럼) [ON DELETE CASCADE / ON UPDATE CASCADE]; ALTER TABLE orders ADD CONSTRAINT fk_orders_customer FOREIGN KEY (customer_id) REFERENCES customers(id); ON DELETE CASCADE "ON DELETE CASCADE" 옵션은 외래 키를 가진 테이블에서 행이 삭제될 때 연관된 행도 함께 삭제됩니다. 예를 들어, "orders" 테이블에 "customer_id"라는 외래 키가 있고, "customers" 테이블의 .. 2024. 1. 30. 이전 1 2 3 다음 728x90 728x90