728x90
반응형
SMALL

안녕하세요, 혼자 공부하는 SQL을 보고 학습한 자료를 남깁니다.

 

데이터베이스 모델링

데이터베이스 모델링은 건축 설계도와 같다.

프로젝트 진행 단계

프로젝트 - 현실 세계에서 일어나는 업무를 컴퓨터 시스템으로 옮겨놓는 과정이다.

더 쉽게는 '대규모 소프트웨어'를 작성하기 위한 전체적인 과정이라고 볼 수 있다.

간단한 프로젝트는 한 두명이 작업 가능하다.

복잡한 프로젝트는 한 두명이서 작업하는 것은 불가능하다.

대표적인 모델은 '폭포수 모델'이다.

폭포수가 떨이지듯이 작업을 하는 것이다. 단계별로 프로젝트를 진행하는 것이다.

1. 프로젝트 계획, 2. 업무 분석, 3. 시스템 설계, 4. 프로그램 구현, 5. 테스트, 6. 유지보수

 

일반적으로 데이터 베이스 모델링은 시스템 설계에 속한다.

우리가 살고 있는 세계를 데이터베이스에 넣기 위한 작업

데이터베이스 안에는 테이블들이 필요하다. 현실세계에서 테이블이 오는 것이다.

예를 들어 회원 테이블, 직원 테이블, 구매 테이블, 물품 테이블

이런식으로 테이블을 만들 수 있습니다.

 

데이터 모델링은 정답은 없다.

현실세계에서 추출을 할 때 사람에 따라서 다르게 추출을 할 수 있다.

하지만 모범답안 정도는 있다.

설계도를 잘 못 그리면 건축물이 안 예쁘거나 위험할 수 있다.

그렇듯이 데이터베이스 모델들도 좋은 모델링과 나쁜 모델링도 존재한다.

데이터 모델링이 완료된 작업은 다음과 같다.

전체 데이터베이스 설계도의 모습이다.

컴퓨터의 폴더와 약간 비슷하다. 파일들이 들어갈 수 있다. 그게 테이블이라고 볼 수 있다.

우리가 관심을 갖을 것은 쇼핑몰 데이터 베이스이다. 슈퍼마켓을 옮겨놓은 것이라고 볼 수 있다.

ID는 중복이 되면 안 된다.

id는 문자로 해야 된다. 회원 이름도 문자 그리고 주소도 문자로 넣어야 한다.

하지만 가격은 숫자로 넣어야 한다. 정확한 숫자가 적혀있어야겠죠.

제조일자는 날짜가 적혀있어야겠죠.

이것이 바로 데이터 타입입니다.

 

감사합니다.

https://www.youtube.com/watch?v=j2DAiY-OXGs&list=PLVsNizTWUw7GCfy5RH27cQL5MeKYnl8Pm&index=4

 

728x90
반응형
LIST
728x90
반응형
SMALL

안녕하세요, 혼자 공부하는 SQL을 보고 학습한 자료를 남깁니다.

 

MySQL은 교육용은 무료 (Community)

상용은 유료입니다. (Standard, Enterprise, Cluster CGE)

 

MySQL 설치를 위한 컴퓨터 환경

64bit Windows 10 (또는 11)

 

MySQL 다운로드 및 설치

msi는 그냥 설치할 수 있는 프로그램입니다.

허용이 나오면 예를 누르시면 됩니다.

Custom으로 설치합니다. (우리가 필요한 것만 설치하면 됩니다.)

- MySQL Server > MySQL Server 8.0.21

- Application >  MySQL Workbench

- Documentations > Sample and Examples 8.0.21 (샘플 데이터를 사용할 예정)

이렇게 세 가지를 설치를 합니다.

- Product Configuration > Standalone mysql 체크 > config type 확인 및 TCP/IP 체크 > Authentication Method > Use Legacy Authentication Method  선택 > Accounts and Rules 에서 password 설정 > mysql service name 설정 > execute 클릭

- Sample 데이터베이스 다운로드 > username과 패스워드 입력 > execute 클릭

 

#mysql workbench

mysql server에 접속을 해서 sql 작동을 주고 받고 주고 받고 한다.

root는 현재 내 컴퓨터에 있는 mysql에 접속하겠다는 의미이다.

 

#workbench 사용 방법

오른쪽에 있는 파란색 네모들을 보고 좌단, 하단, 우측단을 켜거나 끌 수 있다.

가운데 있는 창은 메모장과 같은 창이다. 이를 통해 SQL문 작성이 가능하다.

SHOW DATABASES; 는 자바의 Hello, World와 같은 문구이다.

DBMS는 데이터베이스를 관리하는 소프트웨어이다.

한 개가 아니라 여러개의 데이터베이스가 있다.

그 데이터베이스들이 바로 조회된 목록이다.

메모창을 닫으려면 탭에 SQL File4 옆에 x를 누르면 닫힙니다.

새창을 열고 싶으시면

File > New Query Tab 을 클릭하면 새창이 열리는 것을 볼 수 있다.

File > Exit 를 클릭하면 MySQL Workbench가 닫히는 것을 볼 수가 있다.

 

감사합니다.

https://www.youtube.com/watch?v=8r1W_7nuo2U&list=PLVsNizTWUw7GCfy5RH27cQL5MeKYnl8Pm&index=3

 

728x90
반응형
LIST
728x90
반응형
SMALL

안녕하세요, 혼자 공부하는 SQL을 보고 학습한 자료를 남깁니다.

 

MySQL은 교육용은 무료 (Community)

상용은 유료입니다. (Standard, Enterprise, Cluster CGE)

 

MySQL 설치를 위한 컴퓨터 환경

64bit Windows 10 (또는 11)

 

MySQL 다운로드 및 설치

msi는 그냥 설치할 수 있는 프로그램입니다.

허용이 나오면 예를 누르시면 됩니다.

Custom으로 설치합니다. (우리가 필요한 것만 설치하면 됩니다.)

- MySQL Server > MySQL Server 8.0.21

- Application >  MySQL Workbench

- Documentations > Sample and Examples 8.0.21 (샘플 데이터를 사용할 예정)

이렇게 세 가지를 설치를 합니다.

- Product Configuration > Standalone mysql 체크 > config type 확인 및 TCP/IP 체크 > Authentication Method > Use Legacy Authentication Method  선택 > Accounts and Rules 에서 password 설정 > mysql service name 설정 > execute 클릭

- Sample 데이터베이스 다운로드 > username과 패스워드 입력 > execute 클릭

 

#mysql workbench

mysql server에 접속을 해서 sql 작동을 주고 받고 주고 받고 한다.

root는 현재 내 컴퓨터에 있는 mysql에 접속하겠다는 의미이다.

 

 

 

 

 

 

 

감사합니다.

https://www.youtube.com/watch?v=8r1W_7nuo2U&list=PLVsNizTWUw7GCfy5RH27cQL5MeKYnl8Pm&index=3

 

728x90
반응형
LIST
728x90
반응형
SMALL

안녕하세요 혼자 공부하는 SQL을 공부하고 학습한 자료를 남깁니다.

+ MySQL Community 8.0 지원

+ DB와 소통하는 언어

데이터베이스는 우리 삶에 가까이에 있다.

우리 일상 생활 속의 정보가 저장되는 것입니다.

많은 것들이 데이터베이스에 저장되어 있다.

데이터의 집합이라고 표현을 할 수가 있다.

예를 들어, 카톡의 메시지, 커피의 가격

이 모든 것이 다 모여있는 것을 데이터베이스 (데이터의 집합)이라고 할 수 있습니다.

 

DBMS는 Database Management System입니다.

엑셀도 비슷하지만, 엑셀은 DB라고 불리우지는 않습니다.

그 이유는 대용량이 아니기 때문입니다.

데이터베이스는 대용량을 관리할 수 있어야 하기 때문입니다.

 

엑셀로 DB 만들어보기 

서로 동시에 엑셀에 데이터를 저장할 수는 없다.

하지만 데이터베이스는 여러명이 동시에 데이터를 읽고 쓰는 등 관리를 할 수가 있다.

 

DBMS의 종류

문서를 작성하고 싶다면 아래아 한글 또는 워드 프로그램을 사용을 하면 됩니다.

표 계산을 위해서는 엑셀 또는 한셀 등의 프로그램을 사용을 해야 합니다.

사진 편집을 하려면 포토샵 등의 프로그램을 사용을 하면 됩니다.

DB를 사용을 하고 싶어요. 그러면 mariadb 또는 mysql 등 여러 프로그램을 사용해도 무방하다.

mariadb는 완전 무료이다.

오픈 소스는 무료라고 보시면 됩니다.

 

대용량 데이터 처리는 Oracle이 많이 사용됩니다.

 

DBMS의 발전과정 

- 종이에 팬으로 기록

- 컴퓨터에 파일로 저장 (예를 들어 메모장)

엑셀은 각각 따로 따로 엑셀을 갖고 있어야 해요.

파일이 덮어 쓰일 수도 있고

그래서 엑셀은 한명이 작업하기에는 너무나도 편리한 툴인데 

대용량 그리고 여러명이 동시에 사용하려면 어려움이 많이 생겨요.

 

그래서 출현한 것이 바로 DBMS이다.

대용량이며 동시에 사용할 수 있다.

SQL은 Structured Query Language라고 부른다.

 

계층형 DBMS 그리고 망형 DBMS가 있다.

관계형 DBMS이다.

테이블은 열과 행으로 이루어졌습니다.

 

DBMS에서 사용되는 언어:SQL

표준 SQL을 통해서 여러 DBMS를 사용할 수 있다.

그리고 다른 자신들의 특징을 추가시킨다.

Oracle, SQL Server, MySQL

그래서 표준적인 SQL을 가능하면 지켜서 하려고 한다.

향후에 실무에서나 다른 DBMS를 공부했을 때 표준 SQL을 사용한다면 다른 DBMS를 사용하게 되더라도 굉장히 익숙할 것이다.

 

감사합니다.

https://www.youtube.com/watch?v=0cRhit1EJM0&list=PLVsNizTWUw7GCfy5RH27cQL5MeKYnl8Pm

 

728x90
반응형
LIST
728x90
반응형
SMALL

안녕하세요, 혼자 공부하는 네트워크를 보고 학습한 자료를 남깁니다.

  • 포트 포워딩 (port forwarding)

네트워크 외부 호스트가 네트워크 내부의 호스트에게 연결을 시작하고 싶다.

패킷을 보내고 싶어 한다.

하나의 공인 IP 주소만을 공유하고 있다면 어떻게 통신할 수 있을까?

이를 위한 것이 바로 포트 포워딩이다.

네트워크 외부 호스트에게 해당 접속 정보를 알려 주면 된다.

  • 설정 화면 예시

공유기를 통해 쉽게 설정이 가능하다.

 

감사합니다.

https://www.youtube.com/watch?v=0DXQAjSiRhU&list=PLVsNizTWUw7HfOCgvlfHIDPPo3TE-2iQM&index=30

 

728x90
반응형
LIST
728x90
반응형
SMALL

안녕하세요, 혼자 공부하는 네트워크를 보고 학습한 자료를 남깁니다.

  • 전송 계층 개요

사용자가 실행중인 프로그램을 의미한다.

  • IP의 한계

신뢰할 수 없는 통신 및 비연결형 통신을 한계점으로 갖는다.

신뢰할 수 없는 통신을 최선형 전달(best effort delivery)이라고 한다.

IP가 신뢰할 수 없는, 비 연결형 통신을 하는 이유는 성능에 악영향을 끼치기 때문이다.

  • TCP 및 UDP

TCP는 연결형 통신을 가능하게 한다. 송수신하는 동안에는 연결을 유지 끝나면 종료

신뢰성 있는 통신을 가능하게 한다. 재전송을 통한 오류 제어, 흐름 제어, 혼잡 제어 등 다양한 기능들을 제공

UDP는 IP의 껍데기라고 보면 된다. 그러나 TCP보다는 비교적 빠른 전송이 가능하다.

  • 전송 계층이 응용 계층을 식별하는 방법

특정 기기에 패킷이 전송되었다고 해서 끝난 것이 아닙니다.

하나의 컴퓨터가 여러 개의 프로그램을 실행하고 있다.

최종적으로 향해야 할 대상은 이 컴퓨터가 실행하는 특정 프로그램이다.

  • 패킷 내부의 포트 정보

16비트로 표현 가능 (0~65536)

패킷 내 수신지 포트와 송신지 포트를 통해 송수신지 호스트의 애플리케이션을 식별

  • 포트 번호 목록 저장소

대응되어 있는 포트 번호들을 확인할 수 있다.

권고사항일 뿐이다.

강제사항은 아니다.

  • 동적 포트(dynamic port), 사설 포트(private port), 임시 포트(ephemeral port)

이외에는 자유롭게 사용하는 포트 번호

서버는 대부분 잘 알ㄹ렬진 포트와 등록된 포트 사용

클라이언트는 대부분 동적 포트 사용 (예. 웹 브라우저)

네트워크 상에 존재하는 특정 호스트와 특정 프로그램을 식별할 수 있다.

  • 포트 번호 관찰하고 해석하기

| 사용되고 있는 프로그램 | 프로세스 ID | 로컬 IP 주소 | 로컬 포트 | 원격 IP 주소 | 원격 포트 번호 | 패킷 손실(%) | 지연(ms) |

"크롬 브라우저는 142.250.199.99 호스트의 HTTPS라는 애플리케이션 프로세스와 통신하고 있다" 는 것을 알 수 있다.

IP를 변환하는 기술

NAT 변환 테이블을 네트워크 외부 IP주소와 네트워크 내부 IP 주소를 대응하여 매핑한다.

ip주소가 같더라도 포트번호가 다르다면 특정 프로그램을 특정할 수 있다.

하나의 공인 IP주소를 여러 사설 IP주소로 대응하여 변환하는 기술

 

감사합니다.

https://www.youtube.com/watch?v=RYntXWKDqLo&list=PLVsNizTWUw7HfOCgvlfHIDPPo3TE-2iQM&index=31

 

728x90
반응형
LIST
728x90
반응형
SMALL

안녕하세요, 혼자 공부하는 네트워크를 보고 학습한 자료를 남깁니다.

  • 라우팅 방법에 따른 분류

정적 라우팅은 수동으로 IP주소를 할당하고 라우팅 테이블을 만듬

동적 라우팅은 자동으로 IP주소를 라우팅 프로토콜을 통해서 할당받고 라우팅 테이블을 만듬

  • 정적 라우팅 (static routing)

라우터가 늘어나면 정적 라우팅만으로는 관리가 힘듦. 정적 라우팅은 유연성이 떨어짐.

입력 오류가 발생할 수 있음.

어떤 라우팅 경로에서 문제가 발생했는지 알기 어렵기 때문에 문제가 발생하면 경로 우회도 어렵다.

그래서 주로 동적 라우팅이 자주 사용된다.

최적의 라우터의 경로

라우터끼리 자신들의 정보를 교환하면서 최적의 경로를 찾기 위한 프로토콜이다. 이를 라우팅 프로토콜이라고 한다.

자동으로 업데이트 된다.

문제 시 이를 우회할 수 있게 경로가 자동으로 갱신

  • AS

AS번호는 전세계에서 유일한 고유 ID값이다. 번호가 부여되어 있다.

AS간에 라우팅도 가능하고, AS내에서 라우팅도 가능하다.

  • ASBR

  • 라우팅 프로토콜(routing protocol)

패킷의 최적 경로를 찾기 위한 프로토콜인데 AS 내부간에는 IGP 그리고 AS 외부간에는 EGP라고 부릅니다.

  • RIP

  • OSPF

네트워크 상태를 그래프 상태로 저장한 뒤에

최단 경로 알고리즘을 활용해서 경로를 구해낸다.

RIP는 라우팅 테이블 갱신을 위해 주기적으로 라우터 간 통신이 수행된다.

OSPF는 네트워크 구성 변경 시 라우팅 테이블이 갱신된다.

LSDB에 그래프가 저장 된다.

대역폭을 기반으로 메트릭을 계산하여 최적의 경로를 결정

대역폭이 높은 링크일수록 메트릭이 낮은 경로로 인식

  • EGP

AS 간의 통신에서 사용되며 AS 내에서도 사용이 가능한 프로토콜이다.

  • BGP

AS 내부에서 AS 외부 경로 선택에서 어떤 경로를 선호할지에 대한 척도

LOCAL-PREF 속성은 정책의 영향을 많이 받는 속성이다.

 

감사합니다.

https://www.youtube.com/watch?v=0DXQAjSiRhU&list=PLVsNizTWUw7HfOCgvlfHIDPPo3TE-2iQM&index=30

 

728x90
반응형
LIST
728x90
반응형
SMALL

안녕하세요, 혼자 공부하는 네트워크를 보고 학습한 자료를 남깁니다.

 

라우팅은 최적의 경로를 결정하는 방법

  • 데이터 링크 계층의 한계

  • 라우터를 통한 라우팅

홉을 통해서 최적의 경로를 찾아 네트워크 외부에서 통신이 가능

  • 홉 확인

  • 라우팅 테이블

라우팅이 동적 라우팅을 하는 경우 라우팅 프로토콜이 이용된다.

수신지 IP주소는 패킷을 전송하는 IP주소

서브넷 마스크는 네트워크 주소와 호스트 구분

다음 홉은 다음을로 거쳐야 할 라우터의 IP 주소

네트워크 인터페이스는 라우터 장비들간의 기기가 다름을 이해하고 통신하도록 해주는 인터페이스

메트릭은 해당 경로로 이동하는 비용으로써 라우팅 테이블의 여러 경로에서 메트릭이 낮은 경로가 선호된다.

  • 라우팅 테이블에 포함된 정보

  • 디폴트 라우트

일단 네트워크 외부로 나가기 위해서는 기본 게이트웨이(공유기, 라우터)로 패킷들이 전달되게 된다.

컴퓨터에서 라우팅 테이블을 직접 확인

윈도우 - route print

맥OS 또는 리눅스에서 확인하는 방법 - netstat -rn

show ip route

 

감사합니다.

https://www.youtube.com/watch?v=GEQZ3f6Pji8&list=PLVsNizTWUw7HfOCgvlfHIDPPo3TE-2iQM&index=29

 

728x90
반응형
LIST

+ Recent posts