본문 바로가기

데이터베이스7

CAP 이론 소개 - 데이터베이스 초보자용 밑에 세줄요약 있음 살펴보기 CAP 이론이란? MongoDB의 CP 시스템과 Cassandra의 AP 시스템 CAP란? 분산 데이터베이스는 방대한 데이터를 다루기에 유용한 시스템이다. 분산 데이터베이스는 수평 확장할 수 있기 때문에 트래픽이 증가하더라도 낮은 지연 시간을 유지할 수 있고, 일부 노드 장애에 적절히 대응할 수 있다. NoSQL 데이터베이스는 대표적인 분산 데이터베이스이며, 유연하게 데이터를 다룰 수 있다는 장점이 있다. NoSQL 데이터베이스는 서로 다른 특징을 가진 여러 제품이 있기 때문에 애플리케이션에 맞는 특성에 맞는 데이터베이스를 선택해야 한다. 이를 위해서는 각 제품의 특징뿐만 아니라 데이터베이스 이론 또한 이해해야 한다. CAP는 분산 데이베이스 속성에 관한 이론으로써, 분산 데.. 2022. 3. 26.
Shared Lock 과 Exclusive Lock 여러 트랜잭션을 동시에 실행하면 생기는 문제 트랜잭션이 동시에 여러개 실행된다면 여러 트랜잭션이 동시에 같은 데이터를 참조해 데이터의 일관성이 깨질 수 있다. 그러므로 트랜잭션이 하나씩 실행되는 것처럼 스케줄링할 필요가 있다. 여러 트랜잭션 스케줄링 방법이 있지만 보통 잠금을 사용한다. 잠금이란 자신이 데이터를 수정 중이라는 것을 알리는 방법이다. Shared Lock, 줄여서 LS Shared Lock, 공유할 수 있는 락이다. 즉 LS가 걸려있을 때 다른 LS를 걸 수 있다. 바꿔말하면 LS끼리는 Block 되지 않는다. 읽기에 사용된다. Exclusive Lock, 줄여서 LX Exclusive Lock, 공유할 수 없는 락이다. 무조건 하나만 걸 수 있다. LX는 LS, LX 어떠한 락이라도 허용.. 2021. 12. 5.
Join 쿼리를 어떻게 최적화할까 다음과 같이 사용자 엔티티로 엮여있는 아이템과 디바이스 엔티티를 생각해보자. 특정 조건을 만족한 아이템들의 리스트를 가져와서 그 아이템의 사용자의 디바이스로 알림을 보내고 싶다. 사용자의 아이템이 여러개더라도 각 디바이스에는 알림이 한번만 가게끔 해보자. 먼저 One to Many 관계인 사용자와 아이템을 조인해보자. 아이템이 가지고 있는 fk(사용자의 pk이다)로 조인이 된다. 아이템 하나당 사용자 하나를 가지고 있기 때문에 엔티티 수가 늘어나진 않는다. 여기서 디바이스를 가져오기 위해 사용자-디바이스, One to Many 조인을 해보자. 디바이스 1의 fk는 사용자A의 pk 이다. join은 카티전 곱과 셀렉션 연산의 합이므로 레코드가 뻥튀기 된다. 한 사용자가 아이템을 세개, 디바이스를 네개 가지.. 2021. 3. 10.
로그인 아이디는 왜 pk로 적절하지 않을까? JPA로 엔티티를 설계하던 중 의문이 들었다. 보통 PK는 @GeneratedValue 어노테이션으로 artificial key를 사용한다. 계정 정보를 나타내는 엔티티는 로그인 아이디를 컬럼으로 가지고 있고, 그 컬럼은 Updatable = false, unique = true, nullable = false를 제약조건을 가지고 있다. 그렇다면 변경이 불가능하고, 유일하고, 값이 있어야 하는 로그인 아이디는 PK와 비슷해보인다. 그렇다면 로그인 아이디를 PK로 사용하면 되지 않을까? 인프런에서 JPA 수업을 들었던 김영한 팀장님께 물어봤다. 언제나 친절하게 답변해주신다. 대부분의 사이트들이 고객 id를 PK로 잡지않는다고 한다. 로그인 아이디는 비지니스 로직과는 무관해보이지만 그렇지 않다. login .. 2021. 3. 4.
Narrative to ERD - Individual Assignment #3 Assignment Let’s say we had an interview session with a person in charge of library business processes. We want to improve library business processes by constructing a library management database for K-library. (8 points) Directions: - Read the interview document carefully and make an ERD based on the document. - You can draw the ERD by yourself using MS-power point. Or you can use software syst.. 2020. 12. 23.
Nested Query - Individual Assignment #2 Assignment Make a total of three retrieval queries to get an answer for the same problem definition, by referring the directions below. Your problem definition and its three different query statements will be evaluated. (9 points: 3-3-3) Directions: - Define an interesting problem situation. Design it carefully (evaluation point). - Make a query that implements Type I nested query for this probl.. 2020. 12. 23.
Usage of Join - Individual Assignment #1 Assingment Assign #1 Make a total of three retrieval queries with your own retrieval problem definition, by referring to the following. Problem definition and query results will be evaluated. (6 points;2- 2-2) You first define one problem for each direction, followed by making an answer query statement and showing its returned result. Directions: - A query that join three or more tables. - A que.. 2020. 12. 23.