DB/MySQL
이것이MySQL이다 - MySQL 전체 운영 실습
록's
2023. 2. 2. 14:36
728x90
반응형
요구사항 분석과 시스템 설계 그리고 모델링
정보시스템 구축 절차 요약
- 분석, 설계, 구현, 시험, 유지보수의 5가지 단계
- 분석
- 구현하고자 하는 프로젝트의 가장 첫 번째 단계
- 시스템 분석 또는 요구사항 분석이라고 불림
- 요구사항 분석은 현재 우리가 ‘무엇을(What)’ 할 것인지 결정
- 사용자의 인터뷰와 업무 조사 등을 수행
- 프로젝트의 첫 단추를 끼우는 중요한 단계
- 분석의 결과로 많은 문서 작성
- 설계
- 시스템 설계 또는 프로그램 설계
- 구축하고자 하는 시스템을 ‘어떻게(How)’ 할 것인지 결정
- 대부분의 프로젝트에서 분석과 설계의 과정이 전체 공정의 50% 이상 차지
데이터베이스 모델링과 필수 용어
- 데이터베이스 모델링
- 현실세계에서 사용되는 데이터를 MySQL에 어떻게 옮겨 놓을 것인지를 결정하는 과정
- 저장할 정보는 테이블(Table)이라는 형식에 맞춰 저장
- Ex) 쇼핑몰 데이터 베이스의 예
데이터베이스 모델링과 필수 용어
- 데이터
- 하나하나의 단편적인 정보
- 정보는 있으나 아직 체계화 되지 못한 상태
- 테이블
- 데이터를 입력하기 위해, 표 형태로 표현한 것
- Ex) 회원 정보 테이블, 제품 정보 테이블
- 데이터베이스(DB)
- 테이블이 저장되는 저장소
- 각 데이터베이스는 서로 다른 고유한 이름을 가지고 있음
- DBMS (DataBase Management System)
- 데이터베이스를 관리하는 시스템 또는 소프트웨어
데이터베이스 모델링과 필수 용어
- 열(=컬럼=필드)
- 각 테이블은 열로 구성
- 회원 테이블의 경우에는 아이디, 회원 이름, 주소 등 3개의 열로 구성
- 열 이름
- 각 열을 구분하기 위한 이름
- 열 이름은 각 테이블 내에서는 중복되지 않고, 고유해야 함
- 데이터 형식
- 열의 데이터 형식
- 테이블을 생성할 때 열 이름과 함께 지정
- 행(=로우=레코드)
- 실질적인 데이터
- 회원 테이블의 경우 4건의 행 데이터, 즉 4명의 회원이 존재함
데이터베이스 모델링과 필수 용어
- 기본 키 (Primary Key) 열
- 기본 키(또는 주 키) 열은 각 행을 구분하는 유일한 열
- 중복되어서는 안되며, 비어 있어서도 안 됨
- 각 테이블에는 기본 키가 하나만 지정
- 외래 키(Foreign Key) 필드
- 두 테이블의 관계를 맺어주는 키
- SQL (Structured Query Language)
- 구조화된 질의 언어
- 사람과 DBMS가 소통하기 위한 말(언어)
MySQL을 이용한 데이터베이스 구축 절차
데이터베이스 구축/관리 및 활용의 전반적인 절차
인터넷 쇼핑몰 구축 위한 ‘쇼핑몰’ DB 생성
- MySQL 서버 연결 및 설정
- Windows의 [시작] >> [M] >> [MySQL] >> [MySQL Workbench 8.0 CE] 클릭해 Workbench 실행
- [MySQL Connections] 창에서 비밀번호 입력하여 접속
- Workbench의 초기 창
- 기본적으로는 [Schemas] 탭 클릭해놓고 사용
- Workbench 종료 -> 설정 저장
인터넷 쇼핑몰 구축 위한 ‘쇼핑몰’ DB 생성
- 스키마 (Schema) 생성
- MySQL에서는 스키마와 데이터베이스가 완전히 동일한 용어로 사용
- Workbench의 [SCHEMAS]의 빈 부분
- 마우스 오른쪽 버튼 클릭 후 [Create Schema](=Create Database) 선택
- CREATE SCHEMA ‘shopdb’문을 쿼리 창에서 입력하는 것과 동일한 작동
- 이름 입력하면 DB 생성
- 왼쪽 데이터베이스 목록에 shopdb 데이터베이스 확인
- 아무것도 들어있지 않은 데이터베이스 생성
인터넷 쇼핑몰 구축 위한 ‘쇼핑몰’ DB 생성
- 테이블 생성
- 회원테이블, 제품 테이블 각 열의 영문 이름 및 데이터 형식 결정
- 데이터베이스 모델링(특히 물리적 모델링) 시에 결정
- 데이터 형식의 자세한 내용은 7장에서 학습
- 형식이 정해지면 Create Table 실행해 테이블이름, 열이름, 데이터형식등 테이블 내용 입력
- 생성된 SQL Query를 데이터베이스에 적용해 테이블 생성 완료
- ShopDB의 [테이블]에서 생성한 테이블 확인
- 회원테이블, 제품 테이블 각 열의 영문 이름 및 데이터 형식 결정
데이터 입력 – 행 데이터 입력
- 회원 테이블의 데이터 입력
- Navigator의 [SCHEMAS]에서 [Shopdb] >> [Tables] >> [membertbl] 선택 후, 마우스 오른쪽 버튼 클릭하고 [Select Rows - Limits 1000] 선택
- 아래 그림의 회원 테이블 데이터 Grid에 입력 후 Apply 해 저장
- 제품 테이블의 데이터 입력
- 동일한 방식으로 제품 데이터 입력 후 저장
- 데이터를 삭제하려면 삭제할 행의 앞 부분에 마우스 대고 오른쪽 메뉴 Delete 사용해 삭제
데이터 활용
- 주로 SELECT 문 사용해 데이터 활용
- 사용할 데이터 베이스 선택
- SCHEMA에서 사용할 DB를 더블 클릭
- 진하게 색상이 변하면서 선택 됨
- SQL 실행법
- 툴바의 <Execute the selected portion~~> 아이콘 클릭
- Ctrl + Shift + Enter
- Workbench 메뉴의 [Query] >> [Execute(All or Selection )]
- SQL은 대소문자 구별 없음
- 읽기 편하게 예약어는 대문자 (쿼리 창에서 파란색으로 표시)
데이터 활용
- SELECT 열 이름 FROM 테이블 이름 [WHERE 조건]
- 모든 데이터 출력하기 (열 이름 대신 ‘ * ’ )
- 열을 선택해 데이터 출력하기 (열 이름 나열)
- 특정 데이터를 만족하는 데이터 출력하기 (WHERE절에 조건 입력)
- 새로운 테이블 생성
- 테이블 이름에 space 가 들어간 경우의 처리(백틱[backtick]키 활용)
- Navigator 창에서 “Refresh All” 의 중요성
- 새로 테이블을 만든 뒤 개체가 보이지 않을 경우 필수로 실행할 것
- 테이블 삭제
- DROP TABLE 테이블 이름
테이블 외의 데이터베이스 개체의 활용
인덱스 (Index)
- 데이터베이스 ‘튜닝’의 개념
- 데이터베이스 성능 향상
- 쿼리에 응답하는 시간 단축시키는 것
- 책 뒤에 붙어 있는 ‘찾아보기’(또는 색인)와 같은 개념
- 데이터의 양이 많을수록 효과적으로 작용
- 응답속도가 현저히 차이 나는 결과
- 테이블의 열 단위에 생성
- 인덱스 사용 전/후의 실행 계획 (Execution Plan) 비교
뷰 (View)
- 가상의 테이블
- 실제 행 데이터를 가지고 있지 않음
- 그 실체는 없는 것이며, 진짜 테이블에 링크Link된 개념
- 뷰를 SELECT
- 진짜 테이블의 데이터를 조회하는 것과 동일한 결과
스토어드 프로시저 (Stored Procedure)
- MySQL에서 제공해주는 프로그래밍 기능
- SQL문을 하나로 묶어 편리하게 사용하는 기능
- 다른 프로그래밍 언어와 같은 기능을 담당할 수도 있음
- 실무에서는 SQL문(주로 SELECT)을 매번 하나하나 수행 X
- 토어드 프로시저로 만들어 놓은 후 스토어드 프로시저 호출
트리거 (Trigger)
- 테이블에 부착되어 테이블에 INSERT나 UPDATE 또는 DELETE 작업이 발생되면 실행되는 코드
- 상세한 내용은 10장에서 학습 예정
- ex) 탈퇴회원 관리
- 회원 테이블에서 빼서 탈퇴한 회원 관리 테이블로 옮김
- 회원 정보 + 탈퇴한 날짜 를 관리하는 새 테이블의 필요성
데이터베이스 백업 및 관리
백업과 복원
- 백업
- 현재의 데이터베이스를 다른 매체에 보관하는 작업
- 복원
- 데이터베이스에 문제 발생 시 다른 매체에 백업된 데이터를 이용해 원상태로 돌려놓는 작업
- 백업과 복원은 DBA(DataBase Administrator: 데이터베이스 관리자)가 해야 할 가장 중요한 일
데이터베이스 백업
- 백업용 폴더 작성
- 실제로는 다른 디스크에 이루어져야 의미 있음
- DB 백업
- DB내의 모든 트리거, 스토어드 프로시저까지 백업
- 백업 폴더에 백업파일 저장
데이터베이스 복구
- DB 삭제 같은 큰 사고를 인위로 발생시켜 실습
- 복원 후 데이터가 온전한지 check 하는 것이 중요함
728x90
반응형