본문 바로가기

분류 전체보기

(70)
SQL 활용(서브쿼리, 집합연산자, 그룹함수, 윈도우 함수) 1. 서브쿼리(Subquery) 하나의 쿼리 안에 존재하는 또다른 쿼리로 위치에 따라 아래와 같이 나눌 수 있다. SELECT 절 : 스칼라 서브쿼리 FROM 절 : 인라인 뷰 WHERE절, HAVING 절 : 중첩 서브쿼리 2. 집합 연산자 1) UNION ALL QUERY1의 결과와 QUERY2의 결과를 그대로 합하는 것으로 중복된 행도 그대로 출력된다. 2) UNION QUERY1의 결과와 QUERY2의 결과를 합한 후 중복을 제거하여 출력한다. 3) INTERSECTION QUERY1의 결과와 QUERY2의 결과에서 공통된 부분만 중복을 제거하여 출력한다. 4) MINUS / EXCEPT QUERY1의 결과에서 QUERY2의 결과를 제거하고 출력한다. 3. 그룹 함수 데이터를 GROUP BY 하여..
SQL 기본(GROUP BY, HAVING, ORDER BY, JOIN) GROUP BY, HAVING 절 1. GROUP BY GROUP BY는 말 그대로 데이터를 그룹별로 묶을 수 있도록 해주는 절이다. GROUP BY 뒤에는 그루핑의 기준이 되는 컬럼이 오게 된다. 컬럼은 하나 이상이다. 2. 집계 함수 데이터를 그룹별로 데이터를 도출할 수 있게 해준다. 3. HAVING HAVING 절은 GROUP BY 절을 사용할 때 WHERE 절처럼 사용흐는 조건절이라고 생각하면 되는데 주로 데이터를 그루핑한 후 특정 그룹을 골라낼 때 사용한다. SELECT문의 논리적 수행 순서 SELECT - FROM - WHERE - GROUP BY - HAVING - ORDER BY HAVING 절은 논리적으로 GROUP BY 절 이후에 수행되기 때문에 그루핑 후에 가능한 집계 함수로 조건을..
[SWEA : JAVA] 1251 하나로 (MST, Prim 알고리즘) https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV15StKqAQkCFAYD SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 정리 모든 섬을 관통할 수 있는 해저 터널 연결 해저 터널은 두 섬을 선분으로 연결하며, 두 해저터널이 교차하더라도 연결되지 않은것이다. 환경 부담금 : 환경 부담 세율(E) * 해저 터널 길이(L) 의 제곱 총 환경 부담금을 최소로 하기 풀이 총 환경 부담금을 최소로 하기 위해서 하나의 섬에서 다른 섬으로 선분을 연결할 때마다 매번 가장 가까운 섬과 연결해야 한다. 모든 섬을 연결해야 하므로 MS..
[백준 : JAVA] 1753 최단경로 풀이 다익스트라(Dijkstra) 알고리즘을 활용하여 최단 경로를 구하는 코드입니다. 다익스트라 알고리즘은 시작 노드에서부터 다른 모든 노드까지의 최단 경로를 찾는 데 사용됩니다. public class Main { // 간선 정보를 저장하기 위한 클래스 static class Edge implements Comparable{ int end, weight; public Edge(int end, int weight){ this.end = end; this.weight = weight; } // 가중치 값에 따라 정렬 @Override public int compareTo(Edge o) { return weight - o.weight; } } private static final BufferedReader ..
SQL 기본 (SELECT, WHERE) SELECT 문 1. SELECT 저장되어 있는 데이터를 조회할때 사용하는 명령어 SELECT 컬럼1, 컬럼2, ... FROM 테이블 WHERE 컬럼1 = '아무개'; 컬럼을 따로 명시하지 않고 *(ASTERISK)를 쓰면 전체 컬럼이 조회된다. WHERE절이 없으면 테이블의 전체 ROW가 조회된다. 테이블명이나 컬럼명에 별도의 별침(Alias)을 붙여줄 수 있는데 붙여주는 목적은 요즘 우리가 줄임말을 즐겨 쓰는 이유와 비슷하다. SELECT BAND.BAND_NAME, BAND_MEMBER.MEMBER_NAME FROM BAND, BAND_MEMBER WHERE BAND.BAND_CODE = BAND_MEMBER.BAND_CODE; V SELECT B.BAND_NAME, BM.MEMBER_NAME F..
데이터 모델과 SQL 정규화 데이터 정합성을 위해 엔티티를 작은 단위로 분리하는 과정이다. 정규화를 통해 조회성능은 처리 조건에 따라 향상될수도 저하될수도 있다. 입력, 수정 삭제 성능은 일반적으로 향상된다. 1. 제 1 정규형 모든 속성은 반드시 하나의 값만 가져야 한다. V 제 1 정규형의 이상현상 삽입 이상 : 학생이 새 과목을 수강 신청할 때 반드시 학생의 학과와 지도교수를 알아야 한다.(불필요 정보) 삭제 이상 : 300번 학생이 C400 과목을 취소하면, 해당 과목에 대한 정보가 모두 사라진다. 갱신 이상 : 100번 학생이 지도교수를 변경할 때, P1인 행을 모두 찾아서 변경해야 한다. 제1 정규형의 이상현상 원인 기본키가 아닌 속성들이 기본키에 완전 함수 종속되지 못하고 부분 함수 종속되어 있기 때문이다. 학번..
SQL_데이터 모델링의 이해 모델링이란? 데이터 베이스에서의 모델링이란 '현실 세계를 단순화하여 표기하는 기법'이다. 특징 추상화(Abstraction) : 현실 세계를 일정한 형식으로 표현한것. 즉, 아이디어나 개념을 간략하게 표현하는 것이다. 단순화(Simplification) : 복잡한 현실 세계를 정해진 표기법으로 단순하고 쉽게 표현한다는 의미이다. 명확화(Clarity) : 불분명함을 제거하고 명확하게 해석할 수 있도록 기술한다는 의미이다. 모델링의 세가지 관점 데이터 관점(What, Data) : 데이터 위주의 모델링으로 어떤 데이터들이 업무와 얽혀있는지, 그리고 그 데이터간에 어떤 관계가 있는지에 대해 모델링하는 방법 프로세스 관점(How, Process) : 프로세스 위주의 모델링으로 이 업무가 실제로 처리하고 있는 ..
Process Synchronization2 Semaphores 앞의 방식들을 추상화시킴 Semaphore S integer variable 아래의 두 가지 atomic 연산에 의해서만 접근 가능 S가 5일때 P연산을 하면 자원을 하나 가져가고 V를 하면 반환. 즉, P = lock, S = unlock Critical section of n Processes Synchronization variable semaphore mutex; // initially 1 Process Pi busy - wait 방식은 효율적이지 못함(= spin lock) Block & Wakeup 방식의 구현(= sleep lock) Block & Wakeup Implementation Semaphore를 다음과 같이 정의 Block & Wakeup 을 다음과 같이 가정 ..
Process Synchronization1 공유 데이터(shared data)의 동시 접근(concurrent access)은 데이터의 불일치 문제(inconsistency)를 발생시킬 수 있다. 일관성(consistency)유지를 위해서는 협력 프로세스 (cooperating process)간의 실행 순서(orderly execution)을 정해주는 메커니즘 필요 Race Condition 여러 프로세스들이 동시에 공유 데이터를 접근하는 상황 데이터의 최종 연산 결과는 마지막에 그 데이터를 다룬 프로세스에 따라 달라짐 S-Box(Memory address space) 를 공유하는 E-Box(CPU-Process)가 여럿 있을 경우 Race Condition의 가능성이 있음 ( -> count = 5일때 각 E-Box가 연산 후 저장할때 4,6 ..
Scheduling Algorithm(FCFS,SJF,Priority,RR, Multilevel, etc.) FCFS(First-Come-First-Served) Example 1: Process : P1, P2, P3 Burst Time : 24, 3 ,3 프로세스의 도착 순서 : P1, P2, P3 Gantt Chart Waiting Time for P1 = 0; P2 = 24; P3 = 27 Average wating time : (0+24+27)/3 = 17 Example 2 : Process : P1, P2, P3 Burst Time : 24, 3 ,3 프로세스의 도착 순서 : P2, P3, P1 Gantt Chart Waiting Time for P1 = 6; P2 = 0; P3 = 3 Average wating time : (6+0+3)/3 = 3 Convoy Effect : short proces..