이카's
반응형
article thumbnail
비즈니스 모델 설계 - Spring Assigment1 과제(feat.MySQL)
SW/Data Base 2023. 6. 12. 16:13

비즈니스에 따른 테이블 설계 이번 스프링 강의 중 과제를 제출해야 할 일이 생겼고, 블로그 작성으로 과제를 제출해야하 하여 포스팅 하게 되었다. 테이블 설계는 매우 까다롭고 어려운 작업이라고 생각한다. 이 어려운 테이블 설계를 요구에 맞춰서 커스텀 해주는 것이 이번 과제의 목표이다. 과제 내용 자체는 복잡한 로직은 아니지만, 1:N 관계와 N:N 관계를 잘 이해하고 있는지를 물어보는 과제라고 생각한다.. 요구사항 이번 과제는 크게 3가지 테이블이 유기적으로 작업한다. User Table Account Table History Table 차근차근 하나씩 만들어 보며 진행을 해보자. User Table 기본적으로 우리가 은행 계좌를 만들 경우 입력하는 정보를 러프하게 만들어 볼 생각이다. 필요한 부분을 고민..

article thumbnail
비즈니스 모델 설계 - Spring Assignment1 과제(feat.MySQL)
SW/Data Base 2023. 6. 12. 16:02

비즈니스에 따른 테이블 설계 이번 스프링 강의 중 과제를 제출해야 할 일이 생겼고, 블로그 작성으로 과제를 제출해야하 하여 포스팅 하게 되었다. 테이블 설계는 매우 까다롭고 어려운 작업이라고 생각한다. 이 어려운 테이블 설계를 요구에 맞춰서 커스텀 해주는 것이 이번 과제의 목표이다. 과제 내용 자체는 복잡한 로직은 아니지만, 1:N 관계와 N:N 관계를 잘 이해하고 있는지를 물어보는 과제라고 생각한다.. 요구사항 이번 과제는 크게 3가지 테이블이 유기적으로 작업한다. User Table Account Table History Table 차근차근 하나씩 만들어 보며 진행을 해보자. User Table 기본적으로 우리가 은행 계좌를 만들 경우 입력하는 정보를 러프하게 만들어 볼 생각이다. 필요한 부분을 고민..

[DB] Schema & Query Design
SW/Data Base 2022. 1. 16. 15:53

Schema & Query Design 데이터 간의 관계 데이터 간 관계를 기술하는 SQL 효율적인 방법으로 DB 구성 방법이해 DB에서 관련 찾기 위한 SQL 작성 방법 Schema Schema란? 스키마(Schema) DB에서 데이터가 구성되는 방식과 서로 다른 Entity 간의 관계에 대한 설명이다. Entity : 하나의 정보의 단위(굳이 비유하자면 JS에서 객체 하나 같은 것) Field : 하나의 정보에서 속성들의 집합 Record : 하나의 정보의 행 (수강원 테이블 Entity에서 -> name : kimcoding, age : 19) 단위 Entity 간의 관계 Teacher 과 Student가 있다면, 한명의 Teacher은 여러명의 Student를 가지므로 1:N(일대다) 관계에 있다..

[DB] Transaction Isolation Level (트랜잭션 고립 수준)
SW/Data Base 2022. 1. 16. 15:48

Transaction Isolation Level Concurrency control에서는 상황3을 다뤘다. 상황3 은 T1, T2가 모두 쓰기를 할 때 하지만 Transaction Isolation Level에서는 상황2를 다룬다. T1 읽기, T2 쓰기 상황2 에서 Lock을 사용하여 해결하는 것도 가능하나, 두 트랜잭션의 동시 진행 정도를 과도하게 막기 때문에 Performance issue가 발생한다. 이를 완하하기 위해 다른 방법을 찾을 필요가 있어 Isolation level이 있다. Read Error 트랜잭션1이 읽기, 트랜잭션2가 쓰기인 시나리오에서 트랜잭션1의 읽기 도중 문제가 발생한다. 아래 모든 시나리오는 T1-read T2-write로 생각한다. Dirty read T1, T2가 ..

[DB] Transaction Concurrency control (동시성 제어)
SW/Data Base 2022. 1. 16. 15:46

Concurrency control 트랜잭션이 동시에 수행 될 때, 일관성을 해치지 않도록 트랜잭션의 데이터 접근을 제어하는 DBMS의 기능을 동시성 제어(Concurrency control)이라고 한다. 동시성 제어 시나리오 상황 트랜잭션1 트랜잭션2 상황1 읽기 읽기 상황2 읽기 쓰기 상황3 쓰기 쓰기 읽기만 한다면 크게 문제가 없지만 문제는 상황2, 상황3에서 나타난다. 상황2는 Isoltion level에서 다루고 동시성 제어에서는 상황3을 살펴보자 갱신손실 문제 갱신손실(lost update) 문제는 두 개의 트랜잭션이 한 개의 데이터를동시에 갱신할 때 발생한다. 작업 설명 T1(트랜잭션1)은 예금을 인출하는 작업 T2(트랜잭션2)는 입금하는 작업 T1은 계좌 X에서 100을 뺀다. T2는 계좌..

[DB] Transaction
SW/Data Base 2022. 1. 16. 15:45

트랜잭션 DBMS가 데이터 베이스를 다룰 때 사용하는 작업 단위 ACID 성질 원자성(Atomicity) : 트랜잭션에 포함된 작업은 전부 수행되거나 아니면 전부 수행되지 않아야 한다. 어중간한 일이 없어야 한다. all of nothing TCL : COMMIT, ROLLBACK은 트랜잭션 제어 명령어 SAVE : SAVEPOINT를 이용해 트랜잭션이 길어질 경우 중간에 값을 저장하는 역할 일관성(Consistency) : 트랜잭션을 수행하기 전, 수행한 후 데이터베이스는 항상 일관된 상태를 유지해야 한다. 예 판매자 계좌 10만원 구매자 계좌 10만원 인 경우 계좌이체 시 트랜잭션이 실행 중일 때, 판매자계좌 + 구매자계좌 = (20만원x 19만원o)으로 나오게 된다. (일관성 없는 상태) 독립성(I..

반응형