Database에서 가장 기본이 되는 Key
[Database SQL] JOIN 조인이란? > 두 개 이상의 테이블이나 데이터베이스를 연결하여 데이터를 검색하는 방법 테이블을 연결하려면, 적어도 하나의 칼럼을 서로 공유하고 있어야 하므로 이를 이용하여 데이터 검색에 활용한다. JOIN 종류 INNER
SQL Injection > 해커에 의해 조작된 SQL 쿼리문이 데이터베이스에 그대로 전달되어 비정상적 명령을 실행시키는 공격 기법 📍 SQL Injection SQL Injection 이란 악의적인 사용자가 보안상의 취약점을 이용하여, 임의의 SQL 문을 주입하고 실행되게 하여 데이터베이스가 비정상적인 동작을 하도록 조작하는 행위 입니다. 인젝션 ...
📌 SQL과 NoSQL의 차이 웹이나 앱을 개발할 때, SQL을 쓸지, NoSQL을 쓸지 고민하게 되는 것 같다. 특히, 채팅방 구현을 할 때, RDB와 MongoDB 사이에서 고민을 많이 했었던 것 같다. >MySQL과 같은 SQL을 사용할까? 아니면 MongoDB와 같은 NoSQL을 사용할까? 보통 Spring에서 개발할 때는 MySQL을, No...
정규화(Normalization) Normalization 가장 큰 목표는 테이블 간 중복된 데이터를 허용하지 않는 것이다. 중복된 데이터를 만들지 않으면, 무결성을 유지할 수 있고, DB 저장 용량 또한 효율적으로 관리할 수 있다. 목적 데이터의 중복을 없애면서 불필요한 데이터를 최소화시킨다. 무결성을 지키고, 이상 현상을 방지한다. 테이블 구성...
[DB] Anomaly > 정규화를 해야하는 이유는 잘못된 테이블 설계로 인해 Anomaly (이상 현상)가 나타나기 때문이다. > > 이 페이지에서는 Anomaly가 무엇인지 살펴본다. 예) {Student ID, Course ID, Department, Course ID, Grade} 삽입 이상 (Insertion Anomaly) 기본키가 ...
Index(인덱스) 목적 테이블의 칼럼을 색인화한다. > 마치, 두꺼운 책의 목차와 같다고 생각하면 편하다. 데이터베이스 안의 레코드를 처음부터 풀스캔하지 않고, B+ Tree로 구성된 구조에서 Index 파일 검색으로 속도를 향상시키는 기술이다. 파일 구성 테이블 생성 시, 3가지 파일이 생성된다. FRM : 테이블 구조 저장 파일 MYD :...
DB 트랜잭션(Transaction) 트렌잭션이란? > 데이터베이스의 상태를 변화시키기 위해 수행하는 작업 단위 상태를 변화시킨다는 것 → SQL 질의어를 통해 DB에 접근하는 것 작업 단위 → 많은 SQL 명령문들을 사람이 정하는 기준에 따라 정하는 것 즉, 하나의 트랜잭션 설계를 잘 만드는 것이 데이터를 다룰 때 많은 이점을 가져다준다. 트랜...
트랜잭션 격리 수준(Transaction Isolation Level) Isolation level 트랜잭션에서 일관성 없는 데이터를 허용하도록 하는 수준 Isolation level의 필요성 데이터베이스는 ACID 특징과 같이 트랜잭션이 독립적인 수행을 하도록 한다. 따라서 Locking을 통해, 트랜잭션이 DB를 다루는 동안 다른 트랜잭션이 관...
저장 프로시저(Stored PROCEDURE) 데이터베이스에서 SQL을 통해 작업을 하다 보면, 하나의 쿼리문으로 원하는 결과를 얻을 수 없을 때가 생긴다. 즉, 원하는 결과물을 얻기 위해 사용할 여러줄의 쿼리문을 한 번의 요청으로 실행하면 복잡한 쿼리문을 다 불러왔으면 좋겠다.. 할 때 사용할 수 있는 것이 바로 프로시저다. 프로시저를 만들어두면, ...
Redis > 빠른 오픈 소스 인 메모리 키 값 데이터 구조 스토어 보통 데이터베이스는 하드 디스크나 SSD에 저장한다. 하지만 Redis는 메모리(RAM)에 저장해서 디스크 스캐닝이 필요없어 매우 빠른 장점이 존재함 캐싱도 가능해 실시간 채팅에 적합하며 세션 공유를 위해 세션 클러스터링에도 활용된다.` RAM은 휘발성 아닌가요? 껐다키면 다 날아가...
📌 인덱스란 쉽게 찾아볼 수 있도록 일정한 순서에 따라 놓은 목록 -> 즉, 원하는 값을 빠르게 찾을 수 있도록 하는 것! Database에서 Select에 해당하는 항목! 📍 인덱스 예시 인덱스가 이메일일 경우 100만건 이상의 데이터에서, 먼저 이메일로 정렬이 되어야한다. 이메일이 index01@gmail.com 인 회원을 조회하면 빠르게 값을 찾...