[MySQL] 3. MySQL 전체 운영 실습

Bnow·2023년 10월 9일

1. 데이터베이스 모델링과 필수 용어

  • 데이터 : 하나하나의 단편적인 정보
  • 테이블 : 데이터를 입력하기 위해, 표로 표현한 것
  • 데이터베이스 : 테이블이 저장되는 저장소
  • DBMS : 데이터베이스를 관리하는 시스템
  • 열 : 각 테이블의 컬럼
  • 데이터 형식 : 열의 데이터 형식
  • 행 : 실질적인 데이터
  • 기본 키 열 : 열의 각 행을 구분하는 유일한 열
  • 외래 키 필드 : 두 테이블의 관계를 맺어주는 키
  • SQL : 사람과 DBMS가 소통하기 위한 언어


2. MySQL을 이용한 데이터베이스 구축 절차

데이터베이스 생성

CREATE SCHEMA 'shopdb'

TABLE 생성

CREATE TABLE `shopdb`.`membertbl` (
  `memberID` CHAR(8) NOT NULL,
  `memberName` CHAR(5) NOT NULL,
  `memberAddress` CHAR(20) NULL,
  PRIMARY KEY (`memberID`));

데이터 입력

INSERT INTO `shopdb`.`membertbl` (`memberID`, `memberName`, `memberAddress`) VALUES ('Dang', '당탕이', '경기 부천시');
INSERT INTO `shopdb`.`membertbl` (`memberID`, `memberName`, `memberAddress`) VALUES ('Jee', '지운이', '서울 은평구');
INSERT INTO `shopdb`.`membertbl` (`memberID`, `memberName`, `memberAddress`) VALUES ('Han', '한주연', '인천 남구');
INSERT INTO `shopdb`.`membertbl` (`memberID`, `memberName`, `memberAddress`) VALUES ('Sang', '상길이', '경기 성남시 분당구');

데이터 활용

SELECT * FROM membertbl;
SELECT * FROM membertbl WHERE memberName = '지운이';



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

인덱스

  • '찾아보기' 역할
  • 테이블 열 단위에 생성됨
CREATE INDEX idx_indexTBL_firstname ON indexTBL(first_name);
SELECT * FROM indexTBL WHERE first_name = 'Mary';

  • 사용자의 입장에서 보는 가상 테이블

스토어드 프로시저

CREATE PROCEDURE `myProc`()
BEGIN
	SELECT * FROM memberTBL WHERE memberName = '당탕이';
	SELECT * FROM productTBL WHERE productName = '냉장고';
END
CALL myProc();

트리거

DELIMITER //
CREATE TRIGGER trg_deletedMemberTBL
	AFTER DELETE
    ON memberTBL
    FOR EACH ROW
BEGIN
	INSERT INTO deletedmemberTBL
		VALUES (OLD.memberID, OLD.memberName, OLD.memberAddress, CURDATE() );
END //
DELIMITER ;
set sql_safe_updates=0;
DELETE FROM memberTBL WHERE memberName = '당탕이';
SELECT * FROM shopdb.deletedmembertbl;



4. 백업과 복원

백업

  • 현재의 데이터베이스를 다른 매체에 보관하는 작업

복원

  • 데이터 베이스에 문제가 발생했을 때 백업된 데이터를 이용해서 원상태롤 돌려 놓는 작업


5. MySQL과 응용프로그램의 연결

  • Microsoft Visual Studio Community 2017 설치
    - link

  • Connector/ODBC 설치
    - link

  • ASP.NET 웹 응용 프로그램 작성

profile
행복한 코딩

0개의 댓글