본문 바로가기
728x90

Quality control (Univ. Study)/Database Design28

Big data Big data 빅 데이터란 기존 데이터베이스 관리도구의 능력을 넘어서는 대량(수십 테라바이트)의 정형 또는 심지어 데이터베이스 형태가 아닌 비정형의 데이터 집합조차 포함한 데이터로부터 가치를 추출하고 결과를 분석하는 기술이다. 즉, 데이터 베이스 등 기존의 데이터 처리 응용 소프트웨어(data-processing application software)로는 수집 · 저장 · 분석 · 처리하기 어려울 정도로 방대한 양의 데이터를 의미한다. 빅데이터의 특징은 아래의 3Vs로 설명이 되었었다. - Volume: 데이터의 크기 - Velocity: 데이터의 생성/처리 속도 - Variety: 데이터의 다양성 (Structured, Semi-structured, Unstructured) 최근들어 5Vs까지 확장되.. 2023. 12. 6.
NoSQL NoSQL NoSQL은 Not only SQL이라고 불리는 비관계형 데이터베이스 유형이다. 전통적인 RDBMS는 관계형 데이터 모델이고 ERD를 이용하고 쿼리문을 통해 명령어를 입력한다. 그 외에도 스키마, 정규화, 데이터 무결성, 트랜잭션, ACID, Concurrency control, 2PLP, MVCC등의 다양한 특징이 있다. 그러나 전통적 DBMS에는 몇몇 문제가 존재한다. - Scalability: 오라클을 10,000대에 설치/관리할 수 있나?? - Performance: 오라클에서 초당 만건 이상의 변경을 처리할 수 있나? - Schema: 정형화된 스키마가 없으면? - Reliability는 필요 없으니 더 빠를 수는 없나? - Persistent는 필요 없으니 더 쉬울 수는 없나? - .. 2023. 11. 28.
Concurrency Control Concurrency Control DB는 여러 사용자가 접근할 수 있다. 동시 공용(Concurrent Sharing)의 이점은 공용도(sharability)의 증가, 응답 시간(response time)의 단축, 시스템 활용도(system utilization) 증대와 같은 점들이 있다. 위와 같이 serial schedule보다 병행 실행일때 효율적이다. 그러나 병행실행을 control하지 못하고 그저 실행하기만 하면 아래와 같은 문제가 발생하여 Concurrency Control이 필요하다. Dirty read문제는 commit되지 않은 데이터를 읽을때 발생하는 문제로 아래와 같은 경우가 있다. A와 B가 각각 5와 3이라면 T1에서는 A와 B가 각각 10과 6으로 바뀌었지만 해당사실을 알지 못하.. 2023. 11. 23.
Transaction Transaction Processing 데이터의 공유와 다수 사용자를 관리하기 위한 기능을 트랜잭션 처리라고 한다. 여러 사용자가 동시에 동일한 데이터베이스 공유 가능하도록 지원하는 것이다. 동시에 사용하더라도 일관성(consistency)을 보장하기 위한 동시성 제어 (concurrency control) 기능을 제공한다. 이때 트랜잭션 자체는 DB 작업을 수행하는 단위 프로세스를 의미한다. 트랜잭션의 주요 성질은 Jim Gray가 정의한 ACID로 정리된다. • 원자성(Atomicity) : 트랜잭션과 관련된 작업들이 부분적으로 실행되다가 중단되지 않는 것을 보장하는 능력이다. • 일관성(Consistency) : 트랜잭션이 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터 베이스 상태로 유지하.. 2023. 11. 21.
Query Optimization Query Optimization 쿼리 최적화는 DBMS에서 쿼리의 성능을 개선하기 위한 과정이다. 이 과정은 쿼리를 더 빠르고 효율적으로 실행하기 위해 여러 기술과 전략을 사용한다. 쿼리 최적화의 주요 목표는 데이터베이스 리소스 사용을 최소화하고 응답 시간을 단축하는 것다. Query Optimizer의 구조는 아래와 같다. 위의 DBMS 작동과정중 Query Optimizer를 자세히 보면 아래와 같다. 쿼리 최적화는 크게 CBO(Cost Based Optimize)와 RBO(Rule Based Optimize) 두가지 방식중 하나를 이용하는데 주로 CBO를 이용한다. 해당 과정에서 Optimizer는 가능한 모든 실행 계획을 생성하고 각종 통계정보를 이용한 Cost를 계산하고 최소 Cost의 실행계.. 2023. 11. 16.
INDEX 실습 가상 데이터 INDEX를 이용했을때의 효율을 알아보기 위해 가상의 Student Data 10만개를 생성하는 sql 코드를 만드는 파이썬 코드를 작성하였다. import pandas as pd import numpy as np # 학생 수 정의 num_students = 100000 # 기본 데이터 생성 names = ['Lee', 'Kim', 'Park', 'Choi', 'Jung', 'Kang', 'Cho', 'Yoon', 'Lim', 'Han', 'Hyun', 'Ji', 'Yeon', 'Hoon', 'Sun', 'Min', 'Soo', 'Seok', 'Hee', 'Kyu'] domains = ['example.com'] password = '1234' did = 1 # 데이터프레임 생성 df_stu.. 2023. 11. 14.
Normalization (2) ERD의 정규화 분석 우선 실무에서는 이전글에서 다룬 3NF까지만 정규화를 시켜도 충분하다고 한다. 따라서 3NF까지의 분석과정을 우선 살펴보면 아래와 같다. ㅇ1NF를 만족하고 있는지 분석 - 1NF : 중복된 행(repeating groups)이 없고, 모든 속성은 원자값(atomic value) - ERD에 있는 모든 entity가 PK가 있는지 확인 - 1NF를 만족하고 있는지 판단 ㅇ2NF를 만족하고 있는지 분석 - 2NF : 부분적 함수 종속을 제거 - PK가 1개이면 무조건 2NF를 만족 - PK가 2개 이상의 속성으로 이루어진 entity에서 PK속성일부와 나머지 속성들이 종속 관계가 있는지 일일이 체크해야함 ㅇ3NF를 만족하고 있는지 분석 - 3NF : 이행적 함수종속을 제거 - PK가 .. 2023. 11. 9.
Normalization (1) Normalization 정규화는 서로 독립적인 관계(relationship)는 별개의 릴레이션으로 분해하는 과정을 말한다. 다시 말해 이상이 있는 “나쁜” 릴레이션의 애트리뷰트들을 나누어서 더 작은 “좋은” 릴레이션으로 분해하는 것이다. 이때 정규형(normal form) 특정 조건을 만족하는 릴레이션 스키마의 형태이다. 1NF, 2NF, 3NF, BCNF로 나누어 지는데 각각을 따르면 알아서 정규화가 되도록 단계별 조건을 미리 만들어 놓은 것이다. 이 조건들은 릴레이션 스키마의 FD와 키에 기반하여 정의된다. 일반적으로 업계에서는 제 3 정규형 또는 BCNF형까지 고려하여 DB 정규화를 진행한다. 1NF 애트리뷰트의 도메인이 오직 원자 값만을 포함하고, 투플의 모든 애트리뷰트가 도메인에 속하는 하나의.. 2023. 11. 7.
Relation schema design protocol and Functional Dependencies Relation schema design protocol 관계형 데이터베이스 설계란 좋은 릴레이션 스키마를 생성하기 위하여 애트리뷰트들을 그룹핑하는 과정이다. 이때 좋은 릴레이션 스키마의 기준은 단순성과 무결성으로 크게 볼 수 있으나 복합적인 기준이 반영이 되어야할 것이다. 아래를 보면 같은 데이에 대해 좋은 relation schema와 나쁜 relation schema가 예시로 나와있다. 먼저 좋은 릴레이션 설계에 관한 개괄적인 지침을 논의한 후, 함수적 종속성과 정규형 개념에 관해 논의한다. 릴레이션 스키마를 형성하기 위해 애트리뷰트들을 집단화 하는 경우, 한 릴레이션에 속하는 애트리뷰트는 실세계에서 어떤 의미를 가져야 한다. 여러 엔티티(EMPLOYEE, DEPARTMENT, PROJECT)의 애.. 2023. 10. 31.
728x90