CS 지식 TIL (3) - RDBMS

YulHee Kim·2021년 8월 10일
2

CS

목록 보기
3/9
post-thumbnail
post-custom-banner

📌 데이터베이스와 데이터베이스 관리 체계


데이터베이스란

데이터의 집합으로, 다양한 자료를 다양한 형태로 담아 관리하는 매개이다. 다수의 사용자와 응용 프로그램 사이에서 공유하고 동시에 접근하고자 만들어졌다.

데이터베이스 관리 체계(DBMS)란

앞서 설명한 데이터베이스를 한데 모아 관리하는 소프트웨어이다. 종류로는 계층형, 망형, 관계형, 객체지향형, 객체관계형 DBMS가 있으며 현재로써는 관계형 DBMS가 주를 이룬다. 이 체계를 운영하기 위해 사용되는 언어가 구조화 질의어인 SQL이며, 현재 시장에는 MySQL, PostgreSQL, Oracle, MariaDB 등의 데이터베이스 관리 체계가 있다.

데이터베이스의 장점

1. 무결성: 데이터가 생성, 조회, 갱신, 삭제되는 과정 중, 오염되거나 중복되지 않게 관리할 수 있다.

2. 독립성: 데이터베이스를 확장하거나 파일의 저장 경로를 변경하더라도 기존 데이터베이스를 기반으로 설계한 응용 프로그램이 영향을 받지 않는다.

3. 보안: 접근이 허가된 사람만 자료를 열람하고 가공할 수 있도록 한다.

4. 중복 최소화: 통합하고 공유하여 이용함으로써 데이터 이용자들이 자신만의 파생버전 데이터를 생성하여 혼동이 발생하거나, 같은 데이터가 비효율적으로 여러 곳에 저장되는 것을 방지한다.

5. 개발 및 유지보수: 응용 프로그램을 파일 각각의 형식에 맞춰 개발하지 않고 통일된 데이터베이스에 맞춰 제작하여, 개발이 용이하고 유지 및 보수 또한 수월해진다.

6. 안전성: 백업 기능과 복원 기능을 이용해 재해나 문제 발생 시 원상 복구에 유리하다.

📌 관계형 데이터베이스


관계형 DBMS

관계형 DBMS는 데이터베이스 관리 체계의 일종으로 자료를 표 형태로 정리하여 보관한다. 시기적으로 앞서 나온 모델인 계층형 DBMS나 망형 DBMS의 구조적 복잡성과 경직성을 보완하기 위해 표 형태를 도입한 것이다.

관계형 DBMS의 구성 요소

[ DBMS 안에 데이터베이스가, 데이터베이스 안에 테이블이, 테이블 안에 행과 열이 있는 구조 ]

  • 테이블 : 릴레이션이나 엔티티라고도 불리며, 데이터를 행과 열이 있는 표 모양으로 나타낸 것을 가리킨다.
  • 데이터베이스 : 테이블이 담기는 저장소를 뜻하며, 하나의 DBMS내에 여러 데이터 베이스들이 있다.
  • : 테이블의 세로축으로, 컬럼이나 필드라고 불리기도 한다. 데이터를 구분하는 항목이 된다.
  • : 테이블의 가로축으로, 로우나 레코드라고 불리기도 하며, 실질적인 데이터가 담긴다.

참고한 블로그 링크

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

  1. 데이터의 분류, 정렬, 탐색 속도가 빠릅니다.
  2. 오랫동안 사용된 만큼 신뢰성이 높고, 어떤 상황에서도 데이터의 무결성을 보장해 줍니다.
  3. 기존에 작성된 스키마를 수정하기가 어렵습니다.
  4. 데이터베이스의 부하를 분석하는 것이 어렵습니다.

RDBMS 종류

종류:
Oracle, MySQL(Oracle) / MS-SQL(Microsoft) / DB2, Infomix(IBM) / Maria DB(Sun Microsystems) / Derby(Apache) / SQLite(Opensource)


📌 SQL

출처 링크

SQL이란?

SQL은 Structured Query Language (구조적 질의 언어)의 줄임말로, 관계형 데이터베이스 시스템(RDBMS)에서 자료를 관리 및 처리하기 위해 설계된 언어입니다.

SQL 문법의 종류

SQL 문법은 크게 3가지의 종류로 나누어지며, 종류마다 정의는 아래와 같습니다.

  • DDL(Data Definition Language, 데이터 정의 언어)
    : 각 릴레이션을 정의하기 위해 사용하는 언어입니다. (CREATE, ALTER, DROP...)
  • DML(Data Manipulation Language, 데이터 조작 언어)
    : 데이터를 추가/수정/삭제하기 위한, 즉 데이터 관리를 위한 언어입니다. (SELECT, INSERT, UPDATE ...)
  • DCL(Data Control Language, 데이터 제어 언어)
    : 사용자 관리 및 사용자별로 릴레이션 또는 데이터를 관리하고 접근하는 권한을 다루기 위한 언어입니다. (GRANT, REVOKE ...)

SQL의 언어적 특성

  1. SQL은 대소문자를 가리지 않습니다.
    (단, 서버 환경이나 DBMS 종류에 따라 데이터베이스 또는 필드명에 대해 대소문자를 구분하기도 합니다.)
  2. SQL 명령은 반드시 세미콜론(;)으로 끝나야 합니다.
  3. 고유의 값은 따옴표('')로 감싸줍니다.
    ex) SELECT * FROM EMP WHERE NAME = 'James';
  4. SQL에서 객체를 나타낼 때는 백틱으로 감싸줍니다.
    ex) SELECT COST, TYPE FROM INVOICE;

📌 MySql

기본 쿼리문들 정리

  • 접속 방법
    : mysql -u root -p (dbname)

  • 비밀번호 변경
    : mysqladmin -u root password 새로운 비밀번호

  • 테이블의 생성
    : create table 테이블(col int);

  • 구조 보기
    : desc 테이블 / explain 테이블

  • 이름 변경
    : rename table A to B

  • 삭제
    : drop table 테이블

  • 레코드 삽입
    : Insert into table values(v1, v2) / Insert into table(col1, col2) values(v1, v2);

  • 조회
    : select * from table A

AS : 칼럼의 이름을 달리 명명해서 출력. (ex) Col1 as 'name'

Desc : 내림차순, Asc : 오름차순 (ORDER BY)

LIMIT 10 : 0~10 까지 레코드 수 제한. / LIMIT 100, 10 : 100~110까지 레코드 범위

  • 수정
    : Update 테이블 set col1 = 칼럼1 where 조건

  • 삭제
    : Delete from 테이블 where 조건

  • 칼럼 추가
    : Alter table 테이블명 add col3 varchar(255) not null.

  • 칼럼 삭제
    : Alter table 테이블명 drop col3

  • 칼럼 수정
    : Alter table 테이블명 modify col3 char(50) not null.

  • In : 원하는 필드값만을 선택 추출하는데 사용되는 그룹 조건문

출처: https://jins-dev.tistory.com/entry/MySql-기본-쿼리문들-정리 [Jins' Dev Inside]

profile
백엔드 개발자
post-custom-banner

2개의 댓글

comment-user-thumbnail
2021년 8월 12일

글 잘 읽었습니다! 자주 사용하는 쿼리문 사용법에 대해 알고 갑니다👍

답글 달기
comment-user-thumbnail
2021년 8월 18일

쿼리문 작성법이 간결하고 보기 좋게 되어서 바로 적용할 수 있을 것 같습니다 ! 공부할 때 도움이 많이 될 것 같아요 ~ !

답글 달기