강의노트02-1. DB설계, 구축, mysql 기초

reggias·2022년 11월 30일
0

컴퓨터공학

목록 보기
9/9

DB(Database)

데이터베이스

  • 데이터의 집합
  • 일상생활 대부분의 정보가 저장되고 관리된다.(카카오톡 메세지, 인스타그램 등록사진, 버스/지하철에서 찍은 교통카드, 카페에서 결제한 아메리카노의 정보 등)

DBMS란?

  • 데이터베이스를 관리하고 운영하는 소프트웨어
  • 은행의 예금 계좌같은 많은 사람이 가지고 있는 정보를 모아 놓은 것이 데이터베이스, 은행이 가지고 있는 데이터베이스에 여러 사람이 동시에 접근할 수 있다.
    (예금 계좌 주인, 은행 직원, 인터넷 뱅킹, ATM기기 등)

DBMS의 종류

DBMS의 분류

  • 계층형 DBMS
  • 망형 DBMS
  • 관계형 DBMS : RDBMS 라고도 부른다. 테이블이라는 최소 단위로 구성, 하나 이상의 열(column)과 행(row)으로 이루어져 있다.

SQL:DBMS에서 사용하는 언어

  • '에스큐엘' 또는 '시퀄'로 읽는다.
  • 데이터베이스를 조작하는 용도

SQL vs NoSQL

SQL(Relational Database)

  • 데이터를 엑셀과 같이 정해진 틀(데이터 스키마)에 따라 테이블에 저장한다.
    • 장점
      • 명확하게 정의된 스키마, 데이터 무결성 보장
      • 관계는 각 데이터를 중복없이 한번만 저장
    • 단점
      • 덜 유연함, 데이터 스키마를 사전에 계획하고 알려야한다.
      • 관계를 맺고 있어 join문이 많은 복잡한 쿼리가 만들어질 수 있다.
      • 대체로 수직적 확장만 가능
    • 예시 : MySQL, PostgreSQL, Oracle 등

NoSQL

  • 다양하고 자유로운 형태, Schema-less, 정해진 구조도 관계도 없다.
    • 장점
      • 스키마가 없어서 유연함. 언제든지 저장된 데이터를 조정하고 새로운 필드 추가 가능
      • 데이터는 애플리케이션이 필요로 하는 형식으로 저장되고 데이터 읽어오는 속도가 빠르다.
      • 수직 및 수평 확장이 가능해서 애플리케이션이 발생시키는 모든 읽기/쓰기 요청 처리 가능
    • 단점
      • 유연성으로 데이터 구조 결정을 미루게 될 수 있다.
      • 데이터 중복을 지속 업데이트
      • 데이터가 여러 컬렉션에 중복되어 있어 수정 시 모든 컬렉션에서 수행해야 한다.
    • 예시 : MySQL, PostgreSQL, Oracle 등

SQL 데이터베이스 사용이 더 좋을 때

  • 관계를 맺고 있는 데이터가 자주 변경되는 애플리케이션의 경우
  • 명확한 스키마가 사용자와 데이터에게 중요한 경우

NoSQL 데이터베이스 사용이 더 좋을 때

  • 정확한 데이터 구조를 알 수 없거나 변경/확장될 수 있는 경우
  • 읽기를 자주 하지만, 데이터 변경은 자주 없는 경우
  • 데이터베이스를 수평으로 확장해야 하는 경우(막대한 양의 데이터를 다뤄야 하는 경우)

하나의 제시 방법이지 완전한 정답이 정해져 있지 않다.

DB Naming Convention

기본

  • 소문자 사용, MySQL은 대소문자를 구분하기 때문에 통일
  • Space(띄어쓰기)는 Underbar(_)로 대체한다.
  • 숫자는 허용하지 않는다.

데이터베이스 이름

  • 단수형, 복수형 모두 사용 가능하나 데이터베이스 자체가 1개의 데이터들의 모음을 나타내게 되므로 단수형이 옳다.

테이블 이름

  • 소문자 사용
  • 단수형, 여러 형태의 데이터를 담고 있어 복수형이라 생각할 수 있으나 테이블 자체는 하나의 독립체

필드 이름(컬럼명, column)

  • 소문자 사용, 띄어쓰기, 숫자, prefix 금지
  • 2개 단어를 넘지않고 짧아야 한다.
  • 이해가 쉬워야 한다.
  • 기본키는 'id' 혹은 <table_name>_id의 형태를 따른다.
  • 단어를 거꾸로 쓰는 일은 피해라.(name_table)

DB, Table 생성, 수정, 삽입, 삭제 연습

https://www.w3schools.com/sql/default.asp

구글링할 때 번역팁

  • 번역기 여러 개 돌리기
    • 카카오 번역기
    • 파파고 번역기
    • 구글 번역기
profile
sparkle

0개의 댓글