0. 학습 목표
- 데이터베이스 모델링의 개념을 파악
- 전반적인 데이터베이스 구축 절차를 이해
- 데이터베이스 개체인 인덱스, 뷰, 스토어드 프로시저에대해 미리 학습
0. 요약
- 프로젝트란 현실 세계를 컴퓨터 시스템으로 옮겨놓는 일련의 과정
- 폭포수 모델은 소프트웨어 개발 단계 중 하나로 이름 그대로 폭포가 떨어지듯 개발 단계가 진행
- 데이터베이스 모델링이란 현실 세계에서 사용되는 작업이나 사물들을 DBMS의 테이블로 옮기기 위한 과정
- 스키마는 MySQL 안에 데이터베이스를 뜻한다. 데이터베이스와 동일한 용어라고 생각하면 됨
- 데이터형식은 문자형(CHAR), 정수형(INT)등과 같이 열에 저장될 데이터 형식을 뜻 함
- 예약어는 SELECT, FROM, WHERE와 같은 기존에 약속된 SQL 임
- 기본키는 열에 지정하며 각 행을 구분하는 유일한 옵션
- 인덱스는 책 뒤의 찾아보기와 비슷한 개념이며 데이터를 빠르게 찾을 수 있도록 도와 줌
- 뷰는 바로가기 아이콘과 비슷한 개념임
- 스토어드 프로시저는 여러 개의 SQL을 묶어주거나 프로그래밍 기능을 제공
3. 데이터베이스 개체
※핵심 키워드: 인덱스, 뷰, 스토어드 프로시저
3-1. 인덱스
데이터를 조회할 때 테이블에 데이터가 많으면 속도가 느려진다. 인덱스는 이런 경우 결과가 나오는 시간을 대폭 줄여준다.
인덱스 개념 이해하기
인덱스란 책의 제일 뒤에 수록되는 찾아보기 기능과 비슷하다. 찾아보기를 통해 먼저 해당 단어를 찾고 그 옆에 적혀있는 페이지로 이동하여 검색 속도를 높이는 것이다.
인덱스 실습하기
우선 회원테이블에 있는 아이유 정보를 찾아보자.
SELECT * FROM member WHERE member_name = "아이유";
위에서도 언급하였지만 아래 Explain에서 확인 가능하다.(Full Table Scan)
이제 회원 테이블에 인덱스를 만들어 보자.
CREATE INDEX index_member_name ON member(member_name);
다시 검색해 보자. Non_unique Key Lookup으로 인덱스 검색으로 확인된 것이다.
3-2. 뷰
뷰는 테이블과 상당히 동일한 성격이 데이터베이스 개체이다. 뷰를 활용하면 보안도 강화하고 SQL문도 간단하게 사용할 수 있다.
뷰 개념 이해하기
뷰를 한마디로 정의하면 가상의 테이블이라고 할 수 있다. 진짜 테이블에 링크된 개념이다. 뷰는 윈도우즈 운영체제의 바로가기 아이콘과 비슷하다.
뷰의 실체는 SELECT문이다. 즉 뷰에 접근하는 것은 SELECT 쿼리를 수행한 것이다.
뷰 실습하기
기본적인 뷰를 마들어 보자.
CREATE VIEW member_view AS SELECT * FROM member;
회원 테이블이 아닌 뷰테이블에 접근해 보자. 동일한 결과를 얻을 수 있다.
SELECT * FROM member_view;
뷰로 얻을 수 있는 이점은 보안과 긴 SQL 문을 간단하게 만들 수 있다.
3-3. 스토어드 프로시저
스토어드 프로시저를 통해 SQL 안에서도 일반 프로그래밍 언어처럼 코딩을 할 수 있다.
스토어드 프로시저 개념 이해하기
스토어드 프로시저란 MySQL에서 제공하는 프로그래밍 기능으로 여러개의 SQL 문을 하나로 묶어서 편리하게 사용할 수 있다. 연산식, 조건문, 반복문등을 사용할 수도 있다.
스토어드 프로시저 실습하기
우선 회원테이블과, 상품 테이블에 특정 이름을 검색하는 SQL문을 사용해 보자.
SELECT * FROM member WHERE member_name = "나훈아";
SELECT * FROM product WHERE product_name = "삼각김밥";
별도의 탭으로 결과가 나온다. 그런데 이 것보다 더 많은 자주 다 수의 SQL문을 사용한다면 매번 타이핑을 해줘야하는 불편함이 있다.
이를 스토어드 프로시저를 통해 해결할 수 있다.
DELIMITER //
CREATE PROCEDURE myProc()
BEGIN
SELECT * FROM member WHERE member_name = "나훈아";
SELECT * FROM product WHERE product_name = "삼각김밥";
END //
DELIMETER ;
그리고는 이제 함수만 호출하면 된다.
CALL myProc();
'혼자공부하는 SQL' 카테고리의 다른 글
3. SQL 기본 문법-3 (0) | 2022.01.21 |
---|---|
3. SQL 기본 문법-2 (0) | 2022.01.19 |
3. SQL 기본 문법-1 (0) | 2022.01.17 |
2. 실전용 SQL 미리 맛보기-1 (0) | 2022.01.14 |
1. 데이터베이스와 SQL (0) | 2022.01.14 |