DataBase/DB theory15 Concurrency control - schedule과 serializability 보호되어 있는 글 입니다. 2024. 1. 18. [DB] ORM이란? 영속성(Persistence)이란? 데이터를 생성한 프로그램이 종료되더라도 사라지지 않는 데이터 특성을 말한다. 영속성을 갖지 않는 데이터는 단지 메모리에서만 존재하기 때문에 프로그램을 종료하면 모두 잃어버리게 된다. Object Persistence(영구적인 객체) 메모리 상의 데이터를 파일 시스템, 관계형 데이터베이스 혹은 객체 데이터베이스 등을 활용하여 영구적으로 저장하여 영속성을 부여한 객체를 말한다. 데이터를 데이터베이스에 저장하는 3가지 방법 JDBC (Java에서 사용) Spring JDBC (Ex. JdbcTemplate) Persistence Framework (Ex. Hibernate, MyBatis) Persistence Layer 프로그램의 아키텍처에서, 데이터에 영속성을 부여해주는.. 2023. 6. 3. [DB] 동시성 문제와 제어 기법(Concurrency Control ) 동시성 제어(Concurrency Control) 동시에 실행되는 여러 개의 트랜잭션이 작업을 성공적으로 마칠 수 있도록 트랜잭션의 실행 순서를 제어하는 기법이다 다중 사용자 환경을 지원하는 DB 시스템에서 여러 트랜잭션들이 성공적으로 동시에 실행될 수 있도록 지원하는 기능으로 DB의 일관성을 해치지 않도록하는 트랜잭션의 데이터 접근기술이다. 다중 사용자 환경을 지원하는 DBMS의 경우 필수적으로 지원해야 하는 기능으로 병행제어라고도 한다. 트랜잭션의 직렬화 수행 보장 ACID의 중 하나인 고립성은 상호 간의 트랜잭션을 독립적으로 만들어준다. 그런데 2개 이상의 트랜잭션이 하나의 값에 접근하는 경우에는 어떻게 될까? 2개의 트랜잭션이 모두 읽는 경우에는 문제가 발생하지 않지만, 1개의 트랜잭션은 쓰고 1.. 2023. 6. 3. [DB] 트랜잭션이란? 보호되어 있는 글 입니다. 2023. 6. 1. [DB] Join 이란, join의 종류, inner join과 outer join의 차이점 조인이란? 두개 이상의 테이블이나 데이터베이스를 연결하여 데이터를 검색하는 방법이다. 자신이 검색하고 싶은 컬럼이 다른 테이블에 있을 경우 주로 사용하며 여러 개의 테이블을 마치 하나의 테이블인 것처럼 활용하는 방법이다. 보통 Primary key혹은 Foreign key로 두 테이블을 연결한다. 테이블을 연결하려면 적어도 하나의 컬럼은 서로 공유되고 있어야 한다. 조인의 종류 INNER JOIN LEFT OUTER JOIN RIGHT OUTER JOIN FULL OUTER JOIN CROSS JOIN SELF JOIN SQL 조인 쉽게 이해하기 위한 다이어그램 그렇다면, 이제 다음과 같은 테이블 두 개를 가지고 각각의 조인에 대해 알아보자. [Star 테이블] ID Name DepNo 1 강호동 10 .. 2023. 6. 1. [DB] 정규화(Normalization) & 역정규화 기법 정규화(Normalization) 정규화(Normalization)의 기본 목표는 테이블 간에 중복된 데이터를 최소화시키는 것이다. 즉, 중복요소를 찾아 제거해 나가는 과정이라고 할 수 있다. 중복된 데이터를 허용하지 않음으로써 무결성(Integrity)를 유지할 수 있으며, DB의 저장 용량 역시 줄일 수 있다. 또한 삽입/갱신/삭제 시 발생할 수 있는 각종 이상현상(Anamolies)들을 방지할 수 있다. 데이터베이스 정규화의 목적은 주로 두 가지이다. 1. 불필요하고 중복된 데이터(data redundancy)를 제거한다. 2. 데이터 저장을 "논리적으로" 한다. 여기서 2번 데이터 저장을 논리적으로 한다는 것은 데이터 테이블의 구성이 논리적이고 직관적이어야한다는 것이다. 우선 정규화를 안 했을 때.. 2023. 6. 1. 이전 1 2 3 다음