[DB] 트랜잭션, 격리수준에 대해서 알아보자.(+ 면접 준비)
Database/SQL

트랜잭션이란?트랜잭션은 데이터베이스에서 하나의 작업 단위로 수행되는 연산 집합이다. 트랜잭션은 작업이 모두 성공적으로 완료되거나, 실패 시 모든 작업을 취소(롤백)함으로써 데이터의 일관성을 보장한다. 하나의 트랜잭션은 Commit 되거나 Rollback 된다. 트랜잭션을 왜 사용할까?데이터의 일관성을 유지하면서 안정적으로 데이터를 복구하기 위함이다. 트랜잭션은 하나의 논리적인 작업의 단위이기 때문에, 여러 개의 작업을 하나의 논리적인 단위로 묶어서 반영과 복구를 조정할 수 있기 위해 사용한다. 따라서, 데이터의 부정합이 일어났을 경우 롤백을 하여 데이터의 부정합을 방지할 수 있다. (참고)또한 동시성 제어에도 사용한다. 데이터베이스는 다수의 사용자가 동시에 동일한 데이터에 접근할 수 있으므로, 데이터 충..

SQL 프로그래밍 (1) - 데이터베이스란?, MySQL란?, MySQL 설치, Workbench 활용
Database/SQL

안녕하세요! 항상 나아가는 개발자 pink_salt 핑솔입니다! 코드프레소 Java 웹 개발 체험단 활동을 하고 있습니다. 이번엔 '처음 시작하는 SQL 프로그래밍'강의를 듣고 공부한 내용을 정리하여 포스팅을 진행하겠습니다. 웹서비스 개발을 진행할 때 필수적인 요소가 바로 데이터베이스 입니다. 왜냐하면 웹서비스에서 가장 중요한 것은 데이터이기 때문입니다. 쇼핑몰에서 좋아요를 누르고, 장바구니에 넣고 등등 모든 활동들이 데이터베이스에 저장되어있는 데이터라고 할 수 있습니다. 그래서 이번엔 데이터베이스와 SQL에 대해서 자세하게 알아보겠습니다! 데이터베이스란 무엇인가? 데이터는 다양한 방법으로 관리가 가능합니다.(파일, 엑셀 등) 여러 사람이 공유하여 사용할 목적으로, 통합하여 관리되는 데이터의 집합을 말합..

MongoDB - Query에서 반환할 projectjon field
Database/MongoDB

💡 MongoDB 공식문서를 참고하였다. 참고 : https://docs.mongodb.com/manual/tutorial/project-fields-from-query-results/ Project Fields to Return from Query — MongoDB Manual Docs Home → MongoDB Manual➤ Use the Select your language drop-down menu in the upper-right to set the language of the following examples.By default, queries in MongoDB return all fields in matching documents. To limit the amount of data that..

MongoDB - 배열 쿼리 - (2)
Database/MongoDB

💡 MongoDB 공식 문서를 참고해서 작성하였다. 참고 : https://docs.mongodb.com/manual/tutorial/query-array-of-documents/ Query an Array of Embedded Documents — MongoDB Manual Docs Home → MongoDB Manual➤ Use the Select your language drop-down menu in the upper-right to set the language of the following examples.The following example selects all documents where an element in the instock array matches the specified do..

MongoDB - 배열 쿼리 - (1)
Database/MongoDB

💡 MongoDB 공식 문서를 참고해서 작성하였다. 참고 : https://docs.mongodb.com/manual/tutorial/query-arrays/ 배열 쿼리 inventory collection 기반으로 예제를 진행한다. db.inventory.insertMany( [ { item: "journal", status: "A", size: { h: 14, w: 21, uom: "cm" }, instock: [ { warehouse: "A", qty: 5 } ] }, { item: "notebook", status: "A", size: { h: 8.5, w: 11, uom: "in" }, instock: [ { warehouse: "C", qty: 5 } ] }, { item: "paper", s..

MongoDB - Document Query(조회) - (2)
Database/MongoDB

💡 MongoDB 공식 문서를 참고해서 작성하였다. 참고 : https://docs.mongodb.com/manual/tutorial/query-embedded-documents/ Query on Embedded/Nested Documents — MongoDB Manual Docs Home → MongoDB Manual➤ Use the Select your language drop-down menu in the upper-right to set the language of the following examples.For example, the following query selects all documents where the field size equals the document { h: 14, w: ..

MongoDB - Document Query(조회) - (1)
Database/MongoDB

💡 MongoDB 공식 문서를 참고해서 작성하였다. 참고 : https://docs.mongodb.com/manual/tutorial/query-documents/ Query Documents 주어지는 예시를 통해서 db.collection.find() method를 mongosh에서 실행할 것이다. 일단 insertMany()를 통해 inventory라는 collection에 document들을 추가한다. db.inventory.insertMany([ { item: "journal", qty: 25, size: { h: 14, w: 21, uom: "cm" }, status: "A" }, { item: "notebook", qty: 50, size: { h: 8.5, w: 11, uom: "in" },..

MongoDB - Database/Collection/Document생성,제거
Database/MongoDB

Database, Collection, Document를 생성하는 명령어와 제거하는 명령어 Database, Collection, Document 관계도 Database 생성 : use use DATABASE_NAME 명령어를 통해 Database를 생성할 수 있다. 만약 데이터베이스가 이미 존재하면 현존하는 데이터베이스를 사용한다. 생성 후에 생성된 데이터베이스를 사용하게 된다. ex) mongodb_tutorial이라는 데이터베이스를 생성한다. > use mongodb_tutorial switched to db mongodb_tutorial ex) 현재 사용 중인 데이터베이스를 확인하려면 db명령어를 입력한다. > db mongodb_tutorial ex) 만든 데이터베이스 리스트들을 확인하려면 sh..

MongoDB - 데이터 모델링
Database/MongoDB

MongoDB에서의 명령어들을 배우기 전에 MongoDB에서 데이터 모델링의 기본을 먼저 보고 가겠다. schema 디자인할 때 고려사항 사용자 요구(User Requirement)에 따라 schema를 디자인한다. 객체들을 함께 사용하게 된다면 한 Document에 합쳐서 사용한다.(ex. 게시물 - 댓글 관계) 그렇지 않으면 따로 사용해야 한다.(join은 사용하지 않는다.) 읽을 때 join하는게 아니라 데이터를 작성할 때 join한다. 예제 간단한 블로그를 위한 데이터베이스를 디자인한다고 가정한다. 요구사항 게시글에는 작성자 이름, 제목, 내용이 담겨 있다. 각 게시글은 0개 이상의 태그를 가지고 있을 수 있다. 게시글엔 댓글을 달 수 있다. 댓글은 작성자 이름, 내용, 작성 시간을 담고 있다. ..

MongoDB 소개, 설치
Database/MongoDB

MongoDB는 C++로 작성된 오픈소스 문서지향(Document-Oriented)적 Cross-platform 데이터베이스이다. 뛰어난 확장성과 성능을 가지고 있다. 현존하는 NoSQL데이터베이스 중 유명하다. NoSQL? Not Only SQL이다. 기존의 RDBMS의 한계를 극복하기 위해 만들어진 새로운 형태의 데이터저장소이다. 관계형 DB가 아니기 떄문에 RDMS처럼 고정된 스키마 및 JOIN이 존재하지 않는다. Document? Document Oriented 데이터베이스 여기서 말하는 Document는 RDMS의 record와 비슷한 개념이다. 데이터 구조는 한 개 이상의 key-value pair로 이루어져 있다. ex) MongoDB의 샘플 Document { "_id": ObjectId(..