본문 바로가기

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.
[Database Systems] SQL (2) Nested Queries SELECT-FROM-WHERE의 쿼리 블럭이 다른 쿼리의 WHERE절에 들어 가는 것. WHERE절 안에 있는 쿼리를 Inner query라고 하고, 이것을 감싸는 본체를 Outer query라고 한다. Comparison Operators- IN: 값 v가 집합 V에 속한다면 True, 그렇지 않다면 False- = ANY: 집합 V에 v와 같은 값이 하나라도 존재한다면 True, 그렇지 않다면 False. = 말고도 >, >=, 도 가능하다.- = ALL: 집합 V에 있는 모든 값이 v와 같다면 True, 그렇지 않다면 False, = 말고도 >, >=, 도 가능하다.  Avoiding AmbiquitiesInner query와 outer query에 같은 이름의 attr.. 2025. 2. 1.
[Database Systems] SQL (1) Data  Definition Language (DDL)메타 데이터를 정의(Create, Modify, Delete)하기 위해 사용되는 명령어의 집합Data Manipulation Language (DML)tuple들을 조작(Retrieval, Insert, Modify, Delete)하기 위해 사용되는 명령어들의 집합Schema CreationSchema: 동일한 DB 애플리케이션에 속하는 Table과 Constraint가 포함된 Construct의 집합CREATE SCHEMA 문을 사용해서 Schema를 생성할 수 있다.Table CreationCREATE TABLE 문: table name, attributes(이름, 타입), Initial constraints를 포함해서 table을 생성할 수 .. 2025. 1. 30.
[Database Systems] Relational algebra Relational AlgebraRelation model에 대한 기초적인 연산 집합으로, 검색 요청을 명세하기 위해 사용된다. 검색된 결과는 relation으로 나타난다. SELECT OperationsRelation R로부터 tuples의 subset을 조건 하에 골라내는 연산 PROJECT OperationsRelation R로부터 attribute list 로만 설명되는 Column들을 선택하는 연산, 연산의 결과에 나타나는 Relation에는 중복된 tuple이 존재하지 않는다. Set OperationsUnion compatibility: 두 relation이 union되려면 attribute의 수가 같아야하고, domain이 서로 완전 동일하진 않더라도 얼추 비슷해야한다. CARTESIAN .. 2025. 1. 28.
[Database Systems] ER to Relational model Mapping of Regular Entity Types각각의 Regular entity -> relationAttribute: Entity type의 모든 simple attributes(Composite 또는 multivalued가 아닌 것들)Primary key: Entity type의 Key attribute 중 선택Mapping of Weak Entity Types각각의 Weak entity -> relationAttribute: Entity type의 모든 simple attributes, Identifying owner의 PK를 FK로 저장.Primary key: Entity type의 Key attribute(partial key) 중 선택해서 FK와 합친 것이 PKMapping of Mu.. 2025. 1. 26.
[Database Systems] Relational model Relational Model ConceptsDatabase: relations(tables)의 모음Relation: tuples(rows)의 집합Tuple: 실 세계에 존재하는 Entity 또는 Relationship을 표현하기 위한 것으로, attribute로 구성된다.Attribute: tuple와 대응되는 객체의 특징을 표현하기 위한 것 Domain D: 더 이상 쪼개지지 않는 atomic한 value들의 집합Attribute A_i: Domain이 relation 스키마에서 어떤 역할을 하는 지에 대한 이름, dom(A_i)는 relation schema에서 A_i의 DomainRelation schema R: relation 이름과 다수의 attribute로 이루어진 것. R(A_1,A_2,... 2025. 1. 19.
[Database Systems] ER Diagram Constraints on Relationship TypesCardinality ratio: 하나의 엔티티가 참여할 수 있는 최대 Relationship instance의 수   Participation constraint: 엔티티의 존재가 다른 엔티티와 연관됨에 종속되어야하는가를 명시Total participation: 모든 엔티티는 relationship에 참여해야한다.Partial participation: 모든 엔티티가 relationship에 참여하지 않아도 된다. Attributes of Relationship TypesRelationship type도 다음과 같은 경우에 attribute를 가질 수 있다. 이는 참여하는 엔티티 조합에 의해 결정되고, 그 조합의 특징을 나타낸다. 그 attri.. 2025. 1. 11.
[Database Systems] Requirements Database Design Process Company Database Preview  Entities and AttributesEntity: 실세계에 존재하는 독립적인 존재Attribute: 엔티티를 설명하는 특정 속성 Types of AttributesSimple(atomic) attributes: Attribute는 쪼갤 수 없는 원자적인 값Composite attributes: Attribute를 subpart로 나누어 계층 형성 가능 Single-valued attributes: attribute는 단일 값을 가짐Multivalued attributes: attribute는 복수 값을 가짐Stored attributes: 실제로 저장된 attributeDerived attributes: 다른 .. 2025. 1. 8.
[Database Systems] Data, Schema, Data independent Data Models데이터베이스의 구조를 설명하기 위한 개념들의 집합으로, 데이터 추상화의 방식을 제공한다.이는 다음과 같이 계층적으로 분류된다.- Physical Models- Conceptual Models- Representational Models Physical Data Models데이터가 컴퓨터 저장 공간에 어떻게 조직되고 저장되는지에 대한 세부 사항을 설명한다.- 물리적인 저장 방식 설명에 가깝다.- Low-level data model record-related information을 제공- Type- Index- Access path Conceptual Data Models데이터가 어떻게 개념적으로 표현되는가를 설명한다.- 사용자가 직관적으로 인식할 수 있는 방식 설명에 가깝다.- Hig.. 2025. 1. 5.
[Database Systems] DB, DBMS, DBMS architecture 기본적인 용어Data: 컴퓨터 시스템 내에 의미를 가지고 저장되어 있는 것.Database: 논리적으로 관련되어있는 데이터들의 집합Mini-world: 실제 세상의 몇 가지 측면만 나타낸 것Database Management System (DBMS): 데이터베이스를 생성하고 관리하게 해주는 소프트웨어Database System: DBMS + Database Structure of Database SystemMeta-Data: User-Data를 관리하기 위해서 DBMS가 필요로 하는 데이터 Characteristics of the DatabaseMete-Data: 데이터베이스의 구조를 설명하는 데이터이자, User-Data를 유지/관리 하기 위해 필요한 데이터System Catalog: Meta-Data.. 2025. 1. 3.