본문 바로가기

study

Database 기초

Reference - 생활코딩 https://www.youtube.com/user/egoing2

데이터 베이스 관련 기초를 이해하기 쉽게 정리해놓은 강의가 있어 소개하고자 한다. 유투브 생활코딩이라는 채널로 총 2 파트로 31강이다. 강의 당 길이가 짧아서 단기간에 데이터 베이스에 대해 개괄적으로 이해하기에 딱이다. 아래는 강의를 보면서 간단히 정리한 내용이다.

Database 1

1.1. 정의

file 가진 한계를 극복하기 위해 고안된 소프트웨어

 

1.2. 핵심(CRUD)

input : Create / Update / Delete

output : Read

 

1.3. file vs database

대량의 정보를 구조적으로 파악하고 관리할 수 있다. (File < Spreadsheet < Database)

 

1.4. 클라이언트

관계형 : Oracle > MySQL > Microsoft SQL Sever

문서기반 : MongoDB

 

Database 2

2.1. MySQL

오픈소스 관계형 데이터베이스

 

2.2. 데이터베이스의 목적

데이터를 실시간으로 저장하고 관리가 가능하다. 특히 웹 상에서 주효하다.

 

2.3. MySQL 설치

codeanywhere(크로스 플랫폼 클라우드 IDE)로 대체

 

2.4. Mysql의 구조

Schema - 표들을 그룹핑하는 일종의 폴더 다른말로 데이터베이스

Database server - 데이터베이스가 모여있는 곳

 

2.5. 서버접속

스키마에 대해서 CRUD와 각 개인별로 권한 설정 가능, 중요한 문제일 수록 따로 계정을 파서 실험 후 관리자 계정에 적용

 

2.6. 스키마 사용

스키마 생성 : CREATE DATABASE opentutorial ;

스키마 파악 : SHOW DATABASES ;

스키마 사용 : USE opentutorail ;

 

2.7. SQL과 테이블 구조

Table 구조 : 행과 열로 구성

 

2.8. 테이블 생성

생성 : CREATE TABLE topic( -> id INT(11) NOT NULL AUTO_INCREMENT, -> title VARCHAR(100) NOT NULL, -> description TEXT NULL, -> created DATETIME NOT NULL, -> author VARCHAR(100) NULL, -> PRIMARY KEY(id)) ;

확인 : SHOW TABLES ;

 

2.9. CRUD

SQL의 가장 중요한 기능

 

2.10. INSERT

행 삽입 : INSERT INTO topic (title, description, created,author) VALUES ('MySQL','MySQL is ..',NOW(),'duck') ;

확인 : SELECT * FROM topic ;

 

2.11. SELECT

전체행 : SELECT * FROM topic ;

특정행 : SELECT id, title FROM topic ;

조건이 적용된 특정행 : SELECT id, title FROM topic WHERE author = 'duck' ORDER BY id DESC LIMIT 2 ;

 

2.12. UPDATE

UPDATE topic SET description = 'Oracle is..', title = 'Oracle' WHERE id = 2 ;

 

2.13. DELETE

DELETE FROM topic WHERE id = 2 ;

 

2.14. 깊은 내용

CRUD의 한계를 뛰어넘는 "관계형" 데이터베이스

 

2.15. 관계형데이터베이스의 필요성

참조표를 생성하여 관계를 설정하면 전체 데이터를 수정할 필요없이 참조표만 관리함으로써 유지보수비용을 감소시킬 수 있다. 즉, 효율적이다. 다만, tradoff로 단점 또한 발생한다. 테이블 수가 증가하여 직관적이지 못하다. 별도의 참조표를 확인해야하는 경우가 발생한다. 따라서 데이터를 따로 보관하면서 하나의 결과표로 확인하는 방법이 필요하다. 다시말해 저장은 따로 결과는 하나로

 

2.16. 테이블 분리하기

참조테이블을 생성하여 테이블을 나눈다.

 

2.17. Join

관계형 데이터베이스를 그 이름값하게 하는 대표적인 기능

Select * From topic Left Join author On topic.author_id = author.id ;

 

2.18. 인터넷과 데이터베이스

클라이언트(요청 주체) vs 서버(응답 주체)

출처 - 유투브 생활코딩 Database편

2.19. MySQL Cilent

MySQL monitor : 명령어 기반의 클라이언트로 MySQL서버 설치시 자동으로 설치된다. 하지만 명령어에 익숙해져야한다.

MySQL workbench : GUI기반의 클라이언트

 

2.20. 관련 서비스

Backup : mysqldump / binary log

Cloud : AWS RDS / Google Cloud SQL for MySQL / AZURE Database for MySQL

Programming : Python mysql api

'study' 카테고리의 다른 글

스타벅스 이디야 매장 수 비교  (2) 2020.03.19
러닛 - 우주 최초 플립러닝 플랫폼  (0) 2020.03.16
Database 기초  (0) 2020.03.14
[Kaggle] Survival on the Titanic  (0) 2020.03.11
카카오톡 채팅 분석  (0) 2020.03.10
[자격증] 데이터분석 준전문가  (0) 2019.12.28