본문 바로가기

Database5

데이터베이스 트랜잭션(with ACID) 소개 트랜잭션은 단일 작업 단위로 실행되어야 하는 일련의 데이터베이스 작업입니다. 데이터베이스 트랜잭션의 주요 목표는 장애 및 오류가 발생한 경우에도 데이터베이스의 데이터 무결성과 일관성을 보장하는 것입니다. 이는 트랜잭션을 서로 격리하고 각 트랜잭션이 atomic, consistent, isolated, durable (ACID)을 보장함으로써 달성됩니다. 트랜잭션의 중요성은 여러 단계를 포함하는 복잡하고 중요한 작업을 처리할 수 있는 능력에 있습니다. 예를 들어, 두 계좌 사이의 은행 이체는 하나의 계좌에서 다른 계좌로의 자금 이체가 하나의 불가분한 운영으로 실행되어야 하는 거래로 간주될 수 있다. 오류가 발생하거나 오류가 발생할 경우, 데이터베이스 트랜잭션은 트랜잭션 중에 변경된 내용을 롤백하여 데.. 2023. 2. 9.
데이터베이스 정규화(1NF, 2NF, 3NF) 소개 1. 정규화란? 정규화는 데이터베이스 관리 시스템을 개발할 때, 데이터의 중복을 최소화하고 데이터의 일관성을 높이는 과정을 말합니다. 정규화는 데이터베이스의 구조와 저장 방식에 대한 규칙을 따르는 것으로, 데이터베이스 설계자들이 적용하는 기법입니다. 2. 데이터베이스 설계에서 정규화의 중요성 정규화는 데이터베이스 설계에서 매우 중요한 요소입니다. 정규화를 통해 데이터베이스가 적은 양의 데이터로 구성되고, 데이터의 중복이 최소화되며, 데이터의 일관성이 높아집니다. 또한, 정규화를 통해 데이터베이스의 유지보수가 용이하게 되며, 데이터의 변경 사항이 발생할 경우 쉽게 대처할 수 있습니다. 정규화 1차 정규화(1NF) 정의: 1NF는 각 행(row)이 고유한 값을 가져야 하며, 각 열(column)은 유일.. 2023. 2. 9.
[MYSQL] RECURSIVE 재귀쿼리를 통해서 "입양 시각 구하기(2)" 해결하기 문제 : 아래 ANIMAL_OUTS 테이블 스키마를 바탕으로 시간대별 입양건수 구하기 결과 예시 : 1차 풀이 : 단순하게 그루핑하면 될줄 알고 풀이했으나 실패 SELECT EXTRACT(HOUR FROM DATETIME) as HOUR, COUNT(*) AS COUNT FROM ANIMAL_OUTS GROUP BY HOUR ORDER BY HOUR ; 2차 풀이 : 0~23 시간대 중에서 데이터가 없는 시간대는 제외되고 출력되므로 별도의 0~23까지의 임시테이블을 만들고 기존 테이블과 병합해야함을 깨달음 아래와 같이 RECURSIVE 를 통해서 문제해결. WITH의 경우에는 판다스에서 생각해본다면 df 를 변수에 저장하는것과 같음 WITH RECURSIVE HOURS AS ( SELECT 0 AS HO.. 2023. 2. 9.
빠른 MySQL 기본 설치방법 및 세팅 1. apt-get 업데이트 및 서버 설치 및 세팅 $ sudo apt-get update $ sudo apt-get install -y mysql-server $ sudo systemctl start mysql $ sudo systemctl status mysql $ sudo systemctl enable mysql $ mysql --version 2. IP 대역 변경 $ sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf 127.0.0.1 에서 원하는 걸로 변경 bind-address = 0.0.0.0 mysqlx-bind-address = 0.0.0.0 3. MySQL 접속 $ sudo mysql 4. 계정 생성 select user, host from user;# 사용자 .. 2023. 1. 31.
데이터베이스 vs 데이터 웨어하우스 : 주요 차이점 1. 데이터베이스와 데이터 웨어하우스란? - 데이터베이스: 컴퓨터에 저장된 데이터를 관리하고 검색하기 쉽도록 구조화한 시스템 - 데이터 웨어하우스: 데이터를 수집, 정제, 변환, 분석하는데 사용되는 시스템 2. 데이터베이스와 데이터웨어하우스의 특징 데이터베이스 데이터 웨어하우스 특징 데이터를 저장하고 관리할 수 있다. 데이터의 중복을 제거하여 저장한다. 데이터를 검색하기 쉽도록 인덱싱 기능을 제공한다. 데이터의 안정성과 무결성을 보장한다. 다양한 소스에서 데이터를 수집할 수 있다. 데이터를 정제하고 변환할 수 있다. 데이터를 분석하고 시각화 할 수 있다. 데이터를 통해 인사이트를 추출할 수 있다. 목적 구조화된 데이터를 저장하고 관리하며, 트랜잭션과 쿼리를 지원 대용량의 데이터를 수집하고 분석 사용 예시.. 2023. 1. 27.