[SQL] 정규화와 역정규화(반정규화)
·
SQL
이상 현상 (Anomaly)  - 테이블에서 일부 데이터들이 불필요하게 중복되어 예기치 않게 발생하는 문제  1) 삽입 이상      · 데이터를 삽입할 때, 의도와는 상관 없이 원하지 않는 값들이 함께 삽입됨      · 데이터가 부족해서 null 값이나 불필요한 값을 삽입해야 함  2) 삭제 이상      · 데이터를 삭제할 때, 원하지 않는 값들도 함께 연쇄적으로 삭제됨  3) 갱신 이상      · 데이터를 갱신할 때, 일부 데이터만 갱신되어 모순이 발생함  정규화 (Normalization)  - 데이터 중복성을 제거해서 이상 현상을 방지하고, 데이터의 일관성을 유지하기 위해 무손실 분해하는 과정  - 무손실 분해      : 분해로 인한 정보 손실이 발생하지 않아야 함        → JOIN..
[SQL] 커넥션 풀 (Connection Pool) ★
·
SQL
커넥션 풀 (Connection Pool)  - 미리 정해진 개수의 데이터베이스 커넥션을 풀(Pool)에 저장해둠      → 요청이 들어올 때마다 커넥션 풀에서 커넥션을 하나씩 꺼내서 사용함 #  장점  - DB와의 연결을 생성/종료하는 시간/비용 감축  - 불필요한 연결 생성으로 인한 리소스 낭비 감소  - DB 연결을 더욱 효율적으로 관리함  - 성능 향상 (처리 속도 향상)  연결된 프로세스 확인1SHOW FULL PROCESSLIST;cs" data-ke-type="html">HTML 삽입미리보기할 수 없는 소스    - id : 프로세스 아이디  - User : 스레드가 접속하고 있는 MySQL 사용자명  - Host : 사용자 IP 주소  - command : 스레드의 현재..
[SQL] COMMENT
·
SQL
컬럼에 코멘트 부여#  테이블 생성 시점에 부여1234CREATE TABLE 테이블명 (    컬럼명 데이터타입 제약조건 COMMENT '주석',    ...);cs" data-ke-type="html">HTML 삽입미리보기할 수 없는 소스#  테이블 생성 이후 부여 (수정도 가능함)12ALTER TABLE 테이블명MODIFY 컬럼명 데이터타입 제약조건 COMMENT '주석';cs" data-ke-type="html">HTML 삽입미리보기할 수 없는 소스  테이블에 코멘트 부여#  테이블 생성 시점에 부여123..
[SQL] 쿼리 조건문 (ifnull, nullif, CASE)
·
SQL
- 쿼리 조건문을 사용하면 동적 쿼리를 생성할 수 있음  #  ifnull(컬럼명a, b)  - 컬럼명 a가 null이면 b를 반환하고, 컬럼명 a가 null이 아니라면 a를 반환함 #  nullif(컬럼명a, 컬럼명b)  - 컬럼명 a의 값과 컬럼명 b의 값이 동일하면 null을 리턴함  - 컬럼명 a의 값과 컬럼명 b의 값이 다르면 컬럼명 a의 값을 리턴함  #  CASE WHEN THEN END1234567-- 조건a를 만족하면 값a를 출력하고, 조건b플 만족하면 값b를 출력하라.-- 그리고 해당 속성을 '별칭'이라고 표시하라. CASE    WHEN 조건a THEN 값a    WHEN 조건b THEN 값bEND AS 별칭Colored by Color Scriptercs">HTML 삽입미리보기할 수..
[SQL] 트랜잭션 (Transaction)
·
SQL
트랜잭션 (Transaction)  - 하나의 작업을 수행하는 데 필요한 데이터베이스 연산을 모아놓은 것  - DB에서 수행되는 작업의 단위  - 분리될 수 있는 하나 이상의 데이터베이스 조작 #  기본 형태12345678910111213-- 트랜잭션 시작START TRANSACTION; -- 일련의 작업 지정 INSERT INTO user_tb(username, password, fullname)VALUES ('john', '1234', 'kim'); INSERT INTO user_tb(username, password, fu..