# db

[#4] Firebase
데이터베이스 (Database) 데이터를 저장하고 여러 사람들이 관리하는 데이터의 모음 관계형(SQL) : 정리된 정보 비관계형(NoSQL) : 복잡하거나 유연한 정보 파이어베이스 (Firebase) 구글이 개발한 모바일 및 웹 애플리케이션 개발 플랫폼 웹 서버를 대신 만들어주는 서비스 서버 개발 없이 제작 가능 파이어스토어(Firestore) : 클라우드 기반 NoSQL 데이터베이스 파이어베이스 세팅 code [PROJ #1] 추억 앨범 [addDoc] : DB에 데이터 넣기 스켈레톤 코드 DB에 카드 데이터 저장 
뷰테이블
개인정보 같은거 안보여주고 싶을때 특정 칼럼만 선택해서 복사해서 테이블 만듬 view table 뷰테이블은 매번 가져오니까 기존테이블 동기화돼서 실시간 반영됨

JAVA, DB 연동
java code 와 db 연동 new java project package, class 추가 라이브러리 연동 설정 등 확인 jar파일, 드라이버 연동 주의사항 파일 위치 변경 X 한 곳에 모아두는 것이 좋음 환경변수 설정 DB java - ch01_driver DriverConnect ch02_insert InsertTest ch03_select SelectTest ch04_update UpdateTest ch05_delete DeleteTest

[sellFarm] DB table - JOIN
✅ 주문내역 조회 페이지의 목표한 User Flow 사용자는 주문내역에 대한 상품명을 알 수 있다. (O) 사용자의 주문내역을 상위 5개로 출력하고 더 많은 주문내역을 조회 하고 싶은 경우 더보기를 눌러 확인할 수 있도록 한다. (O) 사용자의 주문내역을 검색필터를 통하여 검색에 따른 결과를 보여준다. (O) 검색활성시 활성 조건은 주문처리 상태, 날짜, 상품명을 기준으로 하며 각 검색필터 별로 검색할 수 있게 한다. (O) 사용자는 본인의 주문내역을 선택할 수 있다. (O) 사용자는 주문내역을 선택적으로 다운로드 할 수 있다. (O) 사용자의 주문내역에 대해서 상품명을 알 수 있다. 주문번호에 대한 상품명을 불러오기 위해 각 table에

ER 모델링 실습
Conceptual Schema - ER 모델링 실습 모든 entity type은 따로 떨어져 있어야하면 안되고, PK가 꼭 존재해야한다. 1. Online Book store Entity Type, Relationship Type, Attribute Type Cutomer Customer ID --> Primary Key로 설정 Name(First name, Last Name) --> Composite Attribute로 설정 Address(Street, City, State, Zip Code) --> Composite Attribute로 설정 Phone Number Book Title ISBN --> Primary Key로 설정 Author(s) --> multi-valued로 설정 Publisher Price Purchase N
CAP 이론
CAP 이론 분산 컴퓨팅 시스템에서 보장해야되는 시스템 분산 시스템은 일관성(Consistency), 가용성(Availablity), 분단 허용성(Partition torlerance) 세가지 속성를 다 만족시킬 수 없다 속성 일관성(Consistency) 데이터를 요청할 때 응답으로 가장 최신의 변경된 데이터를 응답해주어야 된다 모든 노드들은 동시에 같은 데이터를 봐야된다 = 여러 노드 중 어떤 노드를 선택하여 보더라도 해당 데이터는 일관되어있다 가용성(Availablity) 모든 노드는 항상 읽기와 쓰기가 가능해야된다 클러스터의 노드 일부에서 장애가 발생하더라도 다른 서버에 있는 데이터를 가져와 계속 서비스가

[php_project] 셀팜 프로젝트 소개
프로젝트의 소개 > php project를 시작하게 된 계기 국민취업 지원 제도에서 지원하는 "일 경험 프로그램"에 참여하게 되면서 회사에 들어가게 되었고 취업준비하고 있는 상태에서 실무를 경험할 수 있는 흔치 않은 기회라고 생각되었다. 따라서 내가 맡은 업무와 더해서 회사에서 제안해 주신 프로젝트에 참여하기로 결정하였고 맡은 프로젝트가 바로 "셀팜(SellFarm) 프로젝트이다." 구성인원 : 3명 1차 시안 기간 : 09/01 - 10/07 기술 스택 : PHP7.4, MySQL 프로젝트 목표 : 셀팜은 식품 공급사와 고객을 연결하여 셀팜으로 부터 들어오는 주문을 고객들에게 전달한다. 셀팜은 B2B 프로젝트이다. 셀팜은 식품 도매사이트이고 공급자와 셀러간의 중간 플랫폼을 목표로 하는 사이트 이다. B2B란 : Business to Business로 기업 간의 상거래 및 서비스 제공을 의미한
스프링 부트와 MariaDB 환경에서 Table doesn't exist 오류 해결하기
👉 오류 내용(MariaDB 사용) 👉 오류 상황 및 조사 스프링 부트 프로젝트 빌드 시에 위와 같은 오류가 거듭 발생 → 서비스 실행은 되는 상황 해당 테이블을 사용하는 페이지에 들어가면 White Label 페이지로 뜸 해당 페이지에서는 채팅방이 생성되며 방장이 채팅 유저로 등록되어야 하는데 채팅 유저를 저장할 table이 없어서 발생한 오류 검색을 해봤으나 테이블 이름의 문제라는 얘기가 있었음 ⇒ 테이블 이름은 원래 쓰던 대로 떴고, 문제없어 보였음 ddl-auto 설정을 바꾸라고 함 ⇒ 동일한 설정으로 계속 사용했었는데 이걸 바꾸는 게 해결책은 아닐 것 같았음 👉 접근 방법 SQLyog에 접속해서 테이블 생성 쿼리를 입력했으나 오류 발생 SQLyog : DB관리를 위한 GUI 클라이언트

DB /day20 / 23.09.19(화) / (핀테크) Spring 및 Ai 기반 핀테크 프로젝트 구축
10VIEW2.SQL 11_SEQUENCE.SQL 12_시스템권한.SQL 13PLSQL.SQL
[batch][nestJS] DB 데이터를 옮기게 하고 특정 시간에 옮기게 하려면..?! 배치를 쓴다(feat.구조분해 할당)
이번 사이드프젝트를 경험하면서 배워야할 것들도 많고 힘들기도(자괴감)하고 어려웠지만 새로운 경험들도 할 수 있는게 너무 좋았다. 내용의 순서는 이렇다 > 1. DB 데이터를 옮긴다. nestJS의 라이브러리를 사용해서 batch 작업을 수행한다. 그럼 시작해보자 1. DB데이터 옮기기 > ### 상황 table1, table2가 있다. table 1의 2개의 column을 table 2에 옮긴다.(옮길때 table2를 일부가공하는 과정도 있었다.) 사전에 table1에서 2로 옮긴 데이터는 변경사항이 있을 수도 있으니 update쿼리를 수행하게 하고 새로운 데이터가 생기는 경우에는 insert 쿼리를 수행할 수 있도록 하게 한다. 위의 방식에서는 한가지 변수에 여러 데이터를 포함할 수 있기 때문에 구조분해할당도 사용하게 되었다. 구조분해할당을 잘 사용할 수 있는 아주 좋은 예시였다고 생각한다. 구조분해 할당에 대해서는 따로 작성한 [구조분해할당
[DB]세션 저장소 Redis VS RDB 메모리
일반적으로 세션 저장소로 Redis를 채택해서 사용한다. 아마 빠른 속도와 in-memory저장소라는 이유를 많이 꼽을 것 같다. 하지만 RDB도 메모리에 저장(캐싱)이 가능하고 메모리를 사용하는 거면 속도도 별 차이가 안날 텐데 왜 RDB 메모리 엔진보다 Redis를 사용하는지 한번 생각 보자. 비교 속도 : 무승부 RDB도 메모리를 사용하면 in-memory기반인 Redis와 별 차이가 없다고 본다. 확장성 : 무승부 세션 데이터가 많아지면 데이터 관리를 위해 서버를 확장하거나, 증설해야한다. 그리고 증성할 경우 클러스터링을 통해 여러서버가 세션데이터를 공유 할 수 있도록 해야한다. 이 부분 역시 RDB, Redis가 모두 클러스터링을 지원하므로 무승부라고 본다. Expire : 레디스 승 세션은 영구적으로 사용하지 않는다. 아무것도 안하고 있다가 로그인이 끊기는 경험은 한번 쯤은 해봤을 것 같다. RDB는 목적자체가 영구적인 보존이어서 데이터가 만료 됐다고

[express]로 서버랑 DB 연결하기
🐾 WEB의 동작 원리 > 1. client( 브라우저) (html,css,js/ react /next) 에서 데이터를 서버쪽으로 전송 (특정 요청도 함께) "서버야 뭐 해줘!"함. >요청할때 어느정도 틀을 규정 REST API (post, get, put, delete, patch) 조회같은 요청 👉 get 요청 이라고 하자 삭제같은 요청 👉 delete 요청 추가같은 요청 👉 post 요청 수정 요청 👉 put 요청 요청에 대한 모양은 주소모양으로 하자 사용자 정보 조회는 👉 www.naver.com/user 로 get 요청 사용자 정보 수정 👉 www.naver.com/user put 요청 + suji이라는 사용자를 나이 10으로 사이트페이지 👉 www.naver.com/ get 요청 >### 2. 서버는 client의 데이터와 요청의 정보를 받는다 app.get

트랜잭션 이해
1. 트랜잭션 - 개념 이해 1-1. 트랜잭션 ACID 원자성(Atomicity): 트랜잭션 내에서 실행한 작업들은 마치 하나의 작업인 것처럼 모두 성공 하거나 모두 실패해야 한다. 일관성(Consistency): 모든 트랜잭션은 일관성 있는 데이터베이스 상태를 유지해야 한다. 예를 들어 데이터베이스에서 정한 무결성 제약 조건을 항상 만족해야 한다. 격리성(Isolation): 동시에 실행되는 트랜잭션들이 서로에게 영향을 미치지 않도록 격리한다. 예를 들어 동시에 같은 데이터를 수정하지 못하도록 해야 한다. 격리성은 동시성과 관련된 성능 이슈로 인해 트랜잭션 격리 수준 (Isolation level)을 선택할 수 있다. 지속성(Durability): 트랜잭션을 성공적으로 끝내면 그 결과가 항상 기록되어야 한다. 중간에 시스템에 문제가 발생해도 데이터베이스 로그 등을 사용해서 성공한 트랜잭션 내용을 복구해야 한다. 1-2. 트랜잭션

DB /day19 / 23.09.18(월) / (핀테크) Spring 및 Ai 기반 핀테크 프로젝트 구축
07TABLEDML_2.SQL #1 QUIZ 08_TRANSACTION.SQL 09INTEGRITYCONSTRAINT.SQL 10_VIEW.SQL

DBMS - 데이터베이스와 MySQL
1. 데이터 데이터(data)는 정보나 사실들의 원시적이고 구조화되지 않은 형태입니다. 이것은 숫자, 문자, 이미지, 소리 등 다양한 형태로 나타날 수 있습니다. 예를 들면, 온도 측정 결과, 사진, 글, 음성 녹음 파일 등이 데이터에 해당합니다. 분석, 의사 결정, 연구, 예측 및 다양한 작업에서 중요한 자원으로 활용됩니다. 데이터를 수집, 저장, 처리 및 분석함으로써 정보를 추출하고 의미 있는 결과를 얻을 수 있으며, 이를 통해 문제 해결, 개선, 혁신 등 다양한 목표를 달성할 수 있습니다. >> ## 1.1. DIKW 모델 >>>출처:https://commons.wikimedia.org/wiki/File:DIKW_Pyramid.svg >> >>"DIKW"는 데이터(Data), 정보(Inform
[MySQL] MySQL 기본 사용법
작업하다 여러 데이터베이스를 사용하다보니 종종 까먹는데 그걸 대비해서 작성해본다. 1. DDL 조회 생성 수정 삭제 2. DML 조회 추가 변경 삭제
Conceptual Schema
Conceptual data modeling 사용자 요구에 기반하여 데이터베이스 컨텐츠를 디자인 하는 것. conceptual data modeling을 하는데 ER 모델링이 지배적이다. ER 모델을 사용하기에 쉽고, 이해하기에도 쉽다. 학자, 산업계 전문가들이 데이터 애플리케이션을 모델링하는데 효과적인 도구라고 주장 ER 모델링을 구성하는 3가지 1. Entity Type: 공통적인 어떤 성질이나 특성을 공유하는 엔터티들의 집합체를 엔터티 타입이라고 한다. 직사각형으로 표기한다. Entity: 어떤 조직이 데이터를 보유하고 저장하고자 하는 실체. 사람이 아니라 실제 존재하는 홍길동이라는 사람이 Entity Naming convention of enity type 단수 명사 되도록 구체적 명료하고 단순 하나의 ER 모델에서는 같은 이름을 가질 수 없음
Three Schema Architecture, Projects
1. Three Schema Architecture External Schema 각각의 어플리케이션이나 사용자에게 접근이 필요한 일부 사용자에 따라 일부만 보여지기 때문에 비즈니스 기능에 따라 달라짐 전체 데이터베이스에서 일부만 접근 가능 일부 유저뷰만 정해짐 DBA가 결국에는 각각의 유저 시스템을 결정 사용자 들이 데이터들을 인식하는 방법 나, 내가 사용하는 어플리케이션에 필요한 데이터만 접근 가능 따라서 전체 데이터베이스가 아니라 일부 ex) 고객이 1974년 3월 1일에 태어났다는 데이터 고객 서비스 부서 뷰에 해당하는 데이터 생년 월일 생일일 때 문자를 보내야하므로 마케팅 부서 뷰에 해당하는 데이터 48살 나이대에 따른 다른 마케팅을 해야하므로
Evolution of database technologies, SDLC
1. Evolution of database technologies 1960s files 1970s network navigation 1980s relational 1990s object 2000+ noSQL 데이터를 끄집어내서 사용하는데 오랜시간이 걸리기때문에 data warehouse가 생겼다. 1990년도부터 시작되었다. 어느정도 기업이면 대부분 data warehouse를 사용한다. 기업에서 쓰는 DBMS Oracle SQL Server DB2 MySQL, PostgreSQL 기능도 많고, 저장공간도 넓다. 2. The Range of Database Application 개인적인 database 2티어 클라이언트/서버 database 사용자 DB Server————database 티어1 티어2 3티어 클라