[데이터베이스 개론] 4. 대수적/논리적 쿼리 언어(Algebraic and Logical Query Language)
·
개인 공부
이 챕터는 두개의 추상적인 언어를 다룬다. 하나는 대수적(algebraic)인것, 하나는 논리적인것(logic-based)이다.대수적인 것은 챕터2에서 다룬 관계대수학과 같지만, 그 범위를 확장할 것이다. 챕터2에서는 집합에 대해서 연산했다면, 이 챕터에서는 중복을 허용한 Bags로 연산할 것이다. 논리적인 언어는 데이터로그(Datalog)라고 부른다. 우리는 원하는 결과를 구하는 알고리즘을 찾기보다, 우리가 원하는 쿼리를 표현하는데에 집중할 수 있다.5.1 Relational Operations on Bags말했듯이 Bags는 집합에서 같은 튜플의 중복을 허용한 것이다. 왜 Bags를 사용할까? 두 릴레이션의 합집합을 구할때, 중복되는 원소를 제거하는 연산을 하지 않아도 된다. 그저 두 릴레이션을 복사..
[데이터베이스 개론] 3. 고급 데이터베이스 모델(High-Level Database Model)
·
개인 공부
이 글은 DATABASE SYSTEMS:The Complete Book(2nd Edition, Hector Garcia-Molina, Jeffrey D. Ullman, Jennifer Widom)의 Chapter4: High-Level Database Model의 4.1~4.6절을 요약/재구성한 글입니다.현실의 정보들을 데이터베이스에 담으려고 하면, 어떤 정보를 어느 릴레이션에 담고, 서로 어떻게 참조 관계를 구성할지 고민이 될 수 있다. 데이터베이스 디자인을 관계형 모델(Relational model)을 이용해서 바로 접근할 수도 있지만, 그것을 추상화하는 한단계 높은 레벨의 모델을 사용할 것이다.4.1 The Entity/Relationship ModelE/R Model은 데이터 구조를 시각적으로 표..
[데이터베이스 개론] 2. 관계형 데이터베이스 설계(Design Theory for Relational Databases)
·
개인 공부
이 글은 DATABASE SYSTEMS:The Complete Book(2nd Edition, Hector Garcia-Molina, Jeffrey D. Ullman, Jennifer Widom)의 Chapter3: Design Theory for Relational Databases를 요약/재구성한 글입니다.스키마 설계 단계에서, 초안으로 나온 스키마는 개선의 여지가 많다. 제거해야 할 스키마의 중복(redundancy)이 대표적이다. 이런 관게형 데이터베이스의 이상(Anomalies)들을 쉽게 설명하기 위하여, 의존성(dependencies)이라는 개념은 좋은 수단이다.우리는 함수의존성(FD, functional dependencies)의 아이디어부터 시작해서, 정규화(normalization)와 다..
[데이터베이스 개론] 1. 관계형 데이터 모델(Relational Data Model)
·
개인 공부
이 글은 DATABASE SYSTEMS:The Complete Book(2nd Edition, Hector Garcia-Molina, Jeffrey D. Ullman, Jennifer Widom)의 Chapter2: Relational Database Modeling를 요약/재구성한 글입니다.2.1 데이터 모델 개요(An Overview Of Data Models)데이터 모델이란 무엇인가? 이것을 정의하기에 앞서, 데이터 모델을 정의하는 세가지 관점을 소개한다.첫째, 데이터의 구조(structure of data): 프로그래밍 언어의 배열, 객체 같은 것과 유사하다. 그러나, 데이터베이스에서 얘기하는 데이터의 구조는 그것보다는 상위 계층에서 일어나는 일이다. 그래서, 물리적 모델(physical mode..
Github CLI로 터미널에서 git 인증 편하게 하기
·
개발이야기/토막글
새로운 터미널 환경에서 새로운 레포지토리(repository)라도 클론(clone)받으려고 하면 인증이 참 귀찮다. 웹에서 쓰는 비밀번호를 입력하면, 아래의 이미지처럼 비밀번호 인증(Password Authentication)이 종료되었다는 오류로 실패하게 되기 떄문이다. 따로 깃헙의 개인 액세스 토큰(Personal Access Token)을 발급받거나, SSH key를 생성해야 하는데, 토큰의 권한도 관리해줘야하고, 여러모로 복잡하다.  그래서 나는 Github CLI로 로그인하는 방법을 선호한다. Github CLI를 이용하면 여러가지 편리한 방법으로 터미널에서 로그인을 할 수 있다.brew install gh // macOSapt install gh // Linuxgh auth login이 대화형..
[이산구조] 명제(Proposition)
·
개인 공부
이 글은 Discrete Mathematics and its Applications by Kenneth H. Rosen, 8th Edition의 1.1~1.3 절을 재구성한 내용입니다. 이 글은 LaTeX 수식이 포함되어 있습니다. $\sum$  명제(Proposition)참/거짓을 판단할 수 있는 평서문(Declarative sentence) "x+5=10"은 명제가 아니다.  x의 값에 따라 참/거짓이 달라지므로, 문장만으로, 진위를 판단할 수 없기 때문이다. 나중에 다루지만, 이 문장은 predicate라고 할 수 있다. 명제를 부정(Negation)하면 새로운 명제를 만들 수 있다. 혹은, 두개 이상의 명제를 합쳐서 하나의 새로운 명제(compound proposition)를 만들 수 있다. 이 ..
[전산기조직] 논리 디자인의 기초 - Combinational Logic 편
·
개인 공부
이 글은 Computer Organization And Design: The Hardware/Software Interface, David A. Patterson and John L Hennessy 6th edition 중, Appdendix C: The Basics of Logic Design의 C.2~C.3를 읽고 재구성한 글입니다. 이 글 속의 이미지들도 이 책의 이미지를 사용했습니다. 이 글은 LateX 수식이 포함되어 있습니다. $ \sum $ ">이 글은 LateX 수식이 포함되어 있습니다. $ \sum $   컴퓨터 세상의 신호는 디지털(Digital)로 통한다. 디지털은 모든 신호를 두 가지로 표현한다. True, 1, asserted 등으로 표현하는 신호와 false, 0, deasser..
[정보보호개론] 보안의 속성(CIA triad, AAA triad)
·
개인 공부
컴퓨터 보안의 속성은 CIA triad 와 AAA triad로 설명할 수 있다. CIA triad는 Confientiality(기밀성), Integrity(무결성), Availability(가용성), AAA triad는 Assurance(보장성), Authenticity(진위여부), Anonymity(익명성) 을 포함한다.*CIA triad이 3가지 속성을 잘 갖춘 서비스가 보안이 튼튼한 서비스라고 할 수 있다. Confidentiality(기밀성) 인증되지 않은 사람이 데이터를 읽지 못하게 해야함을 의미한다. 기밀성은 3가지 방법으로 구현될 수 있다. 첫째로 암호화(Encryption)는 대칭/비대칭 키를 이용하여 데이터의 내용을 숨긴다. 둘째로 인증(Authentication)은 유저의 신원을 확..