CS 전공 24

[데이터베이스] 8. 관계 데이터 연산

바쁜 삶을 사느라 블로그 관리를 못했다... 뭐했다고 벌써 기말고사지? 이제 기말 공부 시작이다.1. 관계 데이터 연산의 개념1. 관계 데이터 연산관계 데이터 연산은 총 두 가지로 나눌 수 있다.- 관계 대수 : 원하는 결과를 얻기 위해 데이터의 처리 과정을 순서대로 기술 (절차적 언어)- 관계 해석 : 원하는 결과를 얻기 위해 처리를 원하는 데이터가 무엇인지만 기술 (비절차적 언어) 관계 대수와 관계 해석은 기능과 표현력 측면에서 동등한 능력을 가진다. 또한, 관계 대수나 관계 해석으로 기술할 수 있는 모든 질의를 기술할 수 있는 데이터 언어는 관계적으로 완전하다고 판단한다.2. 관계 대수관계 대수는 폐쇄적인 특징을 가진다. 이는 피연산자도 릴레이션이고 당연히 연산의 결과도 릴레이션으로 나온다는 특징이..

CS 전공/DB 2024.06.02

[데이터베이스] 7. 정규화

1. 정규화의 개념과 이상 현상1. 이상 (Anomaly) 현상이상 현상이란, 불필요한 데이터 중복으로 인해 릴레이션에 대한 데이터 삽입, 수정, 삭제, 연산을 수생할 때 발생할 수 있는 부작용이다.이러한 이상 현상을 제거하면서 DB를 올바르게 설계해 나가는 과정이 정규화이다. 이상 현상의 종류는 3가지가 있다.1) 삽입 현상 : 새 데이터를 삽입하기 위해 불필요한 데이터도 함께 삽입해야 하는 문제 (NULL 값이 들어갈 수도 있는 문제)2) 갱신 이상 : 중복 튜플 중 일부만 변경하여 데이터가 불일치하게 되는 문제3) 삭제 이상 : 튜플을 삭제할 때 꼭 필요한 데이터까지 삭제되는 데이터 손실의 문제이다.1) 삽입 이상: 이벤트에 참여하지 않은, 아이디가 'melon', 이름이 '성원..

CS 전공/DB 2024.04.24

[데이터베이스] 6. 데이터베이스 설계

1. 데이터베이스 설계 단계1. 데이터베이스 설계 데이터베이스 설계는 사용자의 다양한 요구 사항을 고려하여 데이터베이스를 생성하는 과정이다. 대표적인 설계 방법으로 E-R 모델과 릴레이션 변환 규칙을 이용한 설계이다.2. 데이터베이스 설계 단계데이터베이스 설계 단계는 다음과 같다.요구 사항 분석 → 개념적 설계 → 논리적 설계 → 물리적 설계 → 구현 1) 요구 사항 분석- 목적 : 사용자의 요구 사항을 수집하고 분석하여 데이터베이스의 용도를 파악한다.- 결과물 : 요구 사항 명세서 우리가 해야 할 작업은 사용자의 업무 분석과 요구 사항 수집이다. 그리고 요구 사항 수집을 통해 요구 사항 명세서를 작성한다. 2) 개념적 설계- 목적 : DBMS에 독립적인 개념적 스키마 설계-..

CS 전공/DB 2024.04.24

[데이터베이스] 5. 관계 데이터 모델

1. 관계 데이터 모델의 개념 1. 관계 데이터 모델의 기본 개념 - 개념적 구조를 논리적 구조로 표현하는 논리적 데이터 모델이다. - 하나의 개체에 관한 데이터를 하나의 릴레이션에 저장한다. 2. 관계 데이터 모델의 기본 용어 1) 릴레이션 : 하나의 개체에 관한 데이터를 2차원 테이블의 구조로 저장한 것이다. 2) 속성 : 릴레이션의 열에 해당하는 부분으로 파일 관리 시스템 관점에서 필드에 대응한다. 3) 튜플 : 릴레이션의 행에 해당하는 부분으로 파일 관리 시스템 관점에서 레코드에 대응한다. 4) 도메인 : 하나의 속성이 가질 수 있는 모든 값의 집합이다. 5) 널 : 속성 값을 모르거나 해당되는 값이 없다는 표현이다. 6) 차수 : 속성의 개수 7) 카디널리티 : 튜플의 개수 3. 릴레이션의 구성..

CS 전공/DB 2024.04.23

[운영체제] 6. 스케줄링

길고 긴 운영체제를 보고 드디어 절반이 왔다. 절반까지 왔으니 요약으로 먼저 시작하겠다! 0. 개요부터 쓰레드까지 1. 운영체제의 개요 - 운영체제가 하는 일: 컴퓨터라는 하드웨어을 잘 쓰기 위한 것 (효율적, 안정적, 확장적, 편리함) - 그런데, 컴퓨터는 한정된 자원을 여럿이서 사용해야한다. (다중 프로그래밍 방식을 통해) - 이를 위해 프로세스, 메모리, 파일, 장치, 네트워크, 보안 기능들이 존재한다. 2. 프로세스와 쓰레드 - 위의 기능을 수행하기 위해 나온 개념이 프로세스와 쓰레드이다. - 폰 노이만 구조에서 프로그램은 프로세스가 되어야 한다. (즉, 메모리에 적재되어야 한다.) - 이것을 잘하기 위한 방법 : 프로세스 생명 주기와 Context Switching, TCB - 메모리에 올릴 때..

CS 전공/OS 2024.04.21

[운영체제] 5. 쓰레드

1. 쓰레드 개요 1. 쓰레드가 나오게 된 계기 쓰레드가 나오게 된 계기는 프로세스의 문제점에 있다. 일단 전 게시물에 프로세스 생성 과정은 상당히 복잡하다고 했다. 메모리를 할당한 뒤 메모리를 fork()해주고 PCB를 할당한 다음에 준비 상태 -> 실행 상태 -> exec() 등등 상당히 복잡한 과정을 거치므로 생성의 오버헤드가 큰 편이다. 또한, 한 프로세스에서 다른 프로세스로 옮겨가는 과정인 Context Switching 과정도 오버헤드가 크다. 우선 기존에 처리하던 프로세스의 정보들을 다 저장을 한 뒤 새로운 프로세스를 실행한 뒤 다시 복귀하는 과정에서도 그 과정을 한 번 더 반복해야 한다. 마지막으로, 프로세스 간의 통신이 어렵다. 프로세스는 완전히 독립된 주소 공간을 가지고 있기에 개입이 ..

CS 전공/OS 2024.04.20

[데이터베이스] 4. 데이터 모델링

1. 데이터 모델링과 데이터 모델의 개념 1. 2단계 데이터 모델링 - 개념적 데이터 모델링 : 현실 세계의 중요 데이터를 추출하여 개념 세계로 옮기는 작업 - 논리적 데이터 모델링 : 개념 세계의 데이터를 데이터베이스에 저장하는 구조로 표현하는 작업 2. 데이터 모델 데이터 모델이란, 데이터 모델링의 결과물을 표현하는 도구이다. 1) 개념적 데이터 모델 : 사람의 머리로 이해할 수 있도록 현실 세계를 개념적 모델링하여 데이터베이스의 개념적 구조로 표현하는 도구이다. (개체 - 관계 모델) 2) 논리적 데이터 모델 : 개념적 구조를 논리적 모델링하여 데이터베이스의 논리적 구조로 표현하는 도구이다. (관계 데이터 모델) 3. 데이터 모델의 구성 1) 데이터 구조 (정적) - 개념적 모델링에서의 데이터 구조..

CS 전공/DB 2024.04.19

[데이터베이스] 3. 데이터베이스시스템

1. 데이터베이스 시스템의 정의 1. 데이터베이스 시스템이란? 데이터베이스 시스템이란, 데이터베이스에 데이터를 저장하고, 이를 관리형 조직에 필요한 정보를 생성해주는 시스템이다. 사용자가 데이터를 데이터베이스 관리 시스템에 입력하면 데이터베이스에 데이터를 저장하고 관리하는 총 시스템을 데이터베이스 시스템이라고 한다. 2. 스키마와 인스턴스 1) 스키마 : 데이터베이스에 저장되는 데이터 구조와 제약 조건을 정의한 것 2) 인스턴스 : 스키마에 따라 데이터베이스에 실제로 저장된 값이다. 자료형이 안 들어갔지만 스키마의 예는 다음과 같다. 2. 데이터베이스의 구조 1. 3단계 데이터베이스 구조 미국 표준화 기관인 ANSI/SPARC에서 제안된 구조로 데이터베이스를 쉽게 이해하고 이용할 수 있도록 하나의 데이터..

CS 전공/DB 2024.04.19

[운영체제] 4. 프로세스 (2)

지난 포스트에 이어서..! 1. 프로세스의 생성과 복사 1. 프로세스 생성 ▶ 프로세스는 언제 생성되는가? 1) 시스템 부팅과정에서 필요한 프로세스 생성 2) 사용자의 로그인 후 사용자의 대화를 위한 프로세스 생성 3) 새로운 프로세스를 생성하도록 하는 사용자의 명령 4) 배치 작업 실행 시 5) 사용자의 응용 프로그램이 시스템 호출로 새 프로세스 생성 하지만, 메모리에 올라갔다고 단순히 프로세스가 아니다! → 그냥 메모리에만 올라와 있는 것이 아닌 PCB가 존재하여 OS가 제어 가능한 형태가 되어야 한다. 2. 프로세스 생성 과정 1) 생성하려는 실행 파일의 경로를 OS에 전달 2) OS는 메모리에 프로그램을 적재 → Code 영역에 프로그램의 코드를 적재시키고, Data 영역에 전역/정적 변수들을 할..

CS 전공/OS 2024.04.18

[운영체제] 3. 프로세스 (1)

어느덧 프로세스이다. 운영체제는 정말 외워야 할 과목이 많은 것 같다. 짚고 가야할 부분 3가지 - 프로세스 개념 - 프로세스 구조 - 프로세스 생성과 계층 구조 1. 프로세스 1. 프로세스의 개념 프로세스는 실행 파일이 메모리에 로딩되어 실행되는 상태이다. 반드시 메모리에 올라가야 실행될 수 있다. 그 외에도 이렇게 정의된다. - 주기억 장치에 상주된 프로그램이 CPU에 의해 처리되는 상태 - CPU에 의해 현재 실행되고 있는 프로그램 - PCB의 존재로서 명시되는 것 - 프로세서가 할당되는 개체로서 디스패치가 가능한 단위 를 프로세스라 한다. 그럼 현대 운영체제 방식인 다중 프로그래밍 방식에서 프로세스를 살펴보자. 2. 다중 프로그래밍 방식에서의 프로세스 우리가, 컴퓨터나 휴대폰을 볼 때 한 가지 프..

CS 전공/OS 2024.04.18