내배캠 TIL WIL/내배캠 til

내배캠 TIL 13일차 (db특강1)

zfz 2022. 12. 1. 00:05

동?부 아님

 

1. DB의 개념

 

‘데이터의 집합’, 그걸 관리하는게 DBMS(Database Management System)

 

https://hongong.hanbit.co.kr/데이터베이스-이해하기-databasedb-dbms-sql의-개념/

라고 해요

db는 SQL이라는 언어로 돌아간다. 웹 기초때 보길 잘 했는데 기억은 안남

시퀄이라고도 읽는다. 언어는 맞지만 프로그래밍 언어와는 좀 다름

 

https://hongong.hanbit.co.kr/데이터베이스-이해하기-databasedb-dbms-sql의-개념/

 

막상 보니 SQL과 NoSQL이 있다

 

sql: 엑셀처럼 이미 만들어진 틀에(데이터 스키마)에 저장

MySQL, PostgreSQL, Oracle

  장점은 명확하게 정의된 스키마-용도,데이터의 무결성

  중복없이 한번만 저장하는 데이터 관계

 

  단점은 수정하기 어렵고 유연하지 않음

   관계 떄문에 조인문이 많은 복잡한 쿼리가 생성

   수직적 확장 위주로만 가능함

 

NoSQL: 더 자유로운 형태로 저장, 스키마가 없어서

Firestore, MongoDB, Redis 등

 

장점:

스키마가 없으니 유연하고 언제든지 데이터 조정가능, 새 필드 생성

애플리케이션이 원하는 형태로 데이터가 저장되기 떄문에 읽는 속도 빠름

수직수평 확장이 가능해 모든 읽기쓰기요청(애플리가 요청하는 가능

 

단점

너무 유연해서 데이터 구조결정 미루게 됨

중복 데이터 계속 작성해야함

데이터가 여러 컬렉션에 중복되어 있기 때문에 수정 시 모든 컬렉션에서 수행해야 함

-(SQL에서는 중복 데이터가 없으므로 한번만 수행이 가능)

 

몽고디비는 확실히 스키마가 없긴 했다

 

 

2. db의 암묵적 규칙

 

이름 잘 짓기

 

기본

소문자를 사용한다. 실수할 일이 적고 MySQL은 대소문자를 구분하기에 통일해준다.

Space 즉 띄어쓰기는 Underscore _ 로 대체한다.

숫자는 허용하지 않는다.

컬럼의 의미를 설명가능한 이름이며 64자를 넘지 않는다.

prefix를 사용하지 않는다.

 

4,5번째가 중요해보인다

 

db는 단수형으로 짓자, db가 1개 데이터의 모음을 나타나게 되어서, 그냥 단수해 제발

그렇게 배웠음, 얘도 가능한한 prefix는 피한다.

 

테이블 이름은 아래와 같다

 

소문자 사용. 이러저런 부연 설명이 있지만 이해할 필요가 없다

단수형- 이거저거 있어도 하나의 독립체라 단수형

prefix사용. 비슷한 이름이 많을 수 있어서 겹치고 그런 일도 있어서

 

필드이름(컬럼)

 

소문자만 , 스페이스 금지, 숫자 금지, prefix 금지

짧게 max 2단어

쉽게

기본키는 id 혹은 <table_name>_id의 형태를 따른다.

단어를 거꾸로 쓰는 일은 피하자(date_signup(x), date_create(x), signup_date(o), created_date(o))

컬럼명과 테이블이름을 동일하게 하는 피한다.

축약형, 연결형, 두음형은 피한다.

외래키를 사용한다.

외래키 컬럼명에는 참조하는 테이블의 이름을 사용한다.

 

https://velog.io/@peppermint100/MySQL-Naming-Convention-번역

참조

 

 

 

기초강의 떄는 쉬웠는데 왜 이렇게 꼬였냐