※ 본 카테고리의 내용은 부스트캠프 챌린지 기간동안 학습한 내용을 바탕으로 정리한 내용입니다.

목차


    0. SQL

     


    SQL(Structured Query Language)관계형 데이터베이스 관리 시스템 안에 있는 데이터를 관리하기 위해서 설계된 특수 목적의 프로그래밍 언어입니다.
    데이터를 관리하는 것이 가장 주된 목적이기 때문에, 일반적인 객체지향 및 함수형 프로그래밍 언어와는 조금 차이가 있는 편입니다.
    그럼에도 불구하고 SQL도 프로그래밍 언어의 일종이기 때문에, 다른 프로그래밍 언어를 알고 있는 상태로 공부한다면 역시 쉽게 익힐 가능성이 매우 높습니다.


    1. SQL의 종류

    SQL에는 다양한 명령어가 존재합니다.
    크게 DDL(Data Definition Language, 데이터 정의어), DML(Data Manipulation Language, 데이터 조작어), DCL(Data Control Language, 데이터 제어어)로 나뉩니다.
    조금 더 세부적으로 나누면 DCL을 DCL과 TCL(Transaction Control Language, 트랜잭션 처리어)로 나누기도 합니다.

    DDL데이터 베이스 내의 객체를 직접 변경하는 역할을 맡고 있습니다.
    DML객체 내의 데이터들을 가공하거나 검색할 때 사용합니다.
    (일반적으로 DML의 사용량이 다른 요소들보다 압도적으로 많습니다.)
    DCL데이터를 다루는 권한을 관리하거나, 트랜잭션을 관리하는 역할을 맡습니다.

     

    명령어 분류 명령어 설 명
    DML(Data Manipulation Language, 데이터 조작어) SELECT 데이터 검색시 사용합니다.
    INSERT 데이터 입력시 사용합니다.
    UPDATE 데이터 입력시 사용합니다.
    DELETE 데이터 입력시 사용합니다.
    DDL(Data Definition Language, 데이터 정의어) CREATE 데이터베이스 객체 생성합니다.
    ALTER 데이터베이스 객체 변경합니다.
    DROP 데이터베이스 객체 삭제합니다.
    RENAME 데이터베이스 객체 이름을 변경합니다.
    TRUNCATE 데이터베이스 객체의 저장 공간을 삭제합니다.
    TCL(Transaction Control Language, 트랜잭션 처리어) COMMIT 트랜젝션을 정상적으로 종료 처리합니다.
    ROLLBACK 트랜잭션을 취소합니다.
    SAVEPOINT 트랜잭션내에 임시 저장점을 설정합니다.
    DCL(Data Control Language, 데이터 제어어) GRANT 데이터베이스에 대한 일련의 권한을 부여합니다.
    REVOKE 데이터베이스에 대한 일련의 권한을 취소합니다.

     


    2. DBMS

    2.0. DB

    DBMS를 알기 위해서는 먼저 DBMS를 구성하는 요소인 DB(데이터베이스)에 대해서 알아야겠죠?
    DB(Database)여러 사람이 공유하고 사용할 목적으로 통합 관리되는 정보의 집합을 말합니다.
    흩어져 있는 데이터들을 논리적으로 연관된 하나 이상의 자료 모음으로 구조화함으로써 검색이나 갱신할 때 효율을 높여줍니다.
    더 간단하게 말하면 정보를 정리해서 처리를 효율적으로 하기 위해서 DB를 구조화하는 것입니다.

    DB(데이터베이스)의 특징으로는 아래와 같습니다.

    • 사용자의 요청에 대한 실시간 접근성
    • 여러 사용자가 동시에 원하는 데이터를 공유할 수 있는 동시 공유
    • 응용프로그램과 DB 사이의 논리적 독립성 구축
    • 사용자가 직접 요구하는 내용에 의한 참조
    • 삽입 삭제 갱신을 통해 데이터들을 실시간으로 관리하는 동적 갱신


    위와 같은 특징들을 이용해서 얻을 수 있는 장점은 아래와 같습니다.

    • 데이터 중복을 최소화
    • 데이터의 공유
    • 데이터의 일관성/무결성/보안성 유지
    • 최신의 데이터 유지
    • 데이터 표준화
    • 데이터 저장공간 절약
    • 데이터의 물리적/논리적 독립성
    • 용이한 데이터 접근


    이처럼 다양한 장점을 가진 DB는 우리들에게 꼭 필요한 존재라고 볼 수 있겠죠?

    2.1. DBMS

    DB에 대해 공부했으니, 이제 DBMS에 대해 알아보겠습니다.
    DBMS(DataBase Management System, 데이터베이스 관리 시스템)데이터를 조작하는 별도의 소프트웨어로, 이 DBMS를 통해 우리는 데이터베이스를 관리하여 응용 프로그램들이 데이터베이스를 공유하고 사용할 수 있는 환경을 제공하게 됩니다.

    DBMS의 기능은 아주 다양합니다.
    데이터 정의, 데이터 구축, 데이터 조작, 데이터 공유, 데이터 보호, 데이터 유지보수 등이 있습니다.
    이런 다양한 기능들을 통해 사용자가 데이터에 접근하여 조작할 수 있게 하고, 모아놓은 데이터를 쉽게 관리하고 유지보수 할 수 있도록 도와주는 역할을 하게 되는 것이죠.

    2.2 DBMS의 종류

     

    출처 : https://velog.io/@rlcjf0014/Database-SQL-vs-NoSQL


    DBMS는 대표적으로 관계형 데이터베이스(SQL)와 NoSQL(Not Only SQL / Non-Relational Operational Database SQL) 데이터베이스로 나뉩니다.
    비관계형 데이터베이스의 경우 영어 표현이 두 가지가 있는데, 두 가지 의미 모두 사용됩니다.
    관계형 베이스가 아닌 것을 NoSQL이라고 부르기도 하고, SQL 문법을 사용하면서 다른 것도 같이 사용할 수 있다는 맥락에서 NoSQL이라고 부르기도 합니다.

    관계형 데이터베이스의 경우 보통 정형화된 텍스트를 다루는 경우가 많으며, 일반적으로 noSQL에 비해 높은 성능을 보여줍니다.
    SQL은 작업을 하기 전에 정해진 엄격한 스키마를 구상해서 데이터의 구조와 연결을 모두 해 줘야 합니다.
    조금 피곤한 대신 적절한 연결을 통해 굉장한 성능을 얻을 수 있는 것이죠.
    이처럼 빠른 성능이 꼭 필요한 경우에는 관계형 데이터베이스(SQL)을 사용하는 경우가 많습니다.
    주요 제품으로는 마이크로소프트사의 MS-SQL, 오라클사의 Oracle, IBM의 DB2, 오픈소스로 공개되어있는 SQLite 등이 있습니다.

    반대로 NoSQL의 경우는 Not Only상태에서는 굉장히 유연한 데이터 모델링이 가능합니다.
    텍스트 위주의 SQL과는 다르게 사진 등의 동적인 요소들도 잘 보관할 수 있도록 만들어진 것이 바로 NoSQL이기 때문이죠.
    다만 무조건 좋은 것은 아니고, 데이터의 중복이 많은 경우 SQL을 사용하는 것이 더 적절한 경우일 수 있습니다.
    NoSQL의 종류에는 최근 빠르게 떠오르고 있는 MongoDB, CouchDB 등이 존재합니다.


     

    반응형
    • 네이버 블로그 공유하기
    • 네이버 밴드에 공유하기
    • 페이스북 공유하기
    • 카카오스토리 공유하기