MySQL/혼공SQL

[SQL 기초 강의] 3강. 데이터베이스 모델링

묘걍 2023. 10. 31. 19:33

02-1. 건물을 짓기 위한 설계도 : 데이터베이스 모델링

- 개념적으로 파악만 

🎨 데이터베이스 모델링

- 설계도를 그리는 과정

     - 건물을 실제로 짓기 전에 설계도를 그려야함

- 데이터베이스를 구축하는 것이 목적

     - DB를 구축하기 위한 설계도

🧩 프로젝트 진행 단계

  • 현실 세계에서 일어나는 업무를 컴퓨터 시스템으로 옮겨놓는 과정
    • 소프트웨어: 현실 세계를 컴퓨터 시스템 안에 옮겨 놓은 과정
    • 프로젝트: 소프트웨어를 만들기 위한 전체 과정
  • 간단한 소프트웨어는 한 두명이 가능함
  • 복잡한 소프트웨어는 혼자 작업이 현실적으로 불가능
  • 철저한 규정과 절차에 의해 분업해서 이루어짐

✅ 폭포수 모델

  • 폭포수가 떨어지듯이 작업
  • 단계별로 이어짐

출처: 혼자 공부하는 SQL

  1. 프로젝트를 계획
  2. 어떤 업무를 소프트웨어로 만들건지 분석
  3. 설계도를 그리는 작업
  4. 코딩, 데이터베이스 구축
  5. 잘 되는지 테스트
  6. 앞으로 유지보수 진행

🧩 데이터베이스 모델링

  • 시스템 설계에 해당
  • 우리가 살고 있는 현실 세계를 데이터 베이스 안으로 넣기 위한 작업
  • Ex) 슈퍼마켓
    • 직원, 고객, 진열된 물건이 있음
    • 고객이 물건을 구매하고 나가는 과정
    • 현실세계에서 온 테이블들이 데이터베이스 안에 들어감
    • 직원 → 직원 테이블 / 고객 → 회원 테이블 / 물건 → 물품 테이블
    • 각각의 특징들을 테이블로 만드는 것. (제품의 이름, 가격, 제조일자, 제조 회사, 제고량 등..)

"데이터베이스 모델링이란 현실 세계를 데이터베이스 안에 넣기 위해서 테이블을 결정하는 과정"

출처: 혼자 공부하는 SQL

  • 정답은 없다!
    • 모범 답안은 있다
    • 어떻게든 구축은 되겠지만 좋은 모델링과 나쁜 모델링은 분명히 존재한다

🧩 전체 데이터베이스 구성도

출처: 혼자 공부하는 SQL

✅ DBMS

  • 바깥 네모
  • 데이터베이스를 운영하고 관리하는 소프트웨어

✅ 데이터베이스

  • 원통 모형
  • 데이터의 저장소
  • 컴퓨터의 폴더와 개념이 약간 비슷함
    • 테이블이 파일 정도

✅ 테이블

  • 하나의 데이터베이스 안에 여러개가 들어갈 수 있다
  • 이차원 구조로 이루어짐
    • 행과 열

✅ 열이름

  • 세로 라인 이름
  • 맨 위에 지정

✅ 행(row)

  • 데이터를 넣을 때는 열(column)별로 쭉 넣는 것이 아니라 데이터 단위로 넣는다
  • 행 = 데이터
    • 회원테이블의 행이 4개다 = 회원 테이블의 회원이 4명이다
  • 행 데이터

✅ 데이터

  • jyp라는 아이디 하나, 박진영이라는 이름 하나가 각각 데이터이다
  • 그런데 행 데이터와 헷갈리니 그냥 행 한 줄이 데이터 한 건으로 생각하면 됨

✅ 기본키

  • PK (Primary Key)
  • 각각의 행을 구분하는 유일한 값
  • 네이버 회원가입할 때 ID 설정
    • 중복 불가
    • ID만 있으면 어떤 회원인지 구분 가능
  • DB 관리/개발하는 사람이 설정하는 것
  • 전제 조건1. 중복 불가
  • 전제 조건2. 꼭 존재해야함 (Null 불가)
    • 두 조건 모두 성립해야함
  • 열에 지정하는 것
  • 테이블 당 하나만 지정할 수 있다

✅ 데이터 형식

  • 문자열
    • 제품 이름, 회원 이름, ID 등..
  • 숫자
    • 가격,
  • 날짜
    • 제조일자, 가입일자, ...
  • 테이블 만들 때 열마다 지정해줘야함

🧩 SQL

  • 어떤 열을 넣고, 데이터 형식은 무엇이고.. 등 우리가 정한 내용을 DBMS가 알아 듣도록 전달해주는 문법
  • 데이터베이스 언어
  • 위 그림의 개념을 구현하기 위해 배워야 한다.

 

 

 

 

 

출처: https://youtu.be/j2DAiY-OXGs?si=EbkZf3a6y7JBTTwx