CS/Database 12

[데이터베이스] 13. NoSQL and Big Data Storage Systems (Ch. 24, 25)

Reference - Fundamentals of Database Systems 7th edition NoSQL = Not only SQL 기존 sql은 table 안에서 연산을 했는데, 이와 다르게 일관성이 결여된 경우 사용한다. 데이터의 유실에 덜 민감해야 한다. NoSQL은 분산데이터베이스의 장점을 많이 따르며, 정형화된 형태가 아닌 다른 형태로 저장된다. 예를 들면 social media, web links, user profiles, tweets 등이 포함된다. BigTable(google), DynamoDB(amazon : key-value), Cassandra(facebook) 등이 있다. NoSQL의 특징 - 확장성, 가용성, 일부 일관성, replication models( 1. mast..

CS/Database 2023.12.10

[데이터베이스] 12. Distributed Database Concepts (Ch. 23)

Reference - Fundamentals of Database Systems 7th edition Distributed Database concept 분산 데이터베이스 - 데이터베이스를 여러 노드(컴퓨터)로 나누어서 저장하고 관리하겠다가 기본 컨셉 이 경우 item이 중복돼서 저장되기에 한쪽이 고장나도 다른 쪽에서 백업할 수 있다. 분산 데이터베이스에서 가장 중요한 것은 투명성(transparency)인데, 사용자가 분산 데이터베이스 내부 구현의 디테일(어디에, 몇개, ...)을 알 수 없도록 하는 것을 의미한다. 각각의 하드웨어, 소프트웨어 리소스가 같을 필요는 없다. Transparency의 type은 아래와 같다. - Data organization transparency (Location tr..

CS/Database 2023.12.10

[데이터베이스] 11. Database recovery techniques (Ch. 22)

Reference - Fundamentals of Database Systems 7th edition Recovery techniques system log를 통해 모든 transaction과 commit point를 기록하고, failure가 나면 그 위치로 가서 recovery 시도. 지연 갱신(Deferred update) - 캐시가 남아있기 때문에 Undo가 아닌 redo를 하게 됨. 즉시 갱신 - failure가 나면 Undo를 해서 처음부터. Recovery는 undo와 redo의 조합. 이 조합은 idempotent(10번 수행한것과 1번 수행한 것을 동치되게) 해야한다. buffer에 있는걸 disk에 flush. cache 복원을 어떻게 할 것인가가 중요하다. Pin-unpin bit =..

CS/Database 2023.12.10

[데이터베이스] 10. Concurrency Control Techniques (Ch. 21)

Reference - Fundamentals of Database Systems 7th edition Concurrency Control Techniques - two-phase locking concurrency control technique으로 two-phase locking technique이 있다. operation으로는 read_lock, write_lock, unlock이 있다. 이때 deadlock과 starvation 문제가 발생한다. deadlock은 system 차원에서 detection을 하거나, time stamp를 이용해 시간 delay를 주거나, no waiting algorithm(한 process를 바로 killed)등을 이용하여 해결한다. 이때 detection을 하면 v..

CS/Database 2023.12.09

[데이터베이스] 8. Functional Dependencies and Normalization for Relational Databases (Ch. 14)

Reference - Fundamentals of Database Systems 7th edition Relation DB design guidelines 저장 효율성을 위해, view level이 아닌, base relation level에서 schema를 살펴봐야한다. 1. 하나의 entity or relationship만 다뤄야한다. 또한 이들은 foreign key로만 join이 가능해야한다. 여러번 반복되는 attribute를 분해할 필요가 있고, 그 과정을 "정규화"라고 한다. 이때 뒤에 나올 Functional Dependencies 개념이 필요하다. 가이드라인 1. 암묵적으로, relation의 각 tuple은 하나의 entity 또는 relationship instance를 표현해야 한다..

CS/Database 2023.12.09

[데이터베이스] 7. Indexing (Ch. 17)

Reference - Fundamentals of Database Systems 7th edition Indexing structures for Files and Physical Database Design indexing을 보기에 앞서 file structure를 먼저 살펴보겠다. database는 주로 secondary storage(disk)에 저장된다. 일반적으로 저용량의 경우 SSD, 고용량의 경우 Magnetic Disk를 사용한다. 그중에서 hard disk drive의 구조를 살펴보면, 아래의 동그란 판을 디스크라 하고 이를 묶은 것을 실린더, 이 전체를 디스크 팩이라 한다. 디스크는 회전하면서 물리적으로 데이터가 저장된 위치로 움직이며, Arm이 track을 탐색한다. ssd는 전자적으로..

CS/Database 2023.12.09

[데이터베이스] 6. More SQL: Complex queries, triggers, views, and schema modification (chapter 7)

Reference - Fundamentals of Database Systems 7th edition More complex SQL Retrieval Queries 복잡한 형태의 조회 - Nested queries (중첩 질의), joined tables, outer joins 복잡한 형태의 조회를 알아보기 전에 NULL에 대해 더 자세히 알아보겠다. NULL에는 3가지 종류가 있다. -> 알려지지 않은 값, 이용할 수 없는 값, 적용할 수 없는 값이다. NULL 값이 있을 때 comparison은 AND의 경우 TRUE and NULL -> NULL, FALSE and NULL -> FALSE다. OR의 경우 TRUE or NULL -> TRUE, FALSE or NULL -> NULL이다. IS NU..

CS/Database 2023.12.02

[데이터베이스] 5. Basic SQL (chapter 6)

Reference - Fundamentals of Database Systems 7th edition SQL SQL은 관계형 데이터베이스에서 데이터를 처리하는 선언적 언어다. 따라서 절차적인 Python, C와 달리 선언만 하면 되기에 상대적으로 쉬울 것이다. Table = relation, row = tuple, column = attribute다. SQL schema는 DB의 이름이다. schema 안엔 DB의 권한이나 설명이 포함되어 있다. Example - Create Schema CREATE SCHEMA COMPANY AUTHORIZATION 'Jsmith'; - Create table CREATE TABLE COMPANY.EMPLOYEE (or 그냥 EMPLOYEE) - View 사용자가 보기..

CS/Database 2023.12.02

[데이터베이스] 4. Relational Data Model and Relationship Database Constraints (Chapter 5)

Reference - Fundamentals of Database Systems 7th edition Relational Model Concepts - Terms Relation에 관한 model concept. relation은 table of values와 유사하다. tuple은 relation의 행을 말하며, 각 행은 real-world의 entity (혹은 relationship)을 의미한다. tuple은 unique한 key가 존재한다.때로 row-ids나 table row의 sequential number가 키가 되는 경우가 있는데, 이를 artifical key 혹은 surrogate key라 한다. domain은 데이터 타입에 대한 정의를 말한다. (ex.phone numbers are t..

CS/Database 2023.12.02

[데이터베이스] 3. Data Modeling Using ER Model

Reference - Fundamentals of Database Systems 7th edition Database Design Process E-R(Entity-Relationship) Diagram : Conceptual Design의 일종. ER model은 아래 3개의 main concepts을 가진다. - entity Entity : Mini-world를 표현하기 위해 추상화된, attribute를 가지고 있는 객체다. Entity들의 집합을 Entity Type이라 하며, entity type의 특정 시점에서의 collection을 Entity Set이라 한다. entity는 ER Diagram에서 네모로 표현한다. 아래에서 서술하는 key attribute를 가지고 있지 않은 entity를..

CS/Database 2023.12.01
loading