1. 관계형 대수란(STANDARD SQL)?- 관계형 데이터베이스에서 원하는 정보를 유도하기 위한 기본 연산 집합 1) 일반 집합 연산- 두 개 이상의 테이블에서 조인을 사용하지 않고 연관된 데이터를 조회하는 방법 중 하나- 컬럼의 수와 각 컬럼의 데이터 타입이 같아야 함- 합집합(UNION) : A 또는 B에 존재하는 모든 데이터(중복처리를 위해 정렬 후 중복제거, UNION ALL은 중복 포함, 정렬X)- 교집합(INTERSECT) : A와 B 둘 다에 있는 데이터, 공통된 부분을 추출하고 중복된 결과는 제거(ORACLE, MariaDB는 지원되지만 MySQL에서는 지원되지 않아 JOIN 사용)- 차집합(EXCEPT): A에는 있지만 B에는 없는 데이터(A-B)- 카디션곱(CROSS JOIN): A..
1. GIL이란?- python 인터프리터가 동시에 하나의 스레드만 실행하도록 제한하는 락- 단일 바이트코드 실행 중엔 다른 스레드가 끼어들지 못함=> 복잡한 여러 바이트코드 작업(예: 리스트 두번 접근)은 중간에 끼어들 수 있다 => threading.Lock으로 보호=> 멀티스레드를 써도 한 번에 하나의 스레드만 실행된다=> 동시에 여러 CPU 코어를 못쓴다 => 병렬 처리에 제한이 있다.# threading.Lock 없으면# GIL만 있고 Lock 없이 공유 변수 접근counter = 0def add(): global counter for _ in range(100000): counter += 1 # 읽고 → 계산 → 쓰는 사이에 다른 스레드가 끼어들 수 있음!threads..
1. SQL- 정해진 스키마와 테이블 구조를 기반으로하며, 트랜잭션 안정성이 중요할 때 적합- 테이블 간의 관계를 외래키로 연결(JOIN으로 연결해 한번에 조회 가능)* 외래키란? 2. NoSQL- 유연한 데이터 구조와 수평 확장성에 강점이 있어, 빠르게 변하는 데이터나 대규모 트래픽 환경에 적합- 한 문서에 중첩 저장(내장관계)하거나, python 등의 코드를 사용해 결과를 합쳐서 사용(데이터를 문서 단위로 설계, 관계는 코드에서 처리, $loopup으로 join이 가능하지만, 성능이나 구조적인 제약 때문에 코드 기반 병합을 더 많이 사용)# 1단계: user_id가 101인 주문 조회orders = db.orders.find({"user_id": 101})# 2단계: orders에서 user_id 뽑..
1. 인덱스란?- 테이블의 특정 컬럼에 대한 검색 속도를 높이기 위해 사용하는 자료구조 - 장점: 검색 속도 향상- 단점: 추가적인 저장 공간 사용, 삽입/수정/삭제 성능 저하 2. VIEW란?- 하나 이상의 테이블을 가상의 테이블처럼 보여주는(논리적으로만 존재) 저장된 쿼리- 자주 사용되는 복잡한 쿼리를 미리 뷰로 정의해 놓으면, 추후 쿼리는 간단한 형태로 표현할 수 있다.- 생성된 뷰는 또 다른 뷰를 생성하는데 사용될 수 있다. 뷰의 정의는 변경할 수 없으며, 삭제 후에는 재생성이 필요- 장점: 코드 재사용, 보안(민감한 컬럼 숨기기), 복잡한 쿼리 단순화- 테이블 구조가 변경되어도, 뷰를 사용하고 있는 응용프로그램은 변하지 않아도 된다는 장점을 가지고 있다- 용도: 조회 전용 대시보드, 보고서 출력..
- Total
- Today
- Yesterday
- 운동
- 다이어트
- 오블완
- 실기
- 미라클모닝
- 티스토리챌린지
- IH
- 스크랩
- 뉴스
- 아침
- ChatGPT
- 경제
- Python
- 영어회화
- C언어
- 아침운동
- 오픽
- Ai
- 고득점 Kit
- opic
- 줄넘기
- 30분
- 기초
- 빅데이터 분석기사
- llm
- 갓생
- SQL
- 프로그래머스
- 루틴
- 습관
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |