CS 6

데이터베이스 기본키, 후보키, 대체키, 슈퍼키, 외래키란?

학생 릴레이션(테이블) 학번 (primary key) 이름 학과 주민등록번호 성별 전화번호 20230001 김 A학과 000000-1231230 남 1 20230002 김 A학과 000000-1931231 남 2 20230003 신 B학과 000000-2731232 여 3 20230004 홍 D학과 000000-2631233 여 4 20230005 임 C학과 000000-2531234 여 5 20230006 최 A학과 000000-1431235 남 6 기본키 (primary key) 릴레이션에서 튜플을 유일하게 식별할 수 있는 속성이나 속성의 집합입니다. 예를 들어, 학생 릴레이션에서 학번이 기본키가 될 수 있습니다. 기본키는 유일성과 최소성을 만족해야 합니다. 즉, 중복되거나 불필요한 속성이 없어야 합..

[운영체제] 프로세스란? 메모리 구조

프로세스 실행 파일로 있던 프로그램을 메모리에 적재 되어 CPU를 할당 받아 실행(연산) 되는 것을 프로세스 라고 한다. 프로그램은 단순히 명령어들의 집합체일 뿐이다. 메모리의 구조 Stack : 함수 호출시 지역 변수, 매게 변수가 저장되는 임시 메모리 영역 Heap : 사용자가 직접 공간을 할당(malloc) 해체(free)하는 메모리 영역 Data : 전역변수, 스태틱변수가 저장되는 메모리 영역 Code : 프로그램의 실행 코드가 저장되는 메모리영역

CS/운영체제 2023.01.23

[자료구조] Linked List(연결 리스트) 란?

Linked List Array의 메모리를 효율적으로 쓰기 위한 자료구조 ① 데이터의 내용을 담는 부분과 ② 다음 노드의 주소값을 갖는 포인터 변수로 구성되어 있다. 리스트의 첫번째 노드를 헤드(Head) 마지막 노드를 테일(Tail)이라고 한다. Linked List는 메모리상에서 연속적이지 않지만, 각각의 원소가 다음 메모리 주소값을 저장하고 있기 때문에 논리적인 관점에서는 연속적이라고 볼 수 있다. tree, graph등 다른 자료구조를 구현할 때 자주 쓰이는 기본 자료구조이다. 중간 인덱스의 데이터 삽입, 삭제 Array의 경우는 데이터를 전부 한칸씩 밀어줘야 해서 O(n)의 시간이 걸리는데 반해 Linked List는 node가 가르키는 메모리 주소만 바꾸어 주면 되기 때문에 O(1)의 시간이 ..

CS/자료구조 2023.01.22

[자료구조] Dynamic Array(동적 배열) 란?

Array의 고정된 배열 size 의 단점을 보완하기 위해 나온 자료구조 Array 란? Array의 경우 배열의 크기가 고정 되어 선언시 배열의 크기 보다 많은 데이터의 갯수를 저장할 수 없다. int[4] a = new int[]{1,2,3,4} // ok int[4] a = new int[]{1,2,3,4,5} // error 이에 반해 Dynamic Array는 데이터의 저장 공간이 부족 하면 알아서 resizing를 하기 때문에 데이터의 저장이 자유롭다. Dynamic Array가 resizing 를 하는 방법 1. 기존의 선언되었던 배열보다 큰 배열을 만든다. (보통 2배 size 할당하는 doubling 사용) 2. 배열의 값을 옮긴다. 3. 기존 배열을 삭제한다. 시간복잡도 데이터 추가시 ..

CS/자료구조 2023.01.22

[자료구조] Array(배열) 란?

Array (배열) Array란 연관된 data를 모아 메모리상에 연속적이며 순차적으로 미리 할당된 크기만큼 저장하는 자료구조이다. int[5] a = new int[]{5,3,1,2,4} Array 특징 메모리를 처음에 할당하면 이후 크기를 변경할 수 없다. 데이터가 순차적으로 저장된다. 중복 데이터를 허용한다. Array 시간복잡도 조회, lastIndex에 추가, lastIndex에 삭제 : O(1) 중간 삽입, 중간 삭제, 탐색 : O(n) 결론 장점: Array는 조회와 추가가 빠르다 따라서 조회를 자주 해야 되는 작업에서 Array를 많이 쓴다. 단점: Array는 선언시 크기를 미리 정해야 함 100 크기를 선언 했는데 90개의 데이터를 넣었다면? 10 만큼의 메모리 낭비 100 크기를 선언..

CS/자료구조 2023.01.22

[네트워크] IP (인터넷 프로토콜) 이란?

인터넷 프로토콜(IP, Internet Protocol)은 송신 호스트와 수신 호스트가 패킷 교환 네트워크(패킷 스위칭 네트워크, Packet Switching Network)에서 정보를 주고받는 데 사용하는 정보 위주의 규약(프로토콜, Protocol)이며, OSI 네트워크 계층에서 호스트의 주소지정과 패킷 분할 및 조립 기능을 담당한다. 줄여서 아이피(IP)라고도 한다. IP의 정보는 패킷 혹은 데이터그램이라고 하는 덩어리로 나뉘어 전송된다. IP에서는 이전에 통신한 적 없는 호스트에 패킷을 보낼 때 경로 설정이 필요없다. IP는 비신뢰성(unreliability)과 비연결성(connectionlessness)이 특징이다. 참고 : [나무위키] 아래는 김영한님 강의를 듣고 정리한 내용이다. 모든 개발..

CS/네트워크 2023.01.21