본문 바로가기

DB

DBMS

728x90

DBMS : Data Base Management System

(데이터 보관과 조회를 서비스하는 프로그램)

Database

  • 실시간 접근 가능 : 데이터 처리 요청에 즉시 응답
  • 동시 공유 : 여러 사용자가 공유
  • 데이터의 독립성 : 애플리케이션에 비종속
  • 일관성 : 데이터 처리 작업이 끝난 후 데이터의 값은 유효한 상태를 유지해야 한다.
  • (예 - 특정 회원 데이터 삭제 → 삭제한 회원의 글도 삭제)
  • 무결성 : 유효하지 않은 데이터의 등록과 변경, 삭제를 제한
  • (예 - 게시글 작성자를 삭제할 수 없다.)
  • 보안성 : 사용자 인증과 권한 검사권한 검사(authgorization) - 기능의 이용권한 검사 → 등록 허용?/변경허용? ...
  • 사용자 인증(authentication) - ID/PWD 일치 → 유효한 사용자

DBMS

  • 데이터 베이스를 조작하는 S/W
  • 예) Oracle, MySQL, DBL, MS-SQL, Altibase, Tibero, Cubrid 등

SQL

  • DBMS에 상관없이 요청 명령을 작성하는 문법 : Structured Query Language

App ——데이터 처리 요청——> DBMS

 

SQL → DDL(Data Definition Languge) : 데이터 구조 정의 문법

        → DQL(Data Query Languge) : 데이터 조회 요청 문법

        → DML(Data Manipulation Languge) : 데이터 등록/변경/삭제 문법

*DQL, DML를 통틀어서 DML이라고 부른다.

 

App ——표준 SQL 문법——> DBMS

App —— +오라클 전용 문법——> Oracle

App —— +MySQL전용 문법——> MySQL

App —— +MS-SQL 전용 문법——> MS-SQL

(전용 문법은 특정 DBMS에서만 사용할 수 있는 문법을 말한다.)

 

  • 애플리케이션에서 사용하는 SQL은 DBMS마다 약간씩 다르다.

         ⇒ 그래서 DBMS에 따라 코드를 변경해야 한다.

  • DBMS제품마다 강점/약점이 있다

         → DBMS를 제대로 활용하려면 DBMS 전용 SQL 문법을 사용할 수 밖에 없다.

 

표준 SQL 문법 : DBMS에 공통으로 사용할 수 있는 문법

 

 

DBMS 와 SQL

MariaDB

mariadb 설치

> brew install mariadb

 

mariadb 설치 후 root 암호 변경

> sudo mysql_secure_installation

 

mariadb 실행

> brew services start mariadb brew services stop mariadb

 

 

Web Server(HTTP Server) <—————> Web Browser(HTTP client)

HTTP 프로토콜에 따라서 서버 입장이냐 클라이언트 입장이냐~~

브라우저에서 서버로 HTTP 규칙에 따라 응답한다. or 웹 서버도 브라우저에게 HTTP 규칙에 따라 요청한다.

 

MariaDB ←—————→MariaDB Cilent

MariaDB protocol에 따라서 요청, 응답한다.

 

<전개방법>

  1. 사용자가 SQL입력
  2. 서버(MariaDB)에 요청
  3. 요청 처리
  4. MariaDB Client에 응답
  5. 사용자에게 결과 출력

 

mysql 서버에 접속하기

로컬 MySQL 서버에 접속

> mysql -u root -p Enter password: 암호입력

 

 

SQL 테스트 준비

사용자 추가 

> create user 'study'@'localhost' identified by '1111';

 

 

'study' : 사용자 아이디

'localhost' : 서버주소

'1111' : 사용자 암호

> create user 'study'@'%' identified by '1111';

 

 

데이터를 저장할 데이터베이스 생성

> CREATE DATABASE 데이터베이스명 CHARACTER SET utf8 COLLATE utf8_general_ci;

> CREATE DATABASE studydb CHARACTER SET utf8 COLLATE utf8_general_ci;

 

 

데이터 베이스를 사용할 사용자의 권한을 지정

> grant all on studydb.* to 'study'@'localhost';

localhost로 접속한 study에 대해서 studydb의 모든 권한을 부여한다.

 

 

데이터베이스 목록 조회

> show databases;

 

 

사용자 교체

> quit or exit (프로그램 종료 후) mysql -u study -p (다시 실행)

 

 

기본으로 사용할 데이터베이스 지정하기
> use 데이터베이스명 use studydb;

 

 

DDL(Data Definition Language)

  1. 테이블 생성name varchar(50) not null,eng int not null,sum int not null,
  2. aver float not null);
  3. math int not null,
  4. kor int not null,
  5. create table test01 (

'DB' 카테고리의 다른 글

데이터 관리를 DBMS에게 맡기기 : JDBC API 사용  (0) 2021.10.19
Join, 서브쿼리, 그룹으로 묶기  (0) 2021.10.11
FK(Foreign Key)  (0) 2021.10.11
DQL(Data Query Language)  (0) 2021.10.11
DDL - 테이블 생성, 컬럼타입  (0) 2021.10.10