1. 관계 대수 연산 - 릴레이션을 내부적으로 처리하기 위한 연산들의 집합 - SQL 데이터베이스 언어의 이론적 토대를 제공 - 모든 연산의 적용 대상도 릴레이션이고, 연산 결과 또한 릴레이션 - 2개의 그룹으로 분류; 수학 집합 이론에 기반을 둔 집합 연산 그룹과 관계형 데이터 모델을 위해 추가된 관계 연산 그룹 1.1 집합 연산 - 일반적인 수학의 집합 연산과 의미와 기능이 같음 - 합집합, 교집합, 차집합 연산은 두 입력 릴레이션이 서로 합병 가능(union compatible)해야 함 - 합병 가능하려면, 두 릴레이션의 차수가 같고 대응하는 속성의 순서와 도메인이 같아야 함 - 속성 이름은 서로 달라도 되며 연산 적용 후 결과 릴레이션의 속성 이름은 첫번째 릴레이션의 속성 이름을 따름 합집합 - ..
1. 관계형 데이터 모델 1.1 데이터 모델의 구성 요소 - 데이터 모델은 데이터 구조와 연산, 제약 조건와 같이 3가지 요소로 구성된다. 데이터 구조 - 데이터를 어떤 형태로 저장하는지를 표현 연산 - 데이터를 어떤 방식으로 처리하는지를 표현 제약 조건 - 데이터 구조를 지정할 때의 구조적 제약 사항과 연산을 적용할 때의 행위적 제약 사항을 표현 1.2 관계형 데이터 모델의 구성 요소 - 관계형 데이터 모델은 테이블 형태의 릴레이션을 통해 데이터를 저장하고 데이터 간의 관련성도 표현 - 데이터 구조는 릴레이션, 연산은 관계 대수, 제약 사항은 무결성 제약 조건으로 명세 2. 관계형 데이터 구조 2.1 관계형 데이터 구조의 개념 - 릴레이션 - 1970년대 IBM 연구소의 E. F. Codd가 제안한 데..
데이터베이스 사용자의 종류와 역할 데이터 언어의 종류 데이터베이스 관리 시스템의 구성요소와 기능 데이터 모델의 종류와 DBMS와의 관계 3단계 데이터베이스의 구조와 데이터 독립성 1. 데이터베이스 시스템의 구성요소 - 데이터베이스, 사용자, 언어, DBMS, 서버, 모델 등 6가지로 구성 1.1 데이터베이스 시스템의 개념 데이터베이스와 DBMS를 포함. 사용자, 데이터베이스에 접근하기 위해 사용하는 데이터 언어, 데이터베이스에 대한 다양한 접근 요청을 효율적으로 실행하는 데이터베이스 서버까지 추가적으로 포함하는 포괄적 개념 1.2 데이터베이스 사용자 접근 목적에 따라 분류 일반 사용자 - end user 응용 프로그래머 - 응용 프로그램을 개발할 목적으로 데이터베이스에 접근하는 사용자 유형 데이터베이스 ..
정보시스템의 유형과 발전 과정 데이터베이스 시스템의 장단점 데이터베이스의 정의와 특성 1. 데이터베이스와 정보 시스템 정보 시스템과 그 안의 데이터베이스와의 상호 작용 일상 속 예시 1.1 데이터와 정보 데이터란? 정보란? 상대적 개념 1.2 정보 시스템의 발전 정보시스템의 구조 데이터를 수집, 저장, 처리 가공, 의사 결정에 필요한 정보 생성 정보 시스템의 발전 과정 파일 정보 시스템 -> 데이터베이스 시스템 전통적 파일 정보 시스템의 문제점 응용 프로그램마다 서로 다른 데이터 파일 사용. 따라서 각 개별 데이터 파일 안의 데이터에 대한 검색, 삽입, 갱신 및 삭제 코드를 직접 개발해야했음 이에 따른 문제점 1) 데이터의 종속성 증가 - 각 응용 프로그램 속에 데이터 파일의 저장 방식이나 저장 데이터의..
JDK 설치 방법 2가지 1. Oracle 홈페이지 아래의 주소에서 다운로드 받는다. 현재 Apple Silicon 버전이 나와있지 않기 때문에 OpenJDK를 통해 설치하는 것을 추천한다. www.oracle.com/kr/java/technologies/javase-downloads.html 2. OpenJDK https://www.azul.com/downloads/?os=macos&architecture=arm-64-bit&package=jdk Downloads Download Azul Platform Prime Azul Platform Prime extends Core, adding unique Azul innovations to improve the runtime characteristics of..
최근 맥북 M1을 쓰다가 Monterey로 OS를 업그레이드 해서 쓰던 중 유독 Visual studio code를 사용하기 시작하면 노트북이 뜨거워지고 배터리가 급감하는 현상이 발생하였다. 원인을 추적하기 위해 먼저 프로그램 별 배터리 사용률을 확인하였다. 아래처럼 Visual studio code가 주된 원인으로 보였다. 그래서 M1 + VS code + batter drain이라는 키워드로 구글링을 하다가 많은 사람들이 같은 현상을 겪는 것을 확인하였다. 주된 문제 해결 방법으로 거론된 것은 아래와 같다. 1. VS code가 Apple silicon 버전으로 설치되어 있는 지 확인한다. 그렇지 않다면 아래와 같이 VS code 홈페이지에 접속하여 Apple silicon로 재설치한다. 2. VS ..
데카르트 곱을 계산할 때 사용하는 itertools 라이브러리의 product 함수에 대해 예시를 통해 알아본다. 아래와 같이 test 변수에, 튜플의 리스트를 담았다. 이후 product 함수를 통해 파라미터로 test 변수를 언패킹하여 전달하여 그 결과를 line by line으로 출력해보면 다음과 같다. from itertools import product test = [(1, -1), (1, -1), (1, -1)] for elem in product(*test): print(elem) (1, 1, 1) (1, 1, -1) (1, -1, 1) (1, -1, -1) (-1, 1, 1) (-1, 1, -1) (-1, -1, 1) (-1, -1, -1)
Decision Tree 분류와 회귀, 다중 출력도 가능한 알고리즘이다. 매우 복잡한 데이터셋도 학습할 수 있다. 강력한 머신러닝 알고리즘 중 하나인 랜덤 포레스트의 기본 구성 요소이기도 하다. 확률 추정 먼저, 어떻게 결정 트리가 예측을 만들어내는지 위 그림을 통해 보자. 새로 발견한 꽃의 품종을 분류하려고 한다고 하자. 먼저 루트 노드에서 시작하여 그 꽃의 길이가 2.45보다 짧은 지 검사한다. 만약 짧다면 왼쪾 노드로 이동한다. 이 경우 자식 노드가 없는 리프 노드이므로, 추가적인 검사를 하지 않고 노드에 있는 예측 클래스를 보고 setosa를 예측 값으로 내뱉는다. 노드의 구성 요소를 보면 gini라는 것이 있다. 이는 지니 불순도를 말하는 것이고, 그 노드의 불순도를 측정한다. 한 노드의 모든 ..
소프트맥스 회귀(Softmax regression) 로지스틱 회귀 모델 사용 시 1 혹은 0, 즉 이진 클래스가 아니라 다중 클래스를 예측하고 싶다면 여러 개의 로지스틱 회귀를 연결하면 되지만 소프트맥스 회귀(혹은 다항 로지스틱 회귀)를 사용하여 다중 클래스를 예측할 수 있다. 확률 추정 입력 특성의 가중치 합을 구한 후(각 클래스에 대한 소프트맥스 점수), 그 결과에 소프트맥스 함수(정규화된 지수 함수)를 적용하여 각 클래스의 확률을 추정한다. 각 클래스 k에 대한 소프트맥스 점수 $$s_k(x) = (\theta^{k(k)})Tx$$ 소프트맥스 함수 $$\hat p_k = \sigma(s(x))_k = \frac {exp(s_k(x))} {(\sum exp(s_j(x)))}$$ 예측은 다음과 같이 추..
로지스틱 회귀(Logistic Regression) 분류에서 사용되는 회귀 알고리즘이다. 샘플이 특정 클래스에 속할 확률을 추정하는 데 사용된다. 확률이 50%가 넘으면 해당 클래스에 속한다고 예측한다. 확률 추정 입력 특성의 가중치 합에 편향을 더한 후, 그 결과에 로지스틱 함수를 적용한 결과 값을 출력한다. $$\hat p = h(x) = \sigma(\theta^Tx)$$ 로지스틱은 0과 1 사이의 값을 출력하는 시그모이드 함수이며, 아래와 같다. $$\sigma(t) = \frac {1}{1+exp(-t)}$$ $${\hat p}$$를 추정하면 이에 대한 에측 값 $$\hat y$$를 다음과 같이 구할 수 있다. $$ \hat y= \begin{cases} 0,\;if\;\hat p