SQL(Structured Query Language)

이정민·2021년 12월 16일

SQL을 학습하면 관계형 데이터베이스를 자유자재로 활용가능
-관계형 데이터베이스(RDBMS) MySQL로 Schema를 설계
-SQL을 이용하여 데이터를 영속성있게 저장

Achievement Goals

3 Tier Architecture 를 이해한다. =>~~ 찾아보기 ~~
영속성의 개념을 이해하고, 데이터베이스의 필요성을 인지한다.
데이터베이스 종류를 이해한다.
    관계형 데이터베이스와 NoSQL의 차이를 이해한다.
    관계형 데이터베이스 및 NoSQL이 어떤 경우에 적합한지 이해한다.

Learn SQL

SQL 주요 문법을 이해할 수 있다.
   조회, 삽입, 갱신, 삭제 구문을 자유자재로 사용할 수 있다.
   조회 시 다양한 조건을 걸어 원하는 정보만 조회할 수 있다.
   통계를 위한 쿼리를 만들 수 있다.
스키마 디자인을 할 수 있다.
   앱에 필요한 테이블과 필드, 그리고 관계를 부여할 수 있다.
1:N, N:N 관계를 이해하고, 데이터베이스에서 테이블을 조작할 수 있다.
   Foreign Key, Primary Key에 대해 이해할 수 있다.

데이터베이스의 필요성
1.In-Memory
   JavaScript에서 변수를 만들어 저장한 경우, 프로그램이 종료될때 변수 등을 저장한 데이터도 사라짐. 즉 데이터가 프로그램의 실행에 의존. 예기치 못한 상황으로부터 데이터를 보호 받을 수 없고, 프로그램이 종료된 상태라면 데이터를 받아올 수 없고 데이터의 수명이 프로그램의 수명에 의존

2.File I/O
   파일을 읽는 방식으로 작동하는 형태 엑셀시트나 csv같은 파일의 형태
-> 데이터를 필요할 때 마다 전체 파일을 매번 읽어야하기 때문에 비효율적
-> 파일이 손상되거나 여러파일을 동시에 다뤄야하거나 하는 등 복잡하고 데이터량이 많을 수록 데이터 불러들이는 작업이 힘들어짐

=>반면 관계형 데이터베이스에서는 하나의 CSV파일이나 엑셀시트를 한개의 테이블로 저장할 수 있다. 그렇기 때문에 SQL을 활용해 데이터를 불러오기 수월

SQL소개 (Structured Query Language)

     데이터베이스용 프로그래밍 언어로 주로 관계형 데이터베이스에서 사용
   데이터베이스에 쿼리를 보내 원하는 데이터를 가져오거나 삽입할 수 있다.
   (structured Query)데이터가 구조화된 테이블을 사용하는 데이터베이스에서 활용가능

데이터의 구조가 고정되어있지 않은 데이터베이스=> NoSQL 대표적으로 MongoDB같은 문저지향 데이터베이스


쿼리란 ?
쿼리(query)란 무엇일까요? 쿼리는 '질의문' 이라는 뜻을 가지고 있습니다. 예를 들면 검색할 때 입력하는 검색어가 일종의 쿼리입니다. 검색을 할 때, 기존에 존재하는 데이터를 검색어로 필터링합니다. 따라서, 쿼리는 저장되어 있는 데이터를 필터하기 위한 질의문으로도 볼 수 있습니다.

SQL(구조화 쿼리언어) vs NoSQL(비구조화 쿼리언어)

데이터베이스는 크게 관계형 데이터베이스와      비관계형 데이터베이스
관계형데이터베이스는 SQL을 기반 // 비관계형 데이터베이스는 NoSQL오 데이터를 다룸
관계형 데이터베이스
   테이블의 구조와 데이터 타입 등을 사전에 정의하고
   테이블에 정의된 내용에 맞는 형태의 데이터만 삽입할 수 있다.
   행 과 열로 구성된 테이블에 데이터를 저장
   관계형 데이터베이스에서는 스키마가 뚜렷하게 보인다 =>테이블간의 관계를 직관적으로 파악할 수 있다.
    ex. MySQL, Oracle, SQLite, PosrgressSQL, MariaDB

NoSQL 데이터가 고정되어있지 않은 데이터베이스
   스키마가 반드시 없는 것은 아님
   데이터를 읽어올 때마다 스키마에 따라 데이터를 읽어옴 =>schema on read
    ex. MongoDB, Casandra

0개의 댓글