Computer Science 76
-
회복과 병행 제어DBMS는 데이터베이스가 항상 정확하고 일관된 상태를 유지할 수 있도록 하는데, 그 중심에는 트랜잭션이 있음트랜잭션을 관리함으로써 데이터베이스의 회복과 병행 제어가 가능트랜잭션(transaction)하나의 작업을 수행하는 데 필요한 데이터베이스의 연산들을 모아놓은 것데이터베이스에서 논리적인 작업의 단위 (데이터베이스에 장애가 발생했을 때 데이터를 복구하는 작업의 단위)트랜잭션의 모든 명령문이 완벽하게 처리되거나 하나도 처리되지 않아야 데이터베이스가 모순이 없는 일관된 상태를 유지할 수 있음데이터베이스의 무결성과 일관성을 보장하려면 필요한 연산들을 하나의 트랜잭션으로 제대로 정의하고 관리해야 함일반적으로 데이터베이스를 변경하는 INSERT문, DELETE문, UPDATE문의 실행을 트랜잭션..
-
정규화의 개념과 이상 현상정규화(normalization)데이터베이스를 잘못 설계하면 데이터의 삽입, 수정, 삭제 연산을 수행할 때 부작용(이상현상 (anomaly))이 발생정규화는 이상 현상이 발생하지 않도록 릴레이션을 분해(decomposition)하는 과정을 의미데이터베이스를 설계한 후 설계 결과물을 검증하기 위해 사용하기도 함이상 현상의 종류삽입 이상(insertion anomaly) - 새 데이터를 삽입하기 위해 불필요한 데이터도 함께 삽입해야 하는 문제갱신 이상(update anomaly) - 중복 투플 중 일부만 변경되어 데이터가 불일치하게 되는 모순의 문제삭제 이상(deletion anomaly) - 투플을 삭제하면 필요한 다른 데이터까지 함께 삭제되는 데이터 손실의 문제정규화의 필요성관련..
-
다양한 요구 사항을 모두 만족시키는 데이터베이스를 구축하는 일은 어려움저장해야 하는 데이터의 양이 많고 사용자 수가 많은 조직일수록 어렵고 복잡사용자들의 요구 사항을 잘 분석하고, 분석한 결과를 바탕으로 데이터베이스의 논리적, 물리적 구조를 제대로 설계해야할 필요성 존재데이터베이스 설계사용자들의 요구 사항을 고려하여 데이터베이스를 생성하는 과정데이터베이스는 구조를 변경하기 어렵기 때문에 설계 과정에서부터 품질 좋은 데이터베이스를 생성해야 됨품질 기준사용하는 구성원들의 요구 사항을 만족하는지, 데이터의 일관성과 무결성, 사용자가 이해하기 쉽고 접근성이 좋은지 ... etc데이터베이스 설계 방식E-R모델과 릴레이션 변환 규칙을 이용한 데이터베이스 설계와 정규화를 이용한 데이터베이스 설계데이터베이스 설계 과정..
-
SQL관계 데이터베이스를 위한 표준 질의어로 많이 사용되는 언어사용자가 처리를 원하는 데이터가 무엇인지만 제시하고 어떻게 처리해야 하는지 절차를 언급할 필요가 없음 (비절차)DBMS에 직접 접근하여 대화식으로 질의를 작성, C나 Java 같은 언어로 작성한 응용 프로그램에 삽입하여 사용SQL의 분류데이터 조작어, 데이터 정의어, 데이터 제어어모든 SQL 문은 ;으로 문장 끝을 표시, SQL 문에 사용되는 키워드는 대소문자를 구분하지 않음SQL을 이용한 데이터 정의테이블 생성, 생성된 테이블 구조의 변경, 테이블 삭제로 분류테이블 생성 - CREATE TABLE생성할 테이블을 구성하는 속성들의 이름, 데이터 타입 및 제약 사항에 대한 정의, 기본키/대체키/외래키의 정의, 데이터 무결성을 위한 제약조건의 정..
-
1. 해시테이블해시테이블이란 해시함수를 이용해 키를 값에 매핑하는 자료구조구현충돌아무리 좋은 해시 함수라도 충돌을 피하기는 어렵다.예측 가능한 범위 내에서 해시값이 나오고, 데이터와 짝지어지는 것이기 때문에 해시값이 중복될 수 있다. 👉🏻 입력값이 달라도 똑같은 결과가 나오면 충돌이를 다루는 방식은 체이닝(Chaining), 오픈 어드레싱(Open Addressing) 이 있다.오픈 어드레싱은 탐사를 통해 ‘빈 공간을 찾아나서는’ 방식체이닝은 충돌 발생 시 ‘연결’해가는 것오픈 어드레싱 O(1)체이닝 O(n)오픈 어드레싱은 값이 뭉치는 클러스터링이 발생할 수 있고,체이닝은 메모리 오버헤드와 길어질 경우 탐색이 느려진다는 단점그래서 각 언어 별로 해시테이블의 구현 방식이 다른데요. C++, Java, ..
-
자료구조에 대해 알아보자.배열동일한 데이터 타입의 요소들을 연속된 메모리 공간에 순서대로 저장하는 자료구조데이터 조회에서 O(1)의 시간 복잡도를 가진다.장점연속된 메모리 공간을 사용하므로 처음 데이터의 주소를 알면 나머지도 쉽게 찾을 수 있다.단점크기가 고정되어 추가/삭제에 제약이 있다.연결리스트각각의 데이터가 메모리 공간 상에 고유한 노드로 존재하며, 해당 노드에 앞과 뒤의 메모리 주소를 기억하고 있는 형태즉, 노드들이 서로 연결되어 있는 구조데이터 조회 시 순차적으로 탐색하기 때문에 O(N)의 시간 복잡도데이터 추가와 삭제에는 O(1)의 시간 복잡도Array vs Linked List배열 (Array): 파이썬의 리스트. 접근 쉬움, 삽입 어려움. (파이썬의 리스트)연결리스트: 직접 구현. 접근 어..
-
3.6 혼잡 제어의 원리💡 네트워크 혼잡의 원인 : 너무 많은 출발지가 너무 높은 속도로 데이터를 보내려고 시도→ 이를 처리하기 위해서는 네트워크 혼잡을 일으키는 송신자들을 억제하는 매커니즘이 필요하다. 3.6.1 혼잡의 원인과 비용시나리오 1 : 2개의 송신자와 무한 버퍼를 갖는 하나의 라우터두 호스트 A와 B가 각각 출발지와 목적지 사이에서 단일 홉을 공유하는 연결을 갖는다.호스트 A와 B의 애플리케이션이 λin 바이트/초의 평균 전송률로 데이터를 전송하고 있다.라우터 버퍼의 양은 무한하다고 가정한다. 아래 그래프들은 A의 연결 성능을 나타낸다.연결당 처리량(per-connection throughput) : 수신자 측에서의 초당 바이트 수0 ~ R/2 사이의 전송률 : 수신자 측의 처리량은 송신자..
-
8.4 종단점 인증종단점 인증이란 하나의 통신 개체가 다른 개체에게 자신의 신원을 컴퓨터 네트워크상으로 증명하는 작업이다.예를 들어, 전자 메일 사용자가 서버에 신원을 입증할 수 있다.서로 간의 인증은 인증 프로토콜의 한 부분으로서 교환된 메시지와 데이터만을 기반으로 수행되어야 한다. 대부분의 인증 프로토콜은 다른 프로토콜을 수행하기 전에 수행된다.즉, 인증 후에 작업을 수행한다. 인증 프로토콜 ap(authentication protocol) 2.0송신자가 이미 알려진 네트워크 주소(IP 주소)를 가지고 통신을 한다면 수신자는 인증 메시지를 가지고온 IP 데이터 그램 출발지 주소가 송신자의 IP 주소와 일치하는지 확인함으로써 앨리스를 인증할 수 있다.그러나 IP 데이터그램을 생성해서 원하는 출발지 IP..