DBMS

박상우·2022년 10월 4일
post-thumbnail

DBMS란?

  • 주로 데이터베이스 혹은 디비(DB)라고 부르고, 주로 스키마(SCHEMA), 테이블(Table)의 상하 구조를 통해 레코드(Record)를 관리하기 위해 사용하며, 기초언어와 함께 사용하기도 한다.
  • DBMS는 크게 두 종류로 나뉘는데 RDBMS(관계형 데이터 베이스, Relational-)및 NoSQL이다.

    NoSQL의 종류(특, 근본없음)
    i. Redis : Java-Spring Boot에서 세션(Session) 및 기타 임시적인(Temporary) 데이터를 저장하기 위해 사용되곤 한다. 메모리 기반 데이터베이스
    ii. MongoDB
    iii. HBase
    iv. Firebase : 주로 프론트 단에서 많이 사용한다.
    v. 등

  • RDBMS의 종류

    i. Oracle : 오라클 사에서 만든 DBMS. 데이터의 양이 적을 때 상대적으로 느리지만, 그양이 많아지면 많아 질수록 여타 DBMS에 비해 속도 면에서 장점을 가지게 된다. 주로 대형 금융권에서 사용되어진다. 영리적 목적하에 유료.
    ii. MySQL : APM(Apache + PHP + MySQL)의 구성 요소가 되는 근본 DBMS. 오라클 사에 인수되고 나서 후술하는 이유로 인기가 식어가고있다. 영리적 목적하에 유료.
    iii. MariaDB : MySQL이 오라클사에 인수된다는 소식을 접한 개발자 원년 멤버가 합병 일보직전에 소스들고 튀어서 만든 DBMS. 그 기능이나 문법이 MySQL과 99.9% 똑같다. 조건없이 무료.

  • MariaDB 설치

    i. 본 설치 과정은 버전이 다르거나 파일 타입이 다를경우 그 과정이 달라질 수 있음.
    ii. 다운로드는 MariaDB(https://mariadb.org/) 재단 사이트에서 가능하다.
    iii. 다운로드 받은 압축 파일을 아래 요건에 맞는 위치에 압축 해제한다.
    1. 본인이 기억할 수 있는 위치여야함
    2. 앞으로 이동하거나 삭제하지 않을 위치여야함.
    3. 경로 상에 영문 및 숫자, 공백을 제외한 다른 문자가 들어가지 않아야 함
    4. 본 예제에서는 그 경로를 C~로 가정한다.
    iv. 명령 프롬프트(cmd) 실행.
    v. 아래 명령을 입력하여 MariaDB의 압축을 해제한 경로로 이동한다.
    vi. MariaDB 설치를 위해 경로 내 bin 디렉토리로 이동하기 위해 아래 명령을 입력한다.
    - C:\자기파일이름\ cd bin
    vii. MariaDB 초기화 및 설치를 위해 아래 명령을 입력한다.
    - C:\자기파일이름\bin mysql_install_db.exe --service="MariaDB 자기파일" --pore=12601 --password=test1234

  • MariaDB 서비스 관리

    i. 서비스 관리를 위해 아래 명령어를 실행 (win+R)에 입력한다.
    - services.msc
    ii. 위 MariaDB 설치 과정 중에 입력한 --services 항목 값과 일치하는 서비스를 찾은 뒤 더블 클릭하면 아래 요소를 확인 및 실행할 수 있다.
    - 서비스 상태
    - 서비스 시작
    - 서비스 중지

  • MariaDB 최초 접속

    i. 명령 프롬프트에서 MariaDB 클라이언트가 있는 위치로 이동한다.
    ii. MariaDB에 접속하기 위한 명령어를 입력한다. 최종적으로 MariaDB[(none)]으로 명령줄이 변경되었으면 접속 성공.
    iii. MariaDB 클라이언트에서 빠져나오기 위해 아래와 같이 명령한다.


CRUD

C(Create) : (없던 것을)만드는 것. 게시글 작성, 회원 가입 등이 이에 해당한다.
R(Read) : 어떠한 데이터가 있는지 확인하거나, 있는 데이터를 읽는 것.
U(Update) : 존재하는 데이터를 수정하는 것. 게시글 수정, 회원정보 수정 등.
D(Delete) : 존재하는 데이터를 삭제하느것, 게시글 삭제, 회원 탈퇴 등.
웹의 대부분의 기능은 CRUD에 입각하여 개발할 수 있다.

  • MariaDB의 데이터 구조

    MariaDB의 데이터 구조는 스키마(Schema) > 테이블(Table) > 레코드(Record)의
    포함관계로 되어있다.

  1. 스키마
  • 스키마는 다른 이름으로 데이터베이스(Database)라고 부른다.
  • 스키마는 서로 관련있는 테이블을 포함하는 용도로 사용한다.
  • 스키마는 실제 데이터(레코드)를 직접 가지고 있지 않는다.
  • 엑셀로 비유 시, 엑셀 파일 그 자체 (xlsx파일)로 표현된다.
  1. 테이블
  • 테이블은 반드시 스키마에 종속적이어야한다.
  • 테이블은 이 테이블이 담당하게 될 데이터의 규격에 맞는 열(Column)에 대한 정보를 포함한다.
  • 테이블은 테이블이 가진 열 구조에 상응하는 레코드(데이터)를 포함하고 있다.
  • 엑셀로 비유 시, 엑셀 파일 내의 시트(Sheet)로 표현된다.
  1. 레코드
  • 레코드는 다른 이름으로 행(Row), 데이터(Data)로 불리운다.
  • 레코드는 반드시 어떤 테이블에 종속적이어야 한다.
  • 레코드 하나는 한 줄을 의미하고 실제 데이터이다.
  • 엑셀로 비유 시, 엑셀 시트 내의 행으로 표현된다.

  • 쿼리
    - 쿼리(Query)란 DBMS에서 사용하는 SQL(Structured Query Language) 언어의 구문이나 그 자체를 의미한다. '쿼리문' 혹은 'SQL문'등으로 통용해서 부름
    • 모든 키워드(keyword)는 대소문자를 가리지 않지만 통일하는 것이 좋고, 주로 대문자로만 작성한다.
    • 모든 구성요소(스키마, 테이블, 열 등)의 이름은 백틱으로 감싼다.
    • 모든 구성요소의 이름은 스네이크 케이스(Snake Case) 명명법을 따른다.
    • 문자열 값은 홑따옴표(')로 감싼다.

사용자

  • 사용자(User)는 DBMS에 접속하여 각종 쿼리를 실행할 수 있는 주체를 의미한다.

  • DBMS 설치 시에 최초로 생성되는 (사용가능한) 사용자는 root이고 , root 계정은 최고 관리자 계정이며, 개발시에 사용하지 않는다.

  • 만들기
    - 사용자를 만들기 위해 아래 구문을 사용한다.

    CREATE USER study@localhost IDENTIFIED BY test1234

  • 읽기(R)

  • 수정하기(U)
    ㄴ 만들어진 사용자는 그 어떠한 권한도 가지고 있지 않음으로 유의한다.
    ㄴ 존재하는 사용자에게 권한을 부여하기 위해 아래 구문을 사용한다.

    GRANT ALL PRIVILEGES ON schema.some_table TO study@localhost;

    ㄴ 부여할 권한은 콤마(,)로 구분하여 여러개 작성 가능하며 각 권한은 일부 키워드(CREATE, DROP, ALTER, INSERT, SELECT, UPDATE, DELETE 등)이다. 혹은 모든 권한은 ALL PRIVILEGES 혹은 ALL이라고 적을 수 있다.
    ㄴ 대상이 되는 스키마와 테이블을 직접 명시하거나 존재하는 모든 스키마의 모든 테이블에 대한 명시는 . 로 대신한다.

  • 삭제하기(D)
    ㄴ 존재하는 사용자를 삭제하기 위해 아래 구문을 사용한다.
    ㄴ 변경이 생기면 반드시
    FLUSH PRIVILEGES;를 입력 해주어야 즉시 수정된 사항이 적용된다.

    DELETE USER study@localhost ;

    • 삭제된 사용자는 복구할 수 없음으로 유의한다.
profile
백엔드 개발자가 되기 위한 여정

0개의 댓글