
이미 sql 미션을 진행한지는 1달도 더 지난 듯 싶지만, 내용을 떠올리며 DB에 대해 학습하는 내용 위주로 작성해본다. 원하는 결과가 나올 수 있게 쿼리를 작성하고 일정시간(ex, 100ms)안에 조회할 수 있도록 하는 미션이었다. 서브쿼리 쿼리안에 쿼리가 들어가는 것을 서브쿼리(nested query)라고 한다. select 절, from 절, where 절 등에 들어갈 수 있다. Join 조인은 두 테이블을 합쳐 보여주는 것이다. 닫힌연산이라 여러번 가능하다. 크로스조인은 상호조인이라고도 불리며, 한쪽 테이블의 모든 행과 다른쪽 테이블의 모든 행을 곱하게 된다. 10개의 행을 가진 테이블과 13개의 행을 가진 테이블을 크로스조인하면 130행의 테이블이 생성된다. (10rows X 13rows = 1..
1. DB Replication 한 서버에서 다른 서버로 데이터가 동기화 되는 것이다. 원본 데이터를 가진 서버가 source서버, 복제된 데이터를 가지는 서버를 replica서버라고 한다. DB Replication을 왜 하는가? 생각할 때, 지금의 입장에서 replication을 하는 가장 큰 목적은 데이터 백업이라고 생각한다. DB는 안정성과 영속성이 중요시 되는데 1개만 존재한다면 단일 장애점으로 DB서버에 문제가 생길 경우, 기존 데이터를 지기키 못하는 문제가 발생할 수 있다. 이 경우 기존의 데이터를 유지하기 위해서 데이터 백업이 있어야 한다. 백업은 주기적으로 백업파일(덤프파일)을 만들 수도 있지만 이것은 실제 운영하고 있는 DB 전체에 lock이 걸리기 때문에 운영시 문제가 될 수 있다. ..
기존 WAS가 떠있는 EC2 내부에 Docker 안에 DB를 구성 DB는 local에 파일로 볼륨 설정을 하여 컨테이너가 삭제되더라도 DB 데이터는 삭제되지 않도록 설정 왜 docker 환경에서 DB 구성을 전환하는가? docker 는 불안정한 환경 도커의 철학은 빠르고 쉽게 개발환경을 구축하는데 있다. 영속성을 가지는 DB 환경과는 상충된다. DB를 scale up, scale out 하는 상황이 온다면? WAS와 같은 서버에 있다면 그만큼 DB와 WAS가 사용할 수 있는 자원을 나누게 된다. DB의 대수를 늘리거나 사용할 수 있는 자원을 늘려야한다면 또 다른 EC2서버에 DB를 운영하는 것이 좋다. volume 설정을 통해서 사용하면 DB에서 제공하는 기능들 활용하지 못함 사실 DB에서 다양한 어떤 ..
Flyway? DB 변경사항 형상관리 오픈소스 community 무료버전과 유료버전이 있다. 7 Commands Migrate, Clean, Info, Validate, Undo, Baseline, Repair 라는 7개의 명령어를 지원한다. Migrate: DB의 스키마를 최신 버전으로 변경한다. Clean: 스키마의 내용을 삭제한다. (운영 DB에서 사용하면 안된다) Info: migration 과 관련된 상태외 상세정보를 보여준다. Validate: 현재 적용된 부분과 일치하는지 알려준다. Undo: 가장 최신에 적용된 migration을 되돌리기 한다. Baseline: baselineVersion을 제외하고 migration 한다. Repair: DB flyway 내역을 수정한다. Migrate..
DB 쿼리 데이터베이스에서 사용되는 다양한 쿼리를 정리했습니다. ALTER 테이블을 삭제하지 않고 스키마를 변경 -- 추가 ALTER TABLE ADD COLUMN ; -- PK 설정 ALTER TABLE PRIMARY KEY (); -- 삭제 ALTER TABLE DROP COLUMN ; -- 속성 변경 ALTER TABLE MODIFY COLUMN ; -- 이름과 속성 변경 ALTER TABLE CHANGE COLUMN ; -- 이름만 변경 ALTER TABLE RENAME COLUMN TO ; -- 외래키 제약조건 추가 ALTER TABLE ADD FOREIGN KEY () REFERENCES (); -- 외래키 제약조건의 삭제 SHOW CREATE TABLE \G -- 외래키 이름 확인 ALTER..
Stored Program SQL 명령어는 선언적 What 에 초점 데이터베이스에서 절차적 명령어(How)를 수행하기 위해 stored program 을 사용 스토어드 루틴 이라고 하기도 함 스토어드 함수, 스토어드 프로시저, 트리거, 이벤트 핸들러 등을 포괄하는 개념 게임분야에서 많이 사용한다고 한다(웹에서도 사용한다고 함) ORM 등을 사용하면서 사용이 줄었다고 하는 듯 하다. 장점 응용프로그램의 성능향상 네트워크 트래픽 감소 보안성 항상: 자체적인 보안 설정 기능이 있어, 스토어드 프로그램 단위로 실행권한 부여 가능. SQL 인젝션 등을 방지가능 개발 업무의 구분: 애플리케이션 관리 조직과 DBMS 관련 조직간의 업무구분이 가능 단점 애플리케이션과 버전이 따로 관리됨 => 유지보수가 매우 어려움, ..
DB 응용 OLTP(OnLine Transaction Processing) 복수의 사용자에서 발생되는 트랜잭션을 DB가 처리하고 돌려주는 과정 응답속도가 빠름 데이터 처리가 얼마나 정확하고 무결한지가 중요 index 로 데이터에 소량 접근하여 소량의 읽기를 해오는 경우 데이터 수정이 비교적 많이 일어나는 경우 OLAP(OnLine Analytical Processing) 데이터를 분석하여 유의미한 정보를 제공해주는 처리방법 오래 걸림, 상대적으로 응답속도가 느림 다량의 데이터를 다량으로 읽기를 하는 경우 Transaction(트랜잭션) 트랜잭션의 영어 의미는 "거래" 무언가를 주고 받는 행위를 의미 DB에서는 쪼갤 수 없는 작업의 단위를 의미 ACID(Atomicity, Consistency, Isola..

데이터 모델링 현실에서 응용할 데이터를 잘 고르고 다듬어서 DBMS에 저장하는 방법이다. 주어진 개념으로부터 논리적인 데이터 모델을 구성하는 작업을 의미한다. 물리적인 데이터베이스 모델로 만들어 반영하는 작업을 포함한다. 데이터 모델링 과정은 크게 아래 4가지 단계로 이루어진다. 요구사항 분석 (Requirements Analysis) : 요구사항을 데이터의 관점에서 분석한다. 요구사항 분석서가 산출된다. 개념적 설계 (Conceptual Database Design) : 요구사항을 조금 더 정형화하기 위해 사용된다. 요구사항 분석서를 통해 ERD(Entity-Relationship Diagram)가 산출된다. 논리적 설계 (Logical Database Design) : ERD를 실질적 데이터베이스 형..
- Total
- Today
- Yesterday
- TIL
- 마스터즈코스
- DB
- Transaction
- 운영체제
- React
- 학습로그
- 내부코드
- 회고
- 글쓰기미션
- 네트워크
- 객체지향
- 카카오
- Spring
- java
- 우테코수업
- CS
- TCP/IP
- JS
- OS
- 개발공부일지
- JPA
- 모의면접준비
- javascript
- 인증
- 우아한테크코스
- python
- 알고리즘
- 월간회고
- 코드스쿼드
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |