내용 정리
Chapter 01. 데이터베이스와 SQL
01-1. 데이터베이스 알아보기
- DB : 데이터의 집합
- DBMS : DB를 운영/관리하는 프로그램
- 테이블 : DB의 최소 단위로, 하나 이상의 열과 행으로 구성(RDBMS의 핵심 개체)
- SQL : DB를 구축, 관리, 활용하기 위해서 사용되는 언어
- DBMS의 분류
: 계층형(hierarchical), 망형(network), 관계형(relational), 객체지향형(object-oriented), 객체관계형(object-relational) 등으로 분류
01-2. MySQL 설치하기
- Root : MySQL의 모든 권한이 있는 관리자의 이름
- SHOW DATABASES : MySQL 서버에 있는 DB목록을 출력
Chapter 02. 실전용 SQL 미리 맛보기
02-1. 건물을 짓기 위한 설계도 : 데이터베이스 모델링
- 프로젝트 : 현실 세계에서 일어나는 업무를 컴퓨터 시스템으로 옮겨놓는 과정
- DB modeling : 테이블의 구조를 미리 설계
- 폭포수 모델 : 프로젝트를 진행하기 위해 사용되는 대표적인 모델으로 DB modeling은 업무 분석과 시스템 설계 단계에 해당. 이 단계를 거치면 가장 중요한 DB 개체인 테이블 구조가 결정
1) 프로젝트 계획 2) 업무 분석 3) 시스템 설계 4) 프로그램 구현 5) 테스트 6) 유지보수
: 각 단계가 구분되어 프로젝트의 진행 단계가 명확
: 하지만 문제가 발생할 경우 다시 앞 단계로 돌아가기 어려움.
- 기본키(PK) : 중복되어서는 안 되며, 비어 있어서도 안됨.
: 테이블에는 열이 여러 개가 있지만 기본 키는 1개만 지정해야 하며, 일반적으로 1개의 열에 지정
02-2. 데이터베이스 시작부터 끝까지
- 데이터베이스 구축 절차
1) 데이터베이스 만들기 2) 테이블 만들기 3) 데이터 입력/수정/삭제하기 4) 데이터 조회/활용하기
- 데이터베이스 모델링이 완료되면 절차에 따라서 데이터베이스를 구축할 수 있음.
- 스키마(schema)와 데이터베이스는 동일한 용어
- 기본키로 설정된 열을 기준으로 오름차순으로 자동 정렬
- SQL의 제일 뒤에는 세미콜론(;)이 꼭 있어야 함.
02-3. 데이터베이스 개체
데이터베이스 개체 : 테이블, 인덱스, 뷰, 스토어드 프로시저, 트리거, 함수, 커서
- 인덱스 : 데이터를 조회할 때 결과가 나오는 속도를 획기적으로 빠르게 해줌.
- 뷰 : 테이블의 일부를 제한적으로 표현할 때 주로 사용
- 스토어드 프로시저 : SQL에서 프로그래밍이 가능하도록 해줌.
- 트리거 : 잘못된 데이터가 들어가는 것을 미연에 방지
모든 데이터베이스 개체는 독립적으로 존재하는 것이 아니라 테이블과 상호 연관이 있음.
- 인덱스
1) 생성
CREATE INDEX idx_member_name ON member(member_name);
2) 검색
Non-Unique Key Lookup
(↔ Full Table Scan)
* 인덱스 생성 여부에 따라 결과가 달라지는 것은 아님.
- 뷰
: 가상의 테이블, 실제 데이터를 가지고 있지 않으며, 진짜 테이블에 링크된 개념
: 뷰의 실체는 SELECT
: 뷰에 접근하는 것은 테이블에 접근하는 것과 동일
→ 그렇다면, 뷰를 사용하는 이유는?
1) 보안에 도움
2) 긴 SQL문을 간략하게 만들 수 있음
- 스토어드 프로시저
: 스토어드 프로시저를 통해 SQL 안에서도 일반 프로그래밍 언어처럼 코딩할 수 있음.
: 여러 개의 SQL문을 하나로 묶어서 사용 가능
: 연산식, 조건문, 반복문 등을 사용 가능
1) 생성
DELIMITER //
CREATE PROCEDURE myProc()
BEGIN
SELECT * member WHERE member_name = '나훈아';
SELECT * product WHERE product_name = '삼각김밥';
END //
DELIMITER ;
2) 실행
CALL myProc();
3) 삭제
DROP PROCEDURE myProc;
기본 미션
p. 80의 shop_db의 회원 테이블(member)에서 아이유 회원에 대한 정보만 추출한 후 결과 화면 인증하기
선택 미션
데이터베이스 개체 3가지 설명하기
데이터베이스 개체 : 데이터베이스 안에 저장되는 개체. 모든 데이터베이스 개체는 독립적으로 존재하는 것이 아니라 테이블과 상호 연관이 있음.
1. 인덱스(INDEX)
: 책의 제일 뒷부분의 '찾아보기'와 비슷한 개념으로 데이터를 조회할 때 결과가 나오는 속도를 획기적으로 빠르게 해줌.
-- INDEX 생성 및 확인
CREATE INDEX idx_member_name ON member(member_name);
2. 뷰(VIEW)
: 테이블과 상당히 동일한 성격의 데이터베이스 개체로 '가상의 테이블'이라고 할 수 있음.
: 실제 데이터를 가지고 있지 않으며, 진짜 테이블에 링크된 개념임. WindowsOS의 '바로가기 아이콘'과 비슷한 개념.
: 테이블의 일부를 제한적으로 표현할 때 주로 사용.
: 뷰를 활용하면 보안도 강화하고, SQL문도 간단하게 사용할 수 있음.
-- VIEW 생성 및 이용
CREATE VIEW member_view AS SELECT * FROM member;
SELECT * FROM member_view;
3. 스토어드 프로시저(Stored Procedure)
: MySQL에서 제공하는 기능으로 SQL에서 프로그래밍 언어처럼 코딩이 가능하도록 해줌.
: 여러 개의 SQL문을 하나로 묶어서 편리하게 사용 가능.
: C, Java, Python과 같은 언어에서 사용되는 연산식, 조건문, 반복문 등을 사용할 수 있음.
-- Stored Procedure 생성
DELIMITER //
CREATE PROCEDURE myProc()
BEGIN
SELECT * FROM member WHERE member_name = '나훈아';
SELECT * FROM product WHERE product_name = '삼각김밥';
END //
DELIMITER ;
-- Stored Procedure 불러오기
CALL myProc();
-- Stored Procedure 삭제하기
DROP PROCEDURE myProc;
'혼자 공부하는 SQL(혼공단 9기)' 카테고리의 다른 글
(6주차) Chapter 07 ~ 08 (0) | 2023.02.09 |
---|---|
(5주차) Chapter 06 (0) | 2023.02.06 |
(4주차) Chapter 05 (0) | 2023.01.31 |
(3주차) Chapter 04 (0) | 2023.01.13 |
(2주차) Chapter 03 (0) | 2023.01.09 |