관리 메뉴

개발하는 동그리

[SQL] 소개 본문

IT 정보/기타 정보

[SQL] 소개

개발하는 동그리 2022. 6. 9. 13:12
반응형
  1. In - Memory
    • JavaScript에서 데이터를 다룰 때 프로그램이 실행될 떄만 존재하는 데이터 
    • JavaScript에서 변수를 만들어 저장한 후 프로그램을 종료하면 데이터도 함께 사라짐
    • 변수나 데이터가 프로그램에 의존 ( 데이터의 수명, 프로그램 실행여부, 데이터 보호 ) 
  2. File I/O
    • 장점
      • 파일을 읽는 방식으로 작동하는 형태 
      • 엑셀 시트나 CSV 같은 파일에 적절한 방식
    •  단점
      • 데이터가 필요할때 전체 파일을 읽어야해서 파일이 커질 수록 비효율적
      • 파일이 손상되거나 여러개 파일을 다룰 때 복잡해지고 비효율적
  3. 관계형 데이터베이스 
    • 하나의 CSV 파일이나 엑셀 시트 한개의 테이블로 저장이 가능
    • 한번에 여러개의 테이블을 가질 수 있어서 SQL을 활용해 데이터를 사용하기에 효율적

 

SQL 이란!? 

SQL (Structured Query Language)은 데이터베이스 언어로 관계형 데이터베이스에서 사용된다. 

Query 란!?

  • 저장된 데이터를 검색어로 필터링 하는 것
  • 따라서 데이터 베이스에 쿼리를 보내 원하는 데이터를 가져오거나 삽입할 수 있다. 
  • 구조화된 데이터만 SQL을 사용할 수 있다 ( NoSQL 같은경우 구조가 고정되어 있지 않아 사용 불가 )

 

트랜잭션 (Transaction)이란?

  • 여러 개의 작업을 하나로 묶은 실행 유닛 
  • 각 트랜잭션은 하나의 특정 작업으로 시작해 묶여 있는 모든 작업을 완료하면 종료된다. 묶인 작업중 하나라도 실패하면 모든 작업은 실패한 것으로 판단한다. 성공 또는 실패 두가지 결과만 존재한다. 
  • 데이터베이스 트랜잭션은 ACID라는 특성을 가지고 있다. 

 

ACID

  • Atomicity (원자성) : 트랜잭션에 있는 작업이 실패했다면, 일부 성공한 작업에 대해서도 실패로 만들어 데이터 보호 
  • Consistency (일관성) : 기존의 상태(규약이나 규칙)를 유지해야 한다. ( 이름이 반드시 필요한 경우 이름 없이 추가하거나 삭제할 수 없다. ) 
  • Isolation (격리성, 고립성) : 다른 트랜잭션과 독립되야 한다. ( 다른 트랜잭션의 내용을 할 수 없고, 순서에 무관 )
  • Durability (지속성) : 트랜잭션이 성공시 로그가 남아야 함 ( 은행권에서 입금 후 데이터베이스 오류가 발생하도 입금한 로그를 확인할 수 있어야 함 )

 

SQL / NoSQL

데이터 베이스는 구조화 쿼리언어와 비구조화 쿼리언어로 구분할 수 있는데, 관계형은 SQL, 비관계형은 NoSQL로 데이터를 다룬다. 각각 만들어지는 방식, 정보의 종류, 저장 방법등의 차이가 있다. 관계형 데이터 베이스 (SQL)

  • 테이블의 구조와 데이터 타입을 사전의 정의
  • 테이블의 정의된 내용만 데이터 삽입 가능
  • 행과 열로 구성된 테이블에 데이터 저장
  • 각 열은 하나의 속성에 대한 정보 
  • 행은 각 열의데이터 형식에 맞는 데이터 저장
  • 형식에 맞게 저장된 데이터베이스는 SQL을 활용해 원하는 정보를 쿼리할 수 있고, 이를 스키마가 뚜렷하다라고 표현한다. 
  • 테이블간의 관계를 직관적으로 파악할 수 있다. 

 대표적인 관계형 데이터 베이스 : MySQL, Oracle, SQLite, PostgresSQL, MariaDB

 

비관계형 데이터 베이스 (NoSQL)

  • Key-Value 타입 : 속성과 데이터 값으로 연결된 데이터 값 (Redis, Dynamo)
  • 문서형 데이터베이스 : 데이터를 문서처럼 저장 (MongoDB) 
  • Wide-Column 데이터베이스 : 데이터베이스의 열에 대한 데이터를 집중관리하는 데이터 베이스, 규모가 큰 데이터 분석에 주로 사용되며, 대표적으로 (Cassandra, HBase)
  • 그래프 데이터베이스 : 자료구조의 그래프와 비슷한 형식으로 데이터의 관게를 구성 (Neo4J, InfiniteGraph)

 

 

반응형

'IT 정보 > 기타 정보' 카테고리의 다른 글

[SQL] ERD (Entity Relationship Diagram)설계  (14) 2022.06.10
[SQL] 명령어 모음  (9) 2022.06.09
IntelliJ Plugin 추천 - (5가지)  (13) 2022.05.16
Git 기초 (1편)  (10) 2022.05.02
리눅스 [Linux]  (0) 2022.05.02