CS/DataBase
-
vectorDB와 GraphDBCS/DataBase 2025. 9. 16. 14:57
자동목차 데이터베이스에는 다양한 종류가 있습니다.흔히 아는 데이터베이스 종류로는 RDBMS가 있습니다.RDBMS는 오랫동안 사용되어왔지만 최근 데이터 양, 데이터 형식, 데이터 관계가 많아지고 ai가 등장하면서 데이터 관리에 대해 더 많은 요구사항이 생겼습니다. 그래서 등장한 데이터베이스가 vectorDB와 graphDB입니다 Vector Database벡터 데이터베이스는 텍스트, 이미지, 오디오 등 비정형 데이터를 수치적인 '벡터' 형태로 저장하고 검색하는 데 특화된 데이터베이스입니다.기존 관계형 데이터베이스가 정확히 일치하는 데이터를 검색하는 것과 달리, 벡터 데이터베이스는 '벡터 임베딩'을 활용해 데이터 간의 의미적 유사성을 측정하여 가장 유사한 항목을 찾아내는 '유사성 검색'을 수행합니다. 예..
-
CTAS란?CS/DataBase 2025. 3. 28. 21:22
CTAS(Create Table As Select)는 SQL에서 기존 테이블의 데이터를 새로운 테이블에 복사하여 생성하는 방법입니다.즉, 새로운 테이블을 만들면서 동시에 데이터를 삽입하는 역할을 합니다. CTAS의 기본 구조는 다음과 같습니다CREATE TABLE new_table AS SELECT * FROM existing_table; 예시를 들기 위해, 아래 쿼리로 테이블을 하나 생성하고, 값을 넣어보겠습니다.create table sub (idx INT AUTO_INCREMENT primary key,name VARCHAR(20),score double);insert into sub(name, score) values('algorithm',4.0),('Operating System',3.5),..
-
트랜잭션 격리 수준CS/DataBase 2025. 2. 23. 01:31
트랜잭션 격리 수준에 따라 발생되는 문제Dirty Read다른 트랜잭션에 의해 수정되었지만, 아직 커밋되지 않은 상태의 데이터를 읽는 것을 말합니다. 1. 1번 트랜잭션 시작2. 1번 트랜잭션이 데이터 삽입3. 2번 트랜잭션 시작4. 2번 트랜잭션이 데이터 조회 => 1번 트랜잭션이 추가한 데이터가 읽힘5. 1번 트랜잭션 ROLLBACK => 데이터 불일치 Non-Repeatable Read하나의 트랜잭션 안에서 반복읽기가 불가능한 현상입니다. 1. 1번 트랜잭션 시작2. 1번 트랜잭션이 데이터 조회 -> 2개의 행 반환SELECT * FROM name WHERE idxidxnickname1sunnuy2stella 3. 2번 트랜잭션 시작4. 2번 트랜잭션이 데이터 편집UPDATE name SET nic..
-
SQL의 윈도우 함수 (with PARTITION BY)CS/DataBase 2025. 2. 17. 02:43
윈도우 함수는 여러 행을 대상으로 연산을 수행하지만, 기존 행을 유지하면서 결과를 반환하는 함수입니다.행과 행 간의 관계를 쉽게 정의하기 위해 만들어졌으며, 분석 함수나 순위 함수로도 알려져 있습니다. 윈도우 함수의 기본 구조는 다음과 같습니다. OVER ( PARTITION BY ORDER BY ROWS BETWEEN ) 윈도우 함수 종류1. 집계 함수 : 그룹 내에서 집계 수행 - SUM(), AVG(), MAX(), MIN(), COUNT()함수설명SUM()그룹 내 합계를 계산AVG()그룹 내 평균을 계산MAX()그룹 내 최대값을 계산MIN()그룹 내 최소값을 계산COUNT()그룹 내 개수를 계산 사용 예시 : 상품 카테고리별 매출액 합계SELECT product_name..
-
CTE(Common Table Expression)CS/DataBase 2025. 2. 17. 01:28
CTE (Common Table Expression)는 SQL에서 복잡한 쿼리를 더 가독성 있게 작성하고, 재사용할 수 있도록 도와주는 임시 결과 집합입니다. 임시 결과 집합(Temporary Result Set)은 SQL에서 실행 중 특정 연산을 수행하기 위해 생성되는, 일시적인 데이터 집합을 의미합니다. 즉, 쿼리가 실행되는 동안 메모리에 저장되며, 쿼리 실행이 완료되면 사라지는 데이터입니다. CTE는 WITH 키워드를 사용하여 정의되며, 이를 통해 다음과 같은 장점을 얻을 수 있습니다. 1. 가독성 향상쿼리의 중첩을 줄여 가독성을 높일 수 있음.서브쿼리를 여러 번 사용해야 하는 경우 CTE로 대체하면 SQL이 더 명확해짐. 2. 재사용성 증가동일한 서브쿼리를 여러 번 사용할 때 CTE를 정의하면 중..
-
[DataBase] 트랜젝션CS/DataBase 2024. 12. 2. 00:07
트랜잭션 ? DB의 상태를 변경시키는 작업의 단위 트랜잭션의 연산COMMIT 연산트랜잭션이 성공적으로 수행되었음을 선언하는 연산ROLLBACK 연산트랜잭션 수행이 실패했음을 선언하고 작업을 취소하는 연산 ACIDAtomicity (원자성)트랜잭션이 DB에 모두 반영되거나, 혹은 전혀 반영되지 않아야 된다 (All or Nothing).Consistenty (일관성)트랜잭션의 작업 처리 결과는 항상 일관성 있어야 한다.시스템이 가지고 있는 고정 요소는 트랜잭션 수행 전과 수행 후의 상태가 같아야 한다는 말로,DB의 제약조건을 위배하는 작업을 트랜잭션 과정에서 수행할 수 없음을 나타낸다.Isolation (독립성)둘 이상의 트랜잭션이 동시에 병행 실행되고 있을 때, 어떤 트랜잭션도 다른 트랜잭션 연산에 끼어..
-
[DataBase] 정규화, 반정규화CS/DataBase 2024. 11. 25. 02:24
이상현상 Anomaly불필요한 데이터 중복으로 인해 릴레이션에 대한 데이터 삽입, 수정, 삭제 연산을 할 때 발생할 수 있는 부작용정규화를 거치지 않은 데이터베이스에서 발생할 수 있는 현상이다.삽입이상 Insertion Anomaly데이터를 삽입할 때 원하지 않는 정보에 의해 삽입할 수 없게되는 현상삭제이상 Deletion Anomaly데이터를 삭제할 때 원하지 않는 정보까지 삭제되는 현상갱신이상 Modification Anomaly데이터를 갱신할 때 일부 정보만 갱신되어 정보의 불일치성이 일어나는 현상 함수적 종속?데이터베이스의 릴레이션(relation)에서 두 개의 애트리뷰트(attribute) 집합 간 제약의 일종완전 함수 종속pk가 고객 id와 상품 id일 때, 수량은 고객과 상품에 따라 정해진다..
-
[Database] Index에 대해서CS/DataBase 2024. 11. 18. 06:24
인덱스란?인덱스란, 데이터베이스에서 데이터를 조회할 때 결과를 빠르게 추출하도록 도와주는 하나의 '데이터베이스객체’이다.인덱스 사용법CREATE INDEX [인덱스 이름] ON [테이블 명(컬럼 명)] Ex)-- 테이블 예시CREATE TABLE products ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100), category VARCHAR(50), price DECIMAL(10, 2), stock INT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP);CREATE INDEX product_category ON products (category); -- 인덱스 생성SHOW INDEX ..