공부하고 기록하는, 경제학과 출신 개발자의 노트

학습일지/데이터베이스 5

if kakao 2021 - PostgreSQL ecosystem

https://if.kakao.com/session/59 if(kakao)2021 함께 나아가는 더 나은 세상 if.kakao.com PostgreSQL EcoSystem 1996년 오픈소스 프로젝트로 오픈됨. 현재까지도 1년에 한 번은 메이저 버전이 오픈됨. Extension: 다양하고 실험적인 기능을 패키지 형태로 제공하는 기능. 예시: 데이터 암호화 기능 (pg), pivot table 쿼리를 쉽게 구현할 수 있는 tablefunc. FDW : Foreign Data Wrapper 원격지의 데이터를 로컬 table처럼 사용할 수 있게 해주는 extension. 원격 데이터 + 로컬 데이터 join이나 DML 실행이 가능함. 데이터 처리 로직을 보다 간단히 구현할 수 있음. Orafce : 오라클과 ..

Transaction Isolation - MySQL과 Postgresql 비교

Transaction Isolation Level / read phenomena ACID 4요소 중 하나가 isolation. 가장 높은 수준의 isolation -> all concurrent txn will not affect each other. 반대로 말하면, txn이 다른 txn에게 영향을 줄 수 있는 정도가 구분된다는 뜻. 이걸 Read Phenomenon이라 부른다. Dirty Read : uncommitted txn값을 읽어들이는 것. txn이 commit일지 rollback일지 알 수 없기 때문에 incorrect data를 사용하게 될 가능성이 높음 Non-Repeatable Read : 동일한 쿼리 요청을 했는데 응답값이 달라지는 경우 Phantom Read : 2와 비슷하지만, 하나..

간단하게 GORM 다루어보기

https://www.youtube.com/watch?v=9koLNdEcSR0 위 영상에서 다룬 내용들을 정리했음. 2020년 8월 기준 영상이라, 영상 이후 변경 혹은 수정된 방식의 GORM 사용법으로 업데이트했다. GORM Code-first ORM. go code로 Create DB Schema, interact with DB with Writing SQL Query 등을 가능하게 함. https://gorm.io/docs/models.html package main import ( "fmt" "log" "gorm.io/gorm" "gorm.io/driver/sqlite" ) /* 테이블 정의하기 - gorm.Model을 struct의 정의부에 추가한다. - primary Key인 ID, creat..

빠르게 정리하는 데이터베이스 (2) - MySQL Stored Procedure

Stored Procedure SQL은 근본적으로는 non-procedure Language이지만, Stored Procedure가 있기 때문에 procedural Language 취급을 받기도 한다. 반복되는 작업 수행을 위해 서버에 저장해 둔 일련의 명령을 의미함. compiled Language만큼 빠르진 않지만 속도도 나쁘지 않음. Application Independent. 애플리케이션 구현 언어에 독립적으로 작동 가능하다. 애플리케이션에 필요한 기능을 모아두고, 매번 sql문을 생성하고 실행할 때보다 시간 / 돈 절약이 가능함. 애플리케이션은 DB와 통신하는데, 보통 여기가 bottleNeck인 경우가 많음. 직접 쿼리를 internet 통해서 DB 서버로 전송할 경우, 인터넷 속도가 곧 애플..

빠르게 정리하는 데이터베이스 (1) 기본개념, DB Structure

introduction What is SQL? (DB Management) SQL : 데이터베이스 서버가 Constructing Statements을 실행할 수 있도록 지원하는 데이터베이스용 언어. Database - 저장하고 싶은 데이터를 저장할 수 있는 공간. 정확한 정의는 "DBMS의 관리하에 놓여 있는 Persistent Data의 집합." Persistent Data : 일반적으로 컴퓨터 램에 올라간 데이터는 애플리케이션이 종료되면 사라짐. 애플리케이션이 종료되거나 컴퓨터가 꺼져도 계속 보존되는 데이터를 말함. DBMS : persistent Data가 저장된 데이터베이스를 관리하기 위한 서버. ex) MySQL. SQL을 실제로 데이터베이스에서 작동할 수 있도록 실행하며, 쿼리 최적화도 담당한..