본문 바로가기

전체 글20

SQL 활용 계층형 질의 : 테이블에 계층형 데이터가 존재하는 경우 데이터를 조회하기 위해 사용 SATRT WITH : 계층 구조 전개의 시작 위치 지정 CONNECT BY : 다음에 전개될 자식 데이터 지정 PRIOR : CONNECT BY 절에 사용되며, 현재 읽은 칼럼을 지정한다. PRIOR 자식 = 부모 형태를 사용하면 계층구조에서 부모 데이터에서 자식 데이터(부모->자식) 방향으로 전개하는 순방향 전개를 한다. 반대는 역방향 전개 NOCYCLE : 동일한 데이터가 전개되지 않음 ORDER SIBLINGS BY : 형제 노드간의 정렬 수행 WHERE : 모든 전개를 수행한 후에 지정된 조건을 만족하는 데이터만 추출한다.(필터링) LEVEL : 루트 데이터이면 1, 그 하위 데이터면 2, 리프 데이터까지 1씩 .. 2020. 9. 24.
SQL 기본 DB : 특정 기업이나 조직 또는 개인이 필요에 의해 데이터를 일정한 형태로 저장해 놓은 것을 의미한다. DBMS : 효율적인 데이터 관리 뿐만 아니라 예기치 못한 사건으로 인한 데이터의 손상을 피하고, 필요시 필요한 데이터를 복구하기 위한 강력한 기능의 SW DB 발전 1960 : 플로우차트 중심의 개발, 파일구조 사용 1970 : DB 관리기법이 처음 태동, 계층-망형 DB등장 1980 : 관계형 DB 상용화, Oracle, Sybase 등장 1990 : 객체 관계형 DB로 발전 SQL : 관계형 DB에서 데이터 정의, 조작, 제어를 위해 사용하는 언어 SQL 문장들의 종류 DML : SELECT, INSERT, UPDATE, DELETE 등 데이터 조작어 DDL : CREATE, ALTER, DRO.. 2020. 9. 24.
데이터 모델과 성능 성능 데이터 모델링 : DB 성능향상을 목적으로 설계단계의 데이터 모델링 때부터 정규화, 반정규화, 테이블통합, 테이블분할, 조인구조, PK, FK 등 여러 가지 성능과 관련된 사항이 데이터 모델링에 반영될 수 있도록 하는 것 분석/설계 단계에서 데이터 모델에 성능을 고려한 데이터 모델링을 수행할 경우 성능저하에 따른 재업무 비용을 최소화 할 수 있는 기회를 가지게 된다. 데이터의 증가가 빠를수록 성능저하에 따른 성능개선비용은 기하급수적으로 증가하게 된다. 성능 데이터 모델링 고려사항 순서 1. 데이터 모델링을 할 때 정규화를 정확하게 수행 2. DB 용량산정을 수행한다. 3. DB에 발생되는 트랜잭션의 유형을 파악한다. 4. 용량과 트랜잭션의 유형에 따라 반정규화를 수행 5. 이력모델의 조정, PK/F.. 2020. 9. 24.
데이터 모델링의 이해 저는 학교에서 배운 지식을 바탕으로 sqld(SQL developer) 시험공부를 하면서 위의 두 책과 카페에서 사람들과 소통하면서 데이터베이스를 공부하였습니다. 데이터 모델링의 중요성 및 유의점 - 중복 : 같은 시간 같은 데이터 제공 - 비유연성 : 사소한 업무변화에 데이터 모델이 수시로 변경되면 안됨 - 비일관성 : 신용 상태에 대한 갱신 없이 고객의 납부 이력 정보 갱신 안됨 데이터 모델링 개념적, 논리적, 물리적 데이터 모델링 데이터 독립성 요소 외부 스키마 : 개개 사용자가 보는 개인적 DB 스키마 개념 스키마 : 모든 사용자 관점을 통합한 전체 DB 내부 스키마 : 물리적 장치에서 데이터가 실제적 저장 데이터 독립성 논리적 독립성 : 개념 스키마가 변경되어도 외부 스키마에 영향 x 물리적 독.. 2020. 9. 24.
가상메모리(페이지 교체 알고리즘) 페이지 교체 알고리즘 배경 요구 페이징 시스템은 프로세스가 특정 페이지를 요구할 때 해당 페이지를 물리 메모리에 로딩한다. 메모리에 필요한 페이지가 있을 때는 잘 진행되지만, 없을 경우에는 문제가 생긴다. 프로세스가 필요로 하는 페이지가 없는 경우(page-fault) 하드 디스크에서 페이지를 찾아 빈 프레임에 로딩하는데, 여기서 또다시 ‘페이지를 올릴 빈 프레임이 없을 경우’ 란 문제에 직면할 수 있다. 이때 사용하는 것이 새로 올릴 페이지와 교체할 희생 프레임을 찾는 알고리즘, 페이지 교체 알고리즘이다. 아래의 페이지 교체 알고리즘 예시들은 각 프로세스에 프레임 3개를 주고, 지역성 교체를 가정한 것이다. FIFO(first in first out) 가장 간단한 알고리즘으로, 메모리에 올라온 지 가장.. 2020. 9. 22.
가상 메모리 #6 가상 메모리 지금까지의 메모라 관리 기법 방식은 프로세스 전체가 메모리 내에 올라와야 한다는 것을 전제로 하고 있다. 프로세스 전체가 메모리 내에 올라오지 않더라도 실행이 가능하도록 하는 기법을 가상 메모리라고 한다. 가상 메모리는 물리 메로리로부터 사용자 관점의 논리 메모리를 분리시켜 주 메모리를 균 인한 크기의 저장 공간으로 구성된 엄청나게 큰 배열로 추상화시켜준다. 따라서 작은 메모리를 가지고도 큰 가상 주소 공간을 제공한다. 장점 사용자 프로그램이 물리 메모리보다 커져도 된다. 즉, 메모리 크기의 제약으로부터 자유로워진다. 각 사용자 프로그램이 더 작은 메모리를 차지하므로 더 많은 프로그램을 동시에 수행할 수 있다. 이에 따라 응답 시간은 늘어나지 않으면서 CPU 이용률과 처리율이 높아진다. 프로.. 2020. 2. 15.
메모리 관리 전략, 가상메모리 #5 메모리 관리 전략(Memory Managing Strategy) 및 및 가상 메모리(Virtual Memory) 가상 메모리는 한정된 크기의 메모리 내에서 최대한 많은 프로세스를 할당하여 효율적으로 사용하기 위해 만든 기술로, 간단히 말하면 보조 기억장치를 주기억장치처럼 사용할 수 있게 하는 기술이다. 이를 통해 프로그램이 물리 메모리보다 커도 된다는 주요 장점이 있다. 용량보다 큰 프로그램은 실행을 할 수가 없다. 또 여러 프로그램을 메모리에 동시에 올리기에는 용량의 한계와 페이지 교체 등의 이슈가 발생하였다. 하지만 가상 메모리가 개발되면서 물리 메모리 크기에 제약을 받지 않게 되었고 더 많은 프로그램을 동시에 실행할 수 있게 되었고, swap에 필요한 I/O가 줄어들기 때문에 프로그램들이 빠르게 실.. 2020. 2. 14.
동기와 비동기, 프로세스 동기화 #4 동기/ 비동기 동기와 비동기는 상황에 따라서 각각의 장단점이 있다. 동기방식은 설계가 매우 간단하고 직관적이지만 결과가 주어질 때까지 아무것도 못하고 대기해야 하는 단점이 있고, 비동기 방식은 동기보다 복잡하지만 결과가 주어지는데 시간이 걸리더라도 그 시간 동안 다른 작업을 할 수 있으므로 자원을 효율적으로 사용할 수 있는 장점이 있다. 동기(synchronous: 동시에 일어나는) - 동기는 말 그래도 동시에 일어난다는 뜻이다. 요청과 그 결과가 동시에 일어난다는 약속이다. 바로 요청을 하면 시간이 얼마가 걸리던지 요청한 자리에서 결과가 주어져야 한다. ->요청과 결과가 한 자리에서 동시에 일어남 -> A노드와 B노드 사이의 작업 처리 단위(transaction)를 동시에 맞추겠다. 1. A의 계좌는 .. 2020. 2. 9.
프로세스 상태전이, 스케줄링 알고리즘 #3 프로세스/ 프로그램/ 프로세서 차이 프로세스: 실행중인 프로그램 프로그램: 하드디스크 등에 저장되어 있는 실행 파일 프로세서: 일반적으로 CPU를 뜻함. 프로세스 상태 전이도 프로세스의 상태는 생성 / 준비 / 실행 / 대기 / 완료 5개의 단계로 이루어져 있다. 프로세스 상태 설명 Create - 프로세스가 생성되는 단계 - 주기억장치에 적재되지않고 보조기억장치에 저장 Ready - CPU를 사용하여 실행 준비 된 상태 - 우선순위가 높은 프로세스가 CPU를 할당받는다. Running - 프로세스가 CPU를 차지하여 실행중인 상태 Waiting - 기다림(wating) 또는 블록(block) 상태 - I/O 동작의 완료 등 사건 발생을 기다리는 상태 Terminated - 프로세스의 실행이 종료 프로세.. 2020. 2. 2.