JUST GO

[공통] DBMS 본문

DBMS/학습내용

[공통] DBMS

root_go 2022. 10. 5. 09:19

DBMS

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

i. Redis : Java-Spring Boot에서 세션(Session) 및 기타 임시적인(Temporary) 데이터를 저장하기 위해 사용되곤 한다. 메모리 기반 데이터베이스.

ii. MongoDB

iii. HBase

iv. Firebase : 프론트 애들이 이것도 DB라고 많이 씀

v. 등


  • RDBMS의 종류

i. Oracle : 오라클사에서 만든 DBMS. 데이터의 양이 적을 때 상대적으로 느리지만, 그 양이 많아지면 많아 질수록 여타 다른 DBMS에 비해 속도 면에서 장점을 가지게 된다. 대형 금융권에서 주로 사용한다. 영리적 목적하에 유료.

ii. MySQL : APM(Apache + PHP +MySQL)의 구성 요소가 되는 근본 DBMS. 오라클사에 인수되고 나서 후술하는 이유로 인기가 식어가고 있다. 영리적 목적하에 유료.

iii. MariaDB : MySQL이 오라클사에 인수된다는 소식을 접한 개발자 원년 멤버가 합병 일보직전에 소스들고 튀어서 만든 DBMS. 그 기능이나 문법이 MySQL과 99.9%같다. 조건없이 무료.


  • MariaDB 설치

i. 본 설치 과정은 MariaDB 10.9.3 버전을 압축 파일(zip)로 설치하는 과정에 대한 설명이다. 버전이 다르거나 파일 타입(msi 라던가)이 다를 경우 그 과정이 달라질 수 있음.

ii. 다운로드는 MariaDB 재단 사이트(http://mariadb.org/)에서 가능하다.

iii. 다운로드 받은 압축 파일을 아래 요건에 맞는 위치에 압축 해제한다.

a. 본인이 기억할 수 있는 위치여야함.

b. 앞으로 이동하거나 삭제하지 않을 위치여야함.

c. 경로 상에 영문 및 숫자, 공백을 제외한 다른 문자가 들어가지 않아야함.

d. 본 예제에서는 c:\202208250900dbms로 가정한다.

e. 위 경로로 이동하면 아래와 같이 구성요소가 나열되어 있으면 된다. 나열되어 있지 않은 기타 파일은 없어도 상 관 없음.

▶ [디렉토리] bin

▶ [디렉토리] include

▶ [디렉토리] lib

▶ [디렉토리] share

iv. 명령 프롬프트(cmd)를 실행한다.(win + R, 실행 창에 cmd 입력 후 확인)

v. 아래 명령을 입력하여 MariaDB의 압축을 해제한 경로로 이동한다.

cd C:\2208250900dbms\
C:\2208250900dbms>
 

vi. MariaDB 설치를 위해 경로 내 bin 디렉토리로 이동하기 위해 아래 명령을 입력한다.

c:\2208250900dbms>cd bin
C:\2208250900dbms\bin>
 

vii. MariaDB 초기화 및 설치를 위해 아래 명령을 입력한다.(아래 예에서는 12601번 포트를, 관리자 비밀번호로 test1234를 이용하였다.)

C:\2208250900dbms\bin>mysql_install_db.exe --service="MariaDB 2208250900-1" --port=12602 --password=test1234

  • MariaDB 서비스 관리

· 서비스 관리르 위해 아래 명령어를 실행(win + R)에 입력한다.

services.msc
 

· 위 MariaDB 설치 과정 중에 입력한 --services 항목 값과 일치하는 서비스를 찾은 뒤 더블 클릭하면 아래 요소를 확인 및 실행할 수 있다.

  • 서비스 상태
  • 서비스 시작
  • 서비스 중지


  • MariaDB 인코딩 설정

· MariaDB 최초 설치시 인코딩이 UTF-8 로 설정되어 있지 않음으로 명령 프롬프트에서 아래와 같이 명령한다.

?>cd C:\2208250900dbms\data\
C:\2208250900dbms\data>notepad my.ini
 

메모장 내용을 아래와 같이 변경

[mysqld]
datadir=C:/2208250900dbms/data
port=12602
character-set-server=utf8

[mysql]
default-character-set=utf8

[client]
port=12602
plugin-dir=C:\2208250900dbms/lib/plugin
default-character-set=utf8

메모장 변경 내용 저장 후 서비스(services.msc)에서 MariaDB 2208250900 항목 재시작 

C:\2208250900dbms\data>cd ..\bin
C:\2208250900dbms\bin>mysql.exe -u root -p -P 12602
...
MariaDB [(none)]> SHOW VARIABLES LIKE '%char%';
+--------------------------+-----------------------------------+
| Variable_name            | Value                             |
+--------------------------+-----------------------------------+
| character_set_client     | utf8mb3                           |
| character_set_connection | utf8mb3                           |
| character_set_database   | utf8mb3                           |
| character_set_filesystem | binary                            |
| character_set_results    | utf8mb3                           |
| character_set_server     | utf8mb3                           |
| character_set_system     | utf8mb3                           |
| character_sets_dir       | C:\2208250900dbms\share\charsets\ |
+--------------------------+-----------------------------------+
8 rows in set (0.001 sec)
...
위와 같이 전체 인코딩이 utf8mb3 (혹은 utf8mb4)로 변경되었는지 확인

  • MariaDB 최초 접속

i. 명령 프롬프트에서 아래 명렁어를 입력하여 MariaDB 클라이언트가 있는 위치로 이동한다.

?>cd C:\2208250900\bin\
C:\2208250900\bin> _
 

ii. MariaDB에 접속하기 위해 아래와 같이 명령한다. 최종적으로 MariaDB [(none)] 으로 명령줄이 변경되었으면 접속 성공.

C:\2208250900\bin>mysql.exe -u root -p -P 12602

Enter password: ********
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 4
Server version: 10.9.3-MariaDB mariadb.org binary distribution

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>
 

iii. MariaDB 클라이언트에서 빠져나오기 위해 아래와 같이 명령한다.

MariaDB [(none)]> exit
Bye

C:\2208250900dbms\bin>

  • CRUD

· C(Create) : (없던 것을) 만드는 것. 게시글 작성, 회원가입 등이 이에 해당한다.

· R(Read) : 어떠한 데이터가 있는지 확인하거나, 있는 데이터를 읽는 것. 게시글 읽기, 로그인 등.

· U(Update) : 존재하는 데이터를 수정하는 것. 게시글 수정, 회원정보 수정 등.

· D(Delete) : 존재하는 데이터를 삭제하는 것. 게시글 삭제, 회원 탈퇴 등

· (WA, WS를 제외한)웹의 대부분의 기능은 CRUD에 입각하여 개발할 수 있다.


  • MariaDB의 데이터 구조

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

· 스키마(Schema)

- 스키마는 다른 이름으로 데이터베이스(Database)라고 부른다.

- 스키마는 서로 관련있는 테이블을 포함하는 용도로 사용한다.

- 스키마는 실제 데이터(레코드)를 직접 가지고 있지 않는다.

- 엑셀로 비유 시, 엑셀 파일 그 자체(xlsx 파일)로 표현된다.

· 테이블(Table)

- 테이블은 반드시 스키마에 종속적이어야 한다.

- 테이블은 이 테이블이 담당하게 될 데이터의 규격에 맞는 열(Column)에 대한 정보를 포함한다.

- 테이블은 테이블이 가진 열 구조에 상응하는 레코드(데이터)를 포함하고 있다.

- 엑셀로 비유 시, 엑셀 파일 내의 시트(Sheet)로 표현한다.

· 레코드(Record)

- 레코드는 다른 이름으로 행(Row) 혹은 데이터(Data)로 불러온다.

- 레코드는 반드시 어떤 테이블에 종속적이어야 한다.

- 레코드 하나는 한 줄을 의미하고 실제 데이터이다.

- 엑셀로 비유 시, 엑셀 시트 내의 행으로 표현된다.


  • 쿼리(Query)

· 쿼리(Query)란 DBMS에서 사용하는 SQL(Structed Query Language) 언어의 구문이나 그 자체를 의미한다. '쿼리문' 혹은 'SQL문'등으로 통용해서 부름.

· 모든 키워드(Keword)는 대소문자를 가리지 않지만 통일하는 것이 좋고, 주로 대문자로만 작성한다.

· (O) crate schema ...

· (O) CREATE SCHEMA ...

· (X) crate SCHEMA ...

· (X) Crate Schema ...

· 모든 구성요소(스키마, 테이블, 열 등)의 이름은 백틱(Backtick, `)으로 감싼다. 구성요소의 이름이 키워드가 아닌 경우 생략 가능.

· 모든 구성요소의 이름은 스네이크 케이스(Snake Case) 명명법을 따른다.

· 문자열 값은 홑따옴표(')로 감싼다.

--                                                                ↓ 문자열 값은 홑따옴표로
INSERT INTO `some_sechema`, `some_table` (`some_column`) VALUES ('어떤 문자열 값');
--            ↑               ↑             ↑ 스키마와 테이블, 열의 이름은 백틱으로
 

· 모든 구문은 끝에 세미콜론(;)을 적어준다.


  • 주석

· 한 줄 주석 : 대쉬 두 개를 이용하여 아래와 같이 작성한다.

-- 대쉬 두 개를 이용하여 한 줄 주석을 이용할 수 있음.
 

· 여러 줄 주석 : /* ... */ 형식으로 작성한다.

/*
여러 줄
주석을
남길 수 
있다.
*/

'DBMS > 학습내용' 카테고리의 다른 글

[공통] 연산자와 함수  (0) 2022.10.05
[구조] 레코드  (0) 2022.10.05
[구조] 테이블과 열  (1) 2022.10.05
[구조] 사용자  (0) 2022.10.05
[구조] 스키마  (0) 2022.10.05