본문 바로가기

CS59

sql Join 알고리즘에 대해 알아보자 join은 관계형 DB를 사용하게 되면 거진 필수적으로 다루게 되며, 매우 자주 쓰인다. 이번에는 이렇게 join할 때 사용되는 여러가지 join 알고리즘에 대해 살펴보고 언제 어떤 알고리즘을 사용하는게 좋을지 정리해보려한다. 크로스 결합 크로스 결합은 테이블과 테이블을 곱했을 때 나오는 모든 경우의 수를 결과로 나올 때 사용하는 알고리즘이다. 이렇게 모든 결과가 나오는 크로스 결합의 테이블과 테이블의 곱을 카테시안 곱(Cartesian Product)이라고 한다. 들으면서 느꼈겠지만 거의 쓰지 않을 뿐더러 성능이 좋지 않다. 아래와 같은 쿼리문을 수행할 때 크로스 결합이 수행된다. select * from a,b Nested Loops join 시 중첩 반복문을 사용하는 알고리즘이다. SQL에서 결합은.. 2023. 10. 7.
도메인이 신청되는 과정과 Reverse DNS lookup 도메인이 신청되는 과정 크게 보면, DNS 서버는 트리 구조로 되어있다. Root DNS Server: ICANN이 직접 관리하는 서버로, TLD DNS 서버 IP들을 저장해두고 안내하는 역할을 한다. TLD(최상위 도메인) DNS Server: 도메인 등록 기관(Registry)이 관리하는 서버로, Authoritative DNS 서버 주소를 저장해두고 안내하는 역할을 한다. 어떤 도메인 묶음이 어떤 Authoritative DNS Server에 속하는지 아는 이유는 도메인 판매 업체(Registrar)의 DNS 설정이 변경되면 도메인 등록 기관(Registry)으로 전달이 되기 때문이다. Authoritative DNS Server: 실제 개인 도메인과 IP 주소의 관계가 기록/저장/변경되는 서버. .. 2022. 12. 27.
[Chapter 6. 프로세스 동기화] 생산자 소비자 문제로 보는 원소적 실행과 임계 구역 본 정리는 운영체제(Operating System: Concepts) 9th edition과 22학년도 1학기 건국대학교 운영체제 수업을 바탕으로 하고 있습니다. 협력적 프로세스(Cooperating Process)가 병행 또는 병렬로 실행될 때 여러 프로세스가 공유하는 데이터의 무결성에 어떤 문제가 일어나는가? * 협력적 프로세스 : 시스템 내에서 실행 주인 다른 프로세스의 실행에 영향을 주거나 받는 프로세스 생산자 소비자 스레드를 보자. #include #include void consumer (void); char buffer[n]; int n, in = 0, out = 0; int main () { char nextp; int i; pthread_t tid; pthread_create (&tid.. 2022. 9. 6.
[Chapter 5. CPU 스케줄링] 실시간 시스템과 실시간 스케줄링 (RM, EDF) 본 정리는 운영체제(Operating System: Concepts) 9th edition과 22학년도 1학기 건국대학교 운영체제 수업을 바탕으로 하고 있습니다. 실시간 시스템 (Real-Time System) 실시간 시스템에서는 작업 수행이 요청되었을 때 이를 제한된 시간(엄격한 마감시간 즉, deadline) 안에 처리하여 결과를 내주어야 한다. ex) 항공기 미사일 제어, 과학 실험, 로봇 등등 이는 연성 실시간 시스템과 경성 실시간 시스템으로 분류할 수 있다. 1. 연성 실시간 시스템 (Soft Real-Time System) 실시간 프로세스가 실시간이 아닌 프로세스들에 우선권을 가진다는 것만 보장하며, 이것이 스케줄 되는 시점에 관해서는 아무런 보장이 없다. (마감 시간(deadline)을 만족.. 2022. 9. 4.