전공 공부 정리

[Database] Database Management System & SQL

sidongmen 2020. 3. 12. 18:16

DBMS (Database Management System)


Database

데이터베이스란?

대량의 정보를 컴퓨터가 효율적으로 접근할 수 있도록 가공 및 저장한 것.

 

DBMS란?

데이터베이스를 관리하고 다수의 사용자가 데이터베이스 내의 데이터를 공유하며

사용할 수 있는 환경을 제공하는 소프트웨어.

 

DBMS를 사용하지 않는다면

  • 다수의 사람이 데이터를 공유하기 어려움.
  • 대량의 데이터를 다루기 어려움.
  • 읽기/쓰기를 자동화하려면 프로그래밍 기술이 필요.
  • 만일의 사고에 대응하기 어려움 (보안, 백업)

 

관계형 데이터베이스 (Relational Database)


현재 가장 많이 사용되고 있는 데이터베이스의 한 종류이며 현대 데이터베이스 시스템들의 기준.

 

관계형 데이터베이스는 테이블(table)로 이루어져 있으며, 이 테이블 안에서 키(key) 와 값(value)의 간단한 관계를

2차원 형식으로 나타낸다. 하나의 데이터베이스 안에는 여러 개의 테이블이 존재할 수 있다.

 

테이블의 행(row)은 레코드(record)라고도 부르며, 데이터 한 건에 해당한다.

테이블의 열에 해당하는 컬럼(column)은 데이터를 구분하기 쉽게 이름을 붙혀 분류한다. (ex: 제목, 장르, 시간 등)

또한 각 컬럼은 특정한 데이터 타입을 가진다. (ex. 평점의 데이터 타입은 DOUBLE)

 

 

관계형 데이터베이스의 특징

  1. 데이터의 분류, 정렬, 탐색 속도가 빠름.
  2. 오랫동안 사용된 만큼 신뢰성이 높고, 어떤 상황에서도 데이터의 무결성을 보장.
  3. 데이터는 관계를 통해서 연결된 여러 개의 테이블에 분산됨.
  4. 기존에 작성된 스키마(Structure)를 수정하기가 어려움.
  5. 데이터베이스의 부하를 분석하는 것이 어려움.

 

RDMBS ( Relational Database Management System)

: 관계형 데이터베이스를 생성, 갱신, 관리하기 위한 시스템.

 

Client가 데이터를 조회하고 싶을 때, SQL로 요청을 RDMBS에 보내면 RDMBS는 요청된 데이터를

2차원 표 형태로 반환.

 

RDMBS server and SQL

 

대표적인 RDMBS

  • ORACLE DB : 가장 오래되었고 신뢰도가 높다. 뛰어난 기술력과 안정성. 은행에서 많이 쓰이며 유료.
  • MySQL : 오픈 소스 기반으로 무료. 썬마이크로시스템즈를 거쳐 현재 오라클에 흡수합병.
  • Microsoft SQL Server : 마이크로소프트가 개발한 RDMBS. 윈도우 시스템 환경을 지원.
  • PostgreSQL : 버클리 대학의 프로젝트로 만들어진 오픈 소스 ORDBMS이다. (객체 - 관계형 DB)
  • Maria DB : MySQL 5.5를 기반으로 만들어졌다.
  • SQLite : DB를 서버가 아닌 파일로 저장한다. 가벼운 DB를 저장하는 목적으로 설계되어 스마트폰에 사용된다.

 

SQL, Structured Query Language


관계형 데이터베이스 시스템(RDBMS : relational database management system)의 데이터를 관리하기 위해

설계된 특수 목적의 프로그래밍 언어(쿼리)이다.

 

SQL을 사용하면 RDBMS에서 데이터의 저장, 수정, 삭제 및 검색을 할 수 있다.

 

 

중요한 SQL 명령어

  • SELECT - 데이터베이스에서 데이터 추출
  • INSERT INTO - 데이터베이스에 새로운 데이터 삽입
  • UPDATE - 데이터베이스의 데이터 갱신
  • DELETE - 데이터 삭제
  • CREATE DATABASE- 새로운 데이터베이스 생성
  • ALTER DATABASE - 데이터베이스 변경
  • CREATE TABLE - 테이블 생성
  • ALTER TABLE - 테이블 변경
  • DROP TABLE - 테이블 삭제
  • CREATE INDEX- 인덱스 생성
  • DROP INDEX - 인덱스 삭제