본문 바로가기

교육 및 자격증/스터디

DB(Database)

728x90

 

DB란?

구조화된 정보 또는 데이터의 조직화된 모음으로서 일반적으로 컴퓨터 시스템에 전자적으로 저장되는데 이를 데이터베이스라한다.

간단히 데이터의 집합이다.

예)카카오톡의 계정정보, 카카오톡 대화 정보, 카카오톡 이미지/동영상 정보..모두 DB에 저장된다.(SK데이터센터에 저장되어 있다)

 

DBMS(Database Management System)란?

 : 데이터를 포괄적으로 관리하는 시스템으로 데이터의 저장, 백업, 보고, 다중 액세스 제어 및 보안을 처리한다.

예) 

 

 - DB 종류

DBMS 제작사 작동 운영체제 특징
MySQL Oracle Unix, Linux, Windows, Mac 오픈 소스(무료), 상용,호환성 좋음, 가벼운 개발용도로도 좋음
MariaDB MariaDB Unix, Linux, Windows 오픈 소스(무료),
MySQL 초기 개발자들이 독립해서 만듦
PostgreSQL PostgreSQL Unix, Linux, Windows, Mac 오픈 소스(무료), 대규모 확장성, 문서 부족과 읽기 전용 작업 속도 문제 존재
Oracle Oracle Unix, Linux, Windows 상용 시장 점유율 1위, 무겁고 고가다.
SQL Server Microsoft Windows 주로 중/대형급 시장에서 사용, 빠름, 고가
DB2 IBM Unix, Linux, Windows 메인프레임 시장 점유율 1위
Access Microsoft Windows PC용
SQLite SQLite Android, iOS 모바일 전용, 오픈 소스(무료)

 

 - sql(structured Query Language)이란?

 : 구조화된 질의 언어라는 뜻으로 관계형 데이터베이스에서 사용되는 언어다.

 

 sql은 데이터베이스 관리 시스템에 직접 접근하여 대화식으로 질의를 작성해 데이터를 제어한다.

 sql에는 기능에 따라 데이터 정의어(DDL), 조작어(DML), 제어어(DCL)로 나눈다.

  • 데이터 정의어(DDL, Data Definition Language) : 테이블을 생성하고 변경/제거하는 기능을 제공한다.

CREATE TABLE

ALTER TABLE

DROP TABLE

  • 데이터 조작어(DML, Data Manipulation Language) : 테이블에 새 데이터를 삽입하거나, 테이블에 저장된 데이터를 수정/삭제/검색하는 기능을 제공한다.

SELECT(검색)

ex)select [속성] from [테이블 명];

select 아이디 from 계정; // 계정 테이블에서 아이디 열 불러오기

 

INSERT(삽입)

ex) Insert into [테이블명] values (속성);

insert into 계정(계정명, 비밀번호, 직업) values ('홍길동', 'qwerty','군인'); //계정 테이블 각 열에 계정명, 비밀번호, 직업에 홍길동, qwerty, 군인 값을 각각 넣는다.

 

UPDATE(수정)

ex) update [테이블명] set 속성1=값, 속성2 = 값2 .. [where 조건];

update 계정 set 계정명='김하성', 비밀번호='asdfgg', 직업='학생'; //위에서 삽입한 계정을 김하성, asdfgh, 학생으로 각 열의 값을 수정한다.

 

DELETE(삭제)

ex) delete from [테이블명] [where];

delete from 계정 where 직업='학생'; //계정 테이블에서 직업 속성이 학생인 값을 삭제한다.

 

  • 데이터 제어어(DCL, Data Control Language) : 보안을 위해 데이터에 대한 접근 및 사용권한을 사용자별로 부여하거나 취소하는 기능을 제공한다.

GRANT

REVOKE

 

 - DB 예시 테이블 만들기

create table 고객(

 고객아이디 varchar(20) NOT NULL,

 이름 varchar(20) NOT NULL,

 나이 INT,

 적립금 INT default 0,

);

 

 - 만든 테이블에서 속성 추가

insert into 계정(고객아이디,  이름, 나이 , 적립금) values ('aa', 'qwerty', '21', 100); 

insert into 계정(고객아이디,  이름, 나이 , 적립금) values ('bb', 'qwerty1', '22', 200); 

insert into 계정(고객아이디,  이름, 나이 , 적립금) values ('cc', 'qwerty2', '23', 300); 

 

 - select * from 고객;//고객 테이블 보기 명령어

고객 아이디 이름 나이 적립금
aa qwerty 21 100
bb qwerty1 22 200
cc qwerty2 23 300

 

 

 - 요약

DB는 데이터를 모아놓은 집합이다.

sql 언어로 db안의 데이터를 생성, 수정, 변경 등을 할 수 있다.

웹해킹에서 sql인젝션 공격이 DB 데이터를 탈취한다.

 

 - 출처

https://hongong.hanbit.co.kr/%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-databasedb-dbms-sql%EC%9D%98-%EA%B0%9C%EB%85%90/

https://www.oracle.com/kr/database/what-is-database/

https://www.integrate.io/ko/blog/which-modern-database-is-right-for-you-ko/

책 : 데이터베이스 개론