728x90
반응형
SMALL

데이터베이스 16

데이터베이스 락(lock)의 종류와 동작 방식

1. 락의 종류1) 공유 락(Shared Lock, S-락):개념: 공유 락은 데이터를 읽는 트랜잭션에 의해 설정되며, 다른 트랜잭션도 동시에 데이터에 대해 읽기 작업을 수행할 수 있습니다. 그러나 공유 락이 설정된 동안에는 데이터를 수정할 수 없습니다.동작 방식: 여러 트랜잭션이 같은 데이터에 공유 락을 걸 수 있어 읽기 작업은 자유롭게 허용하지만, 수정 작업은 제한합니다. 데이터베이스가 공유 락을 허용하는 이유는, 여러 사용자가 데이터를 읽는 작업을 동시에 해도 데이터의 무결성에 영향이 없기 때문입니다.예시 코드:BEGIN TRANSACTION;SELECT * FROM employees WITH (SHARED LOCK); -- 데이터를 읽는 동안 공유 락 설정COMMIT;여기서 employees 테..

데이터베이스 2024.10.29

트랜잭션의 ACID 특성

1. 원자성 (Atomicity)개념:원자성은 트랜잭션의 모든 작업이 모두 성공하거나 모두 실패해야 한다는 원칙입니다. 즉, 트랜잭션 내의 작업들이 하나의 단위로 처리되어야 하며, 일부만 처리되거나 중간에 실패해서는 안 됩니다. 만약 트랜잭션 도중 오류가 발생하면, 이미 완료된 작업도 취소하여 처음 상태로 돌아가야 합니다.쉽게 설명:원자성은 "올바른 결과가 나오지 않으면, 아무 일도 일어나지 않은 것처럼 되돌려야 한다"는 원칙입니다. 예를 들어, 은행에서 돈을 이체할 때 송금자 계좌에서 돈을 빼고 수신자 계좌에 입금하는 작업이 동시에 완료되거나, 둘 다 완료되지 않아야 합니다.예시 코드:BEGIN TRANSACTION;-- 송금자 계좌에서 1000원을 차감UPDATE accounts SET balance..

데이터베이스 2024.10.29

정규화(Normalization)와 비정규화(Denormalization)의 개념 및 장단점

1. 정규화(Normalization)개념:정규화는 데이터베이스에서 중복 데이터를 줄이고 데이터 일관성을 유지하기 위해 데이터를 여러 테이블로 나누는 과정입니다. 데이터가 한 곳에만 저장되도록 설계하여, 데이터 수정 시 다른 곳에 반영할 필요 없이 한 곳만 업데이트하면 됩니다. 이를 통해 데이터 무결성을 높이고, 저장 공간을 효율적으로 사용할 수 있습니다.정규화 과정 (Normalization Forms):제 1 정규형 (1NF): 각 열에 하나의 값만 저장하고, 중복된 열을 제거합니다.제 2 정규형 (2NF): 기본 키에 의존하지 않는 열을 별도의 테이블로 분리합니다.제 3 정규형 (3NF): 기본 키가 아닌 열 간의 종속성을 제거하여 독립적인 테이블로 나눕니다.쉽게 설명: 정규화는 데이터를 깔끔하게 ..

데이터베이스 2024.10.29

조인의 종류(예: INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL OUTER JOIN)와 차이점

1. INNER JOIN (내부 조인)역할: INNER JOIN은 두 테이블의 공통된 데이터만 조회합니다. 즉, 조인 조건을 만족하는 데이터만 결과에 포함되며, 조건에 맞지 않는 데이터는 제외됩니다.사용 예시: 주로 두 테이블의 공통 데이터만 필요할 때 사용합니다. 예를 들어, 고객이 주문한 상품 목록을 보고 싶을 때 INNER JOIN을 사용해 고객과 주문 테이블에서 공통된 고객 정보만 가져올 수 있습니다.예시 코드:SELECT customers.name, orders.order_idFROM customersINNER JOIN orders ON customers.customer_id = orders.customer_id;이 코드는 customers와 orders 테이블에서 공통된 customer_id가..

데이터베이스 2024.10.29

인덱스의 역할과 사용 이유

1. 인덱스의 역할검색 속도 향상: 인덱스는 특정 열의 데이터를 빠르게 찾을 수 있도록 도와줍니다. 예를 들어, user_id 열에 인덱스를 생성하면 user_id를 기준으로 데이터를 검색할 때 인덱스를 통해 빠르게 찾을 수 있습니다.데이터 정렬 도움: 인덱스는 데이터가 특정 순서로 정렬되어 저장된 것처럼 보이게 합니다. 이를 통해 정렬된 데이터를 더 빠르게 조회할 수 있습니다.중복 방지: 고유 인덱스(Unique Index)를 설정하면, 해당 열에 중복된 값이 들어가는 것을 방지할 수 있습니다. 예를 들어, email 열에 고유 인덱스를 걸면 동일한 이메일이 두 번 이상 입력되는 것을 막습니다.쉽게 설명: 인덱스는 책의 "목차"와 같아서, 필요한 페이지를 빨리 찾아갈 수 있게 해줍니다. 목차가 없으면 ..

데이터베이스 2024.10.29

RDBMS와 NoSQL의 차이점

1. RDBMS (Relational Database Management System)구조 (Structure):RDBMS는 관계형 데이터베이스로, 데이터를 테이블 형태로 저장합니다. 이때, 테이블 간의 관계를 설정할 수 있어 서로 연결된 데이터를 쉽게 조회할 수 있습니다.데이터를 행과 열로 정리하며, 특정 규칙에 맞게 정해진 구조(스키마)를 따라야 합니다. 예를 들어, 사용자 정보를 저장하는 테이블을 만들 때 이름, 이메일, 생년월일과 같은 열을 정하고, 모든 데이터가 이 구조에 맞아야 합니다.SQL을 이용한 질의 (Querying):RDBMS는 SQL(Structured Query Language)이라는 표준 언어를 사용해 데이터를 조회하고, 추가, 수정, 삭제할 수 있습니다. 예를 들어, SQL을 ..

데이터베이스 2024.10.29
320x100
반응형
LIST