전체 글 99

[database] benchbase를 이용한 TPC-C postgreSQL 실습

본 게시글은서울대학교 데이터사이언스 대학원 이상원 교수님의데이터사이언스 응용을 위한 빅데이터 및 지식관리시스템 수업을학습을 목적으로 재구성하였습니다이번 시간은 실습 + 과제 시간이었다benchbase를 이용하여 TPC-C라는 유명 benchmark 예제를 활용해postgreSQL을 실습하는 수업이었다 본격적으로 실습 시작 전에benchmark는?benchbase는?TPC-C는?어떤 개념인지 간단하게 살펴보자  Benchmark라는 말은 정말 많이 들어봤을 것이다나도 이전회사에서 자연어 모델을 다룰 때처음 들어봤던 용어였던 것 같다 benchmark는 특정 시스템, 제품, 프로세스의 성능을측정하고 평가하는 과정을 말한다어떤 주어진 workload scenario 아래에서성능을 측정한다 따라서 다양한 프로세..

강의/database 2025.04.04

[neo4j] docker 환경에서 neo4j data dump 하기 + 새로운 neo4j에 dump 파일 풀기

이번에 연구실 서버에 docker 환경에서 띄워놨던neo4j에 있는 data를 옮겨야 할 일이 생겼다그래서 neo4j 내부에서 명령어를 실행해서dump라는 파일을 생성해서 받아올 수 있길래 그렇게 하려고했는데 문제가 발생했다 원래라면 neo4j에서 dump 명령어를 실행하려면neo4j stop -> dump 명령어 실행을 해야하는데docker 환경에서 neo4j를 stop을 하면neo4j가 docker container의 main process라서docker container가 자꾸 죽는 것이었다 docker container가 자꾸 죽으면..neo4j 명령어 실행을 못하잖아 ㅋㅋ 그래서 또 구글링 + gpt를 하다가neo4j 자체에서 cypher로DATABASE STOP;인가를 해주면 된다고 했는데안타..

기술/DB 2025.04.03

[system programming] CPU 아키텍처 (pipelining, hazards)

본 게시글은서울대학교 데이터사이언스대학원 성효진 교수님의데이터사이언스 응용을 위한 컴퓨팅 시스템 강의를학습을 목적으로 재구성하였습니다우리가 이미 앞에서Program Representation을 배우면서다 들어봤을 내용이라고 하셨다 이전에는 프로그램의 표현을 배우기 위한 배경지식으로CPU 아키텍처에 대해서 배웠다면이번 시간에는 정말 본격적인 CPU 아키텍처에 관한 내용이라고생각하면 좋을 것 같다교수님 말씀도 너무 빠르고 진도도 너무 빨라서따라가는게 약간 벅차다 ㅠ 암튼 이번 수업 내용 정리 시작 ㅠ  컴퓨터란 무엇인가?단순히 우리가 사용하고있는 데스크탑이나 노트북 말고정말로 컴퓨터란 무엇인가? 흔히들 컴퓨터를 계산하는 기계라고 하지만그렇다면 계산기는 컴퓨터인가?보통 계산기를 컴퓨터라고 하지는 않는다   이..

[database] SQL representation (group by와 having, aggregation, null values 처리)

본 게시글은서울대학교 데이터사이언스대학원 이상원 교수님의데이터사이언스 응용을 위한 빅데이터 및 지식기반시스템 강의를학습을 목적으로 재구성하였습니다저번시간에 이어서 계속해서SQL의 표현법에 대해서 알아보자  첫 번째로 나오는 개념은 subquery(혹은 nested query)이다nested query는 쿼리가 안에 있는데그 안에 또 다른 쿼리가 nesting된다는 뜻으로main query와 그 아래에 subquery가 있는 것이다 왼쪽이 그냥 일반 main query만 있는 것이고오른쪽이 subquery로 where의 조건절을 만든 것이다 그렇다면 둘 중에 어떤 것이 더 효과적일까?교수님 말씀에 따르면 오른쪽의subquery를 이용한 쿼리가 더 효율적이라고한다 왼쪽은 그냥 join을 사용한 것이고DBMS..

강의/database 2025.03.31

[database] Relational Algebra (Division과 Query 예시)

본 게시글은서울대학교 데이터사이언스대학원 이상원 교수님의데이터사이언스 응용을 위한 빅데이터 및 지식기반시스템 강의를학습을 목적으로 재구성하였습니다 DB에서 Set과 Bas Semantics의 개념을 알아보자이 두 개념의 가장 큰 차이는중복 허용 여부이다 Relational Algebra는 보통 Set을 따르고SQL은 보통 기본적으로 bag semantics을 따르는데set은 우리가 흔히 수학에서 말하는 집합으로중복을 허용하지 않는 것이고bag semantics는 한국어로 멀티셋 의미론이라고 하며중복되는 튜플도 허용을 한다 SQL에서는 기본적으로 중복을 허용해서튜플 쿼리 결과를 내놓지만DISTINCT를 명시해주면 중복을 제거해서 보여준다   이번 수업 시간의 주요 내용인Divison 연산인다 앞에서 배웠던..

강의/database 2025.03.31

[system programming] Linux 운영체제 Exception Control Flow

본 게시글은서울대학교 데이터사이언스대학원 정형수 교수님의 데이터사이언스 응용을 위한 시스템 프로그래밍 강의를학습을 목적으로 재구성하였습니다  이번 시간에 배울 내용은linux 운영체제 내에서의 exception control flow에 대한 내용이다 이번 수업의 내용은 굉장히 중요한 내용인데이 내용을 이해를 하지 못하면이 시스템 프로그래밍이라는 수업 자체를따라가기가 매우 힘들어 진다고 한다 그래서 교수님께서 이번 수업은 강의 녹화본을 올릴테니이해가 안가면 갈때까지 영상을 보며 이해하라고 하셨다.. 지금까지는 단순히 assembly code와user program 내에서 어떻게 메모리와 register가 이동하고어떤 과정을 거치는지를 알아봤다면오늘 배우는 내용은 지금까지 배우는 내용에서더 확장된 내용이다 ..

[system programming] Computer Program의 표현과 실행(Basic of Assembly-3, function call)

본 게시글은서울대학교 데이터사이언스대학원 정형수 교수님의 데이터사이언스 응용을 위한 시스템 프로그래밍 강의를학습을 목적으로 재구성하였습니다오늘은 컴퓨터 프로그램의 표현과 실행 3번째 시간이번 수업의 주요 내용은 function call을 할 때컴퓨터 프로그램은 내부에서 어떤 작업을 하며어떤 방식으로 function을 수행시킬까그리고 이를 assembly로 어떻게 나타낼까이다  매번 수업시간마다 나오는 지겨운 그림이다 CPU 아키텍쳐는 크게 봤을 때 state machine과도 같다고한다하나의 instruction이 trigger가 되어서instruction이 수행될 때마다 CPU의 state가 바뀌기때문에 그렇다고 한다    우리 수업이나 다른 교과서에서는통상적으로 stack memory를 거꾸로 뒤집어..

[database] Relational Algebra (selection, projection, cross-product, set-difference, union)

본 게시글은서울대학교 데이터사이언스대학원 이상원 교수님의데이터사이언스 응용을 위한 빅데이터 및 지식관리시스템 강의를학습을 목적으로 재구성하였습니다오늘 강의는 Relational Database에서SQL의 기본 원리가 된Relation Algebra에 관한 내용이다   우선 RDB의 쿼리 언어인 SQL의역사에 대해 잠깐 알아보자 E. F. Codd 박사가 제안한Relational Algebra를 기반으로IBM의 SystemR팀에서 개발한 것이 SEQUEL이고이것이 발전을 거쳐 지금의 SQL이 되었다   SQL은 2가지 수학적 쿼리 언어로부터 형성되었는데Relational Algebra(RA)와 Relational Calculus(RC)이다 위 두 언어는 둘다 Relational Database의 쿼리 언어..

강의/database 2025.03.24

[database] View와 Materialized View

본 게시글은서울대학교 데이터사이언스대학원 이상원 교수님의데이터사이언스 응용을 위한 빅데이터 및 지식관리시스템 강의를학습을 목적으로 재구성하였습니다앞의 수업 내용에서 DB의 개념적, 논리적 스키마와data independence 개념에 대해 공부하며view에 대한 내용을 배웠었다 오늘은 View와 view의 종류 중 하나인materialized view에 대해 수업을 진행했다 우선 view에 대해서 다시 한 번 보자view를 만들기 위해서는 SQL문으로CREATE VIEW를 해주면 된다 view를 처음에 만들어줄 때 사용하는 table을기본 table이라고 해서Base Relation이라고 한다 base table은 우리가 일반적으로 생각하는 table이므로물리적으로 storage에 저장되어있다하지만 vi..

강의/database 2025.03.24

[system programming] Program의 표현과 실행(Basic of Assembly Code) - 2

본 게시글은서울대학교 데이터사이언스대학원 정형수 교수님의 데이터사이언스 응용을 위한 시스템 프로그래밍 강의를학습을 목적으로 재구성하였습니다 저번 시간에는 data movement의assembly의 general form을 배웠었다잠깐만 되짚어보자면 S는 스케일이라 주소값에 곱하는 값이고D는 Displacement라 주소값에 더하는 값이다  지난시간에 배웠던 leaq 연산자leaq는 주소값에 접근하는 것이 아닌단순히 주소값끼리만 연산하는 연산자였다그래서 더하기, 곱셈과도 같은 일반 연산에도많이 사용된다  주소값 연산의 예시이다위에서 봤던 leaq의 규칙과 동일하다괄호 앞에 오는 값은 D라 더하기괄호 안에 오는 값은 S라 %rcx에 곱하기를 해준다  이제 다른 Arithmetic Operation을 알아보자..