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란?- 하나 이상의 테이블을 가상의 테이블처럼 보여주는(논리적으로만 존재) 저장된 쿼리- 자주 사용되는 복잡한 쿼리를 미리 뷰로 정의해 놓으면, 추후 쿼리는 간단한 형태로 표현할 수 있다.- 생성된 뷰는 또 다른 뷰를 생성하는데 사용될 수 있다. 뷰의 정의는 변경할 수 없으며, 삭제 후에는 재생성이 필요- 장점: 코드 재사용, 보안(민감한 컬럼 숨기기), 복잡한 쿼리 단순화- 테이블 구조가 변경되어도, 뷰를 사용하고 있는 응용프로그램은 변하지 않아도 된다는 장점을 가지고 있다- 용도: 조회 전용 대시보드, 보고서 출력..
1. CAST- 문자열을 숫자형 정수로 변경CAST("20250413") # 20250413 2. 나이계산- 20250413 연도만 비교하기 위해 10000으로 나눠줌FLOOR( (CAST(REPLACE(CURRENT_DATE,'-','') AS UNSIGNED) - CAST(REPLACE(birthdate,'-','') AS UNSIGNED)) / 10000 ) as age 3. 값이 집합에 속하는지 검사할 때: INSELECT * FROM empWHERE deptno IN (10, 20, 30);4. 여러 값 중 하나라도 비교 조건 만족할 때 : ANYSELECT * FROM empWHERE salary 5. 집합 내 모든 값과 비교할 때 : ALLSELECT * FROM empWHERE..
1. 이상현상- 잘못된 데이터베이스 설계로 발생하는 오류- 삽입 이상: 데이터를 삽입할 때 불필요한 내용까지 삽입해야 하는 문제- 갱신 이상: 중복된 데이터 중 일부만 갱신되어 발생하는 문제- 삭제 이상: 어떤 데이터를 삭제할 때 다른 유용한 정보도 함께 삭제되는 문제 2. 함수 종속성- 어떤 속성 x(결정자)의 한 값이 다른 속성 y(종속자)에 속한 하나의 값에만 매핑되는 경우- 예: ID → 이름 1) 완전 함수 종속- 기본키를 구성하는 속성 모두가 결정자 역할을 하는 경우2) 부분 함수 종속: 2차 정규화 원인- 기본키를 구성하는 속성 중 일부가 결정자 역할을 하는 경우- 기본키가 복합키이거나 후보키가 결정자인 경우에 부분 함수 종속이 발생할 수 있다3) 이행 함수 종속: 3차 정규화 원인* 결정자..

1. 테이블 만들때 제약조건 설정하기-- borrow 테이블을 정의하세요.CREATE TABLE borrow( customer_number VARCHAR(10), rental_time DATETIME, rental_status ENUM('대여', '반납') NOT NULL, rental_location VARCHAR(20) NOT NULL, kickboard_id VARCHAR(10), CONSTRAINT borrow_pk PRIMARY KEY(customer_number,rental_time), # 기본키 2개 FOREIGN KEY (customer_number) REFERENCES customer (customer_number), customer테입블의 custo..

1. 리눅스 설치1) 리눅스에 mysql 설치# 패키지 리스트 업데이트sudo apt update# mysql 서버 설치sudo apt install mysql-server# mysql 상태 확인sudo systemctl status mysql# mysql 보안 설정sudo mysql_secure_installation# mysql 접속sudo mysql# root 계정/비밀번호 설정ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '비밀번호';FLUSH PRIVILEGES;# 로그인mysql -u root -p2) 윈도우 vscode에서 ubuntu에 설치된 mysql 접속하기- WSL2는 가상 네트워크로 동작해서, MySQL..
1. 데이터는?- 현실 세계에서 수집된 단순한 사실과 값들을 모아 놓은 것 2. 정보란?- 데이터를 특정 목적에의해 해석하거나 가공한 형태 ※ 데이터를 잘 가공해서 => 정보를 만드는것 3. 데이터베이스란?- 데이터가 모여있는것, 한 조직 안에서 여러 사용자와 응용 프로그램이 공동으로 사용하는 데이터들을 통합하여 저장하고운영하는 데이터 4. 파일처리시스템의 한계- 데이터의 구조가 바뀌면 응용프로그램의 구조도 바뀌어야 하기 때문에 응용 프로그램별로 데이터를 생성할 수 있기 때문에 데이터가 중복될 수 있다- 데이터의 무결성을 지킬 수 없다 5. 데이터베이스의 구성요소- 행(row): 칸(형태), record- 튜플: 항에 값이 있을 때- 열(column): 고유의 성질을 갖고 있는 것- 속성: 데이터의 특성..
1. 스택- 후입선출: 마지막에 넣은 데이터가 가장 먼저 나옴- 활용: 재귀 호출, 괄호 짝 맞추기, DFS 등- 주요 연산# 가장 흔한 방법stack = []stack.append(10)top = stack.pop()2. 큐- 선입선출: 먼저 들어간 데이터가 먼저 나옴- 활용: BFS, 캐시, 작업 예약 처리에 사용- collections.deque: 가장 빠르고 많이 쓰임- queue.Queue: 스레드 안전(멀티스레스 환경용)from collections import dequequeue = deque()queue.append(1)queue.append(2)x = queue.popleft()print(queue) # [2] 3. 트리- 계층적 자료 구조. 노드와 간선으로 구성된 비순환 그래프- 이진트..
- Total
- Today
- Yesterday
- SQL
- 기초
- 프로그래머스
- 다이어트
- ChatGPT
- IH
- opic
- 30분
- Python
- Ai
- 스크랩
- 아침운동
- 빅데이터 분석기사
- 영어회화
- 뉴스
- 티스토리챌린지
- 오픽
- 운동
- 미라클모닝
- 습관
- 루틴
- 오블완
- 줄넘기
- 고득점 Kit
- 아침
- 경제
- llm
- 실기
- 갓생
- C언어
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |