SQL이란...

SaGo_MunGcci·2022년 8월 7일
0

웹기술 및 이론

목록 보기
5/5

Definition Access

SQL이란

  • SQL이란 관계형 데이터베이스(RDB)를 지원하는 언어로 원하는 정보가 무엇인지, 그것을 어떻게 유도하는지 기술하는 언어(관계대수)와 원하는 정보가 무엇인지만 정의하는 비 절차적 언어(관계해석)을 기초로 두 가지를 혼합한 데이터 언어이다.

  • SQL을 통해 데이터베이스 정보를 요청하는 것을 질의, 또는 쿼리(Query)라고 한다. SQL은 질의 기능만 있는 것이 아니라 데이터 구조를 정의하고 조작하고 제어할 수 있는 기능을 모두 갖추고 있다. 

참고

  • 관계 대수 : 테이블을 처리하기 위해 연산자와 연산규칙을 제공하는 언어

    • 순수 관계 연산자 : Select, Project, Join, Division
    • 일반 집합 연산자 : UNION(합집합), INTERSECTION(교집합), DIFFERENCE(차집합), CARTESIAN PRODUCT(교차곱)

  • 관계 해석 : 관계 데이터의 연산을 표현하는 방법으로, 원하는 정보를 정의할 때는 계산 수식을 사용함 주로 질의어로 표현함

    • DDL(Data Define Language)
    • DML(Data Manipulation Language)
    • DCL(Data Control Language)


Mechanism

  • SQL의 기본 동작 방식.

  • 스프링과의 연동 순서와 결합


출처 : 스파르타코딩클럽 스프링의 봄 스프링 2주차 강의자료

  • 기술 매니저님께서 라이브세션 때 스프링 프레임워크는 기본적으로 MVC패턴을 지향하고 있고 실제로도 많은 곳에서 이 패턴을 사용하면서 서버 개발이 이루어지고 있다고 가르쳐 주셨다. 그런데 MVC 패턴을 사용한다고 해서 서버내 구축한 Controller와 Model(Entity) 그리고 Model(Thyemeleaf) 만 중요한것이 아니고 실질적으로는 데이터베이스가 더 중요하다고 하셨다.

  • 왜냐하면 사용자가 주로 요청하는 정보는 거의 대부분 서버의 db에 저장되어있는 정보를 요청하기 때문이다. 즉 다른측면에서 보면 MVC패턴은 db에 접근하고 db에서 사용자의 정보를 잘 꺼내올수 있도록 만든 개발 형태 혹은 모양이라고도 할 수 있다.

  • 그리고 MVC패턴은 Spring을 사용하면 그리고 사용하게 되면 거의 default로 가져가는 부분이기때문에(사실 Spring에서 MVC를 사용하지 않으면 거의 다른 프레임워크를 쓰는 것과 같다) 오히려 DB를 얼마나 잘다룰 수 있느냐가 백엔드의 역량이고 또한 백엔드의 꽃이라고 한다.

  • DB의 대표적인 종류에는 Oracle, MySQL, MongoDB등이 있는데 나는 주로 MySQL을 사용했다.

-그런데 MySQL이란 정확히 무엇인지 궁금했는데 오늘 조금이나마 정리 해보려고 한다.

  • 먼저 SQL의 정의에서 말한 관계형 데이터베이스가 뭔지 먼저 알아보자.

1. 관계형 데이터베이스 시스템(RDBS)

  • 키와 값들의 간단한 관계를 테이블화 시킨 매우 간단한 원칙의 전산정보 데이터베이스를 의미.

  • 관계형 모델은 테이블로 구성되어 있는데, 테이블은 행(row)과 열(column)로 구성되어 있는 관계, 즉 테이블(표)을 의미합니다. 하나의 행은 레코드라고 한다.

  • 모든 응용 프로그램들이 데이터베이스를 공유할 수 있도록 관리해 주는 소프트웨어 시스템이다. 목적은 데이터의 독립성을 제공하는 것이다

  • 즉 엑셀과 같은 2차원형태의 표인데 이게 보기보다 장난이 아니라서 1개의 db가 1개의 엑셀파일이라고 치면 비교도 안되게 db가 더 많이 더빨리 해당 데이터를 저장 및 검색 할 수 있다고 한다.

2. MySQL

  • MySQL은 세계에서 가장 많이 쓰이는 오픈 소스의 관계형 데이터베이스 관리 시스템(RDBMS)이다. 다중 스레드, 다중 사용자 형식의 구조질의어 형식의 데이터베이스 관리 시스템으로서 오라클이 관리 및 지원하고 있으며, Qt처럼 이중 라이선스가 적용된다. 하나의 옵션은 GPL이며, GPL 이외의 라이선스로 적용시키려는 경우 전통적인 지적재산권 라이선스의 적용을 받는다.

  • 위와 같은 지원 방식은 자유 소프트웨어 재단이 프로젝트에 저작권을 적용하는 방법과 비슷한 JBoss의 모델과 유사하다. 그러나 기반코드가 개인의 소유자에게 저작권이 있고 커뮤니티에 의해 개발되는 아파치 프로젝트와는 다르다.

참고 : 자유 소프트웨어 재단

  • 자유 소프트웨어 재단이란
    • MIT에서 일하던 프로그래머 리처드 스톨만은 자신이 사용하는 프로그램의 소스코드가 회사가 독점한 것이라 접근 할 수 없어서, 프로그램을 고치거나 개선할 수 없다는 점에 불만을 가졌다. 1983년에 스톨만은 GNU라는 프로젝트를 시작했다. GNU의 목적은 운영체제와 프로그래밍 언어용 컴파일러 같은 중요한 소프트웨어 시스템의 무료 공개 버전을 만드는 것이었다. 따라서 그는 오픈소스를 지원하기 위해 자유 소프트웨어 재단이라는 비영리단체를 만들었다.

    • 이 단체의 목적은 비독점적이고, 구속적인 소유권에 얽매이지 않는다는 의미에서 영구히 자유로운 소프트웨어를 만들어 내는 것이다.

    • 이는 GNU GPL이라는 기발한 저작권 라이선스에 따라 구현을 배포하는 방식으로 이루어졌다.

2. MySQL의 특징

  • MySQL은 가장 널리 사용되고 있는 관계형 데이터베이스 관리 시스템이다. (RDBMS)
  • MySQL은 오픈소스이며, 다중 사용자와 다중 스레드를 지원한다
  • C, Cpp, JAVA, PHP 등 여러 프로그래밍 언어를 위한 다양한 API를 제공한다.
  • MySQL은 윈도우, 리눅스 등 다양한 운영체제에서 사용가능하며 Apache, PHP 와 함께 웹 개발에 자주 사용된다.
  • APM의 M MySQL or (MariaDB) 등 Apache, PHP와 호환성이 좋기에 사용한다
  • MySQL은 오픈 소스 라이선스를 따르지만, 상업적 이용시 상업라이센스를 필히 구매하여야 한다.


Retrospection

참고 : https://y-oni.tistory.com/71 [욘블로그(Yon-Blog):티스토리]

참고 : https://whitehairhan.tistory.com/24

참고 : https://thebook.io/006977/ch01/01/05/

참고 : 1일 1로그 100일완성 IT지식 p.159



profile
이리저리 생각만 많은 사고뭉치입니다.

0개의 댓글