본문 바로가기
DB & SQL/이것이 MySQL이다

MySQL 전체 운영 실습

by k-mozzi 2022. 5. 1.
반응형
Preface

 

이번 장에선 MySQL의 내용을 전반적으로 살펴보며 간단한 실습을 해봤다.

 

대부분 데이터베이스 개론에서 이미 한 번 봤던 내용들이라 그런지 쉽게 이해할 수 있었다.

 

다만, 이번 장에선 각각의 개념에 대한 자세한 설명을 토대로 이해를 하는 것이 아닌 몇 가지 개념들을 맛보기 하는 수준이었기 때문에 MySQL의 자세한 문법은 아직 다루지 않았다.

 

또 이번 장의 마지막 부분에서 Visual Studio Community를 사용해 MySQL과 응용 프로그램을 연결하는 파트가 있는데, Mac에선 해당 프로그램을 다운로드 할 수 없어 기존에 사용하던 윈도우에 프로그램을 설치하는 중이다.

 

앞으로도 이런 저런 실습을 할 때 응용 프로그램이나 문서, 데이터 등을 다운로드 받아 사용할 일이 많을 것 같은데 Mac에선 제약이 너무 많아 윈도우로 공부를 진행해야 할 것인지, 정 안 되는 경우에만 윈도우를 가끔 사용할 것인지 고민이다.

 

아, 그리고 두 컴퓨터를 번갈아가며 실습을 진행하기 때문에 DB가 뒤죽박죽이다.

 

실습 코드를 작성할 때마다 Github에 코드를 업로드하든, 메인 컴퓨터와 서브 컴퓨터를 확실히 정하든 빨리 결정을 하고 공부를 진행해야 할 것 같다.

 

→ 터미널에서 secure 설정을 변경하여 외부 사용자의 접속을 허용하면 local pc에서 작업한 내용을 외부에서도 사용할 수 있을 듯?


 

1. 요구사항 분석, 시스템 설계, 모델링

 

 

- 정보시스템 구축 단계

1) 분석: 무엇을(what)

2) 설계: 어떻게(how)

3) 구현

4) 시험

5) 유지보수

 

 

- DB 모델링: 현실세계에서 사용되는 데이터를 MySQL에 어떻게 옮겨 놓을 것인지를 결정하는 과정

 

 

[ 테이블의 구조와 관련 용어]

 

- DB 관련 용어

1) 데이터: 하나하나의 단편적인 정보

2) 테이블: 데이터를 표 형태로 표현한 것

3) DB: 테이블이 저장되는 저장소

4) DBMS: DB를 관리하는 시스템 또는 소프트웨어

5) 열: 컬럼, 필드, 속성, 애트리뷰트

6) 차수: 속성의 전체 개수

7) 데이터 형식: 열의 데이터 형식

8) 행: 로우, 레코드, 튜플

9) 카디널리티: 튜플의 전체 개수

10) SQL: 질의어

 


 

2. MySQL을 이용한 DB 구축 절차

 

 

 

※ MySQL에서는 스키마와 데이터베이스가 완전히 동일한 용어로 사용된다.

 

 

※ MySQL은 기본적으로 테이블 이름, 열 이름 등을 모두 소문자로 처리한다.

→ 대문자로 입력해도 소문자로 변경되어 저장

 

 

- SELECT의 기본 형식: SELECT 열 이름 FROM 테이블 이름 [WHERE 조건]

 

 

- *: 모든 열을 의미한다.

 

 

- 기본적으로 쿼리를 실행하면 해당 쿼리 창에 있는 모든 SQL 문을 수행하므로, 실행하고자 하는 SQL만 드래그한 후 실행해야 한다.

 

 

- 중간에 공백이 있는 개체의 이름을 사용할 때는 백틱(backtick: `` → 영어일 때 ~, 한국어일 때 ₩)으로 묶어줘야 하나의 이름으로 인식한다.

 

 

- 하이픈 연속 2개(--)가 앞에 붙으면 그 줄은 모두 주석처리가 된다.

→ -- 뒤에 공백이 하나 있어야 한다.

 

 

- CREATE 문으로 개체를 생성하면 Navigator에 자동으로 적용되지 않는다.

→ Refresh All 을 해줘야 한다.

 


 

3. 테이블 외의 데잉터베이스 개체의 활용

 


1. 인덱스(index): '찾아보기' 또는 '색인'과 같은 개념

 

 

- 데이터베이스 튜닝: DB의 성능을 향상시키거나 응답 시간을 단축시키는 것

 

 

-  인덱스는 테이블의 열 단위에 생성된다.

→ 열을 기본 키로 설정하면 자동으로 인덱스가 생성되기 때문

 

 

- CREATE 문의 경우에는 새로운 개체를 생성하는 것이므로 성공했을 경우에는 아래 Output 창에 초록색 아이콘으로 성공 메시지만 표시된다.

 

 

- Execution Plan(실행 계획)에서의 Full Table Scan: 인덱스를 사용하지 않고, 테이블 전체를 검색했다는 의미

 

 

- Execution Plan(실행 계획)에서의 Non-Unique Key Lookup: 인덱스를 사용했다는 의미

 


 

2. 뷰(view): 가상의 테이블

 

 

- 뷰에 접근하게 되면 뷰 생성 시에 입력한 SELECT 문이 그때 작동한다.

 


 

3. 스토어드 프로시저(Stored Procedure): MySQL에서 제공해주는 프로그래밍 기능

→ SQL 문을 하나로 묶어 편리하게 사용하는 기능

 

 

- 프로시저: 특정한 로직을 처리하기만 하고 결과 값을 반환하지 않는 서브 프로그램

 

 

- DELIMITER: 구분 문자

1) 뒤에 //가 나오면 기존의 세미콜론(;)을 //로 대신한다는 의미

→ 제일 마지막 행에서 다시 세미콜론으로 돌려놓아야 한다.

2) CREATE PROCEDURE ~ END 까지를 하나의 단락으로 묶어주는 효과

 

 

- 스토어드 프로시저 실행 방법: CALL 스토어드 프로시저_이름()

 

 

- DB 개체를 만들기 위한 형식

1) CREATE TABE 테이블_이름

2) CREATE VIEW 뷰_이름

3) CREATE PROCEDURE 스토어드 프로시저_이름() etc.

 

 

- DB 개체를 삭제하기 위한 형식

1) DROP 개체 종류 개체 이름

→ 스토어드 프로시저를 삭제할 땐 맨 마지막에 ()를 생략한다.

 


 

4. 트리거(Trigger): 테이블에 부착되어서 테이블에 INSERT나 UPDATE 또는 DELETE 작업이 발생되면 실행되는 코드

→ ex) 삭제 작업이 일어날 경우에 삭제되기 전에 미리 다른 곳에 삭제될 데이터를 자동으로 저장해주는 기능


 

728x90
반응형

'DB & SQL > 이것이 MySQL이다' 카테고리의 다른 글

MySQL 유틸리티 사용법  (0) 2022.05.02
데이터베이스 모델링  (0) 2022.05.02
mac에서 MySQL 설치(Homebrew or site)  (0) 2022.04.23
DBMS 개요  (0) 2022.04.23
이것이 MySQL이다 출처  (0) 2022.04.12

댓글