목차
- 데이터베이스 모델링이란?
- 데이터베이스 구성도
- 데이터베이스 구축해보기
데이터베이스 모델링란?
- 건축 설계도
- 테이블의 구조를 미리 설계하는 개념
- 모델링 결과로 테이블의 구조가 결정
프로젝트 진행 단계
프로젝트란?
- 현실 세계에서 일어나는 업무를 컴퓨터 시스템으로 옮겨놓는 과정
- 대규모 소프트웨어를 작성하기 위한 전체 과정
폭포수 모델
- 가장 기본적으로 언급되는 소프트웨어 개발 절차
- 폭포수 모델은 각 단계가 폭포가 떨어지듯 진행되기 때문에 붙여진 이름
- 1. 프로젝트 계획
- 2. 업무 분석: 업무가 어떻게 돌아가는지 파악
- 3. 시스템 설계: 앞에서 정리한 업무 분석을 알맞은 형태로 다듬는 과정
- 4. 프로그램 구현: 실제 프로그래밍 언어로 코딩하는 단계
- 5. 테스트: 코딩된 프로그램에 오류가 없는지 확인하는 과정
- 6. 유지보수: 운영하면서 오류가 없는지 확인하는 과정
- 장점: 각 단계가 구분되어 프로젝트의 진행 단계가 명확하다.
- 단점: 문제가 발생한 경우 다시 앞 단계로 돌아가기가 어렵다.
데이터베이스 모델링
데이터베이스 모델링이란 우리고 살고 있는 세상에서
사용되는 사물이나 작업을 DBMS의 데이터베이스 개체로 옮기기 위한 과정
=> 현실에서 쓰이는 것을 테이블로 변경하기 위한 작업
그렇다면 어떻게 사용되는 사물이나 작업을 데이터베이스에 넣을 수 있을까요?
- 사물이 나타낼 수 있는 특징들을 추출해서 데이터베이스로 만들어야 한다.
- 현실 세계의 고객, 제품, 직원 등을 데이터베이스에 각각의 테이블이라는 개체로 변환
- (실체가 없는 '물건을 산다' 라는 행동도 테이블로 변환할 수 있다.)
예시
- '제품' 라는 테이블에는 제품의 이름, 가격, 제조일자, 제조회사, 재고량 등을 저장할 수 있다.
- '구매자' 라는 테이블에는 이름, 주민등록번호, 주소 등의 정보를 저장할 수 있다.
전체 데이터베이스 구성도
- 데이터: 하나하나의 단편적인 정보
- 테이블: 데이터를 입력하기 위해 표 형태로 표현한 것
- 데이터베이스: 테이블이 저장되는 저장소
- 각 데이터베이스는 이름이 서로 달라야 한다.
- 열 이름: 각 열을 구분하기 위한 이름
- 열: 데이터의 세로(컬럼)
- 데이터 형식: 열에 저장될 데이터의 형식(같은 열에 같은 데이터 형식)
- 행: 실질적인 진짜 데이터(로우, 데이터)
- 하나의 행으로 행 데이터라고도 부른다.
- 기본 키: 기본 키(또는 주키) 열은 각 행을 구분하는 유일한 열
- 테이블 당 하나만 지정할 수 있음
- 예시: 네이버의 회원 아이디, 주민등록번호같이 중복 X, 공백 X
데이터베이스 구축 절차
- 데이터베이스 만들기
- 테이블 만들기
- 데이터 입력/수정/삭제하기
- 데이터 조회/활용하기
데이터베이스를 구축하기 위해서는 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
'DB' 카테고리의 다른 글
[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 |