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://www.oracle.com/kr/database/what-is-database/
https://www.integrate.io/ko/blog/which-modern-database-is-right-for-you-ko/
책 : 데이터베이스 개론
'교육 및 자격증 > 스터디' 카테고리의 다른 글
GH(NOB); XSS(크로스 사이트 스크립트) (0) | 2023.03.17 |
---|---|
GH(NOB); 크로스 사이트 요청 변조(CSRF: Cross Site Request Forgery) (0) | 2023.03.17 |
GH(NOB); SQL 인젝션 (0) | 2023.03.01 |
GH(NOB); 세션(Session) vs 쿠키(Cookie) (0) | 2023.03.01 |
1; jsp, asp, php? (0) | 2023.02.16 |