태그 목록
전체보기 (106)Capstone(34)db(20)algorithm(18)CS(18)Backend(17)CodingTest(14)project(13)Vingterview(12)boj(10)sql(8)computer architecture(8)greedy(8)Lecture note(8)deploy(7)django(7)Posting(6)Java(6)JVM(5)authentication(5)authorization(4)OS(4)data structure(4)Spring(4)kakao(4)Implementation(4)API(3)CI/CD(3)stack(3)refactoring(3)Query Processing(3)heap(2)Query Optimization(2)BFS(2)protocol(2)runtime data area(2)spring security(2)drf(2)Index(2)logging(2)linked list(2)network(2)websocket(2)Restful(2)Deque(2)Execution Engine(2)transaction(2)View(1)brute force(1)PK(1)Multiprocessor(1)pipelining(1)Native Method Libraries(1)Hashing(1)OAuth2.0(1)ec2(1)Nginx(1)JWT(1)@api_view(1)Computer System(1)docker(1)Services(1)question(1)Processor(1)coding test(1)tree(1)union(1)PC Register(1)circular queue(1)GC(1)exception handling(1)classLoader(1)Physical Storage(1)memory(1)scheduling(1)Multiple key index(1)Class Loader(1)Recovery system(1)array(1)ISA(1)user(1)Native Method Interface(1)Method Area(1)Data Storage Structure(1)aws(1)Web Server(1)JIT Compiler(1)Virtual Avatar(1)Generics(1)unique(1)DFS(1)Binary Search Tree(1)CRUD(1)Sub Query(1)algotithm(1)dynamic programming(1)exception(1)Concurency Control(1)ViewSet(1)unittest(1)Comment(1)Native Method Stack(1)tag(1)mixin(1)Divide and conquer(1)cors(1)stomp(1)ModelSerializer(1)unit test(1)BaseSerializer(1)kako(1)dynamicprogramming(1)interpreter(1)Graph(1)restful api(1)rds(1)Thread(1)queue(1)garbage collector(1)process(1)ALU(1)REST(1)무중단 배포(1)priority queue(1)apps.py(1)signal(1)FK(1)Performance(1)datatype(1)garbage collection(1)live-streaming(1)csrf(1)MIPS(1)Spanning Tree(1)binary tree(1)JOIN(1)serializer(1)B+TREE(1)
post-thumbnail

[DB] Other Operations

중복 제거 중복 제거 연산의경우 해싱이나 외부정렬알고리즘을 통해 구현 가능하다. 해싱의 경우 중복된 레코드들이 같은 버킷에 모이고, 정렬의 경우는 인접한 위치에 모이기 때문에 해싱과 정렬 이후 전체를 탐색하면서 중복을 제거할 수 있다. 특히 외부정렬 알고리즘을 사용하는 경우, 런을 만드는 단계나 중간 merge-step에서도 중복제거가 가능하다. Projection Projection연산은 테이블에서 특정 컬럼을 추출하는 연산으로, 각 튜플을 순회하면서 특정 컬럼을 추출한 다음 중복을 제거한다. 집계함수 SQL이 지원하는 공식적인 집계함수는 AVG, SUM, MIN, MAX, COUNT 다섯가지이다. 일반적으로 집계함수는 GROUP BY와 함께 쓰이는데, 이때 각 레코드들을 그룹화할 때는 중복제거와 비슷하게 해싱또는 외부정렬알고리즘이 사용된다. 따라서 집계함수는 해싱이나 정렬을 통해 레코드를 그룹화한 뒤 각 그룹에 대해

2023년 5월 9일
·
0개의 댓글
·
post-thumbnail

[DB] Join Operation

Join Operation DB환경에서 조인연산을 구현하는 방법은 크게 3가지로 나눌 수 있다. Nested-loop join : 반복문을 돌면서 조인 Merge join : 테이블을 정렬한 뒤 조인 Hash join : 해시함수를 사용하여 조인 이 중 Nested-loop join과 Merge join은 버퍼에 최소 3페이지(Table1, Table2, Result)만 할당되어도 사용할 수 있지만, Hash join의 경우 버퍼에 할당된 페이지의 수가 많을 때 사용 가능한 방법이다. 이후 소개할 모든 알고리즘에서는 다음 테이블과 sql문을 예시로 사용한다. |table |student|takes | |-------|-------|-------| |records|5,000 |10,000 | |blocks |100 |400 | |BF |50 |25 | Nested-loop Join Nested-loop Join

2023년 5월 9일
·
0개의 댓글
·
post-thumbnail

[DB] Query Processing

Query Processing 사용자는 데이터베이스를 사용하기 위해 DBMS에 Query를 전달하고, DBMS는 이를 받아 해석하여 사용자가 주문한 작업을 수행하는데, 이 과정을 Query Processing(질의 처리)이라고 한다. 대부분의 DBMS는 SQL쿼리를 사용하는데, SQL을 사용하면 사용자의 입장에서 DBMS에게 자신이 원하는 데이터만 알려주고 데이터를 조회하거나 처리하는 방법은 DBMS가 알아서 선택한다. 따라서 SQL을 선언적 질의어라고도 한다. DBMS의 질의 처리는 크게 3단계로 구성된다. Parsing, Translation : 쿼리문을 파싱하고 관계대수 식으로 변환하는 작업 Optimization : 질의 최적화 Evaluation : 최적화된 관계대수식을 보고 작업을 수행하여 결과를 도출하는 작업 좀 더 구체적인 과정은 아래 그림과 같다. ![](https://velog.

2023년 4월 23일
·
0개의 댓글
·