0. 개요

오늘 공부한 SQLD 와 함께 파이썬에서 알게 된 새로운 내용을 다시 정리해보려고 한다.


1. SQLD 에서 잠시 배운거

 [1] 데이터 모델과 모델링의 정의

1) 데이터 모델이란? - 데이터를 기반으로 한 모델링의 과정
[중요한 이유 : 데이터 모델은 데이터베이스의 큰 그림을 이해하고 SQL을 작성하는 데 필요한 매우 중요한 요소]

2) 데이터 모델링의 정의 (중요 ⭐⭐⭐⭐⭐)
 - 데이터 모델링 - 현실 세계의 모습들을 추상화해서 표현하는 것 
 - 정보 시스템 구출을 위해 데이터 관점의 업무를 분석하는 과정 = 개발만을 위한, 보기만을 위한 것이다는 틀린 오답
 - 현실 세계의 데이터를 약속된 표기법에 의해 표현하는 과정
 - 데이터베이스를 구축하기 위한 분석 및 설계의 과정 

3) 목적 : '정의' 하고 '표현'해서 업무를 분석하여 분석 모델을 통해 실제 데이터베이스를 생성하여 데이터를 관리

4) 데이터 모델이 제공하는 기능

기능 설명
시각화 시스템을 원하는 모습으로 시각화해서 자료를 보여준다.
문서화 문서를 구조화해서 하나의 양식으로 만든다.
구체화 특정한 목표를 구체화된 여러 수단을 사용해서 데이터를 제공한다.
구조화된 틀 제공 시스템을 구축하는 구조화 된 프레임을 제공한다.
다양한 관점 제공 다양한 영역에 집중하기 위해 다른 세부적인 사항은 숨기고 다양한 관점을 제공한다.

 5) 데이터 모델링의 특징

특징 설명
추상화(Abstraction) 일정한 양식에 맞춰서 표현하는 것
특정한 정량적 / 정성적 데이터를 하나의 개념,단어 등으로 추상화 시키는 개념
단순화(Simplification) 현실 규칙에 기반한 제한도니 표기법이나 언어로 표현
복잡한 내용을 재분류하고 나눈 다음 카테고리 화하여 단순화 시키는 것.
명확화(Clarity) 애매모호한 내용을 지우고 현상을 정확히 정의하는 방법

사실 여기 까지 밖에 이해 못했다. 더 들어봤는데, 괜히 헤매고 있어서... 그래서 2번 이상 들었는 데도 더 불가능해서 파이썬 공부를 했다.


2. 파이썬 배운거 중에 새로 배운 거 정보

print(type(age))  #<class 'int'>
pring(type(name)) #<class 'str'>

type() 의 경우에는 int / str / float / list 와 같은 해당 변수가 가지고 있는 함수의 속성이 출력된다.

   
정수형(integer) 소수점 없는 이하의 부분을 출력
int() 의 경우에는 항상 정수로 나온다.
실수형(float) 소수점 이하의 숫자를 포함하는 값을 출력
type() 을 통해서 값이 <class 'float'>등으로 쓰면 플롯 값이다.
참/ 거짓 (Boolean) 주어진 자료형이 참인지, 거짓인지 판별할 때 사용함
문자열 (str) 값이 문자인 경우
기타 리스트(List) / 튜플(tuple)

* 실수형을 정수형으로 출력하는 파이썬 구하기

num1 = -8.09
asb_result = abs(num1)     #절대값 계산
round_result = round(num1) #반올림 계산

print("절대값", asb_result)
print("반올림", round_result)

----------------------------------------
절대값 8.09
반올림 -8

abs() 함수는 절대값으로 반환하고, round() 함수는 반 올림한 값을 반환한다.

* 함수의 참 거짓을 구별하는 값 구하기

#변수 설정
is_raining = True
is_sunny = False

print(is_raining)
print(is_sunny)
-----------------------------------------
True
False


# 비교 연산자로 참 거짓 값 비교하기
x = 100
y = 50

greater_than = x > y
print(greater_than)
------------------------------------------
True

* NAN

NAN 의 뜻 : 정의할 수 없는 수치 값
수학적 연산구조에서 연산이나 값이 유효하지 않을때, 데이터 프레임과 같은 데이터 구조에서 결측치를 표현할 때 사용되는 값. SQL의 NULL 과 비슷해보인다.

#0으로 나누는 연산
result = 1/0
print(result)
-------------------------------
!ERROR! NAN Infinity 는 값이 아니다.

result = 1/0.00000
print(result)
-------------------------------
0.000000000000000 => 무한과 가까운 숫자를 출력

# 유효하지 않은 수학적 연산
result = math.sqrt(-1)
print(result)
-------------------------------
!ERROR! NAN
import pandas as pd

data = {'A': [1,2,NONE],
        'B': [3,NONE,5]}
df = pd.Dataframe(data)

print(df)
--------------------------------
!ERROR!
#출력 값 환산
         A     B
#  1    1.0   3.0
#  2    2.0   NAN
#  3    NAN   5.0

=> A와 B에 비어있는 값으로 인해서 해당 값은 공란 처리 'NAN' 표기

* input 함수

input() 함수는 사용자가 직접 키보드를 입력해서 칠 수 있게 하는 함수

name = input("이름을 입력하세요.")
print("안녕하세요," name, "님!")
-------------------------------------
이름에 A 값을 넣을 경우
안녕하세요, A 님! 이라고 출력됨

이를 보면 input() 함수는 사용자로부터 문자열의 값을 입력받아서 사용할 수 있는 함수

num1 = int(input("첫 번째 숫자"))
num2 = int(input("두 번쨰 숫자"))
sum = num1 + num2
print("두 숫자의 합은", sum , "입니다.")
-----------------------------------------
if num1 = 2 num2 = 5
두 숫자의 합은 7 입니다.

if num1 = a num2 = b
NAN !ERROR!

int() 함수로 감쌀 수는 있지만, 이 경우에는 해당 값은 정수의 숫자가 들어가야 하며, 문자열과 같은 다른 값이 들어가면 오류가 난다.


오늘 배우면서 SQLD가 너무 어려웠다. 안되면 다시 듣는 수 밖에...
늘 그렇듯 스스로 코드를 다시 짜면서 코드의 구조를 이해하려고 노력은 해보고 있다. 다만... 그게 잘 안되서 조금 힘들다.

어떻게 하면 프로그래머의 그 구조를 이해할 수 있을까?
그건 아직 천천히 해야될 일이긴 했다. 앞으로 얼마 시간이 안남았으니 조금만 더 힘내자! 아자아자!

 

myo