Computer Science/Database

Computer Science/Database

[DB] 트랜잭션, 애플리케이션의 트랜잭션 제어

트랜잭션이란 데이터를 저장할 때 단순히 파일에 저장해도 되지만, 데이터베이스에 저장하는 가장 큰 이유입니다. 트랜잭션은 그대로 번역하면 거래인데, 데이터베이스에선 하나의 거래를 안전하게 처리하도록 보장합니다. A가 B에게 5000원 이체한다면, 아래 두개의 작업이 하나처럼 이뤄져야합니다. 1. A의 잔고 5000원 감소 2. B의 잔고 5000원 증가 1번이 성공하고 2번이 실패하고 그대로 반영된다면 A의 잔고만 5000원이 감소하는 문제가 발생합니다. 데이터베이스는 트랜잭션을 적용해 거래 도중 하나라도 실패하면 거래 전의 상태로 되돌릴 수 있습니다. 모든 작업이 성공해서 데이터베이스에 정상 반영하는 것을 Commit이라하고, 작업 도중 하나라도 실패해 이전으로 되돌리는 것을 Rollback이라 합니다...

Computer Science/Database

[DB] 커넥션풀

노 커넥션 풀 애플리케이션에서 데이터베이스 커넥션 획득 과정 1. 애플리케이션 로직은 DB 드라이버를 통해 커넥션 조회 2. DB 드라이버는 DB와 TCP/IP 커넥션을 연결 , 이 과정에서 3 way handshake 같은 TCP/IP 연결 을 위한 네트워크 동작이 발생 3. DB 드라이버는 TCP/IP 커넥션이 연결되면 ID, PW와 기타 부가정보를 DB에 전달 4. DB는 ID, PW를 통해 내부 인증을 완료하고, 내부에 DB 세션을 생성 5. DB는 커넥션 생성이 완료되었다는 응답 6. DB 드라이버는 커넥션 객체를 생성해서 클라이언트에 반환 애플리케이션도 TCP/IP 커넥션을 새로 생성하기 위해 리소스를 사용하고, DB도 커넥션과 세션을 생성해야합니다. 이는 SQL 실행하는 시간뿐만 아니라 커넥..

Computer Science/Database

[DB] 소소한 DB 꿀팁

COUNT count함수는 null을 세지 않는다. count(*)와 count(null이 있는 속성)시에는 결과가 다르다. CASE SQL에서의 case문은 조건 충족 시 break 없어도 멈춘다. SELECT CASE WHEN false THEN '참입니다' ELSE '거짓입니다' END as 대신 then 사용한다. EXTRACT hour, dayofweek, minute, second 등 다양한 정보를 빼낼 수 있다. select extract(YEAR FROM created_at) as year from `thelook_ecommerce.users` Join 없이 where로 Join인척 하기 select from a, b where a.user_id = b.id select from a joi..

Computer Science/Database

[DB/MySQL] Index ?

인덱스의 개념 자주 사용되는 칼럼으로 생성해 테이블 전체를 찾지 않고도 데이터 조회 동작 속도를 높여주는 자료구조 인덱스가 설정되지 않으면 Table Full Sacn이 일어나 성능이 저하되거나 치명적인 장애로 이어질 수 있다. 사용자가 직접 접근할 수는 없고, 검색과 질의에 대한 처리에만 사용된다. 조회속도는 빨라지지만 쓰기(INSERT, UPDATE, DELETE)속도는 별도의 자료구조의 수정도 필요하므로 낮아진다. 인덱스를 저장하기 위한 데이터베이스 전체 크기의 10%정도의 저장공간도 필요하다. 위와 같은 특징들로 인해 수정보다 검색이 필요한 테이블에서 사용한다 인덱스의 특징 인덱스는 하나 혹은 여러개의 컬럼에 대해 설정할 수 있다. WHERE절을 사용하지 않고 인덱스가 걸린 컬럼을 조회하는 것은 ..

Computer Science/Database

[DB] 정규화(Normalization)

데이터베이스 정규화? 이상현상이 있는 릴레이션을 분해하여 이상현상을 없애는 과정으로 단계별로 구분해 정규형이 높아질수록 이상현상을 줄인다. 이상현상? 데이터베이스에서 정규화를 수행하지 않으면, 데이터의 중복이 발생하고 전체적인 무결성의 저하로 이어진다. 이러한 원인은 이상현상으로 인해 실제 값과 데이터베이스에 저장된 값이 일치하지 않는 문제가 발생한다. 이상현상을 설명할 대학교 릴레이션이다. 학번 학생명 학과명 동아리 1 바트 컴퓨터공학과 피아노 2 호머 물리학과 마술 3 마지 신소재공학과 밴드 삽입 이상 튜플 삽입 시 특정 속성에 해당하는 값이 없어 NULL을 입력해야하는 현상 새로 개설된 탁구 동아리를 테이블에 추가 해야하지만 동아리원이 없어 특정 속성에 해당하는 값이 없어 NULL을 입력해야한다. ..

Computer Science/Database

[DB] 관계형 데이터베이스(RDB)

2월 2주차 스터디 발표자료 DB, DBMS, RDB 등에 대한 개념정리 데이터베이스란? 여러사람에 의해 공유되어 사용될 목적으로 통합하여 관리하는 데이터의 집합 DBMS란? 사용자와 데이터베이스 사이에서 사용자의 요구에 따라 데이터를 관리해주는 소프트웨어 RDBMS란? DBMS의 한 종류로 관계형 데이터베이스를 이용한다. 관계형 데이터베이스? RDB(관계형 데이터베이스)는 테이블, 행, 열의 정보를 구조화하고 테이블을 조인하여 정보 간 관계 또는 링크 설정을 통해 여러 데이터 포인트 간의 관계를 쉽게 얻을 수 있다. 관계형 데이터베이스의 모든 테이블에는 행에서 고유하게 식별가능 한 기본 키라는 속성이 있으며, 외래 키(다른 기존 테이블의 기본키를 참조)를 사용하여 각 행에서 서로 다른 테이블 간의 관계..

비오베베
'Computer Science/Database' 카테고리의 글 목록