DB 5

관계형 데이터 베이스 설계

위와 같이 인스타그램의 관계도를 간략하게 만들어 봤다. (데이터베이스 설계도 툴: https://dbdiagram.io/home) 1:N 관계 users테이블의 id를 통해 followers, followings, posts, likes, comments 테이블들과 1:N 관계를 가지고 있다. 위의 관계도처럼 users에 관계를 설정하는 것이 아닌 다른 테이블들에 users의 id를 foriegn key(외래키)로 지정해서 관계를 맺어준 이유는 한명의 유저가 다른 테이블들의 많은 데이터를 가질수 있기 때문이다. posts테이블을 예를 들면 만약 users에 posts_id라는 column을 만들어 관계를 형성하게되면 한명의 유저가 많은 post들을 가지고 있게 되었을때 posts_id 컬럼은 수평적으로 ..

DB 2023.03.29

SQL vs NoSQL

SQL(구조화 쿼리 언어) vs. NoSQL(비구조화 쿼리 언어) 데이터베이스는 크게 관계형 데이터베이스(Relational Database, RDB)와 비관계형 데이터베이스로 구분한다. 관계형 데이터베이스는 SQL을 기반으로 하고, 비관계형 데이터베이스는 NoSQL로 데이터를 다룬다. SQL과 NoSQL은 만들어진 방식, 저장하는 정보의 종류, 그리고 저장하는 방법 등에 차이가 있다. 관계형 데이터베이스에서는 테이블의 구조와 데이터 타입 등을 사전에 정의(schema)하고, 테이블에 정의된 내용에 알맞은 형태의 데이터만 삽입할 수 있다. 관계형 데이터베이스는 행(row)과 열(column)로 구성된 테이블에 데이터를 저장한다. 각 열은 하나의 속성에 대한 정보를 저장하고, 행에는 각 열의 데이터 형식에..

DB 2023.03.28

SQL Query문 사용

SQL문법을 배우면서 ORM을 사용하지않고 서버를 개설 해보고 싶어서 바로 Express 서버에 DB를 연결해서 사용해보았다. (Express 서버에 DB 및 session store 연결:https://mason-lee.tistory.com/12) dbModules.ts import { conn } from "./db"; module.exports = { createProduct: async (name: string, pictures: string, owner_id: string) => { await conn.query(`INSERT INTO product (name, pictures, owner_id) VALUES ('${name}', '${pictures}', '${owner_id}')`) cons..

DB 2022.12.14

SQL Query 문법 (DDL, DML)

SQL문법에는 데이터정의어, 데이터조작어, 데이터제어어, 트랜젝션 제어어가 있으며 오늘은 데이터 정의어와 데이터 조작어에 대해 알아보고 w3schools의 데모 DB를 이용하여 사용해보았다. (데모DB:https://www.w3schools.com/sql/trysql.asp?filename=trysql_select_all) 데이터 정의어(Data Define Language) 데이터 정의어란 CREATE, ALTER, DROP, RENAME등을 이용하여 데이터 구조를 정의하는데 사용되는 명령어 들이다. CREATE, DROP CREATE TABLE EmployeesTest ( EmployeeID uuid, // 유니크 id 타입 LastName VARCHAR(10), // 가변문자 타입으로 최대 10by..

DB 2022.12.14