블로그 내의 모든 예시와 실습은 VMware workstation16.2.3, Centos7을 활용 합니다.

데이터베이스 이해

Database

  • 체계화된 데이터의 모임
  • 구조적으로 데이터를 저장하는 공간(파일/파일모음)
  • 데이터를 효율적으로 처리, 관리하기 위해 도입 됐다.
  • 테이블 형태로 데이터를 처리한다.
  • DBMS(=DataBase Management System)을 이용하여 DB를 생성하고 제어한다.

DBMS(DataBase Management System)

  • 다수의 컴퓨터, 사용자들이 DB안에 데이터를 기록하거나 사용할 수 있도록 해주는 프로그램
  • 사용자들은 실제 데이터의 저장위치를 몰라도 언제든지 데이터를 사용할 수 있다.
  • 데이터 처리에 있어 무결성과 보안성을 제공 한다.

계층형 데이터베이스

  • 트리 구조의 데이터 모델
  • 부모-자식 관계로 데이터를 저장한다.
  • 부모는 다수의 자식, 자식은 단 하나의 부모 갖는 1:N 관계
  • DBMS 종류
    • ADABAS,GT.M,IMS, MUMPS 등

db이해1

네트워크 데이터베이스

  • 계층형의 단점을 보완한 데이터 모델
  • Owner-Member 관계로 데이터를 저장한다.
  • 계층형과 달리 1:1, 1:N, N:M 관계 모두 지원
  • DBMS 종류
    • DBTG,EDBS,TOTAL 등

db이해2

관계형 데이터베이스

  • 테이블이라 불리는 최소 단위로 구성된 데이터 모델
  • 모든 데이터는 테이블에 저장 된다.
  • 테이블은 하나이상의 열(Column)으로 구성되어 있다.
  • DBMS 종류
    • MySQL,MSSQL,Oracle,MariaDB,DB2,SQLite,Cubrid, 등

비 관계형 데이터베이스

  • 관계형 데이터베이스와 달리 유연한 데이터 모델을 이용한다
  • 키(Key)와 값(Value)형태로 저장되고 키를 사용해 데이터 관리 및 접근한다.
  • Non-Relational Operational Database SQL
  • DBMS 종류
    • Redis,Cassandra, HBase, MongoDB 등

관계형 데이터베이스 구조

db이해3

관계형 데이터베이스 구조

  • Table(= Relation)
    • 데이터의 세부 목적에 맞게 구조적 목록으로 묶어놓은 영역
    • 테이블의 이름은 고유해야 한다.
  • Columns (=Fields = Attribute = 열)
    • 특정한 단순 자료 형의 일련의 데이터 값과 테이블에서의 각 열
  • Rows(=Record = Tuple = 행)
    • 테이블에서 한 객체의 대한 전체 정보
  • Field
    • Column 의 대용으로 동일한 의미로 사용되지만 한 행과 한 열의 교차 지점에 있는 단일 값을 특별히 지칭하는 용어

DBMS 설치하기 - Mariadb

Mariadb

#yum -y install mariadb*

db이해4

사진에는 없지만 뒤에 * 을 꼭 붙여세요

설정파일 구성

  • 백업 파일을 만들어준다.

db이해5

  • server.cnf이란 파일도 백업시켜준다.

db이해6

  • server.cnf란 파일을 수정해준다

db이해7

  • 위 작업들은 인코딩을 위한 작업이기 떄문에 수행했다

프로세스 재시작

db이해8

mariadb 비밀번호 설정 및 접속

db이해9

db이해10

기본 명령어

  • 하나의 명령어 끝에는 반드시 세미콜론(;) 으로 끝나야 한다.(use 명령어는 예외)

  • show 명령어

    • 데이터베이스나 테이블 목록 조회
      show databases;
      

db이해11

  • use 명령어
    • 데이터베이스 선택 명령어
    • 명령어 끝에 세미콜론(;)을 안 적어도 된다.
      use <DB명>
      

db이해12

기본 SQL 문법 종류

  • 데이터 정의어(DDL, Data Definition Language)
    • 데이터베이스의 구조를 정의하거나 변경, 삭제하기 위해 사용하는 언어
    • 주로 DB관리자 또는 설계자가 사용한다.
    • CREATE(개체 생성),ALTER(개체 수정),DROP(개체 삭제),TRUNCATE(개체 초기화)
  • 데이터 조작어(DML, Data Manipulation Language)
    • data를 조작하기 위해 사용하는 언어
    • data의 삽입, 수정, 삭제, 조회 등의 동작을 제어
    • data를 이용하려는 사용자와 시스템간의 인터페이스를 직접적으로 제공하는 언어
    • 가장 많이 사용된다.(공격 시에도 가장많이 사용)
    • INSERT(데이터 생성),UPDATE(데이터 수정),DELETE(데이터 삭제),SELECT(데이터 조회)
  • 데이터 제어어(DCL,Data Control Language)
    • DB에 대한 보안, 무결성, 복구 등 DBMS를 제어하기 위한 언어
    • GRANT(권한 할당),REVOKE(권한해제),COMMIT(실행),ROLLBACK(복구)