본문 바로가기

혼자공부하는 SQL

2. 실전용 SQL 미리 맛보기-1

0. 학습 목표

  • 데이터베이스 모델링의 개념을 파악
  • 전반적인 데이터베이스 구축 절차를 이해
  • 데이터베이스 개체인 인덱스, 뷰, 스토어드 프로시저에대해 미리 학습

0. 요약

  • 프로젝트란 현실 세계를 컴퓨터 시스템으로 옮겨놓는 일련의 과정
  • 폭포수 모델은 소프트웨어 개발 단계 중 하나로 이름 그대로 폭포가 떨어지듯 개발 단계가 진행
  • 데이터베이스 모델링이란 현실 세계에서 사용되는 작업이나 사물들을 DBMS의 테이블로 옮기기 위한 과정
  • 스키마는 MySQL 안에 데이터베이를 뜻한다. 데이터베이스와 동일한 용어라고 생각하면 됨
  • 데이터형식은 문자형(CHAR), 정수형(INT)등과 같이 열에 저장될 데이터 형식을 뜻 함
  • 예약어는 SELECT, FROM, WHERE와 같은 기존에 약속된 SQL 임
  • 기본키는 열에 지정하며 각 행을 구분하는 유일한 옵션
  • 인덱스는 책 뒤의 찾아보기와 비슷한 개념이며 데이터를 빠르게 찾을 수 있도록 도와 줌
  • 는 바로가기 아이콘과 비슷한 개념임
  • 스토어드 프로시저는 여러 개의 SQL을 묶어주거나 프로그래밍 기능을 제공

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

※핵심 키워드: 프로젝트, 폭포수 모델, 데이터베이스 모델링, 테이블

데이터베이스 모델링은 테이블의 구조를 미리 설계하는 개념이다. 

프로젝트를 진행하기 위해서는 대표적으로 폭포수 모델(waterfall model)을 사용하며 데이터베이스 모델링은 폭포수 모델의 업무 분석과 시스템 설계 단계에 해당한다. 이 단계를 거치면 가장 중요한 데이터베이스 개체인 테이블 구조가 결정된다.


1-1. 프로젝트 진행 단계

프로젝트란 현실 세계에서 일어나는 업무를 컴퓨터 시스템으로 옮겨놓는 과정이다. 더 쉽게 대규모 소프트웨어를 작성하기 위한 전체 과정이라고 할 수 있다.

소프트웨어를 개발하기 위해서는 적절한 절차를 갖춰 만들어야 한다. 소프트웨어 개발 절차 중 하나로 폭포수 모델링이 있다.

  1. 프로젝트 계획: 계획을 세우는 단계
  2. 업무분석: 업무가 어떻게 돌아가는 지 파악
  3. 시스템 설계: 정리한 업무 분석을 컴퓨터에 적용시키기 위해 알맞은 형태로 다듬는 과정
  4. 프로그램 구현: 시스템 설계를 바탕으로 프로그래밍 언어로 코딩하는 과정
  5. 테스트
  6. 유지보수

폭포수 모델은 각 단계가 구분되어 프로젝트의 진행단계가 명확하다는 장점이 있지만 가장 큰 단점은 폭포에서 내려가기는 쉬워도 다시 거슬러 올라가기가 힘든 것처럼 앞 단계로 돌아가는 것이 어렵다

데이터베이스 모델링은 폭포수 모델에서 업무 분석과 시스템 설계 단계에 해당 된다.


1-2. 데이터베이스 모델링

현실 세계의 슈퍼마켓을 인터넷 쇼핑몰로 만드는 프로젝트를 예제로 모델링 해보자.

데이터베이스 모델링이란 우리가 살고 있는 세상에서 사용되는 사물이나 작업을 DBMS의 데이터베이스 개체로 옮기기 위한 과정이다.


1-3. 전체 데이터베이스 구성도

다음과 같이 데이터베이스 구성도가 완성되었다고 생각하자.

  • 데이터: 하나하나의 단편적인 정보, 여기서는 tess, 아이유, 바나나와 같은 개별정보
  • 테이블: 회원이나 제품의 데이터를 입력하기 위해 표 형태로 표현한 것
  • 데이터베이스: 테이블이 저장되는 장소, 데이터베이스 이름은 각각 달라야 함
  • DBMS: 데이터베이스 관리 시스템, 여기서는 MySQL
  • 열(column): 테이블의 세로를 의미, 여기서 회원테이블의 열은 3개, 제품은 5개임
  • 열이름: 각 열을 구분하기 위한 이름, 열 이름은 각 테이블 내에서는 서로 달라야 함
  • 데이터 형식: 열에 저장될 데이터의 형식
  • 행(row): 실질적인 진짜 데이터를 뜻, 여기서는 tess / 나훈아 / 경기 부천시 중동
  • 기본 키(Primary Key):기본키 열은 각 행을 구분하는 유일한 열을 의미, 기본키는 중복 불가며 빈 공간도 허용하지 않음

2. 데이터베이스 시작부터 끝까지

※핵심 키워드: 스키마, 데이터형식, 예약어, 기본 키


2-0. DBMS 설치하기

아래 그림에서 보듯이 A, B 데이터베이스는 기본적으로 들어있는 DB로 지난 번 show databases로 나왔던 sakila, sys, world 등이다.


2-1. 데이터베이스 만들기

아래 그림처럼 비어있는 쇼핑몰 데이터베이스를 생성해 보자.

[Schemas] -> 우클릭 [Create Schema] -> shop_db 데이터베이스 생성


2-2. 테이블 만들기

빈 공간의 테이블 2개를 만들자.

테이블 설계하기

테이블을 설계한다는 것은 열 이름과 데이터 형식을 지정하는 일이다. 아래와 같이 설계를 완성하였다고 가정하자.

[회원 테이블]

열 이름(한글) 영문 이름 데이터 형식 최대 길이 널 허용 안함(Not Null)
아이디(기본 키) member_id 문자(CHAR) 8 YES
회원 이름 member_name 문자(CHAR) 5 YES
주소 member_addr 문자(CHAR) 20 NO

[제품 테이블]

열 이름(한글) 영문 이름 데이터 형식 최대 길이 널 허용 안함(Not Null)
제품 이름(기본 키) product_name 문자(CHAR) 4 YES
가격 cost 숫자(INT)   YES
제조 일자 make_date 날짜(DATE)   NO
제조 회사 company 문자(CHAR) 5 NO
남은 수량 amount 숫자(INT)   YES

테이블 생성하기

shop_db -> Tables -> 우클릭 [Create Tables]

[Member]

[Product]


2-3. 데이터 입력하기

데이터를 입력해 보자. 회원 테이블은 4건, 제품 테이블에는 3건의 데이터를 입력한다. 입력된 결과는 아래와 같다.

데이터 입력하기

table 우클릭 [Select Rows - Limits 1000]

[Member]

INSERT INTO 명령어로 데이터가 입력됨을 알 수 있다.

[Product]

이번에는 member에 수정/삭제를 진행해 보자.
수정은 UPDATE, 삭제는 DELETE문이 생성됨을 알 수 있다.

[수정-UPDATE]

[삭제-DELETE]

데이터 활용하기

데이터 입력까지 완료하여 데이터베이스를 구축했다. 이번에는 데이터베이스를 활용하는 방법을 살펴보자. 데이터베이스를 활용하기 위해 주로 SELECT 문을 사용한다.

먼저 작업할 데이터베이스를 선택하기 위해 [SCHEMAS] 패널의 shop_db를 더블클릭 한다.

회원테이블의 모든 행을 조회하기 위해 다음 SQL을 입력하자. 

1. 회원테이블 모든 행 조회

SELECT * FROM member;
#SQL은 대소문자를 구분하지 않지만 예약어는 대문자로 표기한다

2. 회원 테이블 이름과 주소만 출력

SELECT member_name, member_addr FROM member

3. 아이유 회원에 대한 정보만 추출

SELECT * FROM member WHERE member_name = "아이유";

'혼자공부하는 SQL' 카테고리의 다른 글

3. SQL 기본 문법-3  (0) 2022.01.21
3. SQL 기본 문법-2  (0) 2022.01.19
3. SQL 기본 문법-1  (0) 2022.01.17
2. 실전용 SQL 미리 맛보기-2  (0) 2022.01.15
1. 데이터베이스와 SQL  (0) 2022.01.14