본문 바로가기

SQL

[SQL] 데이터베이스 구축해보기

목차

  • 데이터베이스 모델링이란?
  • 데이터베이스 구성도
  • 데이터베이스 구축해보기

 

데이터베이스 모델링란?

  • 건축 설계도
  • 테이블의 구조를 미리 설계하는 개념
  • 모델링 결과로 테이블의 구조가 결정

 

프로젝트 진행 단계

프로젝트란?

  • 현실 세계에서 일어나는 업무를 컴퓨터 시스템으로 옮겨놓는 과정
  • 대규모 소프트웨어를 작성하기 위한 전체 과정

폭포수 모델

  • 가장 기본적으로 언급되는 소프트웨어 개발 절차
  • 폭포수 모델은 각 단계가 폭포가 떨어지듯 진행되기 때문에 붙여진 이름
    • 1. 프로젝트 계획
    • 2. 업무 분석: 업무가 어떻게 돌아가는지 파악
    • 3. 시스템 설계: 앞에서 정리한 업무 분석을 알맞은 형태로 다듬는 과정
    • 4. 프로그램 구현: 실제 프로그래밍 언어로 코딩하는 단계
    • 5. 테스트: 코딩된 프로그램에 오류가 없는지 확인하는 과정
    • 6. 유지보수: 운영하면서 오류가 없는지 확인하는 과정
  • 장점: 각 단계가 구분되어 프로젝트의 진행 단계가 명확하다.
  • 단점: 문제가 발생한 경우 다시 앞 단계로 돌아가기가 어렵다.

 

 

데이터베이스 모델링

데이터베이스 모델링이란 우리고 살고 있는 세상에서

사용되는 사물이나 작업을 DBMS의 데이터베이스 개체로 옮기기 위한 과정

=> 현실에서 쓰이는 것을 테이블로 변경하기 위한 작업

 

 

그렇다면 어떻게 사용되는 사물이나 작업을 데이터베이스에 넣을 수 있을까요?

  • 사물이 나타낼 수 있는 특징들을 추출해서 데이터베이스로 만들어야 한다.
  • 현실 세계의 고객, 제품, 직원 등을 데이터베이스에 각각의 테이블이라는 개체로 변환
  • (실체가 없는 '물건을 산다' 라는 행동도 테이블로 변환할 수 있다.)

 

예시

  • '제품' 라는 테이블에는 제품의 이름, 가격, 제조일자, 제조회사, 재고량 등을 저장할 수 있다.
  • '구매자' 라는 테이블에는 이름, 주민등록번호, 주소 등의 정보를 저장할 수 있다.

 

 

전체 데이터베이스 구성도

 

  • 데이터: 하나하나의 단편적인 정보
  • 테이블: 데이터를 입력하기 위해 표 형태로 표현한 것
  • 데이터베이스: 테이블이 저장되는 저장소
    • 각 데이터베이스는 이름이 서로 달라야 한다.
    • 열 이름: 각 열을 구분하기 위한 이름
  • 열: 데이터의 세로(컬럼)
    • 데이터 형식: 열에 저장될 데이터의 형식(같은 열에 같은 데이터 형식)
  • 행: 실질적인 진짜 데이터(로우, 데이터)
    • 하나의 행으로 행 데이터라고도 부른다.
  • 기본 키: 기본 키(또는 주키) 열은 각 행을 구분하는 유일한 열
    • 테이블 당 하나만 지정할 수 있음
    • 예시: 네이버의 회원 아이디, 주민등록번호같이 중복 X, 공백 X

 

 

데이터베이스 구축 절차

  1. 데이터베이스 만들기
  2. 테이블 만들기
  3. 데이터 입력/수정/삭제하기
  4. 데이터 조회/활용하기

데이터베이스를 구축하기 위해서는 DBMS가 필요하다.

 

 

데이터베이스 만들기

 

스키마: 데이터베이스와 같은 용어

CREATE SCHEMA `shop_db` ; --스키마 생성

 

 

 

테이블 만들기

  • 테이블을 생성하기 위해서는 설계도가 필요하다.
  • 테이블을 설계한다는 것은 테이블의 열이름과 데이터 형식을 지정하는 것이다.
  • 우리가 만들었다고 가정을 하고 테이블을 만들어보겠습니다.

 

CREATE TABLE `shop_db`.`member` (
  `member_id` CHAR(8) NOT NULL,
  `member_name` CHAR(5) NOT NULL,
  `member_addr` CHAR(20) NULL,
  PRIMARY KEY (`member_id`));
CREATE TABLE `shop_db`.`product` (
  `product_name` CHAR(4) NOT NULL,
  `cost` INT NOT NULL,
  `make_date` DATE NULL,
  `company` CHAR(5) NULL,
  `amount` INT NOT NULL,
  PRIMARY KEY (`product_name`));

 

 

데이터 입력하기

INSERT INTO `shop_db`.`member` (`member_id`, `member_name`, `member_addr`) VALUES ('tess', '나훈아', '경기도 부천시 중동');
INSERT INTO `shop_db`.`member` (`member_id`, `member_name`, `member_addr`) VALUES ('hero', '임영웅', '서울 은평구 증산동');
INSERT INTO `shop_db`.`member` (`member_id`, `member_name`, `member_addr`) VALUES ('iyou', '아이유', '인천 남구 주안동');
INSERT INTO `shop_db`.`member` (`member_id`, `member_name`, `member_addr`) VALUES ('jyp', '박진영', '경기 고양시 장항동');

 

데이터 수정하기

UPDATE `shop_db`.`member` SET `member_addr` = '영국 런던 먹자거리' WHERE (`member_id` = 'carry');

 

데이터 삭제하기

DELETE FROM `shop_db`.`member` WHERE (`member_id` = 'carry');

 

 

데이터 활용하기

SELECT * FROM member;
-- SELECT 열이름 FROM 테이블이름;
SELECT member_name, member_addr FROM member;
SELECT * FROM member WHERE member_name = '아이유';

 

 

 

 

 

 

해당 포스팅의 글과 내용은 우재남 저자님혼자 공부하는 SQL 책을 재구성하여 만들었습니다.

좀 더 자세한 내용이 필요하시다면 '혼자 공부하는 SQL 책'을 구매해주세요

우재남 저자님 카페: https://cafe.naver.com/thisisMySQL

 

이것이MySQL이다 : 네이버 카페

한빛미디어 [이것이 MySQL이다] 카페입니다.

cafe.naver.com

 

 

 

 

 

 

 

'SQL' 카테고리의 다른 글

[SQL] 데이터 변경을 위한 SQL 문  (0) 2024.05.31
[SQL] SQL SELECT 문(2)  (0) 2024.05.31
[SQL] SQL SELECT 문(1)  (0) 2024.05.31
[SQL] 데이터베이스 개체  (0) 2024.05.30
[SQL] DBMS, MySQL 설치  (0) 2024.05.30