- [데이터베이스시스템] 회복 시스템 회복시스템의 개념회복의 역할예상치 못한 HW 고장 및 SW 오류가 발생→ 사용자의 작업에 대한 안정적 디스크 반영 여부 보장이 불가능오류 발생 이전의 일관된 상태로 데이터베이스를 복원시키는 기법이 요구→ 시스템 내의 고장 원인 검출, DBMS의 안전성 및 신뢰성을 보장데이터베이스는 데이터 복원 절차 내재화시스템 실패(ststem failure)의 유형트랜잭션 실패→ 논리적 : 잘못된 데이터 입력 , 부재 , 버퍼 오버플로, 자원 초과 이용→ 시스템적 : 운용 시스템의 교착상태시스템 장애→ 시스템의 하드웨어 고장, 소프트웨어의 오류→ 주기억장치와 같은 휘발성 저장장치의 내용 손실디스크 실패→ 비휘발성 디스크 저장장치의 손상 및 고장으로 인한 데이터 손실회복 데이터의 구성백업(Backup)→ 데이터베이스의 ..
- [데이터베이스시스템] 동시성 제어 동시성 제어 규약동시성 제어의 개념트랜잭션 직렬화와 회복화는 스케줄이 데이터 일관성에 영향을 미치는 여부를 판별하고 일관성이 유지되는 상태로 복원시키기 위해 정의한 개념일관성 훼손을 발생시키는 트랜잭션에 대해 동시성 제어를 통해 일관성 유지에 개입→ 트랜잭션 간 연산의 순서를 제어→ 어떠한 데이터 읽기, 갱신 연산에도 무결성을 유지→ 동시에 실행되는 트랜잭션 수를 증가동시성 제어 규약→ 락 기반 규약 , 타임스탬프 기반 규약 , 검증 기반 규약락 기반 규약 의 개념직렬 가능성을 보장하기 위해 락(잠금)을 사용하여 데이터 항복에 연산 적용 전 트랜잭션이 락을 획득하고 연산 후 반납하도록 하는 규약락의 종류→ 공유 락(shared lock : S) : 트랜잭션 T가 LS(Q) 명령으로 데이터 항목 Q에 공유..
- [데이터베이스시스템] 트랜잭션 트랜잭션의 이해데이터 동시 접근의 문제동일 데이터에 다수 사용자의 접근 허용시 일관성이 훼손트랜잭션의 개념데이터 베이스를 조작하기 위한 하나의 논리적 단위를 이루는 일련의 연산의 집합→ 예시) 예금 인출작업 단위 : 예금 1000원 인출일련의 연산 : Read(A) , A= A-1000, Write(A)데이터베이스를 사용하여 처리하는 작업을 하나의 묶음으로 인식하여 묶음 단위로 실행되도록 정의한 개념트랜잭션의 특징다수의 연산으로 구성된 트랜잭션이 사용자에게 단일 작업처럼 다뤄지도록 ACID 특징을 준수ACID 특성→ 원자성(atomicity) : 하나의 트랜잭션에 포함된 모든 연산은 완전히 수행되거나 전혀 수행되지 않음→ 일관성(consistency) : 특정 트랜잭션이 수행되기 전과 후에 데이터 베이스..
- [데이터베이스시스템] 해싱과 특수 인덱스 정적 해싱해싱의 개념해시(hash)탐색키에 산술적인 연산을 통해 버킷의 주소를 계산하는 해시 함수를 이용하여 데이터 배분 및 접근 하는 기법탐색키 → → 버킷ID버킷(bucket)→ 한 개 이상의 레코드를 저장 할 수 있는 저장 공간의 기본적인 단위→ 크기는 일반적으로 디스크 블록의 크기와 일치해시의 구조해시의 사용h(K3) = h(K7) = 3해시 함수의 역할여러개의 레코드와 여러개의 버킷이 있을 경우최상의 경우모든 버킷에 균등하게 위치 할 수 있게 나눠주는 경우최악의 경우한 버킷에 모든 레코드를 넣어주는 경우일반적인 경우여러 버킷 적당히 분배가 되는 경우 한쪽으로만 몰리지 않도록 해준다.정적 해싱의 특징버킷의 개수가 고정된 해싱 기법키 값이 Ki인 레코드 삽입→ h(Ki)를 통해 Ki 에 대응하는 ..
- [데이터베이스시스템] 인덱싱 인덱스의 이해인덱스의 개념데이터 검색에서 발생하는 비효율적인 데이터 입출력 문제를 해결하기 위한 목적으로 시작→ 인덱스 : DBMS에서 요청된 레코드에 빠르게 접근 할 수 있도록 지원하는 데이터와 관련된 부가적인 구조→ 인덱싱 : 인덱스를 구성하고 생성하는 작업인덱스의 탐색키를 이용하여 해당 레코드가 저장된 블럭을 디스크 저장장치 또는 메모리에서 파악하여 해당 블럭을 빠르게 적재탐색키란?파일에서 레코드를 찾는데 사용되는 컬럼이나 컬럼의 집합인덱스 종류인덱스의 종류→ 순서 인덱스 : 특정 값에 대해 정렬된 순서 구조→ 해시 인덱스 : 버킷의 범위 안에서 값의 균일한 분포에 기초한 구조로 해시 함수가 어떤 값이 어느 버킷에 할당 되는지 결정인덱스의 평가기준→ 접근 시간 : 데이터를 찾는 데 걸리는 시간→ 유..
- [데이터베이스시스템] 데이터 저장과 파일 물리적 저장장치물리적 저장장치의 구성물리적 저장장치는 데이터 접근 속도, 용량을 기준으로 다양한 장치로 구성← 속도, 가격레지스터 - 캐시 - 메인메모리 - 자기디스크 , 플래시메모리 - 광학디스크 자기 테이프→ 저장용량물리적 저장장치 별 특징휘발성→ 캐시 : 고비용 저장장치로 빠른 접근 속도를 보장→ 메인 메모리 : 실제 프로그램과 데이터 적재 공간비 휘발성→ 플래쉬 메모리 : 메인 메모리와 유사하나 비휘발성→ 자기 디스크 : 데이터베이스 전체를 안정적으로 저장→ 광학 디스크 드라이브 : CD , DVD , Blue-ray 등→ 테이프 장치 : 용량이 크고 저렴하나 순차 접근 방식으로 속도가 느림파일데이터베이스 구성데이터베이스논리적이고 추상적으로 데이터들을 묶어 놓은 사용자 들을 위한 단위파일데이터를 ..
- [데이터베이스시스템] 정규화 잘못된 데이터베이스 모델링데이터의 중복일관성 유지의 어려움저장 공간 낭비갱신 이상삽입 이상 - 레코드 추가 시불필요한 컬럼의 값이 없이는 추가하지 못 하는 경우삭제 이상 - 삭제 시 의도하지 않았던 다른 데이터가 삭제 되는 경우수정 이상 - 중복 저장된 레코드를 수정 시 모두 반영이 안되어 데이터베이스의 일관성이 깨지는 경우좋은 릴레이션의 개념컴퓨터 프로그래머적 관점에서의 모델링→ 어떻게 데이터를 저장해야 하는가?릴레이션의 스키마가 얼마나 효율적으로 실세계를 반영하고 있는지 평가고려사항→ 한 릴레이션 내의 컬럼 간의 관계 분석→ 원하지 않는 데이터의 종속과 중복 제거→ 새로운 컬럼들이 데이터베이스에 추가될 때, 기존 컬럼과의 관계 수정을 최소화함수적 종속성함수적 종속성의 정의릴레이션 인스턴스를 분석하여 ..
- [데이터베이스시스템] SQL(3) 데이터 검색집계 함수특정 컬럼에 집계 함수를 통해 다양한 통계 연산을 수행할 수 있는 기능SELECT 절 또는 HAVING절에 기술집계 함수의 종류→ COUNT : 컬럼에 있는 값들의 개수→ SUM : 컬럼에 있는 값들의 합→ AVG : 컬럼에 있는 값들의 평균→ MAX : 컬럼에서 가장 큰 값→ MIN : 컬럼에서 가장 작은 값집계 함수의 사용SELECT COUNT(단과대학) FROM 학과그룹 질의특정 기준으로 레코드를 그룹화하고 각 레코드 그룹에 대해 집계 함수를 적용하는 질의구문 형식SELECT 질의 GROUP BY 컬럼[주의] SELECT 절에 그룹의 기준과 집계 함수 이외의 컬럼은 포함될 수 없음HAVING 절그룹 질의의 결과 레코드에 대해 출력 조건을 기술하기 위한 절구문 형식 SELECT..
- [데이터베이스시스템] SQL(2) 데이터 삽입, 수정, 삭제INSERT 문테이블에 새로운 레코드를 삽입하는 명령문→ 테이블에 새로운 레코드를 삽입→ 모든 속성 또는 부분 속성에 대한 속성값을 삽입구문 형식INSERT INTO TABLE_NAME VALUES(value1, value2, ... valueN)INSERT INTO TABLE_NAME(column1,column2...columnN) VALUES(value1, value2, ... valueN)질의1 ) 학과이름’영어영문학과’ , 단과대학 , ‘인문과학대학’ 주소 ‘a’ , 전화번호 ‘02-1234-1234’ , 졸업학점 135인 레코드를 학과 테이블에 삽입 하시오.INSERT INTO 학과 VALUES('영어영문학과', '인문과학대학' , 'a' , '02-1234-1234',..
- [데이터베이스시스템] SQL(1) 데이터베이스 언어SQL의 개요SQL(Structured Query Language) 은 관계 대수에 기초하여, RDBMS 의 데이터 관리를 위해 설계된 언어1986년 ANSI, 1987년 ISO에서 표준으로 제정→ SQL - 86, SQL - 89 , SQL - 92 , SQL : 1999 , SQL : 2003, SQL : 2008→ 상용 DBMS의 특성에 맞게 국제 표준을 확장한 독자적 버전이 존재특징→ 비절차적(선언형) 언어, 필요한 데이터만 기술→ 인간의 언어와 매우 유사하고 간단, 명료SQL의 구성데이터 정의 언어 (DDL : Data Definition Language)→ 데이터 베이스 내의 객체를 생성 및 삭제하고 그 구조를 조작하는 명령어의 집합→ 데이터가 준수해야 하는 제약조건을 기술→ ..
- [데이터베이스시스템] 3. 관계형 모델 관계형 모델의 개념사용자 요구사항 분석 → (데이터 및 업무) → 개념적 데이터 모델링 → (ER 모델) → 논리적 데이터 모델링 → (관계형 모델) → 물리적 데이터 모델링 → (물리적 세부사항) → 내부 스키마논리적 데이터 모델링 단계DBMS 에서 사용하는 데이터 모델에 맞추어 데이터를 표현하는 과정데이터 정의 언어로 기술된 개념 스키마 생성관계형 모델(relational model)→ 1969년 에드가 F. 코드에 의해 제안→ 릴레이션(relation) 으로 데이터를 표현하는 모델→ 데이터 표현이 단순하고 직관적 구조화 모델→ 현재 대다수 DBMS의 기초관계형 모델을 사용하는 관계형 DBMS(RDBMS)Oracle , DB2 , PostgresSql , mySql …릴레이션의 구성릴레이션 : 표의 ..
- [데이터베이스시스템] 데이터베이스 모델링 데이터베이스 모델링의 이해데이터베이스 모델링의 필요비즈니스적 관점→ 어떤 데이터를 저장해야 하는가?컴퓨터 프로그래머 관점→ 어떻게 데이터를 저장해야 하는가?데이터베이스 시스템 구현 과정소프트웨어 공학 시점의 효율적인 시스템 구현 과정기능적 요구 사항[기능 분석] → 애플리케이션 아키텍쳐[애플리케이션 프로그램 설계] → 애플리케이션 [애플리케이션 프로그램 구현]DBMS 의존적인 부분 [애플리케이션 아키텍쳐[애플리케이션 프로그램 설계] → 애플리케이션 [애플리케이션 프로그램 구현]]데이터 관점사용자 요구사항 분석 → 개념적 데이터 모델링 → 논리적 데이터 모델링 → 개념스키마 → 물리적 데이터 모델링 → 내부 스키마DBMS 의존적인 부분 [ 개념스키마 → 물리적 데이터 모델링 → 내부 스키마]데이터베이스 모..
- [데이터베이스시스템] 데이터 베이스의 이해 데이터베이스의 역할데이터 관리의 필요대량의 데이터를 저장 및 관리하고 필요한 데이터를 신속히 검색할 수 있도록 보조 하는 장치데이터 → (저장) → 데이터 관리 장치 → (검색) → 필요 데이터데이터 관리의 역사1946 - 컴퓨터가 만들어짐 → 1956 - 저장장치 도입 → 1960 - 파일 처리 시스템 →1970 - IBM사 SQL → 1980 - 데이터 웨어하우스 → 1990 - 웹의 등장 →2000중반 - 클라우드 컴퓨팅 → 2000말 - 빅데이터 분석 - 2015년~ - IoT 와 AI의 등장전통적 데이터 관리 방식학적 애플리케이션[학적 업무] ↔ [학적 파일] 파일 처리 시스템성적 애플리케이션[성적 업무] ↔ [성적 파일] 파일 처리 시스템수강 애플리케이션[수강 업무] ↔ [수강 파일] 파일 처..
- (펌)(펌)(펌) HTML Unicode Math Sign https://velog.io/@ho991217/%ED%8E%8C%ED%8E%8C-HTML-Unicode-Math-Sign
- [자료구조] 그래프 그래프 “관계” 를 그래프로 추상화 하여 다룰 수 있음 (자료구조의 정의) 전기회로의 분석, 최단 거리 탐색, 프로젝트 계획, 스케줄링, 운송, 컴퓨터 네트워크 시뮬레이션 등등 그래프의 정의 그래프 G는 하나 이상의 정점(혹은 노드) 을 포함하는 집합 V 와 두 정점의 쌍으로 구성되는 간선을 포함하는 집합 E의 순서 쌍으로 정의함 그래프 G = (V ,E) 그래프의 정의 - 정점과 간선 V = {a,b,c,d} (정점의 집합) E = {1,2,3,4,5,6,7} (간선의 집합) G = (V,E) = ({a,b,c,d} , {1,2,3,4,5,6,7}) (정점과 간선의 합) 그래프 용어의 정의 간선은 두 정점을 연결하는 선 그래프는 연결(간선)에 방향성이 없는 무방향 그래프와 방향성을 갖는 방향 그래프가 ..
- [자료구조] 멀티웨이 탐색트리(2) 2-3 트리(2-3tree) 차수가 2 또는 3인 내부 노드를 갖는 탐색 트리 2-노드 (2개의 자식 노드; 차수가 2)와 3-노드만(3개의 자식 노드; 차수가 3)으로 구성되는 특수한 형태의 B트리 2-노드 혹은 3-노드라는 제약이 내부 노드에만 해당함 → 모든 잎 노드는 같은 레벨에 있어야 한다는 제약만 존재 2-3트리(2-3tree) 의 조건 각 내부 노드는 2-노드이거나 3-노드이다. 2- 노드는 1개의 키 값을 3-노드는 2개의 키 값을 갖는다. lchild, mchild를 각각 2-노드 의 왼쪽 자식 및 중간 자식 이라 하고, lkey가 이 2-노드의 키 값이라 하자. 그러면 루트가 lchild인 모든 2-3 서브 트리 키 값은 lkey 보다 작고, 루트가 mchild인 모든 2-3 서브 트리..
- [자료구조] 멀티웨이 탐색 트리(1) m원 탐색 트리 m원 탐색 트리의 정의 트리의 노드가 m개 이하의 가지를 가질 수 있는 탐색 트리 → 같은 수의 노드를 갖는 이진 트리보다 낮은 높이의 m원 트리 이진 탐색 트리의 확장된 형태임 탐색 트리의 제한을 따르면서, 2개 이상 ~ m 개 이하의 자식 노드를 가질 수 있음 노드 구조는 다음과 같다. 여기서 P0 ~ Pn 은 서브 트리에 대한 포인터 이고 K0 ~ Kn-1 은 키값이다. 또한 n ≤ m - 1 이 성립한다. i = 0, …, n - 2 인 i 에 대해 Ki < Ki+1 을 만족한다. i = 0, …, n - 1 인 i 에 대해 Pi 가 가리키는 서브 트리의 모든 키 값은 Ki 의 키 값 보다 작다. Pn 이 가리키는 서브 트리의 모든 키 값은 Kn-1 의 키 값 보다 크다. i = ..
- [자료구조] BS,Splay,AVL,BB 이진 탐색 트리(BS트리 : binary search tree) 특정 데이터의 효과적인 검색을 위해 제한점을 가지는 이진 트리 특정 데이터의 검색과 노드의 삽입 삭제 처리 에 효과적인 이진트리 트리를 구성할 때, 데이터의 탐색을 고려하여 구성하므로 탐색에 최적화된 이진트리 키 : 탐색 삽입 삭제 연산에서 비교의 대상이 되는 값, 이진트리 노드의 데이터를 대표하는 값, 혹은 노드를 특정할 수 있는 값 root 기준 왼쪽 서브트리에 모든 노드의 키 값은 루트 보다 작다 root 기준 오른쪽 서브트리에 모든 노드의 키 값은 루트 보다 크다 → 중위순회를 통해 같은 순서 데이터(A-B-C-D) 를 만들어 낼 수 있다. BS트리순회 BS트리를 위한 노드 정의 typedef struct BSTnode{ struct..
- [자료구조] 선택트리 , 숲 , 이진트리 개수 선택트리 합병 정렬 차례로 정렬된 k개의 데이터 목록을 순서를 유지하는 하나의 데이터 리스트로 만드는 과정 일반적으로 데이터 목록이 k개인 경우, k-1 번 비교를 통해 데이터 목록에서 가장 작은 값이나 가장 큰 값을 결정 할 수 있음 선택 트리를 이용해서 비교 횟수를 줄일 수 있음 승자트리 각 노드가 두 자식 노드의 작은 값을 갖는 완전 이진트리 작은 값이 승자가 되어 올라가는 토너먼트 경기와 유사 트리의 각 노드는 두 자식 노드 값의 승자를 자신의 값으로 함 결과적으로 루트의 값이 트리에서 가장 작은 값 → 첫번째 단계에서의 비교 횟수를 줄이지는 못했지만, 두번째 비교부터는 횟수가 감소 됨 → 재구성 과정에서 빈 리스트가 생기면 큰 값을 넣어줌 패자트리 각 노드가 두 자식 노드 중에서 더 작은 값을 ..
- [자료구조] 힙 우선순위 큐 대기 리스트에서 우선순위가 높은 사람이 먼저 서비스를 받는 구조 우선순위 큐의 작동방식 삭제 명령이 실행되면 저장된 데이터 중에서 가장 작은 값(가장 큰 값) 이 삭제 된다. 나머지 데이터들은 어떤 순서로 저장되든 문제가 되지 않는다. 힙 추상 자료형 힙의 정의 피라미드 모양으로 쌓아올린 더미 무엇인가 쌓아놓은 더미이고 항상 가장 위에 있는 것을 우선 꺼내는 구조 부모- 자식 노드 사이에서 (부분적) 정렬된 완전 이진트리로 부모 노드는 자식 노드보다 우선 순위가 높음 힙 객체의 정의 부분적으로 정렬된 완전 이진 트리로 부모노드는 자식노드보다 우선순위가 높다 연산 연산 내용 insert(element) 힙에 데이터 삽입 delete() 힙(루트) 에서 데이터 삭제 peek() 힙(루트) 에서 ..
728x90