Eat Study Love

먹고 공부하고 사랑하라

Data Science 34

External Sorting and Hashing[7]

Database에 있는 Data들이 Sorting이 되어 있냐 아니냐에 따라서 Update performance차이가 많이 난다. 그만큼 Data의 Sorting이 매우 매우 중요하다는 것. SQL문의 Order by외에도 사실 DISTINCT, Group by, BULK LOADING(B-tree optimization) 등을 사용할 때도 Data Tuple들이 Sorting되어 있으면 좋다. 즉, Data는 기본적으로 Memory보다 크므로 Disk에서 Memory로 효율적으로 Data를 읽어 오려면 Data들을 Sort시키는 게 필요하다. DBMS에서는 보통 이 때 Merge-Sort를 사용하고, 이번엔 이와 관련된 공부내용이다.

Database SQL (feat. PostgreSQL)[2]

SQL은 Structured Query Language의 약자로 High LV 프로그래밍 언어이다. 실제로 사람이 충분히 이해가 가능하다.SQL은 크게 DDL(Data Definition Language)와 DML(Data Manipulation Language)로 나뉘는데 쉽게 말해 DDL은 Table의 생성, 삭제, 변경등을 하는 것이고 DML은 Data inserty/delete 등을 하는 것이다. Table, Column을 만들 때 Data 값을 모르면 NULL값을 하기도 한다. Database(DB)는 set of Relations(Tables)라고 생각하면 된다. Multi Table에 Query를 날릴 땐 Join문을 쓴다. 같은 결과를 나타내는 쿼리의 종류는 많으니 어떻게 조합하는지는 Us..

Introduction to DBMS[1]

Database는 서로 관계된 데이터들이 저장되어 있는 곳이며, 컴퓨터 Applicaqtion의 주성분이다.DataBase Management System(DBMS)는 이런 DataBase(DB)를 관리하는 하나의 시스템이며, Architecture는 아래와 같다.User 또는 Client에 의해서 SQL문이 전달되면, Query Parsing & Optimizer에서 일차적으로 해당 SQL문을 Parsing 하여 Computer가 이해하기 쉬운 Relational Operations으로 전환시켜준다. 그러면 해당 정보를 갖고, 실제 요청된 File이 DB에 저장되어 있는지 Files and Index Managemet 단계에서 확인한다. 모든 Data Record들은 Table 형태로 저장되어 있고, ..

PostgreSQL SQL2NL(3) - PostgreSQL 코드 좀 더 일반화 하기 + Python 연결

생각보다 SelectStmt SQL에서 따져야 할 Clause가 많진 않았다. 처음엔 일일히 모든 Case에 대해서 if 를 써 filtering 하는 것이 좀 비효율적으로 보였는데, 막상 따져보니 꼭 그렇지도 않다는 것. 📌 아래는 SelectStmt에 포함된 Clause 목록과 역할입니다.SELECTtargetListSELECT 절 (선택된 컬럼 및 집계 함수)FROMfromClauseFROM 절 (테이블 목록 및 JOIN)WHEREwhereClauseWHERE 절 (조건 필터링)GROUP BYgroupClauseGROUP BY 절 (그룹화 조건)HAVINGhavingClauseHAVING 절 (그룹화 이후 필터링)ORDER BYsortClauseORDER BY 절 (정렬 기준)LIMITlimitC..

PostgreSQL SQL2NL(3)

PostgreSQL을 Python에 연결하려는 시도를 했다. 이 시도의 이유는, 결국 PostgreSQL에서 자체적으로 반환된 Naturl Language(NL)를 가지고 LLM을 거쳐 사람이 이해하기 쉬운 좀 더 정제된 NL로 변환을 하려는 것이다. 근데, 그 전에 일단 PostgreSQL 내부에서 최대한 Parsing 구조의 Rule base의 입각하여 SQL문을 NL로 투박하게나마 변환하려는 작업을 하려는데, 그 하부구조는 아래와 같다. 일단 NL2SQL 분야의 유명한 Bench Mark인 Bird 에 나오는 NL SQL Gold Pair를 이용해서 SQL문을 NL로 좀 바꿔보려는데, 문제는 SQL문의 종류가 너~~~~~~~~무나도 많다. 그 모든 것들에 대한 NL 변환 Rule 설정이 가능한가 ..