8w8u8

1. DBMS란? / SQL 설치 및 실행 본문

강의/강경미 | 웹 백엔드

1. DBMS란? / SQL 설치 및 실행

jud1th 2023. 2. 20. 19:44

 

*강경미 | 웹 백엔드 강의를 참조한 글입니다.

 

1. Intro

 

1-1. 데이터베이스

  • 데이터의 집합(a Set of Data)
  • 여러 응용 시스템(프로그램)들의 통합된 정보들을 저장하여 운영할 수 있는 공용(share) 데이터의 집합
  • 효율적으로 저장, 검색, 갱신할 수 있도록 데이터 집합들끼리 연관시키고 조직하여야

 

1-2. 데이터베이스의 특성

  • 실시간 접근성 : 사용자의 요구를 즉시 처리할 수 있다
  • 계속적인 변화 : 정확한 값을 유지하려고 삽입/삭제/수정 작업 등을 통해 데이터를 갱신할 수 있다
  • 동시 공유성 : 사용자마다 서로 다른 목적으로 사용하므로 동시에 여러 사람들이 동일한 데이터에 접근하고 이용할 수 있다
  • 내용 참조 : 저장한 데이터 레코드의 위치나 주소가 아닌 사용자가 요구하는 데이터의 내용, 즉 데이터 값에 따라 참조할 수 있어야 한다

 

1-3. 데이터베이스 관리 시스템(DBMS ; Database Management System)

: 도서관이 가지고 있는 데이터베이스라고 한다면,
어지러놓은 책들을 관리해주는 사서 데이터베이스 관리 시스템이다.

  • 데이터베이스를 관리하는 소프트웨어
  • Oracle, SQL Server, MySQL, DB2 등의 다양한 상용 또는 공개 DBMS가 있다
  • 여러 응용 소프트웨어 또는 시스템이 동시에 데이터베이스에 접근하여 사용할 수 있게 한다
  • (파일 시스템과 대비하여) 장점 : 데이터 중복이 최소화 / 데이터의 일관성 및 무결성 유지 / 높은 데이터 보안성
  • 단점 : 비싼 운영비 / 백업 및 복구에 대한 관리가 복잡 / 부분적 데이터베이스 손실이 전체 시스템을 정지시킴

 

1-4. DBMS의 필수 기능 3가지

  • 정의 기능 : 데이터베이스의 논리적, 물리적 구조를 정의
  • 조작 기능 : 데이터를 검색, 삭제, 갱신, 삽입, 삭제하는 기능
  • 제어 기능 : 데이터베이스의 내용 정확성과 안전성을 유지하도록 제어하는 기능

 


2. MySQL 설치 및 실행

 

2-1. MySQL 사이트로 이동

https://www.mysql.com/downloads/

 

MySQL :: MySQL Downloads

MySQL Cluster CGE MySQL Cluster is a real-time open source transactional database designed for fast, always-on access to data under high throughput conditions. MySQL Cluster MySQL Cluster Manager Plus, everything in MySQL Enterprise Edition Learn More » C

www.mysql.com

 

2-2. 화면 하단의 MySQL Community(GPL) Dowonloads를 클릭



2-3. 왼쪽에서 위에서 네번째 MySQL Community Server를 클릭

 

 

2-4. 적절한 버젼을 다운로드

*설치과정에서 password설정하는게 있는데 이걸 잘 기억해둬야한다!!!!

2-5. 환경변수 설정

환경변수 설정을 통해 콘솔창에서 MySQL을 실행할 수 있다.
자세한 설명은 아래 글의 2-5과정과 유사하다.

 

1. 프로젝트 설치 및 실행하기 [김영한 | 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근

*김영한 | 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 강의를 참조한 글입니다. 1. 프로그램 설치 - JAVA 11, INtelliJ 프로젝트를 시작하기에 앞서, 두 개의 프로그램을 설치해주어

8w8u8.tistory.com


'시스템 변수 - path - 편집' 를 클릭한다.
'새로 만들기'를 클릭하여 다음의 값을 입력하고, 저장한다.

입력값 : C:\Program Files\MySQL\MySQL Server 8.0\bin

*MySQL 8.0버젼을 다운받았을 시 동일한 입력값 작성 / 이외에는 버젼에 따라 숫자 변경




3. SQL이란?

사람과 사람이 대화하기 위해서 언어가 필요하듯,
DBMS에게 명령을 내릴 때도 특별한 문장이 필요하다.
=> 이 명령이 SQL(쿼리)

  • SQL = Structured Query Language (구조화된 쿼리 언어)
  • SQL은 하나의 컴퓨터 언어이다
  • 데이터를 보다 쉽게 검색하고 추가, 삭제, 수정하기 위해 고안됨
  • SQL은 DML, DDL, DCL으로 나뉘어진다

 

3-1. DML

  • Data Manipulation Language
  • 데이터를 조작하기 위해 사용
  • Insert, Update, Delete, Select 등이 여기에 해당됨

 

3-2. DDL

  • Data Definition Language
  • 데이터베이스의 스키마를 정의하거나 조작하기 위해 사용
  • Create, Drop, Alter 등이 여기에 해당됨

 

3-3. DCL

  • Data Control Language
  • 데이터를 제어 - 권한을 부여/파기, 트랜잭션을 부여/커밋/롤백 등을 수행
  • 즉, 데이터의 보안 및 무결성 유지에 관여
  • Grant, Revoke 등이 여기에 해당됨

 


4. SQL 실행해보기


4-1. 명령 프롬프트에 mysql -urrot -p를 입력한다.
4-2. Enter password가 뜨면 비밀번호를 입력한다.
4-3. create database (파일이름); 을 입력하여 데이터베이스를 생성한다.
우리는 connectdb라는 이름으로 진행하겠다.


4-4. 데이터베이스를 생성했다면, 해당 데이터베이스를 사용하는 계정을 생성하고 그 계정에게 데이터베이스를 이용할 수 있는 권한을 주어야한다.

사용자 계정이름은 'connectuser',
암호는 'connect123!',
해당 사용자가 사용하는 데이터베이스는 'connectdb'로 계정을 생성하려면 다음과 같이 명령을 수행한다.

create database connectdb;
create user connectuser@localhost identified by 'connect123!';
grant all privileges on connectdb.*to 'connectuser'@'localhost';
flush privileges;



<코드 설명> MySQL 8.0 기준의 코드이다.

create database connectdb;

connectdb라는 이름의 데이터베이스 생성

create user connectuser@localhost identified by 'connect123!';

connectuser라는 이름의 사용자 계정 생성, 암호는 connect123!

grant all privileges on connectdb.*to 'connectuser'@'localhost';

db이름 뒤의 *는 모든 권한을 의미한다. @'localhost'는 해당 컴퓨터에서만 접근 가능하단 의미이다.

더보기

grant all privileges on connectdb.*to 'connectuser'@'%';

@'%'는 어떤 클라이언트에서도 접근 가능하단 의미이다.

flush privileges;

DBMS에게 적용을 하라는 의미이다. 반드시 써줘야한다.


🧩 그 밖의 기능

- 내용 조회
SELECT를 사용하여 내용을 조회할 수 있다. select는 검색 키워드로, 대소문자를 구분하지 않는다.

mysql> SELECT version();
mysql> SELECT VERSION();
두 명령문은 동일하다.

- 함수를 사용하여 계산 가능
- 데이터베이스 확인 : show databases;



5. SQL 종료하기

exit 또는 quit를 입력하면 SQL이 종료된다.

BYE~