Database

Database/SQL

[SQL / Database / SQLD] 함수모음_문자, 숫자, 날짜 (Part2 - Ch01)

예제에 쓰이는 'DUAL'테이블은 SQL 쿼리를 작성할 때 특정 데이터를 검색할 필요 없이, 오로지 표현식의 값을 계산하거나 데이터베이스 함수를 실행하기 위해 사용하는 가상 테이블이라고 합니다.하나의 더미 행만을 포함하고 있어서, 테스트 목적이나, DB에서 직접 계산식을 수행해야 할 때 사용한다고 합니다.  문자 관련 함수CHARACTER(ASCII 코드) : 아스키코드 -> 문자 변환select CHARACTER(65) from dual;LOWER / UPPER : 대/소문자 변환select LOWER('Hello'), UPPER('Hello') from DUAL; TRIM : 공백 제거LTRIM : 왼쪽 공백 제거select LTRIM(' Hello') from DUAL;RTRIM(문자열) : 오..

Database

[Database / SQLD] 데이터 모델과 SQL _ 정규화, 반정규화, 트랜잭션 (Part1 - Ch02)

SQLD를 준비하며 개인적으로 조금 외워두면 좋을 것 같은 것들만 적어보았습니다.참고한 책은 "2024 유선배 SQL개발자(SQLD) 과외노트"입니다.01 정규화(Normalization)정규화란?<p data-ke-size="size16..

Database

[Database / SQLD] 데이터 모델링의 이해 (Part1 - Ch01)

SQLD를 준비하며 개인적으로 조금 외워두면 좋을 것 같은 것들만 적어보았습니다.참고한 책은 "2024 유선배 SQL개발자(SQLD) 과외노트"입니다. 01 데이터 모델의 이해모델링의 특징추상화단순화명확화상세화모델링의 3가지 관점데이터 관점프로세스 관점데이터와 프로세스의 상관 관점 : 관계 위주데이터의 품질 보장을 위해 유의해야 할 점중복 : 중복 x비유연성 : 유연하게 설계비일관성 : 일관성 있게 설계모델링의 3가지 단계개념적 데이터 모델링 : 추상화 수준이 가장 높음논리적 데이터 모델링 : 재사용성이 가장 높음 - key, 속성, 관계 등 모두 표현하는 단계물리적 데이터 모델링 : 실제 DB에 구현할 수 있도록 물리적인 성격을 고려3단계 스키마 구조..

Database/데이터베이스 이론

[Database] 트랜잭션의 격리성 문제 - Dirty Read / Non-Repeatable Read / Phantom Read

트랜잭션? 트랜잭션은 하나의 데이터 교환 또는 변경을 안전하게 처리하도록 보장해 주는 것을 의미한다. 한 번의 애플리케이션 로직으로 인해 두 개 이상의 데이터가 영향을 받는 경우, 각각의 데이터에 대한 변경이 완전하게 끝난 후 데이터베이스에 정상적으로 반영하는 것이다. 만약 데이터 처리 중 문제가 발생 시 로직 실행 전으로 되돌리는 기능을 지원한다. 트랜잭션에 대해 모르신다면 아래 글을 읽어보시길 바랍니다. 📁[Database] 트랜잭션의 동작 원리와 ACID 속성 트랜잭션 격리성 ( Transaction Isolation ) 트랜잭션의 격리성은 트랜잭션의 여러 특징들 중 하나이다. 격리성은 실행 중인 트랜잭션의 중간에 다른 트랜잭션이 접근할 수 없도록 하는 것을 뜻한다. 이런 격리성의 수준을 조절할 수..

Database/데이터 접근 기술

[Java, Spring] 트랜잭션을 적용하는 여러 가지 방법

[JDBC] 트랜잭션 적용 - Connection 직접 이용 JDBC 코드를 직접 짤 때 트랜잭션을 이용하는 방법이다. 비즈니스 로직을 실행할 때, 하나의 커넥션 내에서 동작해야 하므로 메서드 사용 시 connection을 파라미터로 넘겨야 한다. 따라서 서비스 계층, 데이터접근 계층에 모두 Connection을 파라미터로 받아서 이용해야 한다. public void loadLotsOfData(DataList dataList) { String sql = "insert into table values ( /* ... */)"; Connection conn = null; PreparedStatement pstmt = null; try { conn = getConnection(); pstmt = conn.pr..

Database/데이터베이스 이론

[DataBase] 트랜잭션 - 락(Lock) 동작 원리와 동작 과정

DB Lock (락) DB Lock(락)은 하나의 데이터를 다른 세션에서 수정하는 것을 방지하는 것이다. 만약 세션 A에서 데이터를 수정하기 위해 트랜잭션을 진행 중이고 아직 커밋 또는 롤백을 수행하지 않았는데, 다른 세션 B에서 동시에 같은 데이터를 수정하게 된다면 여러 가지 문제가 발생할 것이다. 트랜잭션의 원자성이 깨지는 것이다. DB Lock은 이런 문제를 방지하기 위해 트랜잭션을 시작하고 해당 트랜잭션(세션)이 종료되기 전까지 다른 세션에서 해당 데이터를 수정할 수 없도록 막아주는 역할을 한다. 락을 고려한 트랜잭션 과정 락(Lock)은 해당 데이터 수정에 대한 권한 같은 것으로 생각하면 된다. 트랜잭션을 시작하고 쿼리를 실행함과 동시에 락을 획득한다. 획득한 락은 트랜잭션 종료(커밋/롤백) 시..

Database/데이터베이스 이론

[Database] 트랜잭션의 동작 원리와 ACID 속성

트랜잭션(Transaction)이란? 트랜잭션은 하나의 데이터 교환 또는 변경을 안전하게 처리하도록 보장해 주는 것을 의미한다. 한 번의 애플리케이션 로직으로 인해 두 개 이상의 데이터가 영향을 받는 경우, 각각의 데이터에 대한 변경이 완전하게 끝난 후 데이터베이스에 정상적으로 반영하는 것이다. 만약 데이터 처리 중 문제가 발생 시 로직 실행 전으로 되돌리는 기능을 지원한다. 데이터베이스에 정상적으로 반영하는 것을 커밋(Commit) , 되돌리는 것을 롤백(Rollback)이라고 한다. 트랜잭션 ACID 속성 ACID는 트랜잭션을 정의하는 4가지 중대한 속성을 가리키는 약어입니다. 즉 원자성, 일관성, 신뢰성, 격리 그리고 영속성을 의미합니다. 원자성(Atomicity) 트랜잭션 내에서 실행한 작업들은 ..

Database/SQL

[DB / SQL] DB Join 조인 (left join / right join / inner join / outer join)

조인 (Join) 조인(join)은 하나의 쿼리로 두 개 이상의 테이블을 묶어서 불러오는 것을 말한다. Join은 크게 inner, left, right, outer join으로 나뉜다. INNER JOIN 두 개의 테이블 간의 교집합을 나타낸다. A 테이블과 B 테이블에서 조건을 만족하는 row만 조회한다. SELECT * FROM TableA A INNER JOIN TableB B ON A.key = B.key LEFT OUTER JOIN 왼쪽 테이블 A를 기준으로 오른쪽 테이블 B의 일치하는 부분의 레코드와 함께 출력된다. 만약 테이블 B에 일치하는 항목이 없으면 해당 값은 null로 출력된다. A 테이블의 데이터가 모두 출력되지만, 조건에 만족하는 경우 B 테이블의 데이터도 출력되고, 조건에 만족..

HSRyuuu
'Database' 카테고리의 글 목록