Koras02
Koras02코딩웹
Koras02
전체 방문자
오늘
어제
  • 분류 전체보기 (299)
    • 백엔드 (59)
      • nestjs (2)
      • Ruby (3)
      • PostgresQL (11)
      • MySQL (5)
      • Haskell (7)
      • Koa (3)
      • Java (3)
      • Python (5)
      • Rust (5)
      • MongoDB (2)
      • PHP (3)
      • Spring Boot (1)
      • redis (5)
      • deno (2)
    • 웹서버 (3)
      • nginx (1)
      • Apache (2)
      • Google Web Server (0)
    • 모바일개발 (5)
      • Figma (0)
      • React Native (2)
      • swift (0)
      • Flutter (3)
      • Kotlin (0)
    • 프론트 엔드 (158)
      • HTML (34)
      • CSS (7)
      • Javascript (35)
      • Angular (0)
      • Typescript (2)
      • React (58)
      • Vue (2)
      • GIT (6)
      • GraphQL (1)
      • Doker (4)
      • Go (8)
      • svelte (1)
      • gatsby (0)
    • etc. (47)
      • Notion (0)
      • TIL (24)
      • Algorithm (17)
      • Algorithm 개념 정리 (2)
      • Wiki (3)
      • Official document (1)
    • 웹개념 (12)
    • 변수정리 (1)
    • VSCode (2)
    • 포트폴리오 분석 (2)
      • React (2)
    • os (5)
      • 윈도우 (4)
      • Mac (0)
      • 가상머신 (0)
      • linux (1)
    • 응용프로그램언어 (2)
      • C (2)
      • C++ (0)
      • C# (0)
    • 블로그 운영관련 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
글쓰기

공지사항

  • [공지사항] 개발 이슈나 공식문서 업데이트 업로드 예정입니⋯

인기 글

태그

  • go
  • PostgreSQL
  • 알고리즘
  • Flutter
  • redis
  • html
  • React
  • Haskell
  • 데이터 타입
  • mysql
  • CSS
  • 프로그래머스
  • javascript
  • Java
  • 문자열
  • Rust
  • 하스켈
  • html5
  • koa
  • Til

티스토리

최근 댓글

최근 글

250x250
hELLO · Designed By 정상우.
Koras02

Koras02코딩웹

[MySQL] RDBMS(Relational Database Management System) 이해
백엔드/MySQL

[MySQL] RDBMS(Relational Database Management System) 이해

2022. 4. 4. 14:14
728x90

RDBMS(Relational Database ManageMent System) 이해

1. 데이터 베이스란?

데이터 베이스는 체계화된 데이터 모음으로 여러 응용 시스템들의 통합된 정보를 저장해

운영해 나갈 수 있는 공용 데이터 묶음이다.

 

논리적으로 연관된 하나 이상의 자료 모음으로, 데이터를 고도로 구조화함으로써 검색/갱신등의 

데이터 관리를 효율화시킨다.

  • DBMS: 데이터를 관리하는 시스템 
  • 테이터 베이스의 장점 
    1.데이터 중복을 최소화
    2.데이터 공유
    3.일관성, 무결성, 보안성 유지
    4.최신 데이터 유지
    5.데이터의 표준화 가능
    6.데이터의 논리적, 물리적 독립성을 가짐
    7.용이한 데이터  접근 
    8.데이터 저장 공간 절약
  • 데이터베이스의 단점
    • 데이터베이스의 전문가가 필요
    • 많을 비용을 부담
    • 시스템의 복잡화
  • 데이터베이스 랭킹 (2022년  4월 기준 최신화)

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

 

DB-Engines Ranking

Popularity ranking of database management systems.

db-engines.com

2. RDBMS(Relational Database Management System, 관계형 데이터베이스 관리 시스템)

  • 데이터베이스의 한 종류로, 가장 많이 사용되고 있음
  • 역사가 오래되면서 신뢰성이 가장 높고, 데이터 분류, 정렬, 탐색 속도가 빠름
  • 관계형 데이터 베이스 = Table(테이블)!
  • 2차원 테이블(Table) 형식을 이용해 데이터를 정의하고 설명하는 데이터 모델
  • 관계형 데이터베이스에서는 데이터를 속성(Attribute)와 데이터 값(Attribute Value)으로 구조화 
    (2차원 Table 형태로 만들어짐)
  • 데이터를 구조화 한다는 것은 속성(Attribute)와 데이터 값(Attribute Value) 사이에 관계(Relation)을 찾아내고
    이를 테이블 모양의 구조로 도식화함을 의미

  • Primary Key and Foreign key
    • Primary Key(기본키): Primary Key는 한 테이블(Table)의 각 로우(Row)를 유일하게 식별해주는 
      컬럼(Column)으로 각 테이블마다 Primary Key가 존재해야 하며, NULL 값을 허용하지 않고
      각 Row(로우)마다 유일한 값이어야 함.
    • Foreign Key(외래키 또는 외부키): Foreign Key는 한 테이블의 필드(Attribute) 중 다른 테이블의 
      행(Row)를 식별할 수 있는 key(키)이다.

3. 데이터베이스 스키마(Schema)

  • 데이터베이스의 테이블 구조 및 형식, 관계 등의 정보를 형식 언어(formal language)로 기술한 것이다.
  • 관계형 데이터 베이스를 사용해 데이터를 저장할 때 가장 먼저 할 일은 데이터의 공통 속성을 식별해 
    컬럼(Column)으로 정의 후, 테이블(Table)을 만드는 것이다.
  • 통상적으로 하나의 테이블이 아닌 여러 개의 테이블을 만들고, 각 테이블의 구조 ,형식, 관계를 정의한다.
  • 이를 스키마(Schema)라고 하며, 일종의 데이터베이스 설계도로 이해하면 쉽다.
  • 데이터베이스마다 스키마를 만드는 언어가 존재하며, 해당 스키마만 있으면 동일한 구조의 데이터베이스를 
    만들 수 있다.(데이터베이스 백업과는 달리 데이터 구조만을 동일하게 만들 수 있음)

4. SQL(Structured Query Language)

  • 관계형 데이터베이스 관리 시스템에서 데이터를 관리하기 위한 표준 프로그래밍 언어(Language)
  • 데이터베이스 스키마 생성 및 수정(Create&Update), 삭제, 조회 등, 데이터베이스와 관련된 거의 모든 
    작업을 위해 사용되는 언어
  • 데이터베이스마다 문법에 약간의 차이가 존재하나, 표준 SQL을 기본으로 하므로, 관계형 데이터베이스를 
    다루기 위해 필수적으로 알아야함
  • SQL은 크게 세 가지 종류로 나눔
    • 1.데이터 정의 언어(DDL, Data Definition Language)
    • 2.데이터 처리 언어(DML, Data Manipulation Language)
    • 3.데이터 제어 언어(DCL, Data Control Language)

4-1. 데이터 정의 언어(DDL, Data Definition Language): 데이터 구조 정의

  • 테이블(TABLE), 인덱스(INDEX) 등의 개체를 만들고 관리하는데 사용되는 명령
  • CREATE, ALTER, DROP 등이 있음 

4-2. 데이터 조작 언어(DML, Data Manipulation Langauge): 데이터 CURD(Create(생성)
Update(수정) READ(읽기) DELETE(삭제)

  • CREATE: INSERT 테이블(Table)에 하나 이상의 데이터 추가
  • UPDATE: INSERT 테이블(Table)에 저장된 하나의 데이터를 수정
  • DELETE: INSERT 테이블(Table)에 저장된 하나의 데이터 삭제
  • SELECT: INSERT 테이블(Table)에 저장된 데이터 조회.

 4-3. 데이터 제어 언어(DCL, Data Control Language): 데이터 핸들링 권한 설정, 데이터 무결성 처리 등 수행

  • GRANT: 데이터베이스 개체(테이블, 인덱스 등)에 대한 사용 권한 설정.
  • BEGIN: 트랜젝션(Transaction) 시작.
  • COMMIT: 트랜젝션(Transaction) 내의 실행 결과 적용.
  • ROLLBACK: 트랜젝션(Transaction)의 실행 취소.

참고 자료

 

데이터베이스 기본 (MySQL): RDBMS(Relational Database Management System) 이해 - 잔재미코딩

RDBMS(Relational Database Management System) 이해 1. RDBMS(Relational Database Management System) 이해¶ 1.1 데이터베이스란?¶ 체계화된 데이터의 모임 여러 응용 시스템들의 통합된 정보를 저장하여, 운영할 수 있는

www.fun-coding.org

 

'백엔드 > MySQL' 카테고리의 다른 글

[MySQL] MySQL 이해 및 실습 과정  (0) 2022.04.04
[MySQL] DATABASE2 MySQL - 1. mySQL  (0) 2022.04.04
[MySQL] SQL과 NoSQL의 차이  (0) 2022.02.03
    '백엔드/MySQL' 카테고리의 다른 글
    • [MySQL] MySQL 이해 및 실습 과정
    • [MySQL] DATABASE2 MySQL - 1. mySQL
    • [MySQL] SQL과 NoSQL의 차이
    • [MySQL] MySQL 이란?
    Koras02
    Koras02
    현재 사용중인 언어 - next-js,react,vue, typescript

    티스토리툴바