Computer Science/Database Systems15 [Database Systems] Query Processing and Optimization Query ProcessingHigh-Level 쿼리 -> 스캔, 파싱, 유효성 검사 후, 쿼리의 중간 형태 -> 쿼리 최적화 후 실행 계획 -> 쿼리 코드 생성기가 쿼리 코드 생성 -> runtime DB processor가 쿼리의 결과 도출 Translating SQL Queries into Relational AlgebraSELECT-FROM-WHERE(-GROUP BY-HAVING)으로 이루어진 Basic Unit이 Algebraic operator로 변환된 후 최적화 된다. External SortingDB환경상에서 Disk에서 Main Memory에 한번에 로드할 수 없는 대용량 데이터를 정렬하기 위한 알고리즘으로 보통 JOIN, ORDER BY, 또는 DISTINCT를 수행하기 위해 사용한다.. 2025. 2. 15. [Database Systems] Transactions, Concurrency Control TransactionsDB의 컨텐츠에 접근하거나 변경하기 위해 사용자 또는 애플리케이션에 의해 수행되는 일련의 ActionTransaction은 다음과 같은 두 가지의 결과를 낳을 수 있다.1. Failure: Transaction 실패 시, 이전 상태로 회복2. Success: Transaction 성공 시, 새로운 Consistent State로 전환 Properties of Transactions (ACID Properties)Atomicity: Transaction안에 있는 모든 action이 성공하거나, 성공하지 않아야 함Consistency: Transaction은 DB가 기존 Consistent State -> 새로운 Consistent State가 되게 함Isolation: 한 Transa.. 2025. 2. 13. [Database Systems] Relational Database Design Algorithms Relation Decompositionrelation schema은 database의 모든 attribute를 포함하고, 여기서 모든 attribute의 이름은 unique하다. 이 R을 D = {R_1, R_2, ..., R_m}으로 Decompose한다면, 각 R_i는 R의 subset을 포함한다. 그리고 R의 Attribute는 적어도 하나의 R_i에 포함된다. 각 R_i는 BCNF 또는 3NF가 되며, D는 R의 Decomposition이라고 불린다. 단 두개의 Attribute를 갖는 relation schema는 자동적으로 BCNF가 되지만, 문제점은 다른 Relation과 Join하였을 때 Spurious tuple이 발생할 수 있다는 것이다. 좋은 Relation database를 위한 .. 2025. 2. 9. [Database Systems] Normalization NormalizationNormal Forms: 바람직한 형태의 테이블Normalization: 테이블을 더 작고 더 바람직한 나누는 것Lossless Join Property: 나눠진 것을 Join했을 때, 나누기 전과 완전 동일한 속성Dependency Preservation Property: 의존성이 보존되는 것Prime Attribute: Candidate key에 속하는 attribute First Normal Form (1NF)1NF: Relation에 속한 모든 Domain이 Atomic value로만 되어있는 것. 즉, Relation의 모든 Attribute value가 Atomic value로만 되어있는 Normal formSecond Normal Form (2NF)Full Functi.. 2025. 2. 7. [Database Systems] Database Design, Functional Dependencies Informal Design Guidelines for Relation SchemasDesigning a relation database -> 주어진 애플리케이션을 위한 좋은 테이블 스키마의 집합을 정의하는 것. 각 테이블에 추가될 attribute를 결정하는 것 Rough criteria for a good table schema1. Semantics of Attributes -> 각 tuple은 real-world에 존재하는 오직 하나의 entity instance, relationship instance에 부합해야함2. Redundant Information in Tuples -> update anomaly가 일어나지 않도록3. NULL Vaules in Tuples -> 새로운 relation을 .. 2025. 2. 5. [Database Systems] SQL (3) INSERT Statement테이블에 tuple을 추가하기 위해 사용된다. 하나의 tuple을 추가하거나, 여러 개의 tuple을 추가할 수도 있다.value들은 대응되는 CREATE TABLE에서 명시된 attribute의 순서와 같은 순서여야 한다. 넣고싶은 Attribute value만 넣을 수도 있는데, 지정되지 않은 attribute의 값들은 NULL이 되거나, DEFAULT 값을 갖는다. SELECT Statement의 결과인 tuple의 집합도 table에 추가할 수 있다. DELETE Statement테이블에서 tuple을 제거하기 위해 사용된다. WHERE 절이 없다면 무조건적으로 tuple들을 제거하는 것이기 때문에 테이블에서 모든 tuple들이 삭제된다. UPDATE Statement.. 2025. 2. 4. 이전 1 2 3 다음