오늘부터는 DB와 SQL에 대한 전반적인 내용을 좀 정리해보려고한다.
최근에 바쁜 일이 있기도했고 솔직히 좀 나태해져서 개인공부를 너무 소홀히 하였다.
초심을 찾고자 하는 의미로 항상 정리해야지 싶었던 내용 중 하나인 DB와 SQL에 대해서 기초부터 살펴보려고한다.
DB란 무엇인가?
DB(DataBase)란 우리가 아는대로 데이터들의 집합이다.
여러 사람들이 공유해 사용할 목적으로 만들어져 관리된다.
이 DB를 관리하기 위해서 사용되는 Oracle, Ms-sql 등 같은 시스템이 DBMS(DataBase Management System) 이다.
DBMS는 DB를 더 효율적으로 관리할 수 있도록 해주며 보안이나 유지보수 같은 측면 등 많은 장점이 있기에 거의 필수로 사용된다.
그렇기에 거의 DB = DBMS 라는 느낌으로 사용되는 것 같다.
그렇다면 이런 DB의 종류에는 어떤 것들이 있을까?
1. HDBMS - 계층형 데이터베이스
계층형 데이터베이스는 데이터의 관계가 트리구조로 이루어진 데이터베이스이다.
상하 종속적인 관계로 구성되어 있기에 중복 문제가 있고 현재는 잘 사용되지 않는다.
2. NDBMS - 네트워크형 데이터베이스
네트워크형 데이터베이스는 위의 데이터 중복 문제를 해결하고 데이터 관계가 그물구조로 이루어진 데이터베이스이다.
종속성이라는 결정적인 문제를 해결하지 못했다.
3. RDBMS - 관계형 데이터베이스
관계형 데이터베이스는 가장 대표적으로 사용되고 있는 DBMS이다.
수학적 논리 관계를 테이블의 형태로 구성해 다른 테이블과의 상관관계도 정의한다.
또한 행과 열 구조(테이블 구조)로 이루어져 있고 위에서 언급된 SQL 또한 이를 제어하기 위한 언어이다.
4. KVS(Key-Value Store) = NoSQL - 열 지향 데이터베이스
NoSQL은 키와 그에 대응하는 값을 저장하는 단순한 형태의 데이터베이스이다. (ex_ JSON, Map 같은 것들)
요즘 또 대용량 데이터를 처리하는데 많이 언급되기도 하는 데이터베이스이다.
RDBMS와는 다르게 SQL 계열 쿼리 언어를 선택할 수 있다는 점에서 NoSQL(Not Only Sql) 이라고도 불리며,
단순화 된 만큼 속도도 많이 빠르기 때문에 빅데이터나 실시간 웹 어플리케이션 등 널리 쓰인다.
5. XML DBMS
XML DBMS는 xml 형식으로 기록된 데이터를 저장하는 데이터베이스이다.
XQuery라는 전용 명령어를 사용한다.
6. OODBMS (Object-Oriented DBMS)
객체지향 데이터베이스는 데이터베이스에 객체지햐으이 개념을 도입해 만들어진 모델이다.
계층에 따라 데이터 구조를 나타내고 그 조작 절차를 함께 다룬다.
7. ORDBMS (Objected-Relational DBMS)
객체 관계형 데이터베이스는 기존의 RDBMS에 객체의 관점까지 추가한 모델이다.
모든 객체의 PK(Primary Key)의 사용을 주장하며, PK가 없을시 OID(Object Identifier)라는 객체식별자의 사용을 권한다.
등등 이 외에도 옛날에 이용하던 저장장치로 사용하던 파일시스템같은 것이 존재하지만 너무 옛날이니 생략하도록하자.
그렇다면 이번엔 SQL에 대해서 알아보자.
SQL은 무엇인가?
SQL(Structured Query Language)은 말 그대로 구조화된 질의어을 뜻한다.
DB 중에서도 RDBMS(관계형 데이터베이스)를 관리하기 위해서 만들어진 언어이다.
우리는 이를 통해 DB에 접근해 값을 저장하거나 가져올 수 있다.
SQL의 문법은 관련 자격증 공부를 해보았다면 한번쯤은 들어본 요소들일 것이다.
한 번 정리해보자.
1. DDL (Data Definition Language) - 데이터 정의어
DDL은 데이터를 정의하는 문법으로써, DB나 테이블을 생성, 수정, 삭제하는 등의 데이터의 구조를 잡는 역할을 한다.
CREATE, DROP, ALTER, TRUNCATE 가 있다.
2. DCL (Data Control Language) - 데이터 제어어
DCL은 데이터베이스에 접근하는 객체에 대한 제어를 하는 문법이다.
GRANT, REVOKE, COMMIT, ROLLBACK 이 있다.
3. DML (Data Manipulation Language) - 데이터 조작어
DML은 데이터를 조작하는 문법으로써, 데이터 자체를 조회, 수정, 삭제, 삽입 할 수 있다.
SELECT, UPDATE, UPDATE, INSERT 가 있다.
위와 같은 문법들을 통해 우리는 DB를 제어하고 정의하며 데이터를 조작할 수 있다.
각 요소들에 대한 구조같은 자세한 요소들은 생각보다 상당히 복잡하므로 나중에 하나씩 따로 다루도록 하겠다.
SQL도 pl/sql이나 jpql 같이 여러 확장된 버전이 존재한다,
이에 대한 내용들도 생각보다 복잡하므로 하나씩 다루도록 하겠다.
이렇게 간단하게라도 DB와 SQL에 대한 내용에 대해 정리해보았다.
앞으로 차츰차츰 SQL과 DB에 대한 내용에 대해 공부해서 올리도록 하겠다.
중간중간에 예전에 업로드 하지 못했던 Spring이나 HTML에 대한 요소들도 정리할 수 있게끔 열심히 공부해야겠다...
참조 :
https://z2soo.github.io/blog/database/DBMS%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80/
'오늘의 공부 > DB, SQL' 카테고리의 다른 글
서브쿼리 (이중SQL) (0) | 2022.04.14 |
---|---|
[SQL] DML - DELETE (0) | 2022.03.23 |
[SQL] DML - UPDATE (0) | 2022.03.20 |
[SQL] SELECT - JOIN (0) | 2022.03.20 |
[SQL] DML - SELECT (0) | 2022.03.20 |