CS(49)
-
[데이터베이스] 데이터베이스 키(key)의 개념 및 종류
데이터베이스에서 키(key)는 조건에 만족하는 튜플을 찾거나, 순서대로 정렬할 때 다른 튜플들과 구별할 수 있는 기준이 되는 속성이다. 튜플(Tuple) : 릴레이션을 구성하는 각각의 행, 속성의 모임으로 구성된다. 키의 종류로는 슈퍼키, 후보키, 기본키, 대체키, 외래키가 있다. 키를 알아보기에 앞서, 최소성과 유일성의 개념을 먼저 짚을 필요가 있다. ▷ 유일성 하나의 키값으로 튜플을 유일하게 식별할 수 있는 성질을 뜻한다. 여러 개의 튜플이 존재할 때 서로 구분할 수 있는 속성이 존재해야 함. ▷ 최소성 키를 구성하는 속성들 중 가장 최소로 필요한 속성들로만 키를 구성하는 성질을 말한다. 만약, (주민번호, 나이) 가 키로 지정이 되어 있다면 이 키로 튜플(개개인의 정보)을 구별할 수 있는 것은 맞다..
2022.08.12 -
[데이터베이스] 커넥션 풀이란? (Connection Pool)
※ DB Connection DB를 사용하기 위해 DB와 애플리케이션 간 통신을 할 수 있는 수단 DB Connection은 Database Driver와 DB 연결 정보를 담은 URL이 필요하다. Java의 DB Connection은 JDBC를 주로 이용하는데, URL 타입을 사용한다. 만약 예를 들어, 웹 어플리케이션 서버를 가정했을 때 서버는 클라이언트의 요청을 받은 후 DB에서 데이터를 조작해야 하는 요청이라면 DB로 쿼리문을 날리는데, 이 때 DB서버에 접근하기 위해 DB Connection 객체가 필요하다. ※ DB Connection 구조 2Tier - 클라이언트로써 자바 프로그램(JSP)이 직접 DB 서버로 접근하여 데이터에 액세스하는 구조 3Tier - 자바 프로그램과 DB서버 중간에 미..
2022.08.12 -
[데이터베이스] 데이터베이스 vs 파일시스템
데이터베이스가 등장하기 이전, 컴퓨터는 파일시스템을 이용하여 데이터를 관리하였다. 하지만, 이 파일시스템을 사용하는 방식은 데이터베이스에 비해 많은 단점을 가지고 있었다. 따라서, 이 데이터베이스와 파일시스템이 갖고 있는 특징과 왜 데이터베이스를 사용하는가를 알아보도록 하자. 파일시스템 데이터베이스 구조 특정 구조가 없음 table 형태 접근 방식 순차적 접근만 가능 비순차적 접근 가능 중복 O 비교적 덜 발생 불일치 O 비교적 덜 발생 트랜잭션 X O 다중 사용자의 접속 X O 보안 및 관리 각 프로그램마다 데이터를 가지고 있어 보안이 까다롭다. 사용자마다 다른 권한 부여가 가능 질의어 X SQL 회복 X O ▷ 파일 시스템의 단점 중복 데이터가 많다. 회복 기능이 없다. 데이터의 추가/수정/삭제가 번..
2022.08.12 -
[운영체제] 가상메모리
운영체제가 어떤 식으로 프로세스에게 메모리를 할당할 것인가 여러 프로그램이 동시에 수행되는 시분할 환경에서는 한정된 메모리 공간을 여러 프로그램이 조금씩 나누어 사용 가상메모리(virtual memory) : 프로세스마다 각각 0번지로부터의 주소공간을 가지고 이들 공간 중 일부가 물리적 메모리에 적재되고(당장 수행해야 할 부분) 일부는 디스크의 스왑 영역에 존재하게 된다. 프로세스의 주소 공간을 메모리에 적재하는 방식에 따라 요구 페이징 방식과 요구 세그먼테이션 방식으로 구현될 수 있다. 1. 요구 페이징 요구 페이징 : 프로그램 실행 시 프로세스의 모든 페이지를 한 번에 메모리에 올리는 것이 아닌 당장 사용할 페이지만을 올리는 방식 → 특정 페이지에 대한 CPU의 요청이 들어온 후에야 해당 페이지를 메..
2022.08.07 -
[운영체제] 메모리 관리
주소(address) : 서로 다른 위치를 구분하기 위해 사용하는 일련의 숫자 컴퓨터 시스템은 오늘날 32비트 혹은 64비트의 주소 체계를 가진다. 1. 주소 바인딩 주소 공간 : 프로그램이 실행을 위해 메모리에 적재되면 그 프로세스를 위한 독자적인 주소 공간, 이 주소를 논리적 주소 또는 가상 주소라 한다. 논리적 주소는 각 프로세스마다 독립적으로 할당되는데 반해 물리적 주소는 물리적 메모리에 실제 올라가는 위치를 말한다. 보통 물리적 메모리의 낮은 주소 영역에 OS가, 높은 주소 영역에 사용자 프로세스가 올라간다. CPU가 기계어 명령을 수행하기 위해 논리적 주소를 통해 메모리 참조를 하게 되면, 물리적 메모리의 어느 위치에 매핑되는지 알아야 한다. 주소 바인딩은 프로세스의 논리적 주소를 물리적 주소..
2022.08.06 -
[운영체제] CPU 스케줄링
CPU : 프로그램의 기계어 명령을 실제로 수행하는 컴퓨터 내의 중앙처리장치 프로그램 카운터(PC) : 레지스터의 일종으로 프로그램이 메모리에 올라가면 현재 CPU에서 수행할 코드의 메모리 주소값을 가지고 있게 된다. CPU는 이 PC를 보고 기계어 명령을 수행한다. ※ 프로그램 실행과 관련된 기계어 명령 ① CPU 내에서 수행되는 명령 Add 명령 : CPU 내의 레지스터에 있는 두 값을 더해 레지스터에 저장하는 명령 CPU 내에서만 수행되므로 명령의 수행 속도가 매우 빠르다. ② 메모리 접근을 필요로 하는 명령 Load 명령 : 메모리에 있는 데이터를 CPU로 읽어들이는 명령 Store 명령 : CPU에서 계산된 결과값을 메모리에 저장하는 명령 CPU 내에서 수행되는 명령보다는 아니지만 속도가 빠른 ..
2022.08.05