⚡ 개념 정리하기 !

  1. 테이블

    DB, 즉 데이터베이스는 크게 두 종류, Relational Database와 Non-relational Database로 나뉩니다. 흔히 전자는 SQL, 후자는 NoSQL이라고도 합니다. Relational Database의 가장 큰 특징은 하나 이상의 table을 이용한다는 점입니다. 테이블, 곧 표는 엑셀을 떠올리면 쉬운데, 열(column)의 내용에 맞춰 행(row)가 하나씩 늘어져있습니다. Non-Relational Database의 경우 이런 테이블을 사용하지 않는 대신 key-value, graph, document based등 다른 방법들을 이용합니다.

    —사진 by ScyllaDB. 우리가 사용하는 디스코드 또한 최근 NoSQL 기반인 ScyllaDB로 이전하였다고 합니다! Scylla DB는 SQL대신 CQL을 이용하고, 테이블 대신 column store을 이용합니다.

    —사진 by ScyllaDB. 우리가 사용하는 디스코드 또한 최근 NoSQL 기반인 ScyllaDB로 이전하였다고 합니다! Scylla DB는 SQL대신 CQL을 이용하고, 테이블 대신 column store을 이용합니다.

  2. DBMS

    SQL과 NoSQL DB모두 DBMS(DataBase Management System)이라는 소프트웨어를 이용합니다. SQL DBMS의 경우 MySQL, PostgreSQL, SQLite 등이 있고 작은 차이는 있지만 모두 SQL(Structured Query Language)을 사용한다는 특징이 있습니다. NoSQL DBMS의 경우 MongoDB, Redis 등이 있습니다. NoSQL DB의 경우 앞서 언급한 여러 가지 방법들을 이용할 수 있다보니 사용하는 DBMS에 따라 서로 다른 방법으로 정보를 저장하게 됩니다.

  3. SQL / ORM

    SQL DB에 정보를 요청할 때 SQL을 사용할 수 있지만 SQL을 사용하지 않고도 DB와 소통할 수 있습니다. 마치 내가 독일인과 대화를 하고 싶을 때 독일어를 배울 수도 있지만 독일어 통역을 고용할 수도 있는 것 처럼 말입니다. 이는 프로그래밍 언어의 object model과 RDBMS의 relational model의 간극을 메워주는 ORM(Object Relational Mapping) 덕분에 가능합니다. 추가적으로 모든 경우에 ORM만을 사용하는 것은 효율적이지 않고, DB의 write 작업과 read작업 중 write 작업에는 ORM을, read작업에는 SQL을 사용하는 것이 낫다고 합니다.

  4. 쿼리(query)

    A query can either be a request for data results from your database or for action on the data, or for both. A query can give you an answer to a simple question, perform calculations, combine data from different tables, add, change, or delete data from a database. — Introduction to Queries, MS Support

    데이터베이스에 국한된 용어는 아니지만, query는 쉽게 말해 요청을 하는 것입니다. SQL은 Structured Query Language라고 하였는데, 바로 형식이 정해진 이런 query를 통해 DB에 정보를 생성하거나 읽고 수정하고 삭제하는 작업(CRUD)과 나아가 연산 등을 수행할 수 있습니다.

  5. SELECT, FROM, WHERE

    SQL query문의 가장 기본적인 골격입니다.

    Untitled

    SELECT NAME --고를 대상(들)을 정한다.
    FROM ROLL_NO --어디서 고를건지, 즉 테이블명을 정한다.
    WHERE AGE>=19; --그 대상들 중 어떤 애들만 골라낼 건지 정한다.
    

⚡ 토론해보아요 !

  1. 자신이 만든 DB를 이용한 쿼리문을 작성해서 소개해보아요!

    😎태경:

    KakaoTalk_Photo_2023-05-28-18-29-51.jpeg

    😎신비:

    KakaoTalk_Photo_2023-05-28-18-29-58.jpeg

    😎지혜:

    <aside> 💡 Students

    name age affiliation major 강지혜 22 소프트웨어대학 소프트웨어학과 이강록 21 경영경제대학 경영학과 이태경 24 공과대학 에시공 박신비 22 영어영문학과

    SELECT name FROM Students WHERE age BETWEEN 20 AND 25

    </aside>

    😎강록:

    Untitled

    SELECT 제목 FROM 영화 WHERE 평점>9 AND 개봉일<’2023-05-20’;

  2. SQL 명령어를 더 찾아 소개해보아요 !

    🏄‍♂️지혜:

    RENAME: 테이블 또는 컬럼명 재정의 ex)RENAME TABLE1 TO TABLE2

    🏄‍♂️태경:

    1. Database 접속 USE 데이터베이스명;
    2. Database 생성 CREATE DATABASE 데이터베이스명
    3. Database 삭제 DROP DATABASE 데이터베이스명
    4. TABLE 데이터 추가 INSERT INTO 테이블명 (컬럼1,컬럼2,컬럼3 ...) VALUES (값1,값2,값3 ...)
    5. TABLE 데이터 수정 UPDATE Person SET description='TITLE1 is ...' WHERE id=1; SELECT * FROM Person WHERE id=1;

    ! ASC : 오름차순 , DESC : 내림차순

    자주 사용되는 sql 명령어 종류 CRUD 개념

    🏄‍♂️강록:

    JOIN: 두 테이블의 내용 중 겹치는 것을 이용하여 합칠 때 (종류가 많다!)

    SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate
    FROM Orders
    INNER JOIN Customers ON Orders.CustomerID=Customers.CustomerID;
    

    SQL Joins

  3. ‘Query Language’ 가 무엇인지, 우리가 아는 C / Python / JavaScript 등의 언어와는 어떻게 다른지 알아보아요 !

    SQL도 큰 정의 내에서는 프로그래밍 언어 일 수 있습니다. ‘정해진 문법을 따라가며 컴퓨터에게 특정한 작업을 수행하도록 명령하는 언어’에는 부합하기 때문입니다. 하지만 우리가 흔히 말하는 ‘프로그래밍 언어’가 칭하는 General Purpose Programming Language로는 애플리케이션을 만들 수 있어야 합니다. SQL은 DB와 소통하는 용도 외에는 사용할 수 없다는 점에서 이를 만족하진 못합니다.

    또 하나의 차이점으로는 데이터베이스의 특정 내용을 lookup하고 싶다면, 프로그래밍 언어로는 반복문을 작성하는 등 무엇을 어떻게 찾을 것인지 일일이 알려줘야 하는 반면 SQL같은 Query Language로는 사용자가 무엇을 찾고 싶은지 알려줄 뿐, 어떻게 효율적으로 찾을 것인지의 문제는 DBMS에게 맡깁니다.

    █ 일곱번째 스터디 끗ㅡ