본문 바로가기
728x90

전체 글424

NoSQL NoSQL NoSQL은 Not only SQL이라고 불리는 비관계형 데이터베이스 유형이다. 전통적인 RDBMS는 관계형 데이터 모델이고 ERD를 이용하고 쿼리문을 통해 명령어를 입력한다. 그 외에도 스키마, 정규화, 데이터 무결성, 트랜잭션, ACID, Concurrency control, 2PLP, MVCC등의 다양한 특징이 있다. 그러나 전통적 DBMS에는 몇몇 문제가 존재한다. - Scalability: 오라클을 10,000대에 설치/관리할 수 있나?? - Performance: 오라클에서 초당 만건 이상의 변경을 처리할 수 있나? - Schema: 정형화된 스키마가 없으면? - Reliability는 필요 없으니 더 빠를 수는 없나? - Persistent는 필요 없으니 더 쉬울 수는 없나? - .. 2023. 11. 28.
Multiple Access Protocols Multiple access links Link에는 두가지 종류가 존재한다. 1. 포인트 투 포인트(point-to-point) PPP(Point-to-Point Protocol)는 다이얼업 접속에 사용된다. 이더넷 스위치와 호스트 사이의 포인트 투 포인트 링크를 의미한다. 2. 브로드캐스트(broadcast, 공유 와이어 또는 매체) 오래된 방식의 이더넷(Ethernet)을 말한다. 상향 HFC(Hybrid Fiber-Coaxial)를 포함한다. 802.11 무선 LAN(Wireless Local Area Network)을 나타낸다. 이러한 Multiple access protocol에서 node가 두개 이상의 signal들을 동시에 받게되면 collision이 발생하므로 이를 방지하는 것이 중요하다... 2023. 11. 23.
Concurrency Control Concurrency Control DB는 여러 사용자가 접근할 수 있다. 동시 공용(Concurrent Sharing)의 이점은 공용도(sharability)의 증가, 응답 시간(response time)의 단축, 시스템 활용도(system utilization) 증대와 같은 점들이 있다. 위와 같이 serial schedule보다 병행 실행일때 효율적이다. 그러나 병행실행을 control하지 못하고 그저 실행하기만 하면 아래와 같은 문제가 발생하여 Concurrency Control이 필요하다. Dirty read문제는 commit되지 않은 데이터를 읽을때 발생하는 문제로 아래와 같은 경우가 있다. A와 B가 각각 5와 3이라면 T1에서는 A와 B가 각각 10과 6으로 바뀌었지만 해당사실을 알지 못하.. 2023. 11. 23.
Link Layer Link Layer 이제 network layer 밑에 존재하는 link layer에 대해서 알아보자. 아래 그림에서 볼 수 있듯이 link layer는 모든 네트워크 기기에 구현되어있는 계층이다. Link layer는 간헐적으로 detection과 correction을 진행하는데 이는 말그대로 간헐적인 correction이지100% 보장하는 것이 아니다. 또한 broadcast 채널을 나눠서 이용하는 multiple access 기능도 지원한다. 한 switch에 걸려있는 host들에 대해서 IP를 추적해서 네트워킹을 해줄 논리 주소 관리 능력이 switch에는 없기 때문에 새로운 주소가 필요한데 이것이 MAC address이다. Link layer는 대부분 위와 같이 Hardware에 구현되어있다. .. 2023. 11. 21.
Transaction Transaction Processing 데이터의 공유와 다수 사용자를 관리하기 위한 기능을 트랜잭션 처리라고 한다. 여러 사용자가 동시에 동일한 데이터베이스 공유 가능하도록 지원하는 것이다. 동시에 사용하더라도 일관성(consistency)을 보장하기 위한 동시성 제어 (concurrency control) 기능을 제공한다. 이때 트랜잭션 자체는 DB 작업을 수행하는 단위 프로세스를 의미한다. 트랜잭션의 주요 성질은 Jim Gray가 정의한 ACID로 정리된다. • 원자성(Atomicity) : 트랜잭션과 관련된 작업들이 부분적으로 실행되다가 중단되지 않는 것을 보장하는 능력이다. • 일관성(Consistency) : 트랜잭션이 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터 베이스 상태로 유지하.. 2023. 11. 21.
대구 교통사고 피해 예측 AI 경진대회 - (1) 대회 개요 이동수단의 발달에 따라 다양한 유형의 교통사고들이 계속 발생하고 있는 현실에 따라 한국자동차연구원과 대구디지털혁신진흥원에서는 해당 사고의 원인을 규명하고 사고율을 낮추기 위해, 시공간 정보로부터 사고위험도(ECLO)를 예측하는 AI 알고리즘 발굴을 목표로 본 대회를 개최한다고 한다. ECLO(Equivalent Casualty Loss Only) : 인명피해 심각도 ECLO = 사망자수 * 10 + 중상자수 * 5 + 경상자수 * 3 + 부상자수 * 1 본 대회에서는 사고의 위험도를 인명피해 심각도로 측정한다. 데이터 train.csv 각 사건 ID에 대한 Feature는 사고일시,요일,기상상태,시군구,도로형태,노면상태,사고유형,사고유형 - 세부분류,법규위반,가해운전자 차종,가해운전자 성별,가.. 2023. 11. 19.
Query Optimization Query Optimization 쿼리 최적화는 DBMS에서 쿼리의 성능을 개선하기 위한 과정이다. 이 과정은 쿼리를 더 빠르고 효율적으로 실행하기 위해 여러 기술과 전략을 사용한다. 쿼리 최적화의 주요 목표는 데이터베이스 리소스 사용을 최소화하고 응답 시간을 단축하는 것다. Query Optimizer의 구조는 아래와 같다. 위의 DBMS 작동과정중 Query Optimizer를 자세히 보면 아래와 같다. 쿼리 최적화는 크게 CBO(Cost Based Optimize)와 RBO(Rule Based Optimize) 두가지 방식중 하나를 이용하는데 주로 CBO를 이용한다. 해당 과정에서 Optimizer는 가능한 모든 실행 계획을 생성하고 각종 통계정보를 이용한 Cost를 계산하고 최소 Cost의 실행계.. 2023. 11. 16.
MOS examples Cases Channel의 length(L)과 width(W)의 변화에 따른 Ids-Vgs, Ids-Vds 그래프를 살펴보자. 위의 그래프를 보면 왜 3나노 공정과 같이 channel의 length를 줄이는것에 산업이 집중하는지 알 수 있다. 이번에는 width에 변화를 주었을때의 변화를 살펴보면 width가 커지면 전류가 강해지는 것을 알수 있다. 그러나 width를 키워서 transistor를 설계하면 그만큼 차지하는 자리도 넓어지니 그 효율성을 따져서 trade-off 비율을 설정해야할 것이다. PMOS Saturation Case Input Voltage가 0, Drain voltage가 0, Source voltage가 1인 경우 Vgs는 -1, Vds는 -1이 되고 PMOS의 Vth를 -0.5.. 2023. 11. 15.
Routing algorithms - Hierarchical routing Inter-AS 지금까지 다룬 routing algorithm들은 모든 router를 flat한 network에 있고 identical하다고 가정한 이상적인 상황에서 사용가능한 알고리즘이다. 그러나 현실에서는 전세계 모든 router를 identify하는것은 불가능하기 때문에 hierachical한 구조를 이용한다. 이때 특정 범위 예를들어 'XX대학교 서버'를 Autonomous System(AS)라고 한다. AS가 하나의 계층이라고 볼 수 있는 것이다. 지금까지 AS내부에서의 routing algorithm은 intra-AS routing protocol이라고 부르고 AS간의 네트워크 algorithm을 결정하는 protocol이 inter-AS routing protocol이 되는 것이다. 위와 같.. 2023. 11. 14.
INDEX 실습 가상 데이터 INDEX를 이용했을때의 효율을 알아보기 위해 가상의 Student Data 10만개를 생성하는 sql 코드를 만드는 파이썬 코드를 작성하였다. import pandas as pd import numpy as np # 학생 수 정의 num_students = 100000 # 기본 데이터 생성 names = ['Lee', 'Kim', 'Park', 'Choi', 'Jung', 'Kang', 'Cho', 'Yoon', 'Lim', 'Han', 'Hyun', 'Ji', 'Yeon', 'Hoon', 'Sun', 'Min', 'Soo', 'Seok', 'Hee', 'Kyu'] domains = ['example.com'] password = '1234' did = 1 # 데이터프레임 생성 df_stu.. 2023. 11. 14.
Routing algorithm - Distance vector Distance vector Distance vector algorithm은 전체 Topology를 이용하여 최단경로를 분석하는 것이 아니라 Dynamic programming 기법과 유사하게 부분부분에서 최선의 선택을 하여 결론적으로 적절한 경로로 네트워킹을 할 수 있도록 하는 알고리즘이다. 아래와 같이 최선의 경로를 조금씩 쌓아가는 것이다. 예를 통해 살펴보면 이해가 훨씬 쉽다. dv(z)는 v에서 z까지 가는 최단 경로라는 뜻이다. u에서 z까지 가는 최단경로를 구하고 싶다면 u의 주변노드에서 z까지 가는 최단 경로를 구했다고 가정하였을때 인접노드인 v,x,w까지의 시간은 u가 알고 있으므로 인접노드까지 가는 시간+해당 노드에서 z까지 걸리는 시간을 한 3가지 값중 최소값을 구하면 그 경로가 최단경.. 2023. 11. 10.
Normalization (2) ERD의 정규화 분석 우선 실무에서는 이전글에서 다룬 3NF까지만 정규화를 시켜도 충분하다고 한다. 따라서 3NF까지의 분석과정을 우선 살펴보면 아래와 같다. ㅇ1NF를 만족하고 있는지 분석 - 1NF : 중복된 행(repeating groups)이 없고, 모든 속성은 원자값(atomic value) - ERD에 있는 모든 entity가 PK가 있는지 확인 - 1NF를 만족하고 있는지 판단 ㅇ2NF를 만족하고 있는지 분석 - 2NF : 부분적 함수 종속을 제거 - PK가 1개이면 무조건 2NF를 만족 - PK가 2개 이상의 속성으로 이루어진 entity에서 PK속성일부와 나머지 속성들이 종속 관계가 있는지 일일이 체크해야함 ㅇ3NF를 만족하고 있는지 분석 - 3NF : 이행적 함수종속을 제거 - PK가 .. 2023. 11. 9.
728x90