본문 바로가기
데이터베이스

데이터베이스(MySQL)

by 코낄2 2023. 9. 18.

1. 데이터베이스

데이터베이스(database)는 관련된 데이터를 체계적으로 저장하고, 관리하고, 검색할 수 있도록 설계된 전자적 시스템입니다. 간단히 말하면, 데이터베이스는 "정보의 보관소"와 같습니다. 데이터베이스를 사용하면 크거나 작은 양의 데이터를 안전하게 저장하고 필요할 때 쉽게 찾아낼 수 있습니다.

2. 데이터베이스 관리 시스템(DBMS)

DBMS는 데이터베이스 관리 시스템(Database Management System)의 약자입니다. DBMS는 데이터베이스를 생성하고, 유지하고, 조작하기 위한 소프트웨어 도구의 집합입니다.

  • 데이터 저장: DBMS를 사용하여 데이터를 안전하게 저장할 수 있습니다. 데이터는 테이블, 레코드, 필드의 형태로 구조화되어 저장됩니다.
  • 데이터 검색: 사용자는 DBMS를 통해 데이터베이스에서 필요한 정보를 쉽게 조회하거나 검색할 수 있습니다.
  • 데이터 보안: DBMS는 데이터 접근 권한을 제한하거나 특정 사용자의 접근을 제한하는 보안 기능을 제공합니다.
  • 동시성 제어: 여러 사용자가 동시에 데이터베이스에 접근할 경우, DBMS는 데이터의 일관성을 유지하기 위해 동시성 제어를 수행합니다.
  • 데이터 백업 및 복구: DBMS는 데이터의 손실이 발생했을 때 데이터를 복구할 수 있는 백업 및 복구 기능을 제공합니다.
  • 데이터 무결성 유지: DBMS는 데이터의 정확성과 일관성을 유지하기 위한 규칙이나 제약 조건을 설정할 수 있습니다.

3. DBMS 선택하기

일반적으로 DBMS는 두 가지 유형으로 나뉩니다.

 

  • RDBMS (관계형 데이터베이스 관리 시스템): 데이터를 테이블 형태로 저장하며, 테이블 간의 관계를 정의할 수 있는 시스템입니다. 예로는 Oracle, MySQL, Microsoft SQL Server, PostgreSQL 등이 있습니다.
  • NoSQL DBMS: 관계형 모델을 사용하지 않는 데이터베이스 시스템으로, 큰 데이터 량이나 유동적인 데이터 구조를 지원하기 위해 설계되었습니다. 예로는 MongoDB, Cassandra, Redis 등이 있습니다.

***SQL(Structured Query Language) 관계형 데이터베이스 관리 시스템(RDBMS)에서 데이터를 관리하기 위해 사용되는 표준 프로그래밍 언어입니다.

https://db-engines.com/en/ranking

 

DB-Engines Ranking

Popularity ranking of database management systems.

db-engines.com

현재 랭킹 1위는 오라클(Oracle)이지만, 데이터베이스가 시스템 자원(메모리, CPU 등)을 많이 소비하고, 비용 측면에서 부담스러운 부분이 있어 MySQL을 사용하여 데이터베이스 관리를 진행해보겠습니다. (2010년에는 오라클이 Sun Microsystems 인수하면서 MySQL 소유권도 오라클에게 넘어갔습니다.)

https://dev.mysql.com/downloads/installer/

 

MySQL :: Download MySQL Installer

Note: MySQL 8.0 is the final series with MySQL Installer. As of MySQL 8.1, use a MySQL product's MSI or Zip archive for installation. MySQL Server 8.1 and higher also bundle MySQL Configurator, a tool that helps configure MySQL Server.

dev.mysql.com

위 링크에서 Windows (x86, 32-bit), MSI Installer 파일의 [Download] >  [No thanks, just start my download.] 를 선택하면 로그인 없이 쉽게 파일을 다운 받을 수 있습니다.


***시작 전 기본 SQL 언어 살짝 살펴보기

(1) 한줄 주석문 : # 또는 -- (#은 MySQL에서만 사용가능한 주석)

(2) /* */ 를 사용하면 MySQL에서는 여러줄 주석문도 가능.
(3) 대소문자를 구별하지 않음 (대문자 사용 권장)
(4) 문자열을 저장할 때 ' 작은 따옴표만 사용. 큰따옴표는 사용할 수 없다.(오라클만 큰 따옴표 사용 가능)
(5) 테이블 안에 행과 열에 따라 데이터 저장
      : 행(가로) > '레코드' 또는 '로우' / 열(세로) > '필드' 또는 '컬럼'

  • 테이블: 데이터를 행(레코드,로우)와 열(컬럼, 필드)로 스키마에 따라 저장할 수 있는 구조
  • 스키마: 데이터베이스의 구조와 제약조건에 관한 명세를 기술한 집합
  • 제약조건: 데이터가 잘못 들어가지 않게 넣어주는 규칙