정규화 (Nomalization) 함수 종속성을 이용해 릴레이션을 연관성이 있는 속성들로만 구성되도록 분해해서 이상현상이 발생하지 않는 바람직한 릴레이션을 만들어가는 과정이다. 정규화를 통해 릴레이션은 무손실 분해 (nonloss decomposition) 되어야 한다. 릴레이션은 의미적으로 동등한 릴레이션들로 분해되어야 하고 분해로 인한 정보 손실이 발생하지 않아야 한다. 분해된 릴레이션들을 자연조인하면 (pk를 기준으로 조인 & 중복 컬럼은 제거) 전의 릴레이션으로 복원 가능해야 한다. 정규형 (Nomal Form) 릴레이션이 정규화된 정도 각 정규형마다 제약조건이 존재한다. 정규형이 높아질 수록 제약조건이 많아지고 엄격해지며 마찬가지로 릴레이션의 데이터 중복이 줄어 이상현상이 발생하지 않는 바람직한..

Transport Layer Transport Layer is responsible for the delivery of a message from one process to another. 3계층과 뗄수없는 매우 밀접한 관계에 있는 계층이다. NAT의 경우 IP & PORT 의 조합으로 통신을 하게 된다. Network Layer : Host 간 통신 Transport Layer : network layer에 의존한 프로세스 간 통신 IP 주소 + Port 번호 -> Socket Address가 된다. 소켓 통신은 콘센트를 소켓에 꽂듯이 직접 연결해서 통신하는 방법이다. 트랜스포트 계층 역활 전송파트 Message를 전송할 만한 segments로 Dividing해서, Numbering하고, Sending..
https://www.acmicpc.net/problem/3190 🐢 설명 2차원 맵을 뱀이 돌아다닌다. 이때 뱀이 자신의 몸에 닿거나 or 벽을 넘어가면 종료된다. 맵에 있는 사과를 먹으면 몸의 길이가 1 늘어난다. 그렇지 않으면 앞으로 계속 간다. 특정 초에 이동을 완료하고 방향만 바꾸는 명령이 주어진다. 사과를 안먹은 경우에는 이동 후 꼬리를 땡겨야 하는데 이를 위해서 뱀의 이동 내역을 담기 위한 Deque을 사용했다. 이동할 때 다음 위치의 유효성 검사를 하고 유효한 경우 사과 여부에 따라 구분하여 처리한다. 사과가 없다면 덱의 마지막을 뽑아서 제거하고, 있다면 다음 좌표를 덱의 앞에 넣어준다. 이동이 끝나면 명령의 시간과 현재 시간을 비교해서 같다면 왼쪽 / 오른쪽으로 방향만 바꿔준다. 조심할 ..

https://www.acmicpc.net/problem/20058 🐢 설명 하나의 보드에서 부분사각형으로 회전을 하고 모든 회전이 끝나고 나면 각 좌표들에 대해서 인접 노드의 얼음 개수가 3미만인 경우를 찾고, 해당 좌표의 얼음을 1 감소시킨다. 이 후 모든 얼음의 개수를 세고, 가장 큰 얼음덩어리의 면적을 구한다. 이때 각 작은 사각형마다 회전을 하기위해 작은사각형의 크기만큼 x좌표와 y좌표를 이동시켜서 회전을 했다. 🐢코드 //얼음이 있는 칸 3개 또는 그 이상과 인접해있지 않은 칸은 얼음의 양이 1 줄어든다 public class 마법사상어와파이어스톰_20058 { static int N, Q, L; static int[] dy = {-1, 1, 0, 0}; static int[] dx = {0,..
https://www.acmicpc.net/problem/20057 🐢 설명 모래가 정사각형 공간에 존재한다. 토네이도는 반시계 방향으로 정가운데에서 불기 시작한다. 이때 방향은 , ㅗ 순서이다. 바람이 불면 해당 방향 바로 앞 좌표에 존재하는 모래가 이동한다. (3, 3)에서 바람이 왼쪽으로 불면, (3, 2)의 모래가 이동한다. 모래가 이동하면 문제에서 나오는데로 모래가 먼저 다 퍼진다. 이때 0이하의 모래는 무시한다. 기존 모래 - 실제로 퍼진 모래만이 a부분으로 이동한다. 이때 기존 모래는 0이 된다. 이동거리가 m일 때 총 2회씩 이동하고 m의 길이가 1 증가한다. 또한 m이 총 공간의 길이 - 1에 도달할 경우 3회 이동을 하고 종료된다. 토네이도가 왼쪽으로 이동할 때 모래가 이동하는 경우와 ..

HTTP Hypter Text Transfer Protocol Hyper Text : 대표적으로 html이 있다. 클라이언트와 서버 사이에서 이뤄지는 요청/응답 프로토콜이다. HTTPS Hyper Text Transfer Over Sercure Socker Layer SSL/TLS 상에서 동작하는 HTTP이다. TLS (SSL) Transport Layer Security 초기 발명되었을 때 이름이 SSL이었고, 이후 표준화 기구 IETF로 이관되면서 TLS라는 이름으로 변경되었다. 즉, 동일한 프로토콜을 지칭한다. TLS는 SSL 3.0을 계승한다. Application Layer와 Transport Layer 중간에서 역활을 수행한다. 응용 프로그램이 전달한 데이터를 암호화해서 TCP에 전달하거나, ..

Transport Layer (전송계층) 전송계층은 사용자 데이터를 상대 호스트의 상대 프로세스까지 전댈해주는 역활을 한다. 프로세스는 여러개가 동시에 실행될 수 있는데 Web 서버의 프로세스 클라이언트의 프로세스가 데이터를 주고 받기 위한 책임을 진다. 여러 프로세스 중 원하는 프로세스를 특정하기 위해서는 식별자를 통해 프로세스를 구별해야 하는데 이를 위해 사용하는 것이 Port Number (포트 번호)이다. Port Number 포트번호 실제 이름대로 항구의 번호를 의미한다. 원하는 도착지 (ex. 부산항)까지는 잘 왔으니 자신이 전달해줄 선착장을 구별해주는 용도이다. Port Number (Transport Layer 주소) Port 번호는 16bit로 2^16개가 존재한다. (65536개) 0 ..

Semaphore Cirtical Section에 대한 문제 해결 알고리즘을 추상화 시킨것. Integer 변수: 정수값은 자원의 개수를 의미한다. 아래의 두가지 Atomic 연산으로만 접근이 가능하다. Semaphore 변수 "S" P 연산 /* P 연산 */ P(S): if (S 0, S가 양수가 되면 자원을 획득 */ else S--; /* 자원 획득 */ S가 0이하라면 해당 프로세스를 Block 시킴. S가 1이상이라면 해당 자원을 획득하여 사용함. → 공유 데이터를 획득하는 과정, semaphore S의 값을 획득하는 과정 V 연산 /* V 연산 */ V(S): S++; // 자원 반납 wake_up(); /* block 중인 프로세스 깨움 */ → 자원을 사용하고 나서 반납하는 과정 S의 값..
RENAME 테이블 명을 변경할 때 사용 -- rename table show tables; rename table test_table to test_table1; show tables; ALTER 열과 관련된 수정을 할 때 사용 열의 이름을 바꾸거나, 타입을 변경, 추가, 삭제 할 수 있다. -- column TYPE 변경 desc test_table3; alter table test_table3 modify data2 varchar(10000); desc test_table3; -- column 이름&속성 변경 **이름만 바꾸더라도 속성은 그대로 꼭 적어줘야 한다. desc test_table3; alter table test_table3 change data3 data30 float(100, 4);..

Critical Section이란? 공유자원 접근 순서에 따라 실행 결과가 달라지는 프로그램의 영역 Critical-Section Problem n개의 프로세스가 공유 데이터를 동시에 접근하려는 경우 프로세스의 code Segment에는 공유 데이터를 접근하는 코드인 Critical-Section이 존재한다. 하나의 프로세스가 Critical Section에 있을 때, 다른 모든 프로세스는 Critical Section에 들어갈 수 없어야 한다. 프로세스의 일반적인 구조 do { entry section; // Critical Section으로 들어감 ~ Critical Section; ~ exit section; // Critical Section에서 나옴 remainder section; } whil..

이상현상 불필요한 데이터 중복으로 인해 릴레이션에 대한 데이터 삽입, 수정, 삭제 연산을 수행할 때 발생할 수 있는 부작용 정규화 이상현상을 제거하면서 데이터베이스를 올바르게 설계해 나가는 과정 이상현상 종류 삽입이상 : 새 데이터를 삽입하기 위해 불필요한 데이터도 함께 삽입해야 하는 문제 갱신이상 : 중복 투플 중 일부만 변경하여 데이터가 불일치하게 되는 모순의 문제 삭제이상 : 투플을 삭제하면 꼭 필요한 데이터까지 함께 삭제되는 데이터 손실의 문제 예시 {학번, 수업, 가격} 투플을 갖는 수강 테이블이 존재한다고 가정. class Table; 100, c, 10000 101, java, 20000 102, python, 30000 103, c#, 40000 삭제이상 발생 100번 학생이 c 수업을 취..

Process Synchronization Process Synchronization 문제 데이터를 읽고 씀에 있어서 특정 주소 공간에서 값을 가져와서 연산 후 다시 저장을 하는 과정에서 프로세스끼리 충돌이 발생할 수 있다. 공유 데이터의 동시 접근은 데이터의 불일치를 발생할 수 있다. 일관성 유지를 위해 협력 프로세스 간의 실행 순서를 정해주는 메커니즘이 필요하다 Race Condition이란? A. 두개 이상의 Thread or Process가 공유자원을 병행적으로 읽거나 쓰는 상황을 말한다. Storage(Memory Address Space)를 공유하는 Execution(CPU Process)이 여러개가 있는 경우 Race Condition의 가능성이 있다. Multi-Processor Syste..
- Total
- Today
- Yesterday