[Sprint #11] Database

홍영란·2020년 2월 14일
0

Immersive🧗🏻‍♀️

목록 보기
10/13

Reference

What is Database? What is SQL?
SQL vs NoSQL or MySQL vs MongoDB

mySQL | 공식문서
mySQL(npm) | 공식문서
Node.js 로 db다루기, application 만들기
mySQL tutorial | Basic
mySQL tutorial | Examples of Common Queries
MySQL by Examples for Beginners
MySQL tutorial 2 | w3school
MySQL join
MySQL join | TCP school

How to provide a mysql database connection in single file in nodejs

⭐️Sequelize Tutorial
Sequelize, the JavaScript ORM, in practice


Database

  • Database Packages에서 제공되는 언어를 사용하여 데이터를 영속성있게/영구히 잘 (persistently) 저장하는 방법
    • in-memory 저장 방식과 write file 방법 중간에 위치한 데이터베이스 저장방식
  • ORM : database query를 직접 하지 않고 ORM의 도움을 얻어 쉽고 효율적으로 database에 접근 가능

Sprint

1. Database & SQL

Achievement Goals

  • Database가 무엇인지 이해한다.
  • SQL이 어떻게 이루어져 있는지 이해한다
  • SQL 기본 query문을 사용할 줄 안다
  • Schema의 설계 방법과 나은 방향성을 고안한다
  • 서버와 클라이언트 사이에서 데이터를 주고 받은 데이터를 database에 저장하여 영속성있게 저장할 수 있다.

Learn SQL

Learn SQL - Notion 정리

Local MySQL

1. Local MySQL 설치

2. Local MySQL 실습

  • Terminal(cmd)에서 MySQL Database 생성
    • MySQL 명령창을 호출: mysql -u root -p
    • MySQL 명령창 환경에서
CREATE DATABASE [생성할 데이터베이스 이름]  // Database 생성
USE [데이터베이스 이름]  // 기존 Database 접근
  • Terminal(cmd)에서 SQL Query 문 실습
CREATE [테이블 이름]         // 테이블 생성
DESCRIBE [테이블 이름]     // 테이블 정보 확인
  • INSERT
  • GET
  • UPDATE
  • DELETE

3. Database Tools

4. MVC Pattern

  • 애플리케이션을 Model, View, Controller 세 역할로 구분한 개발 방법론. 각 요소는 애플리케이션의 작동과 관련하여 각기 다른 역할을 수행

    • Model: Controller의 명령을 받아 동작. 데이터 처리와 관련된 역할을 수행하는 컴포넌트
    • View: 사용자들이 보는 화면(UI)으로서, Controller와의 소통을 통해 데이터를 입력하거나 출력
    • Controller: 데이터(Model)와 사용자 인터페이스(View)를
      연결
      하는 역할을 합니다.
  • 구성 요소를 분리하는 이유?
    → 이해하기 쉽고 깔끔한 코드를 짤 수 있어 유지보수가 용이해지며, 확장성도 좋다.
    → 기능에 따라 코드를 분류하기 때문에, 중복되는 코드를 작성하는 실수 또한 줄일 수 있습니다.

5. ORM(Object Relational Mapping) ?

  • 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑(연결)해주는 것
  • ORM을 활용하여 객체 간의 관계를 바탕으로 SQL을 자동으로 생성
// raw SQL
 SELECT * FROM Users WHERE id = 4
// ORM
 user = Users.find(4);

6.Sequelize/ Sequelize CLI

  • Sequelize

    [SequelizeJS.com] Sequelize library provides easy access to MySQL, MariaDB, SQLite or PostgreSQL databases by mapping database entries to objects and vice versa

    • Node.js 기반의 ORM으로 PostgreSQL, MySQL, MariaDB, SQLite, MS-SQL을 지원
    • 프로미스 기반의 ORM이기 때문에 '비동기 처리'에 용이
      ⭐️ Sequelize Tutorial
  • Sequelize CLI(Sequelize command line interface)

    • 명령어를 사용해 데이터베이스 작업을 할 수 있는 툴
    • CLI의 대표적인 기능: Model, Migration, Seed
      1) Model : 테이블을 생성
      2) Migration : 코드에 적혀져 있는 데이터베이스 테이블에 대해
      실제 데이터베이스에 테이블을 생성하는 개념
      3) Seed : 생성된 테이블에 데이터를 추가

Sprint

1. Chatterbox Database

Nodejs mySQL Insert into | w3s
Nodejs mySQL Select from | w3s

(1) Design Schema
https://dbdiagram.io/d/5e42687c9e76504e0ef14b0d

(2)

profile
JavaScript를 공부하고 있습니다:)

0개의 댓글