본문 바로가기
반응형

DB & SQL/데이터베이스 개론14

(Fin) 데이터 과학과 빅데이터 Preface 이번 장에선 데이터 과학과 빅데이터, NoSQL에 대해 공부했다. 지금껏 NoSQL은 단지 RDB에서 처리하지 못하는 멀티미디어 데이터를 효율적으로 관리하기 위한 SQL 중 하나인 줄 알았는데, 생각보다 NoSQL의 종류도 다양하고 체계적으로 구성되어 있어 놀랐다. MySQL 공부를 마무리한 후 시간적 여유가 되면 NoSQL도 제대로 공부해보고 싶다. 처음 DB 공부를 시작할 땐 굉장히 복합하고 어려운 개념이 많을 것 같다는 생각에 걱정을 많이 했지만, 예상했던 것 보다 수월하게 책을 마무리한 것 같다. 1. 데이터 과학 - 데이터 과학: 데이터를 수집한 후 분석을 통해 데이터를 정확히 이해함으로써 그 속에 숨겨진 새로운 지식을 발견하고 이를 문제 해결에 활용하는 모든 과정의 활동 - 데이.. 2022. 3. 6.
데이터베이스 응용 기술 Preface 이번 장에선 관계 데이터베이스가 아닌, 다양한 종류의 DB를 알아보았다. 단편화 투명성을 공부하던 중, 단편화의 장점으로 저장 공간을 적게 사용한다는 것과 관리할 데이터의 수가 줄어든다는 내용을 본 후 '단편화를 통해 하나의 릴레이션을 여러 개의 릴레이션으로 분할하면 오히려 릴레이션이 늘어나 저장 공간을 더욱 많이 차지하고, 관리할 데이터의 수도 증가하는 것이 아닐까?'라는 의문이 들어 한참을 고민해 보니 해당 내용은 분산 DBS에만 국한된 개념일 것 같다는 생각이 들었다. 또, 분산 DBS의 장점 중 하나인 신뢰성과 가용성 증대를 완벽히 실현시키려면 데이터의 부분 중복이 아닌, 완전 중복을 항상 충족시켜야 할 것 같다는 생각이 들었다. 원래 이번 책은 개강 전에 마무리할 계획이었지만, 예.. 2022. 3. 3.
보안과 권한 관리 Preface 이번 장에선 DB의 보안과 권한 관리 방식을 공부했다. 권한이 필요한 사용자에게 SQL 문을 이용하여 권한을 부여하거나, 부여했던 권한을 취소하는 것 뿐이므로 어렵고 복잡한 내용은 없었다. 다만, 이번 장의 마지막에 잠시 소개된 데이터베이스의 암호화 부분은 정확히 이해할 수 없어 따로 빼서 정리해두었다. 1. 보안 - 데이터베이스 보안의 유형 1) 물리적 환경에 대한 보안: 자연 재해 등으로부터 보호 2) 권한 관리를 통한 보안: 권한이 없는 사용자로부터 보호 3) 운영 관리를 통한 보안: 권한이 있는 사용자로부터 보호 → 무결성 유지를 위해 2. 권한 관리 - DBMS는 접근 제어 기능을 기본으로 제공한다. - 사용자 계정 관리는 데이터베이스 관리자가 담당한다. → DB 보안 관리를 위해.. 2022. 2. 28.
회복과 병행 제어 Preface 이번 장에선 트랜잭션을 사용한 회복과 병행 제어를 알아보았다. 딱히 이해하기 어려운 부분은 없었지만, 의문이 생기는 부분들이 있었다. 먼저, 데이터베이스의 회복 연산인 undo에 관한 내용이다. undo 연산은 로그를 이용해 실행된 모든 변경 연산을 취소하여 데이터베이스를 원래 상태로 복구하는 작업으로, 주로 트랜잭션이 완료되기 전 장애가 발생한 경우 사용한다고 하는데, 트랜잭션이 완료되기 전 상태라면 rollback 연산을 사용하여 트랜잭션이 수행되기 전의 상태로 돌아가는 것이 undo 연산으로 로그 레코드를 사용하는 것보다 효율적일 것 같다는 생각을 했다. 다음은 즉시 갱신 회복 기법에 관한 내용이다. 예를 들어 T1과 T2 트랜잭션을 직렬 스케줄로 수행할 때 T2 트랜잭션 수행 도중 .. 2022. 2. 24.
정규화 Preface 이번 장에선 데이터베이스의 정규화란 무엇인지, 또 정규형엔 어떤 종류가 있는지에 대해 공부했다. 공부를 하던 도중 문득 소프트웨어 공학에서 정규형에 관한 내용을 봤던 기억이 나 지난 포스팅을 찾아보자 자료 흐름 중심 설계와 데이터베이스 설계 장에서 RDB를 간단히 공부했던 것을 알 수 있었다. 당시에는 정규형이라는 것을 제대로 이해할 수 없어 단어의 의미와 관련된 링크를 걸어두었는데, DB를 본격적으로 공부하니 막히는 부분 없이 쉽게 이해하며 넘어갈 수 있었다. 한 가지 헷갈리는 부분은 보이스/코드 정규형이었는데, 후보키의 의미를 다시 본 후 책을 읽자 제3 정규형과의 차이를 확실히 알 수 있었다. 각 릴레이션을 보고 어떤 정규형에 속하는지 바로 알 수 있으려면 상당한 경험이 축적되어야 할.. 2022. 2. 23.
데이터베이스 설계 Preface 이번 장에선 요구사항 명세서를 분석하여 E-R 다이어그램으로 표현한 후, 이를 바탕으로 관계 데이터 모델을 작성하는 방법을 알아보았다. 책에서 소개하는 각 단계의 예시들은 쉽게 따라하며 이해할 수 있었지만, 아무런 도움 없이 혼자 DB를 설계하려면 요구사항 명세서를 작성하는 것 부터 굉장히 오랜 시간이 소요될 것 같다는 생각이 들었다. 또, 소프트웨어 공학을 처음 공부한 것이 정말 잘한 일인 것 같다는 생각도 들었다. 다양한 내용들을 전체적으로 훑은 것 뿐이지만, 한 번 봤던 내용을 다시 공부하자 이해하기도 수월하고 자연스레 복습도 돼 자신감이 생긴다. 1. 데이터베이스 설계 단계 2. 요구사항 분석 - 목적: 개발할 DB의 용도를 명확히 파악하는 것 - 요구 사항 분석의 단계 1) 사용자.. 2022. 2. 21.
데이터베이스 언어 SQL Preface 이번 장에선 SQL의 기본적인 명령어를 공부했다. SQL도 언어의 한 종류라 그런지 파이썬을 공부할 때처럼 재미있게 공부할 수 있었지만, 양이 너무 많아 공부할 때도, 블로그를 작성할 때도 시간이 정말 오래 걸렸다. 책에 나와 있는 예제를 실제로 작성해보며 공부를 할까 생각도 해봤지만, 책에선 내가 공부하고싶은 My SQL이 아닌, ORACLE로 예시를 들어 설명하고 있어 이번 책을 마친 후 실습 책을 시작할 때 본격적으로 코드를 작성해보기로 했다. 1. SQL의 소개 - SQL: 관계 데이터베이스를 위한 표준 질의어로 많이 사용되는 비절차적 언어 1) 데이터 정의어 2) 데이터 조작어 3) 데이터 제어어 - SQL은 DBMS에 직접 접근하여 대화식으로 질의를 작성할 수도 있지만, 프로그래.. 2022. 2. 17.
관계 데이터 연산 Preface 이번 장에선 관계 데이터 연산의 방법 중 관계 대수에서 사용되는 다양한 연산자에 대해 공부했다. 일반 집합 연산자는 평소에 자주 봤던 기호들이라 친근했지만, 순수 관계 연산자들의 역할을 구분하여 예제를 푸는 것은 다소 복잡하고 헷갈렸다. 관계 대수와 관계 해석은 실질적으로 사용되지 않고 단지 새로운 언어의 유용성 검증 기준을 위한 도구라고 하는데, 그렇다면 SQL을 이용해 DB를 설계할 때 위의 연산자들은 전혀 쓰이지 않는 것인지 궁금하다. SQL을 본격적으로 소개하는 다음 장에서 그 해답을 얻을 수 있을 것 같다. → 글을 검토하며 다시 생각해보니 일반 언어에선 특정 문법을 통해 결과(출력물)를 얻으므로, 관계 데이터 연산은 새로운 언어의 문법이 정상적으로 작동하는지 검사할 때만 사용될 .. 2022. 2. 13.
관계 데이터 모델 Preface 이번 장에선 논리적 데이터 모델의 도구 중 하나인 관계 데이터 모델을 공부했다. 처음 데이터베이스 공부를 시작할 땐 그동안 공부했던 책들보다 어려울 것 같다는 생각을 했지만, 주로 단어의 의미만을 소개하는 탓인지 책이 잘 읽혀 막히는 부분 없이 쉽게 이해하며 넘어갈 수 있었다. 남은 2주 간 쭉쭉 진도를 나가 개강 전에 이번 책을 끝낼 계획이다. 1. 관계 데이터 모델의 개념 - 릴레이션: 관계형 DB에서 정보를 구분하여 저장하는 기본 단위 → DB 테이블 - 관계 데이터 모델에선 하나의 개체에 관한 데이터를 릴레이션 하나에 담아 DB에 저장한다. - 관계 데이터 모델의 기본 용어 1. 속성(애트리뷰트): 릴레이션의 열 2. 튜플: 릴레이션의 행 3. 도메인: 속성 하나가 가질 수 있는 모.. 2022. 2. 11.
데이터 모델링 Preface 이번 장에선 데이터 모델링에 대해 공부했다. E-R 다이어그램은 소프트웨어 공학에서 이미 배웠던 내용이라 복습하는 기분으로 지난 포스팅을 살펴보며 쉽게 이해하고 넘어갈 수 있었다. 개념적인 내용들을 도식화하는 개념적 모델링은 생각보다 단순한 작업인 것 같은데, 이를 실제 DB에 저장하는 논리적 모델링 작업은 어떻게 진행될지 궁금하다. 이론적인 부분을 하루 빨리 마무리한 후 실제로 데이터베이스를 구축하여 나만의 웹 사이트를 만들어보고 싶다. 1. 데이터 모델링과 데이터 모델의 개념 - 데이터 모델링: 현실 세계에 존재하는 데이터를 컴퓨터 세계의 데이터베이스로 옮기는 변환 과정 1) 개념적 모델링: 현실 세계의 특정 개념에 대한 중요 데이터를 추출하여 개념 세계로 옮기는 작업 2) 논리적 모델.. 2022. 1. 31.