목록BASIC/DATABASE (11)
cmod.ify
MongoDB 운영 가이드: 설치 및 데이터 구조의 이해1. 환경 구축 및 네트워크 설정MongoDB의 원활한 활용을 위해서는 쉘 환경과 데이터 관리 도구의 독립적인 설치가 요구된다.MongoDB Shell: 터미널 기반의 조작을 위해 별도로 다운로드하여 압축을 해제한 후 실행한다.Database Tools: 외부 파일의 임포트(Import) 및 익스포트(Export) 기능을 수행하려면 해당 도구 패키지를 반드시 추가 설치해야 한다.IP 바인딩의 이해:127.0.0.1: 로컬 호스트(Localhost)를 의미하는 루프백 주소이다.0.0.0.0: 모든 네트워크 접속을 허용하는 설정이다.확장 기술:샤딩(Sharding): 대용량 데이터 처리를 위한 수평 분할 기법이다.클러스터링(Clustering): 분산된..
1. 개요 및 주요 특징Redis(Remote Dictionary Server)는 현대적인 아키텍처, 특히 마이크로서비스 아키텍처(MSA)에서 필수적인 역할을 수행하는 오픈 소스 인메모리 데이터 저장소이다.In-Memory Key-Value Store: 데이터를 디스크가 아닌 메모리에 저장하여 압도적인 처리 속도를 보장한다.Key-Value 구조:Key: 중복을 허용하지 않는 유일한 값이며 주로 String 형태를 띤다.Value: 다양한 데이터 타입을 지원하며, 기존 Key에 새로운 값을 덮어쓰는 Upsert 구조로 동작한다.싱글 스레드(Single-Threaded): 한 번에 하나의 명령어만 처리함으로써 데이터 원자성을 보장하고 경합 상태(Race Condition)를 방지한다.데이터 저장 분류:In..
1. 데이터베이스 접속 준비물프로그래밍 언어(Python)가 DB에 접속하려면 다음의 5가지 정보가 반드시 필요함.Host: 서버 위치 (내 컴퓨터라면 localhost 또는 127.0.0.1)Port: MariaDB 기본값은 3306Database: 접속할 DB 이름 (예: hapi)User/PW: 접속 계정 및 비밀번호Driver: 인터페이스 역할을 하는 라이브러리 (파이썬용: pymysql)2. 환경 설정 및 드라이버 설치터미널(또는 CMD)에서 아래 명령어로 라이브러리를 설치함.pip install pymysql3. 데이터베이스 접속 및 해제안전한 연동을 위해 try-except-finally 구문을 사용하는 것이 정석임.import pymysqlcon = Nonetry: con = pymy..
1. 트리거 (TRIGGER): "자동 실행기"특정 테이블에 이벤트(INSERT, UPDATE, DELETE)가 발생하면 자동으로 실행되는 개체임.주요 용도:유효성 검사: 데이터가 삽입/수정될 때 올바른 값인지 확인.로그/감사(Logging/Audit): 데이터가 언제, 누구에 의해 바뀌었는지 기록 보관.주의사항: 트리거 내에서는 트랜잭션 제어 문장(COMMIT, ROLLBACK)을 사용할 수 없음.기본 문법:CREATE TRIGGER 트리거이름{BEFORE | AFTER} {INSERT | UPDATE | DELETE} -- 실행 시점과 사건ON 테이블이름FOR EACH ROW -- 행마다 실행BEGIN -- 실행할 SQL 문장END;2. 인덱스 (INDEX): "빠른 검색을 위한 색인"데이터 조..
가상의 테이블: VIEW, CTE, 임시 테이블1. 인라인 뷰 (Inline View)정의: FROM 절 안에 직접 작성된 서브쿼리임.특징: 쿼리가 실행되는 동안만 잠깐 메모리에 생성되었다가 사라지는 임시 테이블임.사용 예: 복잡한 필터링을 미리 해두고, 그 결과에서 다시 조회하고 싶을 때 사용함.SELECT * FROM (SELECT * FROM tCity) A; -- 'A'라는 별명을 붙여 인스턴스처럼 사용2. 뷰 (VIEW)정의: SELECT 구문 자체를 데이터베이스에 저장해두고, 마치 테이블처럼 부르는 가상 테이블임.장점:속도: 주기억장치(메모리)에 저장되어 실행 속도가 빠름.보안: 사용자에게 실제 테이블의 모든 컬럼을 보여주지 않고 필요한 것만 보여줌.편의성: 쿼리가 길어지는 것을 방지함.주의:..
1. DML (Data Manipulation Language, 데이터 조작어)데이터베이스의 테이블에 들어있는 실제 데이터(행)를 관리하는 언어임.개발자가 가장 많이 사용하는 명령어들이 여기에 다 있음.SELECT: 데이터를 조회할 때 사용 (JOIN, 서브쿼리, 집합 연산자가 모두 여기에 해당함).INSERT: 새로운 데이터를 테이블에 삽입할 때 사용.INSERT IGNORE INTO DEPT02 VALUES(10, '영업부', '서울');INSERT IGNORE INTO DEPT02 VALUES(20, '총무부', '부산어쩌구저쩌구길이짱길다아아');INSERT IGNORE INTO DEPT02 VALUES(30, '인사부', '경기');-- IGNORE을 사용하면 타입을 무시하고 삽입 가능하지만 짤려..
🔗 SQL 집합 연산자 (SET OPERATOR) 정리1. 개요2개 이상의 SELECT 문 결과를 하나로 합치는 연산임.조인(JOIN)이 옆으로(열) 합치는 거라면, 집합 연산자는 위아래로(행) 합치는 것임.2. 사용 가이드라인열의 개수와 자료형 일치: 첫 번째와 두 번째 SELECT 문의 컬럼 개수와 데이터 타입이 순서대로 맞아야 함.컬럼 이름: 결과창에 뜨는 컬럼 명은 첫 번째 SELECT 문의 것을 따름.정렬: ORDER BY는 맨 마지막 문장에 딱 한 번만 쓸 수 있음.제한: LOB 계열(BLOB, CLOB)이나 LONG 형 컬럼에는 사용 불가함.3. 집합 연산자의 종류① UNION (합집합 - 중복 제거)두 결과물을 합친 후 중복된 행은 하나만 남김.내부적으로 정렬 과정을 거치므로 데이터가 많..
🚀 SQL DDL & 제약조건 통합 실습1. 부모 테이블 생성: 부서 정보 (tDepart)가장 먼저 참조될 부모 테이블을 만듦. 기본키와 CHECK 제약조건을 포함함.CREATE TABLE tDepart ( depart VARCHAR(20) PRIMARY KEY, -- 부서명 (기본키) area VARCHAR(10) NOT NULL, -- 근무 지역 floor INT CHECK (floor >= 1) -- 층수 (1층 이상만 가능)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;-- 초기 데이터 삽입INSERT INTO tDepart VALUES ('인사과', '서울', 3);INSERT INTO tDepart VALUE..
키(Key) 개념 정리종류설명특징슈퍼키 (Super Key)레코드를 유일하게 식별할 수 있는 속성들의 집합유일성 만족 (최소성은 만족 안 해도 됨)후보키 (Candidate Key)슈퍼키 중 최소성을 만족하는 키기본키가 될 수 있는 후보들기본키 (Primary Key)후보키 중 설계자가 지정한 메인 키NULL 불가, 중복 불가 (하나만 설정)대체키 (Alternate Key)후보키 중 기본키로 선택되지 않은 나머지기본키 부재 시 식별자로 활용 가능참조키 (Foreign Key)다른 테이블의 기본키를 참조하는 키참조 무결성 유지, NULL 가능 🏗️ SQL 테이블 생성 및 데이터 타입 정리CREAT [TEMPORARY] TABLE [IF NOT EXISTS] 테이블명( 컬럼명1 타입 [CONSTRAINT..
[실습 데이터베이스 설정]테이블명: student필요한 정보: 아이디, 이름, 나이, 거주 도시Q1. 테이블 생성아이디(id, 정수), 이름(name, 고정문자 10자), 나이(age, 정수), 도시(city, 가변문자 50자) 컬럼을 가진 student 테이블을 생성하시오.Q2. 단일 데이터 삽입id는 1, 이름은 '홍길동', 나이는 20, 도시는 '서울'인 학생 데이터를 INSERT 문을 사용하여 삽입하시오.Q3. 조건 필터링 조회student 테이블에서 나이가 15세 이상인 학생의 모든 정보(*)를 출력하시오.Q4. 부분 일치 문자열 검색이름에 '신'이라는 글자가 포함된 학생의 이름과 도시를 조회하시오.Q5. 정렬 및 개수 제한나이가 많은 순서대로(내림차순) 정렬하여 상위 3명의 데이터만 출력하시오..