데이터베이스의 필요성
1. In - Memory
프로그램 의존성
파이썬과 같은 경우에는 변수를 할당할 때만 데이터가 존재한다.
즉, 프로그램이 실행될 때에만 데이터가 존재한다는 뜻이다. 이렇게 되면 자연스럽게 데이터는 프로그램에 의존하게 되어 데이터를 프로그램없이 자유자재로 다루는것이 불가능하다.
2. File I/O
CSV 파일과의 차이성
파일을 읽어오는 방식으로 작동하는 형태 ex) 엑셀, CSV 등..
의 한계성을 SQL로 보완가능하다.
- 파일을 매번 읽어와야 한다는 것 자체가 하나의 단점이다. 특히 파일의 크기가 커질수록 이 작업은 버거워진다.
- 파일이 손상되거나 여러 개의 파일들을 동시에 다뤄야 하거나 하는 등 복잡하고 데이터량이 많아질수록 점점 힘들어지기도 한다.
관계형 데이터 베이스
1. 하나의 파일을 SQL에서는 한 개의 테이블로 저장할 수 있다.
2. 한번의 여러개의 테이블을 가질 수 있다. -> 데이터를 가져오는 것이 수월하다.
3. 엑셀과 CSV는 대용량의 데이터를 저장하기 위한 목적이 있는 것이 아니다.
SQL이란?
(Structured Query Language)
데이터베이스 언어의 기준으로 주로 관계형 데이터베이스에서 사용이 된다.
예를 들어 MySQL, Oracle, SQLite, PostgreSQL 등 다양한 데이터베이스에서 볼 수 있다.
구조화된 쿼리이다.
쿼리란 ?
쿼리란 ?
여기에서 쿼리 (query) 란 무엇일까요?
직역을 하자면 쿼리는 '질의문' 이라고 볼 수 있습니다. 예시를 들자면 검색을 할 때 입력하는 검색어도 일종의 쿼리라고 볼 수 있죠. 검색을 하게 된다면 기존에 존재하는 데이터를 검색어로 필터하듯이 쿼리는 저장되어 있는 정보를 필터하기 위한 질문으로도 볼 수 있습니다.
따라서 SQL 이란 데이터베이스 용 프로그래밍 언어입니다. 한 마디로 데이터베이스에 쿼리를 보내 원하는 데이터만을 가져올 수 있게 해줍니다.
또한 이름에서 유추할 수 있듯이 SQL 은 structured, 즉, relation 이라고도 불리는, 데이터가 구조화된 테이블을 사용하는 데이터베이스에서 활용 가능합니다.
이와 반면에 데이터 구조가 고정되어 있지 않은 데이터베이스들은 NoSQL 이라고 불립니다. 관계형 데이터베이스와는 달리 테이블을 사용하지 않고 다른 형태로 데이터를 저장합니다. 예를 들어 MongoDB 와 같은 문서 지향 데이터베이스가 있습니다.
이처럼 데이터베이스 세계에서는 데이터베이스 종류를 SQL 이라는 언어로 분류할 정도로 중요한 자리를 차지하고 있습니다. 그리고 앞서나왔듯이 SQL 을 사용하기 위해서는 데이터가 구조가 고정되어 있어야 합니다.
Data Definition Language (DDL)
DDL 은 데이터를 정의할 때 사용되는 언어를 가리킵니다. 예를 들어 테이블을 만들 때 사용하는 CREATE 이나 테이블을 제거할 때 사용되는 DROP 등 입니다. 데이터베이스의 테이블과 같은 오브젝트를 정의할 때 사용됩니다.
Data Manipulation Language (DML)
DML 은 데이터베이스에 데이터를 저장할 때 사용되는 언어를 가리킵니다. 예를 들어 INSERT 처럼 새로운 레코드를 추가할 때 사용되는 문법들이 포함됩니다. 따라서 데이터를 삭제하는 DELETE 라든가 변경하는 UPDATE 등이 여기에 포함됩니다.
Data Control Language (DCL)
DCL 은 데이터베이스에 대한 접근 권한과 관련된 문법입니다. 어느 유저가 데이터베이스에 접근할 수 있는지 권한을 설정하거나 없애는 역할이죠. 예를 들어 권한을 주는 GRANT 나 권한을 가져가는 REVOKE 등이 포함됩니다.
Data Query Language (DQL)
DQL 은 정해진 스키마 내에서 쿼리를 할 수 있는 언어입니다. 여기에 포함된 문법은 SELECT 정도가 있습니다. 물론 이렇게 따로 언어가 분류되지만 DQL 을 DML 의 일부분으로 말하곤 합니다.
Transaction Control Language (TCL)
TCL 은 DML 을 거친 데이터 변경사항을 수정할 수 있습니다. 예를 들어 COMMIT 처럼 DML 이 작업한 내용을 데이터베이스에 커밋하거나 ROLLBACK 처럼 커밋했던 내용을 다시 롤백하는 문법들이 있습니다.
'Web > Git & 배포' 카테고리의 다른 글
AWS로 내 Web 배포하기 ! (맥북) / EC2 instance 사용 / Ubuntu /for Mac/ YUM안되는 사람에게. 1편 ! (0) | 2022.02.08 |
---|---|
SQL 기본쿼리문법 / SQL 문법 / Inner join, outer join, group by (0) | 2021.05.05 |
[Github] Repository 폴더 생성 -간단 (0) | 2021.04.14 |
git branch관리 & merge / vs code로 pull request 하는 법. (0) | 2021.03.14 |
개발 환경 (git 관리하기 )#1/ git clone,commit, add,reset하기 (0) | 2021.03.14 |
데이터베이스의 필요성
1. In - Memory
프로그램 의존성
파이썬과 같은 경우에는 변수를 할당할 때만 데이터가 존재한다.
즉, 프로그램이 실행될 때에만 데이터가 존재한다는 뜻이다. 이렇게 되면 자연스럽게 데이터는 프로그램에 의존하게 되어 데이터를 프로그램없이 자유자재로 다루는것이 불가능하다.
2. File I/O
CSV 파일과의 차이성
파일을 읽어오는 방식으로 작동하는 형태 ex) 엑셀, CSV 등..
의 한계성을 SQL로 보완가능하다.
- 파일을 매번 읽어와야 한다는 것 자체가 하나의 단점이다. 특히 파일의 크기가 커질수록 이 작업은 버거워진다.
- 파일이 손상되거나 여러 개의 파일들을 동시에 다뤄야 하거나 하는 등 복잡하고 데이터량이 많아질수록 점점 힘들어지기도 한다.
관계형 데이터 베이스
1. 하나의 파일을 SQL에서는 한 개의 테이블로 저장할 수 있다.
2. 한번의 여러개의 테이블을 가질 수 있다. -> 데이터를 가져오는 것이 수월하다.
3. 엑셀과 CSV는 대용량의 데이터를 저장하기 위한 목적이 있는 것이 아니다.
SQL이란?
(Structured Query Language)
데이터베이스 언어의 기준으로 주로 관계형 데이터베이스에서 사용이 된다.
예를 들어 MySQL, Oracle, SQLite, PostgreSQL 등 다양한 데이터베이스에서 볼 수 있다.
구조화된 쿼리이다.
쿼리란 ?
쿼리란 ?
여기에서 쿼리 (query) 란 무엇일까요?
직역을 하자면 쿼리는 '질의문' 이라고 볼 수 있습니다. 예시를 들자면 검색을 할 때 입력하는 검색어도 일종의 쿼리라고 볼 수 있죠. 검색을 하게 된다면 기존에 존재하는 데이터를 검색어로 필터하듯이 쿼리는 저장되어 있는 정보를 필터하기 위한 질문으로도 볼 수 있습니다.
따라서 SQL 이란 데이터베이스 용 프로그래밍 언어입니다. 한 마디로 데이터베이스에 쿼리를 보내 원하는 데이터만을 가져올 수 있게 해줍니다.
또한 이름에서 유추할 수 있듯이 SQL 은 structured, 즉, relation 이라고도 불리는, 데이터가 구조화된 테이블을 사용하는 데이터베이스에서 활용 가능합니다.
이와 반면에 데이터 구조가 고정되어 있지 않은 데이터베이스들은 NoSQL 이라고 불립니다. 관계형 데이터베이스와는 달리 테이블을 사용하지 않고 다른 형태로 데이터를 저장합니다. 예를 들어 MongoDB 와 같은 문서 지향 데이터베이스가 있습니다.
이처럼 데이터베이스 세계에서는 데이터베이스 종류를 SQL 이라는 언어로 분류할 정도로 중요한 자리를 차지하고 있습니다. 그리고 앞서나왔듯이 SQL 을 사용하기 위해서는 데이터가 구조가 고정되어 있어야 합니다.
Data Definition Language (DDL)
DDL 은 데이터를 정의할 때 사용되는 언어를 가리킵니다. 예를 들어 테이블을 만들 때 사용하는 CREATE 이나 테이블을 제거할 때 사용되는 DROP 등 입니다. 데이터베이스의 테이블과 같은 오브젝트를 정의할 때 사용됩니다.
Data Manipulation Language (DML)
DML 은 데이터베이스에 데이터를 저장할 때 사용되는 언어를 가리킵니다. 예를 들어 INSERT 처럼 새로운 레코드를 추가할 때 사용되는 문법들이 포함됩니다. 따라서 데이터를 삭제하는 DELETE 라든가 변경하는 UPDATE 등이 여기에 포함됩니다.
Data Control Language (DCL)
DCL 은 데이터베이스에 대한 접근 권한과 관련된 문법입니다. 어느 유저가 데이터베이스에 접근할 수 있는지 권한을 설정하거나 없애는 역할이죠. 예를 들어 권한을 주는 GRANT 나 권한을 가져가는 REVOKE 등이 포함됩니다.
Data Query Language (DQL)
DQL 은 정해진 스키마 내에서 쿼리를 할 수 있는 언어입니다. 여기에 포함된 문법은 SELECT 정도가 있습니다. 물론 이렇게 따로 언어가 분류되지만 DQL 을 DML 의 일부분으로 말하곤 합니다.
Transaction Control Language (TCL)
TCL 은 DML 을 거친 데이터 변경사항을 수정할 수 있습니다. 예를 들어 COMMIT 처럼 DML 이 작업한 내용을 데이터베이스에 커밋하거나 ROLLBACK 처럼 커밋했던 내용을 다시 롤백하는 문법들이 있습니다.
'Web > Git & 배포' 카테고리의 다른 글
AWS로 내 Web 배포하기 ! (맥북) / EC2 instance 사용 / Ubuntu /for Mac/ YUM안되는 사람에게. 1편 ! (0) | 2022.02.08 |
---|---|
SQL 기본쿼리문법 / SQL 문법 / Inner join, outer join, group by (0) | 2021.05.05 |
[Github] Repository 폴더 생성 -간단 (0) | 2021.04.14 |
git branch관리 & merge / vs code로 pull request 하는 법. (0) | 2021.03.14 |
개발 환경 (git 관리하기 )#1/ git clone,commit, add,reset하기 (0) | 2021.03.14 |