Storage Access Block (일반적으로 4KB)은 storage allocation과 data transfer의 기본 단위입니다. DB system은 disk와 memory사이의 block transfer의 수를 줄임으로써 성능을 좋게 만드려 노력합니다. 일반적으로 DB system은 가능한 많은 block들을 memory에 저장하여 유지하는 방법을 통해 transfer의 수를 줄입니다. transfer의 수를 줄이기 위한 노력으로 disk의 block들의 복사본들이 memory에 저장되는데, 이때의 memory 공간을 Buffer라고 부릅니다. 그리고 이 buffer를 관리하는 subsystem을 buffer manager라고 부릅니다. 이 buffer manager는 buffer space..
File Organization DB는 file의 구조를 이용해서 데이터를 저장합니다. 파일은 정해진 규격, 규칙이 있기 때문에 사용하기 유용합니다. Fixed-Length Records 이때 record는 tuple이라고 볼 수 있는데, tuple은 저장될 때 검색의 기준이 되는 key와 나머지 값들인 value 혹은 record로 저장됩니다. 만약 데이터의 type이 변하지 않고 고정되어있는 경우, 고정된 길이의 record를 다룰 때는 간단하게 나열하는 방법을 사용합니다. 예를 들어 record의 크기가 n이고 record i까지를 저장하기 위해서는 n * (i - 1) byte크기의 파일이 있으면 됩니다. 이를 그림으로 나타내면 다음과 같습니다: 만약 이때 record 3을 제거하는 경우, 해당 ..
Combine Schemas? 아래와 같은 table이 있을때: instructor와 department를 묶을 수 있을까? 왜냐하면 dept_name에 따라 building과 budget이 결정되기 때문에 데이터의 중복이 발생하고, 이를 분리할 수 있을까? 입니다. A combined Schema Without Repetition section(course_id, sec_id, semester, year, building, room_number) 라는 테이블이 있는 경우 이를 잘 분리해서 sec_class(sec_id, building, room_number)와 section(course_id, sec_id, semester, year)로 분리한다면 반복 없이 모든 데이터를 나타낼 수 있을 것입니다. ..
Modeling 데이터베이스에서의 entity들과 테이블들은 모델링 될 수 있는데, 이때 각 튜플에 해당하는 것들을 entity, entity들이 갖는 속성들은 그대로 attribute라고 하며, table은 entity set이라고 부릅니다.예를 들어, 학생 DB에서 특정한 한 학생 Williams는 entity이며, 그 학생이 갖는 이름이나 핸드폰 번호는 attr.입니다. Relationship sets relationship은 몇몇개의 entity들의 관계를 말합니다. 이때 relationship set은 두 개 이상의 entities들로 구성된 관계들을 집합으로 나타낸 것입니다. 예를 들어 student ID가 44553인 Peltier와 instructor_ID가 22222인 Einstein이 ..
View Definition and Use 이전에 임시적으로 table의 view를 생성하는 방법으로 with 문을 살펴본 적이 있습니다. 하지만 with을 통한 임시적인 view는 일회성으로, 여러번 사용할 수 없다는 특징을 갖습니다. 한편 create view를 통한 view는 DB내에서 계속해서 사용할 수 있다는 점이 with과는 다른 점입니다. A view of instructors without their salaryCREATE VIEW faculty as SELECT ID, name, dept_name FROM instructor Crete a view of department salary totals (Attr. 이름을 설정 가능)CREATE VIEW departments_tota..
Joined Relations Join연산은 두 개의 relations를 하나의 다른 relation으로 합치는 것을 말합니다. Join에는 Natural join, Inner join, Outer join이 있습니다. *select를 할 때 필요한 attr.가 서로 다른 table에 있는 경우 table을 합쳐야하고, 이때 join을 해야한다고 판단하면 됩니다. Natural Join in SQL Natural join은 같은 속성 이름을 갖는 속성을 기준으로 같은 값을 갖는 튜플끼리 매칭하여 테이블을 연결하는 것을 말합니다. List the names of students along with the course ID of the courses that they taughtSELECT name, cou..
Nested Subqueries query는 select-from-where의 어디든 subquery로서 중첩될 수 있습니다. 다음의 질의가 들어온경우 다음과 같은 쿼리가 필요합니다:Find course offered in Fall 2017 and in Spring 2018select distinct course_idfrom sectionwhere semester = 'Fall' and year = 2017 and course_id in (select course_id from section where semester = 'Spring' and year = 2018); Find courses offered in Fall 2017 but not in Spring 2018select dist..
Q. 만약 Null value가 겹쳐도 PK가 불가능할까?A. 불가능 Relational Query Languages Structured query language(SQL)과 같은 표현력을 갖는 순수한 언어를 Relational Query Language라고 합니다. 그 중 Relational operators를 사용하는 Relational algebra를 살펴보려합니다. Relational operators는 시용자 쿼리를 표현할 수 있는 6개의 간단한 관계 연산자를 말합니다. Selection of tuples (σ) 모든 row(tuple)들을 살피면서 조건에 맞는 row를 선택하여 table로 출력해줍니다. 다른 연산자들과는 달리 조건에 맞는 row를 선택하는 것이기 때문에 출력 table이 모든..