직장에서 살아남기

[개발 기초 지식] 데이터베이스, SQL 이란?

지식큐레이터 2021. 10. 4. 20:32

 

 

 

 

 

데이터베이스에 데이터 보관

데이터베이스는 데이터를 분류할 수 있는 설계부터 진행

전기도 필요하고, 돈도 들고 복잡한 셋팅 같은게 필요함.

 

데이터 기반 서비스란?

데이터 기반 서비스 = 데이터 필요한 서비스 = 우리가 사용하는 모든 서비스 (네이버, 인스타그램 등)

 

 

 

데이터의 CRUD란?

출처: youngjinmo.github.io

 

CRUD = 데이터를 저장하고, 불러오고, 수정하고, 삭제하기와 같은 데이터 관련 행위를 묶어서 일컫는 말

Creat(생성)

Read(읽기)

Update(갱신)

Delete(삭제)

 

예시

<네이버>

정보를 검색하는 서비스 = 정보를 불러온다 Retrieve

블로그, 카페글 작성 Create

볼로그, 카페글 수정 Update
블로그, 카페글 삭제 Delete

 

<인스타그램>

사진을 올리고 Creat

팔로우하고 Creat 
언팔로우하고 Delete

해시태그로 검색하고 Retrieve 

내 친구들 둘러보는 서비스 Retrieve

 

내가 얘를 팔로우한다 라는 데이터가 생성되는 거고, 내가 언팔로우한다 내가 예를 언팔로우한다는 데이터 삭제함.

어떤 서비스내에서 일어나는 여러 행위들은 다 데이터의 CRUD로 표현될 수 있다

 

데이터베이스는 왜 필요할까? 

출처: ducba.com

 

데이터를 보관함에 있어서 데이터베이스에 보관해야하는 이유

1. 무결성 : 실제 데이터와 정확하게 일치하고, 유효한지 등 일관성에 대한 보증

2. 안정성 : 날리지 않게 백업

3. 보안성 : 보안이 중요 해킹 방지 권한 관리 등

4. 확장성 : Scale up 시 용이한 확장

 

데이터베이스와 스프레드 시트 차이점

  데이터베이스 스프레드시트
공통점 행X열 구조
차이점 무결성, 확장성 상관없음 (에러 뱉지 않음 ; 무결성)
보안성 높음, 안정성(백업) 높음 보안성 낮음, 안정성 보통

 

SQL : 데이터베이스 전용 언어

SQL: 관계형 데이터베이스 위해 설계된 구조화된 (Structured) 질의(Query) 요청을 하는 언어(Language) 다.

 

SQL의 종류 : DDL, DML

 

< DDL : Data Definition 데이터 정의어: 틀 자체를 제작하는 언어>

어떤 형태의 데이터베이스를 만들껀지? 칸을 얼만큼 설계할건지 등 틀 자체를 만드는 언어

칸을 얼만큼 설계할건지, 틀 자체를 만드는 언어를 DDL이라고 함.

 

< DML: Data Manipulation 데이터 조작어: CRUD에 대핟하는 데이터 조작하는 언어>

틀을 만든다음에 틀 안에서 데이터 생성하고, 가져오거나 수정하거나 없애는

CRUD에 해당하는 데이터 조작어를 DML이라고 함 DML: Data Manipulation

 

DDL를 이용해서 테이블 구조를 직접 설계하고, 테이블에 맞는 데이터를 CRUD에 맞는 DML  

을 통해서 불러오고, 수정하고 삭제하고 생성하고 이런 과정을 거친다고 할 수 있음.

 

 

SQL 의 구체적인 명령어 & 핵심적인 문법 (7가지)

DDL:  CREATE 문, ALTER 문, DROP 문

DML: INSERT 문(Creat), SELECT문(Retrieve), UPDATE문, DELETE문 

 

ORM이란?

 

출처: medium.com

다소 복잡한 SQL문...

문법들 배워야하고, 그러다보니 힘들어할 수 있을 것 같은데

웹 프레임워크에서는 SQL 안배워도 데이터 조작할 수 있게 준비해놓은 것을 ORM 이라고 함. (Object Related Management) 

 

ORM 종류

ORM은 복잡해보이는 SQL문을 파이썬 언어 그대로 사용할 수 있도록 해주는 브릿지 역할을 하는 도구임.

쉽게 이야기하면 파이썬 같은 서버 사이드 언어로도 SQL이 하는 일을 하게 해준다.

SQL 안쓰고도 DB 컨트롤 할 수 있게 해준다.

 

 

 

 

 

2021.10.03 - [직장에서 살아남기] - [개발 기초 지식] Back-end : 웹 서비스

 

[개발 기초 지식] Back-end : 웹 서비스

백엔드 개발이란, 서버사이드 개발을 말한다. database, scripting, 웹사이트 구조 관련된 개발이다. 웹사이트에서 어떤 액션을 했을 때, 보이지않는 뒷단의 활동들을 수반한다. 백엔드 개발자들에 의

yourcurator.tistory.com

2021.10.03 - [직장에서 살아남기] - [개발 기초 지식] 웹 문서 특징 (Front End)

 

[개발 기초 지식] 웹 문서 특징 (Front End)

쉽게 말하면 프론트엔드 - 사용자의 눈에 보이는 부분 개발 & 백 엔드 - 이용자 눈에 보이지 않는 것 개발 프론트엔드라고 불리는 것들은 웹개발에만 국한하지 않음. 클라이언트 사이드 개발자는

yourcurator.tistory.com

2021.10.03 - [직장에서 살아남기] - [개발 기초 지식] 웹 브라우저와 DNS, 웹 서비스 동작 원리와 순서

 

[개발 기초 지식] 웹 브라우저와 DNS, 웹 서비스 동작 원리와 순서

브라우저란? 웹서비스 사용하기 위해 실행하는 프로그램이며, 오페라/파이어폭스는 외국에서 유명 5대 브라우저 크롬, 사파리, 인터넷 익스플로러, 오페라, 파이어폭스 브라우저 역할 1. 브라우

yourcurator.tistory.com

 

※본 내용은 탈잉 '비전공자를 위한 기초탄탄개발입문' 강의를 직접 듣고 참고해서 노트테이킹함