분류 전체보기 146

[DBMS] MySQL(6) - Replication

정의하나의 MySQL 서버(Master or Source)에서 발생한 데이터 변경사항을 하나 이상의 다른 MySQL 서버(Slave or Replica)로 복사하여 동기화하는 프로세스Master 서버는 모든 쓰기 작업 (INSERT, UPDATE, DELETE 등)을 처리하고 Slave 서버는 Master로부터 변경된 데이터를 받아와 자신의 데이터베이스에 적용함으로써 Master와 동일한 데이터 상태를 유지주요 이점고 가용성(High Availabliity)Master 서버에 장애가 발생하더라도 Slave 서버 중 하나를 새로운 Master로 승격시켜 서비스 중단을 최소화 할 수 있음확장성 (Scalablity)읽기 부하 분산: Master 서버는 쓰기 작업을 전담하고 Slave 서버들은 읽기 작업을 분..

DBMS/MySQL 2025.09.12

[DBMS] MySQL(5) - 백업 및 복구

백업의 중요성데이터는 비지니스의 핵심 자산이므로, 데이터 손실은 심각한 재정적, 운영적 피해로 이어질 수 있음. 따라서 체계적인 백업 및 복구 전략을 수립하는 것은 데이터베이스 관리의 가장 중요한 부분 중 하나데이터 손실은 다양한 원인으로 발생할 수 있음하드웨어 장애 : 디스크 손상, 서버 고장 등소프트웨어 버그 : 애플리케이션 또는 데이터베이스 소프트웨어의 오류휴먼 에러 : 실수로 인한 데이터 삭제 또는 변경, 잘못된 SQL tlfgod보안 위협 : 해킹, 랜섬웨어 등자연 재해따라서 데이터를 주기적으로 백업하고 백업된 데이터를 사용하여 데이터 베이스를 정상 상태로 복구하는 것이 필수적임백업논리적 백업 vs 물리적 백업논리적 백업데이터베이스 객체(테이블 구조, 데이터)를 SQL 구문(INSERT 문 등)..

DBMS/MySQL 2025.09.12

[DBMS] MySQL(4) - 사용자 및 권한관리

사용자 계정의 필요성MySQL을 포함한 모든 데이터베이스 시스템은 여러 사용자가 동시에 접근할 수 있도록 설계되어 있음각 사용자에게 고유한 계정을 할당하고, 그 계정에 필요한 최소한의 권한만을 부여함으로써 다음 목표 달성보안 강화: 인가되지 않은 접근이나 악의적인 데이터 조작으로부터 데이터베이스를 보호데이터 무결성 유지 : 의도치않은 데이터 손상이나 삭제 방지책임 추적성 : 누가 어떤 작업을 수행했는지 명확하게 기록하고 추적할 수 있게 함운영 효율성 : 각 역할에 맞는 권한을 부여하여 개발자, 운영자, 애플리케이션 등 다양한 주체가 효울적으로 작업할 수 있도록 함사용자 계정 생성MySQL에서 사용자 계정은 CREATE USER 구문을 사용하여 생성사용자 계정은 ‘사용자 이름’@’호스트’형태로 정의됨호스트..

DBMS/MySQL 2025.09.12

[DBMS] MySQL(3) - 인덱스 활용 및 튜닝

인덱스데이터베이스 성능 및 관리 에서 다룬 인덱스, 그 중에서도 B-Tree 인덱스가 MySQL에서 가장 흔하게 사용된다. WHERE 절이나 ORDER BY 절에서 인덱스 열을 사용하면, B-Tree 인덱스가 활용됨B-Tree Index계층 구조 : 트리의 뿌리(root) 노드부터 가지(branch)노드를 거쳐 잎(leaf)노드까지 탐색정렬된 데이터 : 잎 노드에는 인덱스 열의 값과 해당 값이 저장된 행의 물리적 위치(또는 기본 키값)가 정렬된 상태로 저장균형 트리 : 모든 잎 노드가 동일한 깊이에 있도록 트리의 균형이 자동으로 유지. 어떤 데이터 찾든 탐색 시간이 일정하게 유지빠른 탐색: 각 노드에서 자식 노드로의 탐색은 비교 연산을 통해 빠르게 이루어짐이외에도 다양한 목적에 맞는 여러 종류의 인덱스를..

DBMS/MySQL 2025.09.12

[DBMS] MySQL(2) - MySQL 특화 SQL

MySQL SQLMySQL은 기본적으로 표준 SQL을 따르지만 특정 기능이나 성능 최적화를 위해 고유한 구문이나 확장 기능을 추가하게 됨.MySQL 특화 SELECT 구문 및 기능SELECT 는 데이너를 조회하는 가장 기본적인 구문이며, MySQL은 결과 집합을 제어하는데 특화된 구문 제겅결과 개수 제한표준 SQL에서는 결과 집합 개수를 제한하기 위해 Workspace FIRST n ROWS ONLY 를 사용하나 MySQL은 LIMIT 절을 사용함--표준 SQLSELECT column1, column2 FROM table_name FETCH FIRST 10 ROWS ONLY;--MySQLSELECT column1, column2 FROM table_name LIMIT count; --처음부터 count ..

DBMS/MySQL 2025.09.12

[DBMS] MySQL(1) - 개요

RDBMS와 MySQL의 특징RDBMSRelational Database Management System모든 데이터를 2차원 테이블 형태로 표현하는 RDB를 관리하는 소프트웨어정규화를 통해 데이터의 중복성을 최소화하여 트랜잭션을 수행MySQL 특징기본 특징대표적인 오픈소스 RDBMS, SQL 표준을 대부분 따름오픈소스 기반 : GNU GPL(일부는 상업 라이선스)로 배포되어 자유롭게 사용 가능, 커스터마이징 가능다중 플랫폼 지원 : Linux, Windows, macOS 등다양한 스토리지 엔진 지원트랜잭션 및 ACID 지원기술적 특징Replication 지원Master-Slave, Master-Master 구조로 데이터 복제를 구성할 수 있어 고가용성 및 분산 처리 가능Partitioning : 대용량 ..

DBMS/MySQL 2025.09.12

[DBMS] Common(6) - 데이터베이스 성능 및 관리

인덱스(Index)정의 및 필요성데이터베이스에서 원하는 데이터를 빠르게 찾기 위해 사용되는 구조. 테이블의 데이터가 많아지면 원하는 데이터를 찾기 위해 전체 테이블을 처음부터 끝까지 읽어야하는 비효율이 발생하는데 (Full Table Scan), 인덱스를 사용하면 검색 범위를 크게 줄여 조회 속도를 비약적으로 향상시킴인덱스의 동작 방식특정 컬럼(또는 여러 컬럼)의 값을 미리 정렬된 형태로 저장하고 해당 값이 저장된 데이터 레코드의 물리적 주소나 식별자를 함께 기록해둠. 검색시에는 인덱스 구조를 빠르게 탐색하여 원하는 데이터의 위치를 파악한 후, 해당 위치의 데이터를 가져옴인덱스의 종류B-Tree 인덱스가장 일반적이고 널리 사용되는 인덱스 구조범위 검색과 등가 검색 모두에 효율적임대부분의 관계형 DBMS가..

DBMS/DBMS Common 2025.09.12

[DBMS] Common(5) - 트랜잭션 및 동시성 제어

트랜잭션(Transaction)개념 및 특징트랜잭션데이터베이스의 상태를 변화시키는 하나의 논리적인 작업단위예시A계좌 잔액 조회A계좌에서 10,000원을 차감B계좌 잔액 조회B계좌에 10,000원을 추가변경사항을 DB에 반영은행 시스템에서 A계좌에서 B계좌로 10,000원을 이체하는 작업은 아래와 같은 단계로 분리위 단계가 모두 성공하거나 모두 실패해야만 데이터 일관성이 유지된다트랜잭션은 일반적으로 BEGIN TRANSACTION 으로 시작하여 COMMIT 또는 ROLLBACK 으로 종료됨ACID 속성트랜잭션이 안전하고 신뢰성있게 수행되기 위해 DBMS가 보장해야하는 네가지 속성Atomicity(원자성) : 트랜잭션 시작과 종료 사이에 모든 변경이 정상적이면 모드 저장(Commit)되어아햐고 문제가있으면 ..

DBMS/DBMS Common 2025.09.12

[DBMS] Common(4) - 데이터베이스 설계 및 정규화

데이터베이스 설계단계데이터베이스 설계는 현실 세계의 요구사항을 수집하여 컴퓨터가 이해할 수 있는 데이터베이스 스키마로 변환하는 과정요구사항 분석데이터베이스를 사용할 조직이나 사용자의 필요와 요구사항을 수집하고 분석하는 단계어떤 데이터가 필요하고, 어떤 기능(조회,등록, 수정, 삭제)이 필요한지, 어떤 제약조건이 있는 지 파악결과 : 요구사항 명세서개념적 설계수집된 요구사항을 바탕으로 특정 DBMS에 독립적인 개념적인 데이터 모델을 만듬데이터의 핵심적인 개체(Entity)와 개체 간의 관계(Relationship)를 파악하고 표현주로 E-R 다이어그램과 같은 도구를 사용하여 시각적 표현결과 : 개념 스키마 (주로 E-R 다이어그램)논리적 설계개념적 설계에서 얻은 개념 스키마를 특정 DBMS가 지원하는 논리..

DBMS/DBMS Common 2025.09.12

[DBMS] Common(3) - SQL

개요 및 표준SQLStructured Query Language; 구조화된 질의어관계형 데이터베이스의 데이터를 관리하고 처리하기 위한 표준 언어대부분의 관계형 DBMS(MySQL, PostgreSQL, Oracle 등)에서 사용됨SQL 표준ANSI (미국 표준 협회)와 ISO(국제 표준화 기구)에서 SQL 표준을 제정하고 관리DBMS 제조사는 이 표준을 따르면서도 자사만의 고유한 기능이나 문법 추가하기도 함SQL 문법기능에 따라 크게 네가지 종류로 구분DDL(Data Definition Language)데이터베이스 스키마를 정의, 수정, 삭제하는데 사용데이터베이스 객체(테이블, 인덱스, 뷰 등)를 생성하거나 변경할 때 사용주요 명령여CREATE : 데이터베이스 객체 생성CREATE DATABASE : 데..

DBMS/DBMS Common 2025.09.12