CS

    정규화 수행과정 #도부이결다조

    - 1차 정규화: 원자값 아닌 도메인 분해(도)- 2차 정규화: 부분 함수 종속 제거(부)- 3차 정규화: 이행 함수 종속 제거(이)- 보이스-코드 정규화: 결정자가 후보키가 아닌 것 제거(결)- 4차 정규화: 다치 종속 제거(다)- 5차 정규화: 조인 종속 제거(조)1차 정규화- 하나의 컬럼에 원자값을 갖도록 조정2차 정규화- 부분 함수 종속 제거- 기본키의 일부가 다른 컬럼과 종속3차 정규화- 이행 함수 종속- 물론 학번->학부->등록금을 거치지 않고도, 등록금은 학부에 종속된다(학번에을 알면 해당 학생의 등록금을 무조건 알 수 있기 때문이다.) 하지만 의미적으로 등록금은 학부에 종속적으로 결정되는 것이 맞다. 따라서 이를 분리해 주어야 하는 것이다.보이스-코드 정규화- 결정자가 후보키가 아닌것 제거..

    힙 (Heap) / 이진 힙 (Binary Heap)

    정의힙 (heap)은 이진 힙 (binary heap)이라고도 하며, 최댓 값 및 최솟값을 찾아내는 연산을 빠르게 하기 위해 고안된 완전 이진트리(complete binary tree)를 기본으로 한 자료구조다. 힙은 다음과 같은 속성을 가지고 있다.완전 이진트리(Complete Binary Tree) 이다.부모노드의 키값과 자식노드의 키값 사이에는 대소관계가 성립한다.키값 대소관계는 오로지 부모자식 간에만 성립되며 형제사이에는 대소관계가 정해지지 않음.힙의 종류1. 최대 힙 (Max Heap)부모 키값이 자식노드 키값보다 큰 힙Key(parent) ≥ Key(child)가장 큰 값이 루트노드에 있음2. 최소 힙 (Min Heap)부모 키값이 자식노드 키값보다 작은 힙Key(parent) ≤ Key(ch..

    우선 순위 큐 - Priority Queue

    속성1. 모든 항목에는 우선 순위가 있다2. 우선 순위가 높은 요소는 우선 순위가 낮은 요소보다 먼저 queue에서 제외된다.3. 두 요소의 우선 순위가 같으면 queue의 순서에 따라 제공된다. 4 → 8 → 2 순으로 데이터가 들어간다고 했을 때 큐와 우선순위 큐의 처리 순서는 다음과 같다.(여기서 높은 값이 높은 우선순위를 갖는다고 가정.)input : 4 → 8 → 2큐 : 4 → 8 → 2우선순위 큐 : 8 → 4 → 2기본 동작enqueue()- queue에 새 요소를 삽입.dequeue() - queue에서 최대 우선 순위 요소를 삭제하고 그 값을 반환.peek() - queue에서 최대 우선순위 요소를 반환.구현  힙 방식이 최악에 경우라도 O(logN)을 보장하기 때문에 일반적으로 힙을 ..

    [네트워크] 호스트 (host), 클라이언트 (Client), 서버 (Server)

    클라이언트클라이언트는 서버에서 사용할 수 있는 서비스에 엑세스하는 컴퓨터 하드웨어 장치 또는 소프트웨어다. 서버는 종종 실제 별도의 컴퓨터에 위치한다.서버서버는 다른 컴퓨터의 요구 사항을 충족하기 위해 서비스를 실행하는 물리적인 전용 컴퓨터다. 실행 중인 서비스에 따라 파일 서버, 데이터베이스 서버, 홈 미디어 서버, 인쇄 서버 또는 웹 서버일 수 있다.호스트호스트는 네트워크를 통해 데이터 또는 서비스를 제공하는 다른 컴퓨터에 연결된 컴퓨터다. 이론적으로 네트워크에 연결된 모든 컴퓨터는 네트워크의 다른 피어에 호스트 역할을 한다. 본질적으로 호스트는 네트워크에 있는 둘 이상의 컴퓨터의 논리적 관계를 반영한다. 컴퓨터가 다른 컴퓨터의 호스트일 수 있다. 마찬가지로 라우터는 다른 라우터의 호스트일 수 있다...

    [네트워크] 접근 통제 정책 (MAC, DAC, RBAC)

    - 접근 통제 정책어떤 상황에서 행위를 허용하거나 거부할 것인지에 대한 내용을 나타낸다. 접근 통제 정책은 크게 세가지가 있다. - MAC (Mandatory Access Control) : 강제적 접근 통제주체, 객체 등급기반 접근권한 부여자원의 보안 레벨과 사용자의 보안 취급 인가를 비교하여 접근 제어를 한다.어떤 주체가 어떤 객체에 접근하려 할 때 양자의 보안 레벨(보안등급)을 비교하여 높은 보안을 요하는 정보가 낮은 레벨의 주체에게 노출되지 않도록 접근을 제한하는 방법 이다.  - DAC (Discretionary Access Control) : 임의적 접근 통제접근 주체 신분기반 접근권한 부여접근 주체가 속해 있는 그룹의 신원에 근거하여 객체에 대한 접근을 제한하는 방법 이다.자원의 소유자가 접..

    [UML] 다이어그램 종류 및 특징 (구조별, 행위별)

    구조 다이어그램Class Diagram(클래스 다이어그램): 클래스의 속성, 함수, 변수타입들로 구성된 다이어그램.  Object Diagram(객체 다이어그램): 클래스의 인스턴스, 값이 매겨진 행동을 가지고 있는 독립된 객체정보를 표현하는 다이어그램. Package Diagram(패키지 다이어그램): UML의 다양한 모델요소를 그룹화한 다이어그램. Component Diagram(컴포넌트 다이어그램): 컴포넌트끼리의 구조 관계를 표현한 다이어그램. Deployment Diagram(배치 다이어그램): 소프트웨어, 하드웨어 등을 포함한 시스템의 물리적인 구조를 나타내는 다이어그램. 행위 다이어그램Use Case Diagram(쓰임새 다이어그램): 사용자 관점에서 바라본 시스템을 표현한 다이어그램. Ac..

    부동 소수점 오차 (개념)

    실수 표현 방식컴퓨터는 모든 수를 0과 1로 이루어진 2진수로 표현한다. 이것은 정수뿐만 아니라 소수점이 존재하는 실수도 마찬가지이다.  정수의 경우 이러한 표현이 간단하지만, 실수를 2진수로 표현하는 것은 복잡하다. 실수를 표현하기 위한 다양한 방법들이 연구되었으며 현재는 크게 2가지 방식이 존재한다.고정 소수점 (fixed point) 방식부동 소수점 (floating point) 방식고정 소수점 (fixed point) 방식실수는 보통 정수부와 소수부로 나눌 수 있다. 따라서 실수를 표현하는 가장 간단한 방법은 소수부의 자릿수를 미리 정하고, 고정된 자릿수의 소수를 표현하는 것이다.32비트 CPU에서 고정 소수점 방식으로 실수를 표현하면 위와 같다.하지만, 이 방식은 정수부와 소수부의 자릿수가 크지..

    스택 포인터

    스택FILO(First In Last Out)형태로 데이터를 액세스하는 데이터 구조이다. 즉, 가장 나중에 들어온 것부터 차례로 액세스하는 것이다. Heap은 Stack과 반대로 FIFO형태로 데이터를 액세스한다. 스택은 한 곳으로만 액세스할 수 있으며, 이부분을 스택의 탑이라고 한다. FILO의 액세스 순서 : 5 → 4 → 3 → 2 → 1FIFO의 액세스 순서 : 1 → 2 → 3 → 4 → 5 중앙처리장치는 기억장치의 특정 영역을 스택 영역으로 지정하여 운영한다.  스택에 저장되는 데이터의 크기는 레지스터의 크기, 데이터 버스의 폭과 같다. 즉 스택은 컴퓨터의 단어(word)단위로 액세스 된다. 만일 기억장치가 바이트 단위로 구성되어 있고 레지스터의 크기가 16 비트이면, 두 개의 기억장소에 한개..

    CISC / RISC 개념 및 차이

    1) CISC / RISC의 개념CPU(중앙처리장치) 를 설계하는 방식이다.CPU가 작동하려면 프로그램이 있어야 하고 명령어를 주입해서 설계를 한다.-명령어가 H/W 적인 방식을 RISC라고 한다.-명령어가 S/W 적인 방식을 CISC라고 한다.2) CISC (Complex Instruction Set Computer)복잡하고 많은 종류의 명령어와 주소 지정 모드를 사용한다.가변 길이 명령어 형식이다.100개 ~ 250개 정도의 많은 명령어를 가지고 있어 설계가 어렵다.마이크로 프로그래밍(S/W) 제어 방식이다.명령어가 S/W적이므로 호환성이 좋다.명령어를 해석한 후에 명령어를 실행한다.컴파일 과정이 쉽고, 호환성이 좋다는 장점이 있지만 속도가 느리다.intel 사의 CPU에 주로 사용되었다.3) RIS..

    중앙처리장치(CPU) - 3 (CPU 명령어 사이클)

    CPU 명령어 사이클(instruction cycle) 마이크로프로세서(CPU)가 메모리로부터 프로그램 된 한개의 기계어 명령어를 가져와 어떠한 동작을 요구하는지를 결정하고 명령어가 요구하는 동작을 수행하는 연속적인 동작 과정이다. 즉, 명령어를 꺼내와 실행하기 위한 연속적인 동작 과정이다. 명령이 순환하는 동안 CPU에 사용되는 회로는 다음과 같다. PC : 다음에 실행할 명령어에 대한 메모리 주소를 추적 MAR : 다음에 실행할 명령어의 메모리에 있는 주소를 보관 MBR : 메모리로부터 페치(fetch)되어 cpu가 처리할 준비가 된 데이터나 메모리에 저장되어 대기 중인 데이터를 보관하는 양방향 레지스터 IR : 메모리로부터 fetch 되는 (현재 실행할) 명령어를 일시적으로 보관하는 영역 CU : ..