반응형

CS 56

[DB] 화일 조직

화일에는 다음과 같은 유형이 있다. 히프 화일 순차 화일 인덱스된 순차 화일 직접 화일 히프 화일 가장 단순한 화일 조직이다. 일반적으로 레코드들이 삽입된 순서대로 화일에 저장된다. 삽입 : 새로 삽입되는 레코드는 화일의 가장 끝에 첨부된다. 검색 : 원하는 레코드를 찾기 위해서는 모든 레코드들을 순차적으로 접근해야 함. 삭제 : 원하는 레코드를 찾은 후에 삭제한다. 삭제된 레코드가 차지하는 공간을 재사용하지는 않는다. 좋은 성능을 유지하기 위해 하프 화일을 주기적으로 재조직할 필요가 있다. 모든 레코드들을 참조하고, 레코드들을 접근하는 순서는 중요하지 않을 때 사용한다. (ex : SELECT 문) 특정 레코드를 검색할 때에는 비효율적 -> b개의 블록이 있다고 하면 평균적으로 b/2개의 블록을 읽어야..

CS/DB 2022.05.19

[DB] 물리적 데이터베이스 설계

물리적 데이터베이스 설계 논리적인 설계의 데이터 구조를 보조 기억장치상의 화일(물리적인 데이터 모델)로 사상한다. 예상 빈도를 포함하여 데이터베이스 질의와 트랜잭션을 구분한다. 데이터에 대한 효율적인 접근을 제공하기 위하여 저장 구조와 접근방법들을 다룬다. 특정 DBMS의 특성을 고려하여 진행된다. 질의를 효율적으로 지원하기 위해서 인덱스 구조를 적절히 사용한다. 보조 기억 장치 사용자가 원하는 데이터를 검색하기 위해서 DBMS는 디스크 상의 데이터베이스로부터 사용자가 원하는 데이터를 포함하고 있는 블록을 읽어서 주기억 장치로 가져온다. 데이터가 변경된 경우에는 블록들을 디스크에 다시 기록한다. 블록 크기는 512바이트부터 수 킬로바이트까지 다양하다. (전형적인 블록 크기는 4,096바이트) 각 화일은 ..

CS/DB 2022.05.16

[DB] ER 스키마를 관계 모델의 릴레이션으로 사상하기

ER 스키마를 관계 모델 릴레이션으로 사상하기 논리적 설계 단계에서 ER 스키마를 관계 데이터 모델의 릴레이션들로 사상한다. ER 스키마에는 엔티티 타입과 관계 타입이 존재하지만 관계 데이터베이스에는 엔티티 타입과 관계 타입을 구분하지 않는다. 릴레이션으로 사상할 대상이 ER 스키마에서 엔티티 타입인지 또는 관계 타입인지, 엔티티 타입이라면 정규 엔티티 타입인지 또는 약한 엔티티 타입인지, 관계 타입이라면 2진 관계인지, 3진 이상의 관계인지 등에 따라 사상하는 방법이 달라짐 ER 모델을 릴레이션들로 사상하는 7개의 알고리즘 단계가 있음. 단계 1. 정규 엔티티 타입과 단일 값 애트리뷰트 엔티티 타입 E에 대해 릴레이션 R을 생성함 E에 있던 단순 애트리뷰트들은 릴레이션 R에 모두 포함시킴 E에서 복합 ..

CS/DB 2022.05.15

[DB] ER 모델

ER 모델 데이터베이스 설계를 용이하게 하기 위해서 P.P. Chen이 1976년에 제안 현재는 EER(Enhanced Entity Relationship) 모델이 데이터베이스 설계 과정에 널리 사용됨 실세계를 엔티티, 애트리뷰트, 엔티티들 간의 관계로 표현함 기본적으로 엔티티, 관계, 애트리뷰트가 있고, 기타로는 카디날리티 비율, 참여 제약조건 등이 있음 적은 노력으로 쉽게 배울 수 있고, 전문가가 아니어도 이해하기 쉬우며, 자연어보다 정형적이고, 구현에 독립적임 엔티티 엔티티 : 사람, 장소, 사물, 사건 등과 같이 독립적으로 존재하면서 고유하게 식별이 가능한 실세계의 객체 사원처럼 실체가 있는 것도 있고, 생각이나 개념같이 추상적인 것도 있음 엔티티 타입 엔티티들은 엔티티 타입(또는 엔티티 집합)들..

CS/DB 2022.05.14

[DB] 데이터베이스 설계 개요

개념적 데이터베이스 설계 실세계의 엔티티, 관계, 프로세스, 무결성 제약조건 등을 나타내는 추상화 모델을 구축 엔티티는 서로 구분이 되면서 조직체에서 데이터베이스에 나타내려는 객체를 의미 관계는 두 개 이상의 엔티티들 간의 연관을 나타냄 프로세스는 관련된 활동을 나타냄 무결성 제약조건은 데이터의 정확성과 비즈니스 규칙을 의미 데이터베이스 설계 개요 한 조직체의 운영과 목적을 지원하기 위해 데이터베이스를 생성하는 과정 모든 주요 응용과 사용자들이 요구하는 데이터 및 데이터 간의 관계를 표현 DB 개발은 일반적으로 프로젝트의 라이프 사이클을 따름 데이터베이스 설계 주요 단계 요구사항 분석, 개념적 설계, DBMS 선정, 논리적 설계, 스키마 정제. 물리적 설계, 튜닝 등 여러 작업으로 이뤄짐 데이터베이스 설..

CS/DB 2022.05.13

[OS] 커널 (마이크로 커널, 모놀리틱 커널)

개요 커널은 운영 체제의 핵심이 되는 부분으로 응용 프로그램 수행에 필요한 여러 가지 서비스를 제공한다. 커널은 컴퓨터 하드웨어와 프로세스의 보안을 책임지고, 한정된 자원을 관리하여 프로세스 처리기에 할당한다. (스케줄링) 또한 인터페이스를 통해 하드웨어를 쉽게 사용할 수 있도록 돕는다. 커널의 종류에는 대표적으로 마이크로 커널과 모놀리틱 커널이 있다. 마이크로 커널 (Micro Kernel) 마이크로 커널은 꼭 필요한 기능만 커널에 구현하고, 필수적이지 않은 기능들은 사용자 모드의 우선순위가 높은 애플리케이션 프로그램으로 만든다. 장점 개발이 용이하고 기능 변경이 쉽다. 한 부분에서 일어난 문제점이 다른 부분에 영향을 미치지 않으므로 유지보수가 쉽다. 커널 내부에서 일어나는 지연이 적고, 예측 가능하기..

CS/OS 2022.05.05

[OS] 시스템 콜

개요 대다수의 운영체제들은 커널 모드와 사용자 모드가 구분되어 있다. 커널 모드는 모든 컴퓨터 리소스에 접근할 수 있다. 사용자 모드는 일반적인 프로그램이 작동되는 영역으로 컴퓨터 리소스에 제한적으로 접근이 가능하다. 따라서 커널 모드에 대한 직접적인 접근이 불가능한데, 이 때 커널에 작업을 요청하여 커널 모드에 처리한 결과를 사용자 모드의 프로그램에게 전달하는 것이 시스템 콜이다. 기능 시스템 콜은 다음과 같은 기능이 있다. 1. 사용자 모드에 있는 응용 프로그램이 커널의 기능을 사용할 수 있도록 한다. 2. 시스템 콜을 하면 사용자 모드에서 커널 모드로 바꿔준다. 3. 커널에서 시스템 콜을 처리하면 커널 모드에서 사용자 모드로 돌아가 작업을 계속한다. 유형 시스템 콜의 유형은 다음과 같다. 1. 프로..

CS/OS 2022.05.05

[컴퓨터 구조] MCH와 ICH

MCH (Memory Control Hub) 컴퓨터의 메인보드 내에 존재하며, 고속 장치를 제어하는 집적회로이다. 노스브리지(Northbridge)라고도 한다. CPU, RAM, 바이오스 롬, PCI-익스프레스, 그래픽 카드, 사우스 브릿지 사이의 통신을 관장한다. ICH (Input / Output Control Hub) 컴퓨터에 부착된 장치와의 입출력을 담당한다. 사우스브리지(Southbridge)라고도 한다. 마우스를 움직인다고 생각해보자. 우리 눈에 보이는 과정은 다음과 같다. 1. 마우스를 움직이면 사우스브리지에 정보가 전달된다. 2. 사우스브리지는 노스브리지로 그 정보를 보낸다. 3. 노스브리지는 메모리로 정보를 보낸다. 4. CPU가 메모리의 정보를 받아 연산을 하고, 연산 정보를 노스브리지..

CS/컴퓨터 구조 2022.05.01

[DB] SQL 사용법(2)

선택되는 행 제한 where 절을 사용한다. BETWEEN, IN, LIKE =, , >, 12000; 사원번호가 176인 사원의 이름과 부서 번호를 표시 select last_name, department_id from hr.employees where department_id = 176; 결과 없음 (사원 번호가 176인 튜플이 없음) 급여가 $5,000에서 $12,000 사이에 포함되지 않는 모든 사원의 이름과 급여를 표시 select last_name, salary from hr.employees where salary NOT Between 12000 AND 5000; 2007년 2월 20일과 2007년 5월 1일 사이에 입사한 사원의 이름, 업무 ID 및 시작일을 표시하되, 시작일을 기준으로 오..

CS/DB 2022.04.26

[DB] SQL 사용법(1)

SELECT 문 SELECT 뒤에 표시할 대상 열을 FROM 뒤에 열을 포함하는 테이블을 지정한다. Alias 열 명을 AS를 통해 재정의할 수 있다. (AS는 생략가능) "string" 처럼 ""로 묶어주는 것이 좋다. (특수문자나 빈 칸, 대소문자 구별이 필요할 때 ""로 묶어주지 않으면 에러 발생) 리터럴 ||을 사용하고 사이에 들어갈 문자는 ''안에 넣어준다. 중복행 제거 DISTINCT 명렁어를 사용한다. 테이블 구조 표시 DESCRIBE 명령어를 사용한다. 실습 1. 다음 명령어의 오류는? SELECT employee_id, last_name, sal * 12 AS "ANNUAL SALARY" FROM employees; 로 바꿔주어야 한다. (콤마 누락, 곱셈 기호 잘못됨, 열 이름 재정의할..

CS/DB 2022.04.26
반응형