학교 수업/2-2 데이터베이스 기초
-
Ch 16. 파일 인덱싱 기법 및 B트리와 B+트리학교 수업/2-2 데이터베이스 기초 2021. 11. 21. 19:49
인덱스(색인) 보조 접근 구조 검색 속도를 높여주기 위한 방법 두번째 접근 경로로 제공댐 인덱싱 필드로 레코드를 효율적으로 검색함 인덱스 종료 단일 단계 순서 인덱스(primary, secondary, clustering, ISAM) 다단계 인덱스(B트리, B+트리) 1. 단일 단계 순서 인덱스(Single-level ordered indexes) Primary index(기본 인덱스) - 정렬된 키(중복X) 필드로 구성된 레코드들의 순서 파일 Clustering index - 정렬된 키가 아닌 필드로 구성된 레코드들의 순서 파일인데, nonkey이므로 중복을 허용함 그래서 파일은 primary index 혹은 clustering index 둘 중 하나임 Secondary index - 정렬되지 않은 파..
-
Ch15. 파일 구조학교 수업/2-2 데이터베이스 기초 2021. 11. 9. 21:01
1. 블록 버퍼링 모든 블록 주소를 알고 있는 몇 개의 블록을 디스크에서 주기억 장치로 전송할 때, 전송 속도를 빠르게 하기 위하여 주기억 장치 내의 몇 개의 버퍼를 예약하여 사용할 수 있다. 하나의 버퍼를 판동하거나 기록하는 동안 CPU는 다른 버퍼 내의 데이터를 처리할 수 있다. 일반적으로 독립적인 디스크 입출력 처리기(제어기)가 존재하여 CPU처리와 병렬로 주기억 장치와 디스크 간에 데이터 블록을 독립적으로 전송할 수 있기 때문이다. 왼쪽 그림은 프로그램이 교대로 수행되지만, 사용자는 동시에 수행된다고 느낌(Interleaved concurrency) 오른쪽 그림은 정말로 병렬처리함 CPU가 하나의 버퍼를 사용하고 있는 동안에 입출력 공간에서 다른 블록을 읽어옴(효과: CPU의 대기시간을 줄여줌, ..
-
Ch15. 디스크 저장 장치, 기본 파일 구조, 해싱 및 최신 저장 아키텍처학교 수업/2-2 데이터베이스 기초 2021. 10. 30. 00:46
1. 메모리 계층 구조와 저장 장치 데이터베이스는 물리적으로 레코드들의 파일 형태로 저장됨 저장 장치 종류 기본 저장 장치(Primary storage, 주기억장치) - CPU가 직접 처리할 수 있는 장치 - 메인 메모리와 캐시 메모리 보조 저장 장치(Secondary storage, 보조기억장치) - 대용량 - 플래시 메모리, 자기 디스크, 광 디스크 3차 저장 장치(Tertiary storage) - 오프라인 상태로 있다가 유저가 직접 로딩해야 그제서야 온라인으로 변하여 접근할 수 있는 방식 - 광 디스크, 마그네틱 테입, 테입 쥬크박스 기본 저장 장치와 나머지 저장 장치의 큰 차이는 CPU가 직접 접근할 수 있느냐임 위로 갈수록 비싸고 저용량이지만 빠르고, 아래로 갈수록 느리지만 대용량이고 쌈 2...
-
Ch09. SQL 프로그래밍 기법 소개학교 수업/2-2 데이터베이스 기초 2021. 10. 29. 23:36
1. 데이터베이스 프로그래밍 대화식 인터페이스와 달리 응용 프로그램에서 데이터베이스를 접근하기 위한 방식 사용하는 이유? - 대화식 인터페이스는 편리하지만, 기능이 충분하지 않음 - 그래서 대부분의 데이터베이스 연산은 응용프로그램을 통해 일어남(ex 웹 어플리케이션) 데이터베이스 프로그래밍 접근방법 세가지 범용 프로그래밍 언어에 데이터베이스 언어를 임베디드하는 방법(프리컴파일러 or 프리프로세서) 데이터베이스 함수의 라이브러리 사용(호스트언어에서 데이터베이스를 호출하기 위함. API 제공하는 것) 새로운 데이터베이스 언어를 사용하는 것(DBPL) - 이 경우 임피던스 불일치(impedance mismatch)가 최소화될 수 있음 임피던스 불일치(impedance mismatch)란? 두 프로그래밍(데이터..
-
Ch13. RDB의 함수적 종속성과 정규화 이론학교 수업/2-2 데이터베이스 기초 2021. 10. 24. 22:26
1. 릴레이션 스키마를 설계하는 몇 가지 개략적인 지침 좋은 관계형 스키마 논리적/개념적 레벨 : 릴레이션 안의 데이터를 얼마나 잘 표현하고 있는가 구현/저장 레벨 : 기본 릴레이션의 스키마가 어떻게 구성되어 있는가 릴레이션 스키마 설계의 수준(퀄리티)을 결정하기 위한 척도로 사용할 수 있는 네 가지 지침 애트리뷰트들의 의미가 스키마에서 명확한지 확인함 튜플들에서 중복되는 값들을 줄임 튜플들에서 널 값들을 줄임 가짜 튜플을 허용하지 않음 첫번째 가이드라인(지침) 의미가 쉽게 전달되도록 릴레이션 스키마를 설계한다. 여러 개의 엔티티 타입과 관계 타입의 애트리뷰트들을 섞어서 하나의 릴레이션으로 구성하면 안된다. -> 하나의 엔티티 타입이나 관계 타입을 하나의 스키마로 만들어야함 2. 튜플에서 중복된 정보와 ..
-
Ch 03. Entity-Relationship(ER) 모델을 사용한 데이터 모델링학교 수업/2-2 데이터베이스 기초 2021. 10. 12. 23:02
개념 데이터 모델링은 성공적인 데이터 설계에 있어서 매우 중요한 과정임 Entity-Relationship(ER) model은 인기있는 고수준 개념 데이터 모델임(개념 스키마를 만듦) 1. 데이터베이스 설계와 기능적 설계 데이터 모델 설계는 데이터 설계와 데이터베이스 응용 설계로 나뉨. 서로 상호작용을 하여 응용이 일어남 1. 데이터베이스 설계 - 데이터 설계 - 논리 설계 - 물리적 설계 데이터베이스 요구사항들을 받아 개념적 설계를 하고 고수준의 데이터 모델로 개념 스키마를 만들어 논리 설계를 함 논리 설계는 논리적 스키마를 만들어서 물리적 설계를 하게 됨(특정 DBMS의 데이터 모델로 표현됨) 논리적 설계를 기준으로 윗 부분은 DBMS에 상관없이 독립적으로 설계하고, 이후엔 DBMS에 기능에 맞게 설..
-
Ch 08. 관계 대수와 관계 해석학교 수업/2-2 데이터베이스 기초 2021. 10. 12. 18:29
1. 관계 대수와 관계 연산자 관계 대수 관계를 조작하기 위한 연산자 검색 요구를 명세하는데 사용 질의 결과는 릴레이션 형태로 표현됨 관계 연산자 SELECT($\sigma$), PROJECT($\pi\$) 집합 연산자 - 합집합(UNION) $\cup$, 교집합(INTERSECTION) $\cap$, 차집합(DIFFERENCE) -, 카티션 곱(CARTESIAN PRODUCT) $\times$ JOIN 연산자 $\Join$ 그 외 다른 관계 연산자들 - DIVISION, OUTER JOIN, AGGREGATE FUNCTIONS 2. 관계 연산자 SELECT $\sigma_{}$(R) 로 표현함 은 다음와 같은 형태를 갖는 여러 개의 절로 구성되어 있음 ex) EMPLOYEE 테이블에서 4번 부서에 속하..
-
[Oracle SQL] ON UPDATE CASCADE 대체 방법학교 수업/2-2 데이터베이스 기초 2021. 10. 12. 00:00
Oracle SQL은 ON DELETE CASCADE를 지원하지만, ON UPDATE CASCADE를 지원해주지 않습니다. 그래서 PRIMARY KEY를 변경해야하는데, 동시에 FOREIGN KEY도 값이 변경되게 만들어야 하는 상황에서는 TRIGGER를 만들어서 변경해야 합니다. 먼저 데이터베이스를 하나 만들겠습니다. 데이터베이스는 책에 나온 EMPLOYEE 테이블과 나머지들을 변형해서 만들어봤습니다. EMPLOYEE : 직원 정보가 들어있는 테이블 Name : 직원의 이름 Ssn : 직원의 사회보장번호(우리나라로 치면 주민등록번호) Dno : 부서 번호 DEPARTMENT : 부서 정보가 들어있는 테이블 Dname : 부서의 이름 Dnumber : 부서 번호 Mgr_ssn : 부서의 총책임자 사회보장..