코이_CO2
LIVING IS DYING
코이_CO2
전체 방문자
오늘
어제
  • 분류 전체보기 (45)
    • TIL ⚓️ (4)
      • OT주차 (1)
      • 1주차_풀스택 미니 프로젝트 (0)
      • 1주차_언어 기초(Java) (0)
      • 2주차_프로그래밍 기초 (1)
      • 3주차_주특기 입문(Spring) (0)
      • 4주차_주특기 숙련(Spring) (2)
    • WIL ⚓️ (0)
      • OT주차 (0)
      • 1주차_언어 기초(Java) (0)
      • 2주차_프로그래밍 기초 (0)
      • 3주차_주특기 입문(Spring) (0)
      • 4주차_주특기 숙련(Spring) (0)
    • Java의 정석 📖 (4)
      • Chapter 1. 자바를 시작하기 전에 (3)
      • Chapter 2. 변수 (0)
      • Chapter 3. 연산자 (0)
      • Chapter 4. 조건문과 반복문 (1)
    • Programmers (7)
      • Lv. 1 (7)
    • 혼자 공부하는 자바 📖 (8)
      • Chapter 05 참조 타입 (0)
      • Chapter 06 클래스 (3)
      • Chapter 07 상속 (1)
      • Chapter 08 인터페이스 (1)
      • Chapter 09 중첩 클래스 & 인터페이스 (0)
      • Chapter 10 예외 처리 (1)
      • Chapter 12 스레드 (1)
    • Java (2)
    • Spring (1)
    • Python (2)
    • Mysql (4)
    • Machine Learning (6)
      • 추측 통계 (2)
    • Data Analysis (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 웹개발 종합반
  • 코딩
  • Spring Security
  • sql
  • TIL
  • LV1
  • 배열
  • 부트스트랩
  • HTML
  • spring
  • 파이썬
  • 혼자공부하는자바
  • java
  • CRUD
  • jwt
  • 개발일지
  • 혼자 공부하는 자바
  • 게시판 프로젝트
  • TIL/WIL
  • 항해99
  • 개발자
  • 스프링
  • DTO
  • 주특기 심화주차
  • programmers
  • 자바
  • 스터디
  • 프로그래머스
  • PYTHON
  • 하루기록

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
코이_CO2

LIVING IS DYING

[MYSQL] 데이터베이스와 SQL
Mysql

[MYSQL] 데이터베이스와 SQL

2022. 8. 15. 23:28

1. DBMS

(1) Data (데이터)

- 현실 세계에 있는 가공되지 않은 단순한 형태의 사실, 값(이름, 나이, 날씨정보 등)

- 의미 있는 정보가 되기 위해서는 임의의 처리 과정이 필요

 

(2) Information (정보)

- 데이터를 체계적으로 처리, 가공하여 의미있는 실체로 만든 결과

 

날씨 정보를 통해 본 데이터와 정보

(3) Database (데이터베이스)

- 데이터를 체계적으로 모아 놓은 논리적인 집합

 

(4)DBMS (DataBase Mangement System)

- 데이터베이스를 운영하고 관리하는 컴퓨터 프로그램(소프트웨어), 시스템

- 1960년대에 처음 소개

- DBMS의 유형은 계층형(Hierarchical), 네트워크형(Network), 관계형(Relational), 객체지향형(Object Oriented), 객체관계형(Object Relational), NoSQL 등으로 분류

- 관계형 DBMS가 오랫동안 널리 사용되고 있음

 

 

 

2. RDBMS (Relational Database Management System)

(1) 개요

- 관계형 데이터베이스 관리 시스템 

- 1970년대 초 E.F.Codd 박사의 논문 발표

- 당시 하드웨어 성능도 낮고 값도 비싸 데이터의 효율적 처리와 저장이 큰 이슈

- 중복 데이터를 제거한 데이터의 효율적 저장 방식 제안

- 관계형 모델에 기반한 상용 DBMS인 RDBMS 출시 시작

 

(2) 특징

데이터 중복 최소화

- RDBMS는 2차원 형태의 테이블이라는 객체에 데이터 저장

- 데이터 성격에 따라 여러 테이블에 분할해 데이터를 저장

- 중복 데이터 저장을 최소화 → 데이터 스토리지 비용 절감

- 관련된 여러 테이블에 분산된 데이터를 연결해 데이터 추출

 

SQL 이용한 손 쉬운 데이터 처리

- 데이터의 저장, 삭제, 변경, 추출을 SQL로 수행

- SQL은 사람과 RDBMS 간 데이터 처리를 위한 의사소통 언어

- SQL은 직관적이며 배우고 사용하기 용이

 

트랜잭션 처리

- Transaction, 거래라는 뜻으로 RDBMS에서는 하나의 그룹으로 처리되어야 하는 명령문들을 모아놓은 논리적 작업 단위

- 여러 개의 명령어 집합이 정상적으로 처리되면 종료, 하나라도 잘못되면 전체 취소

- 오류 발생 시 거래 자체가 없었던 것으로 처리하고 입금 계좌에 돈이 확인된 다음에야 거래를 성사시킴

 

데이터 무결성(Integrity)

- 데이터베이스에 저장된 데이터의 일관성, 정확성, 신뢰성 즉, 데이터의 품질 보장

- 잘못된 형태의 데이터는 입력 자체가 되지 않도록 하여 데이터 무결성 보장

 

(3) RDBMS 종류

이름 회사 설명
오라클 오라클(1979) SQL을 사용한 최초의 상용 RDBMS
MySQL 오라클(1995) 무료 버전과 상용 버전
SQL Server(MSSQL) 마이크로소프트(1989) Sybase를 기반으로 만든 RDBMS
PostgreSQL The PostgreSQL Global Development Group(1996) 오픈소스
DB2 IBM(1983) 금융권에서 많이 사용
MariaDB MariaDB 재단(2010) 오픈소스

 

 

 

 

3. MySQL 구조

(1) MySQL 서버

- MySQL 서버를 줄여 MySQL

- MySQL에 접속하여 SQL 문장을 실행하면 MySQL이 결과 송출

 

(2) 사용자

- MySQL을 사용하기 위한 계정

- 설치 시 관리자 계정인 root 계정 자동 생성

- root 계정으로 접속하여 다른 사용자를 생성 및 사용

 

(3) 데이터베이스와 스키마

- 테이블을 포함하여 각종 데이터베이스 객체를 담아 놓는 논리적인 저장 공간

- MySQL에서 스키마와 데이터베이스는 같은 개념

 

(4) 데이터베이스

- 데이터베이스 안에 생성해 사용할 수 있는 다양한 객체

- 테이블, 뷰, 인덱스 등

 

 

 

 

4. SQL (Structured Query Language)

- 데이터 관리에 사용되는 컴퓨터 언어

- 데이터 관리 :  입력, 조회, 수정, 삭제

- 배우고 사용하기 용이

- 집합적 언어

- SQL 표준이 존재

: 표준이 있다 → 특정 RDBMS에서 SQL을 익히면 다른 RDBMS 에서도 사용 가능(조금씩 차이가 있음)

- 데이터 정의어, 데이터 조작어, 트랜잭션 제어어, 데이터 제어어 등

(1) 데이터 정의어 (DDL : Data Definition Lanaguage)

- 테이블, 뷰 등의 데이터베이스 객체를 생성

종류 설명
CREATE 데이터베이스 객체를 생성할 때 사용
ALTER 기존 객체를 수정할 때 사용
DROP 기존 객체를 삭제할 때 사용
TRUNCATE TABLE 테이블에 있는 데이터 전체를 삭제할 때 사용
RENAME TABLE 테이블의 이름을 변경할 때 사용

 

(2) 데이터 조작어 (DML : Data Manipulation Language)

- 테이블의 데이터를 조회, 입력, 수정, 삭제하는 데 사용 (CRUD)

종류 설명
SELECT 테이블에 있는 데이터 조회
DML 전체에서 SELECT 문이 대부분
INSERT 테이블에 신규 데이터 입력
UPDATE 테이블에 있는 데이터를 수정
DELETE 테이블에 있는 데이터를 삭제

 

(3) 트랜잭션 제어어 (TCL : Transaction Control Language)

- 트랜잭션 처리

종류 설명
COMMIT 데이터 가공 후 변경사항을 DB에 반영
ROLLBACK 데이터 가공 후 변경사항을 취소
START
TRANSACTION
트랜잭션 명시적 선언
START TRANSACTION 후 COMMIT 이나 ROLLBACK 문을 만날 때까지가 하나의 트랜잭션
SAVEPOINT 트랜잭션에 이름 부여
SET autocommit MySQL에서 자동 커밋 모드 활성/비활성화

 

(4) 데이터 제어어(DCL : Data Control Language)

- 권한 부여 및 회수

종류 설명
GRANT 특정 사용자에게 특정 작업을 수행할 수 있는 권한을 부여
REVOKE 부여된 권한을 회수

 

'Mysql' 카테고리의 다른 글

[MySQL] 테이블 및 데이터 타입  (0) 2022.08.16
[SQL] CRUD 사용  (0) 2022.08.11
MAC 에서의 <MYSQL ERROR CODE: 1055>  (2) 2022.08.10
    'Mysql' 카테고리의 다른 글
    • [MySQL] 테이블 및 데이터 타입
    • [SQL] CRUD 사용
    • MAC 에서의 <MYSQL ERROR CODE: 1055>
    코이_CO2
    코이_CO2
    나에게 찾아오는 뻔한 매일을 언제나 값지게 여길 줄 아는 내가 되기를

    티스토리툴바