▶ DBMS의 종류
1) 계층형 DBMS
각 계층이 트리형태를 갖는 구조
단점 : 변경이 까다롭고 최근에는 잘 사용 안함.
2) 망형 DBMS
계층형 DBMS의 단점을 보완하기 위해 하위 구성원끼리 연결된 유연한 구조
단점 : 프로그래머가 모든 구조를 이해해야 프로그램 작성 가능하고 최근에는 잘 사용 안함.
3) 관계형 DBMS(RDBMS) ★
테이블이라는 최소 단위로 구성됨.
ex)
아이디 | 이름 | 연락처 | 주소 |
---|---|---|---|
chicken | 유재석 | 01010101010 | 서울시 |
maratang | 박명수 | 02020202020 | 경기도 |
아이디, 이름, 연락처, 주소 → 열이름
(chicken, 유재석, 01010101010, 서울시) → 행, 하나의 데이터 역할
데이터베이스 모델링 : 테이블의 구조를 미리 설계하는 것.
ex)
상황(슈퍼) | 데이터베이스 모델링 | 테이블 |
---|---|---|
진열된 물건 | ☞ | 물품 테이블 |
고객 | ☞ | 회원 테이블 |
직원 | ☞ | 직원 테이블 |
고객의 구매행위 | ☞ | 구매 테이블 |
소프트웨어 : 프로그래밍 언어를 통해 만들어진 결과물.
프로젝트 : 대규모 소프트웨어를 작성하기 위한 전체 과정.
소프트웨어 개발 절차 중 하나로 폭포수 모델(waterfall model)이 있음.
폭포수모델
1) 프로젝트 계획
2) 업무 분석 : 물건이 어디서 들어오는지, 물건을 어떻게 계산하는지, 재고 관리가 어떻게 되는지 등 파악
3) 시스템 설계 : 컴퓨터에 알맞은 형태로 다듬는 과정
4) 프로그램 구현 : 시스템 설계의 결과를 실제 프로그래밍 언어로 코딩
5) 테스트 : 코딩된 프로그램에 오류가 없는지 확인
6) 유지보수 : 실제 운영하며 문제점 보완
장점 : 각 단계가 구분되어 프로젝트의 진행단계가 명확
단점 : 거슬러 올라가기가 어려움..
데이터베이스 구성요소
✔️ 열이름 : 각 테이블 내에서 서로 다르게 영문으로 설정.
✔️ 기본키(Primary Key, PK) : 각 행을 구분하는 유일한 열. 중복안됨. 빈칸 안됨.(Non Null), 테이블마다 기본키는 1개이고 일반적으로 1개의 열에 지정.
ex) 회원 아이디, 주민등록번호
1) DBMS 설치하기
→ MySQL을 설치함.
2) 'shop_db'라는 데이터베이스 만들기
CREATE SCHEMA
shop_db
;
3) 테이블 만들기
(1) 테이블 설계 : 열이름과 데이터 형식(문자, 숫자, 날짜) 지정
(2) 테이블 생성
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'));
4) 데이터 입력하기
데이터 입력시 수정할때는 UPDATE문을, 삭제할때는 DELETE문을 사용.
5) 데이터 활용하기
(1) 회원 테이블의 모든 행 조회
SELECT * FROM member;
(2) 회원 테이블 중에 이름과 주소만 출력
SELECT member_name, member_addr FROM member;
💡(3) WHERE을 이용한 아이유 회원에 대한 정보만 추출
SELECT * FROM member WHERE member_name = '아이유';
→ member 테이블의 member_name 열에 인덱스 구성 (6장에서 자세히..)
CREATE INDEX idx_member_name ON member(member_name);
→ 회원 테이블과 연결되는 member_view 만들기
CREATE VIEW member_view
AS SELECT * FROM member;
→ member _view에 접근
SELECT * FROM member_view;
출력은 원래 member테이블과 같지만 실제 데이터가 이 뷰에 있는 것은 아님!
SELECT FROM member WHERE member_name = '나훈아';
SELECT FROM product WHERE product_name = '삼각김밥';
→ 두 SQL을 하나의 스토어드 프로시저로 만들어 실행
DELIMITER //
CREATE PROCEDURE myProc()
BEGIN
SELECT FROM member_view WHERE member_name = '나훈아';
SELECT FROM product WHERE product_name = '삼각김밥';
END //
DELIMITER;
→ CALL문으로 스토어드 프로시저 호출
CALL myProc();
✔️ 데이터베이스 개체 생성 : CREATE 개체종류 개체이름;
✔️ 데이터베이스 개체 삭제 : DROP 개체종류 개체이름;
마찬가지로,
✔️ 스토어드 프로시저 생성 : CREATE PROCEDURE myproc()
✔️ 스토어드 프로시저 삭제 : DROP PROCEDURE myproc
또는 생성, 삭제할 데이터베이스 개체에서 마우스 오른쪽 버튼을 클릭하고 Create으로는 생성을, Drop으로는 삭제 가능.