Database (14) 썸네일형 리스트형 Database 21,22장 Two-Phase Locking Techniques mutual exclusion을 제공하는 기법 locked, unlocked Locking protocol (rules) 1.Transaction 내부의 x에대해 read,write를 하려면 lock을 해주어야 한다 2.Transaction이 종료되기전에 걸어놓은 lock이 있으면 풀어주어야 한다 3. 다른 Transaction이 lock해놓은것에 또 lock을 할 수 없다 4. 다른 Transaction이 lock해놓은 object를 풀 수 없다 Lock table -lock manager subsystem이 lock된 data에 대한 정보를 기록하기 위한 table -lock하나에 하나의 record가 저장되있다 lock(binary-valued v.. Database 20장 Single-User versus Multiuser Systems 두가지 처리방식 1. Interleaved processing : A,B가 동시에 수행될때 교대로 수행한다 2. Parallel processing : C,D가 동시에 수행된다 여러 프로그램이 돌아갈때 위의 두가지 방식 존재 concurrency control에 관련된 대부분의 것들은 interleaved concurrency를 기반으로 둔다. TRANSACTIONS : 논리적으로 하나의 단위로 프로그램을 수행 -begin transaction - end transaction : 단위를 묶는 명령 -하나의 transaction 내에는 여러 DB접근 연산이 포함된다 : 삽입,삭제,수정,검색 -큰 프로그램의 경우 하나의 프로그램에 여러 tra.. Database-17장 index structure file에 제공되는 index는 보조 접근 구조이다 주어진 검색조건에 대응해 record를 검색할때 속도를 높여주기위한 목적으로 사용된다 기존에 저장되어 있는 물리적인 위치와 상관없이 대체방안을 제공하는 목적 indexing field에 대해 record를 효율적으로 검색하는 방법 제공 -single level index(정렬용도) primary, secondary, and clustering ISAM : 이 방법을 사용하는 file의 명칭 -multilevel indexes btree 나 b+tree Primary index record가 정렬된 field에 대한 index Clustering index 같은 방법으로 record가 정렬된 fiedl에 대해 index가 구성.. Database-16 Buffering of blocks -미리 사용할 블록 주소를 다 알고있다면, 지연없이 빠르게 처리하는것이 가능하다 -한 버퍼를 읽거나 쓰고 있을때, CPU가 다른 버퍼를 채울 수 있다. -별도의 disk I/O 프로세서가 위의 작업을 담당한다 동시수행의 두가지 경우 왼쪽 A,B가 교대로 수행, interleaved concurrency 오른쪽 C,D가 동시에 수행 Buffer manager-DBMS의 Software component 1.Main memory에서 요청된 페이지가 발견될 확률을 최대가 되도록 해준다 2.기존에 있던 page를 대체할 수 있는 공간을 찾아야한다. buffer pool : buffer가 쓸수가 있는 공간을 미리 할당해놓는 곳 교환을 위해 필요한 정보의 타입 -pin count.. Database-16장 계층 구조 -주기억장치 CPU가 직접 조작할 수 있는 저장 장치 (main 메모리, cache 메모리 존재) -2차 보조기억장치 속도는 느리나, 대용량을 저장할 수 있다 -3차 보조기억장치 offline상태에 있다가 user가 직접 access해주어야 하는 저장 장치 (CD) -물리적 db 디자인 다양한 저장 option중에서 가장 효율적인 저장기법을 선택하는 것 -필요한 레코드를 가장 효율적으로 찾아낼 수 있는 저장 방식 파일구성 방식 (primary , secondary) 실제 디스크상에서 record를 물리적으로 저장하는 방법을 결정한다 주 조직 방법에 따라 record가 저장되고, 저장 방법에 따라 record를 access하는 법도 같이 결정된다 -heap file : record들이 disk에.. Database - 10장 db 프로그래밍 목적 : 대화식 인터페이스와 달리 응용 프로그램에서 db에 access하기 위해서 왜? 대화식 인터페이스는 편리하나 기능이 충분하지 않다. db 프로그래밍 접근방법 -범용 프로그래밍 언어에 db 명령어를 내장시키는 방법 precompiler or preprocessor를 통해 embedded 프로그램을 처리 -db 함수 라이브러리 사용 host 언어에서 db호출을 위해 사용하는 API를 제공 -새로운 db언어 사용 DBPL, impedance mismatch를 최소화 할 수 있다. impedance mismatch -두 프로그래밍 환경 사이에서 (DBhost) 데이터 타입이나 프로그래밍 사이의 불일치를 이야기한다 ex) type mismatch -> 두 언어간의 타입 표시에 차이가 존재 .. Database 14장 좋은 relation schemas 논리적 레벨 : relation에 있는 데이터의 의미를 얼마나 잘 표현하느냐 구현 레벨 : base relation의 schema가 얼마나 잘 구성되 있느냐 관계 스키마를 위한 비정형적 품질 측정 기준 1. attribute의 semantics를 schema가 얼마나 명확하게 표현하고 있느냐 2. 튜플의 중복값을 얼마나 감소시킬수 있느냐 3. null값을 줄여야 한다 4. 불필요한 튜플을 만들 가능성을 허용해서는 안된다. 가이드라인1 -관계 스키마를 설계시 의미를 쉽게 설명할 수 있어야 한다 -하나의 개체, 관계성 타입은 하나의 realtion schema에 표현해야 한다.(막 섞으면 안됨!) 가이드라인 2 (중복에 관해 생기는 문제) -삽입,삭제,수정에 관한 이상이 .. DATABASE 3장 OVERVIEW -개념 모델링은 성공적인 데이터베이스를 설계하는데 있어 매우 중요한 단계 -Entity Relation model은 가장 높은 레벨의 개념 데이터 모델이며 데이터베이스 응용을위한 개념 스키마를 디자인하는데 사용된다 데이터 베이스에서 표현하고자 하는 miniworld -데이터 수집분석 후 Functional(데이터 베이스에 필요한 응용요구사항), Database(데이터 베이스에 표현되야할 정보내용 분석) requirements로 나눠진다. -서로 상호작용을 통해 좋은 데이터베이스 설계가 가능하다. -database requiremnets: 개념설계=>개념스키마 생성(ER모델 같은것), 논리설계=>logical schema 생성 , 물리설계 -functional requirements : 응.. Database 8장 relational algebra 릴레이션을 조작하기 위한 연산들의 집합 -검색 요구를 명세하는데 주로 사용된다 -질의 결과는 relation 형태로 표현된다 -어떤 질의의 결과가 relation이기 때문에 또 다른 relational algebra를 적용할 수 있는 성질이 있다. -결과와 타입이 같은경우 닫혀있다고 얘기한다. SELECT -SELECT는 시그마로 표시한다. 선택조건을 만족하는 relation에서의 튜플들의 부분집합 -조건c는 boolean 연산이며 여러비교 연산자를 쓰며, 복합조건도 표현 가능하다. -결과 relation은 원래 relation R과 동일한 attribute로 구성된다. -선택률 = dbms가 질의처리를 할때 어떤 조건을 먼저 처리할지 선택할 수 있는 정보(system-.. Database 7장-2 WITH clause -유저에게 특정 쿼리에서만 사용할 수 있는 임시테이블을 정의할 수 있게 도와준다 -뷰와 비슷한 기능을 가진다 -SQL쿼리가 끝나면 사라진다 -SQL:99에 첨가된 기능이며 모든 dbms가 제공하는 기능은 아니다 CASE construct 질의어, insert, update등 값이 들어가는곳에는 모두 이용가능 원래라면 여러개의 update쿼리를 만들어야 하지만 CASE문으로 한꺼번에 해결이 가능하다. Recursive Queries in SQL -재귀 (순환구조를 갖는다) 단점 -유저를 헷갈리게 만듬 -이상적으로,동의한 질이어는 똑같은 방법으로 수행되어야한다(그러나 실제로는 어려움) -그렇기 때문에 상용 DBMS는 SQL을 효율적으로 처리할 수 있는 Query형태를 유저에게 제공해준다.. 이전 1 2 다음