01.23.토(DB 설계, 구축 특강)

유희선·2023년 1월 21일
0

TIL

목록 보기
27/29
  1. DB
    데이터의 집합
    -해당 내용을 어떤 형태(파일 ...)로 저장

DB <> Server

기존에 있던 정보 내용이 달라질 경우,
다시 파일로 저장하고 그 내용을 수정해야 되는데
파일이 많아질 수록 저장과 관리가 힘들어짐

  1. DBMS
    -mysql, oracle, mongodb, ... 를 사용해서
    편하게 DB를 관리할 수 있음
    -이런 DB를 관리하고 운영하는 소프트웨어
    1) 분류
    (1) 관계형 DBMS = RDBMS

    -대부분의 DBMS가 RDBMS 형태로 사용
    -테이블(table)이라는 최소 단위로 구성되며,
    이 테이블은 하나 이상의 열(column)과 행(row)로 이루어져 있음
    (2) 기타
    -다양한 DBMS 종류가 있지만
    가장 많이 사용하는 RDBMS만 정리함

  2. SQL : DBMS에서 사용하는 언어
    -SQL(structed Query Language) : 관계형 데이터베이스에서 사용되는 언어
    -MySQL을 배우려면 SQL을 필수로 익혀야 함
    -SQL이 DB를 조작하는 '언어'이긴 하지만
    일반적인 프로그래밍 언어(C, 자바, 파이썬 등)와는 조금 다른 특성을 가짐

  3. SQL vs NoSQL
    =스키마 여부 차이

1) SQL
-정해진 틀(데이터 스키마)에 따라 테이블에 저장
-수정, 삭제, 업데이트 기능이 많으면 SQL을 활용하는 것이 좋음
(1) 장점
-명확하게 정의된 스키마, 테이터 무결성 보장
-관계는 각 데이터를 중복없이 한번만 저장
(2) 단점
-데이터 스키마를 사전에 계획하고 알려야 함 (나중에 수정하기 힘듦)
-관계를 맺고 있어서 조인문이 많은 복잡한 쿼리가 만들어질 수 있음
-대체로 수직적 확장만 가능함
(3) 제품
-MySQL, PostgreSQL, Oracle 등

2) NoSQL
-명확하게 정해진 틀이 없다 보니,
읽기만 하는 기능이 많다면 NoSQL을 활용하는 것이 좋음
(1) 장점
-스키마가 없어서 유연함, 언제든지 저장된 데이터를 조장하고 새로운 필드 추가 가능
-데이터는 앱이 필요로 하는 형식으로 저장됨, 데이터 읽어오는 속도 빨라짐
-수직 및 수평 확장이 가능해서 앱이 발생시키는 모든 읽기/쓰기 요청 처리 가능
(2) 단점
-유연성으로 인해 데이터 구조 결정을 미루게 될 수 있음
-데이터 중복을 계속 업데이트 해야 함
-데이터가 여러 컬렌셕에 중복되어 있기 때문에
수정 시 모든 컬렉션을 수정해야 함
(SQL에서는 중복데이터가 없으므로 한번만 수정 가능)
(3) 단점

  • Firestore, MongoDB, Redis 등
  1. DB Naming Convention

1) 기본
-소문자 사용
-Space 즉 띄어쓰기 underscore_로 대체한다.
-숫자는 허용하지 않는다.
-컬럼의 의미를 설명가능한 이름이며, 64자를 넘지 않는다.
-prefix를 사용하지 않는다.

2) DB 이름
-단수형, 복수형 모두 사용할 수 있지만
DB 자체가 1개의 데이터들의 모음을 나타나게 되므로 단수형이 옳다
-가능한 prefix를 피한다

3) table 이름
-소문자를 사용,
대소문자를 구분하는 리눅스 서버 위에 보통 MySQL을 호스팅함,
MySQL과 함께 사용되는 많은 프레임워크들(php, JPA)이 자동 생성해주는 테이블 이름을 소문자 사용
-테이블 이름은 단수형,
여러 형태의 데이터를 담고 잇는 것이
테이블이라서 복수형이 될 것 같지만
테이블 자체는 하나의 독립체이다

4) 필드 이름(컬럼명)
-소문자 사용, 띄어쓰기 금지, 숫자 사용 금지, prefix 금지
-짧아야 함, 2개 단어를 넘기면 안 됨
-이해하기 쉬워야 함
-기본키는 id 혹은 <table_name> id 형태를 따른다
-단어를 거꾸로 쓰는 일은 피해야 함
( date_signup, date_create[x] & signup_date, create_date[0])
-컬럼명과 테이블이름을 동일하게 하는 것을 피함
-축약형, 연결형, 두음형 피함
-외래키 사용
-외래키 컬럼명에는 참조하는 테이블의 이름 사용


*id ) 기본키

  1. 실습
    -DBeaver(테이블 생성_DB 생성) > SQL workbench (DB 삭제)

0개의 댓글