DataBase/LegacyPosts 11

[DataBase] 10. Normalization(정규화)

Normalization(빅데이터 등장 이후 잘 안쓰긴 합니다. 그래도 RDB에서는 중요해요)좋은 relational design 생성instructor와 department를 in_dept으로 결합한다고 가정, 이는 instructor와 department 간의 natural join을 나타냄정보의 반복이 있음Null 값을 사용해야 함 (새로운 부서를 추가하는 경우, instructor가 없는 경우)Decompositionin_dep schema에서 정보 반복 문제를 피하는 유일한 방법은 이를 두 개의 schema - instructor와 department schema -로 분해하는 것임모든 Decomposition가 좋은 것은 아님. 예를 들어, employee(ID, name, street, ci..

[DataBase] 09. BigData and Distributed DataBase

Motivation매우 대량의 데이터 수집웹, 소셜 미디어, 최근에는 사물인터넷의 성장에 의해 주도됨웹 로그는 초기 데이터 소스였음웹 로그에 대한 분석은 광고, 웹 사이트 구조화, 사용자에게 표시할 게시물 등에 큰 가치를 가짐빅 데이터: 이전 세대 데이터베이스와 구별됨볼륨: 저장된 데이터의 양이 훨씬 큼속도: 삽입 속도가 훨씬 높음다양성: 관계형 데이터를 넘어 다양한 유형의 데이터 포함Querying Big Data매우 높은 scalability(확장성)이 필요한 트랜잭션 처리 시스템많은 애플리케이션이 매우 높은 확장성을 얻을 수 있다면 ACID 속성 및 기타 데이터베이스 기능을 기꺼이 포기함매우 높은 확장성과 비관계형 데이터를 지원해야 하는 쿼리 처리 시스템Big Data Storage Systems데..

[DataBase] 08. Transaction Recovery

TransactionTransaction은 여러 데이터 항목을 액세스하고 업데이트할 수 있는 프로그램 실행 단위(Unit)입니다.예: 계정 A에서 계정 B로 $50을 이체하는 Transaction:read(A)A := A - 50write(A)read(B)B := B + 50write(B)처리해야 할 두 가지 주요 문제:하드웨어 고장 및 시스템 충돌과 같은 다양한 종류의 failure(드뭄)여러 Transaction의 동시 실행(자주 발생)Example of Fund TransferAtomicity requirementTransaction이 3단계 후에 failure하고 6단계 전에 failure하면 돈이 "잃어버린" 상태가 되어 일관성이 없는 데이터베이스 상태가 됩니다.failure는 소프트웨어 또는 ..

[DataBase] 07. Data Storage Structure

File OrganizationFrom MySQL to InnoDBFunction callsFrom InnoDB to LinuxSystem callFrom Linux to File SystemExt4_file_Write_iterFrom File System to HDDSATA_commands 데이터베이스는 파일의 모음으로 저장됨 각 파일은 records의 sequence각 파일은 하나 이상의 페이지로 구성됨각 페이지는 하나 이상의 레코드를 포함함레코드는 필드의 시퀀스하나의 접근 방법레코드 크기가 고정되어 있다고 가정각 파일은 하나의 특정 유형의 레코드만 포함서로 다른 Relation을 위해 서로 다른 파일 사용레코드는 디스크 블록보다 작다고 가정한다.Fixed-Length Records간단한 접근 방법각..

[DataBase] 06. Physical Storage System

데이터베이스는 본질적으로 data storage system입니다  물리적 저장 매체의 분류Volatile storage: 전원이 꺼지면 내용이 손실됨non-safeex) memoryNon-volatile storage:전원이 꺼져도 내용이 지속됨2차 및 3차 storage 포함, 배터리 백업된 main-memory 포함저장 매체 선택에 영향을 미치는 요소:데이터 접근 속도데이터 단위당 비용reliability(신뢰성)Storage HierarchyPrimary storage: 가장 빠른 매체지만 volatile (cache, main memory)Secondary storage: 다음 계층, non-volatile, 적당히 빠른 접근 시간on-line storage라고도 함예: flash memory,..

[DataBase] 05. E-R Model

Design Phases(디자인 단계)초기 단계잠재적 database 사용자들의 data 요구를 완전히 파악두 번째 단계data model 선택선택한 data model의 개념 적용이러한 요구사항을 database의 개념적 schema로 변환완전히 개발된 개념적 schema는 기업의 기능적 요구사항(functional requirements)을 나타냅니다.data에 대해 수행될 작업(또는 트랜잭션)의 종류를 설명최종 단계abstract data model에서 database 구현으로 이동논리적 설계(Logical design)database schema 결정database 설계는 '좋은' relation schemas 컬렉션을 찾아야 함을 요구합니다.비즈니스 관점에서 decision: database에 ..

[DataBase] 04. Intermediate SQL

Intermediate SQLSQL에 대한 지식을 확장복잡한 작업을 수행하는 강력한 쿼리를 가능하게 함Joined RelationsJoin 작업은 두 개의 relation을 가져와 결과로 또 다른 relation을 반환합니다.Join 작업은 카티션 곱으로, 두 relation의 튜플이 일치하는지 확인합니다 (일부 조건 하에).두 테이블의 공통 값을 사용하여 두 테이블의 열을 결합하는 데 사용됩니다.SQL 쿼리에서 테이블을 결합하는 데 Join 키워드를 사용합니다.Join 결과에 존재하는 attribute을 지정합니다.세 가지 유형의 Join:Natural joinInner joinOuter joinNatural Join in SQLNatural join은 동일한 attribute에 대해 동일한 값을 갖는..

[DataBase] 03. Introduction to SQL(2)

SQL에서의 집합 연산 (SET Operations in SQL)SQL은 테이블 데이터에 대해 수행될 수 있는 집합 연산을 지원합니다.이는 테이블에 저장된 데이터로부터 특별한 조건 하에 의미 있는 결과를 얻기 위해 사용됩니다.UNION (합집합)UNION ALLINTERSECT (교집합)INTERSECT ALLEXCEPT (차집합)EXCEPT ALL집합 연산 UNION (합집합), INTERSECT (교집합), EXCEPT (차집합)위의 각 연산은 자동으로 중복을 제거합니다.모든 중복을 유지하려면 다음을 사용하십시오:UNION ALL (모든 합집합)INTERSECT ALL (모든 교집합)EXCEPT ALL (모든 차집합)Union 연산 (Union operation)UNION은 두 개 이상의 SELECT..

[DataBase] 03. Introduction to SQL(1)

이 부분은 직접  테이블을 만들고 SQL 언어를 사용해보면서 익히는 것이 중요해요!SQL PartsDDL (데이터 정의 언어, Data Definition Language)DML (데이터 조작 언어, Data Manipulation Language)DCL (데이터 제어 언어, Data Control Language)TCL (트랜잭션 제어 언어, Transaction Control Language) SQL PartsDDLData definition language (DDL)은 데이터 구조, 특히 데이터베이스 스키마를 정의하기 위한 컴퓨터 프로그래밍 언어와 유사한 구문입니다.DDL 문은 데이터베이스 객체(테이블, 인덱스, 사용자 등)를 생성, 수정, 제거합니다.일반적인 DDL 문은 CREATE, ALTER,..

[DataBase] 02. Introduction to Relational Model

관계형 모델 (Relational Model)관계형 모델은 데이터베이스 관리에서 데이터 구조와 언어를 사용하여 데이터를 관리하는 접근 방식입니다.모든 데이터는 튜플(tuple) 형태로 표현되며, relation으로 그룹화됩니다.관계형 모델로 구성된 데이터베이스를 관계형 데이터베이스(relational database)라고 합니다.관계형 모델의 목적은 데이터를 명시하고 쿼리를 지정하는 선언적 방법을 제공하는 것입니다.사용자는 데이터베이스가 포함하는 정보와 원하는 정보를 직접 명시하며, 데이터베이스 관리 시스템 소프트웨어가 데이터를 저장하고 쿼리에 응답하기 위한 데이터 구조를 설명하는 과정을 담당합니다.modern DB(mySQL, ...)에서 사용되고 있다.관계형 데이터 모델 (Relational Data..