51일차 TIL 210520

image

1. SQL ?

  • structured query language : 구조화된 query 언어. 데이터 베이스용 프로그래밍 언어.
  • query 란 ? 질의문 저장되어있는 정보를 필터하기 위한 질문’
  • 데이터베이스는 왜 필요할까 ? in-memory : 끄면 데이터가 없어짐 file i/o : 원하는 데이터만 가져올 수 없고 항상 모든 데이터를 가져온 후 필터링 해야한다.
  • 데이터베이스는 엑셀과 거의 흡사하다.

2. SQL 문법

  • SELECT : 데이터셋에 포함될 특성들을 특정한다.
  • FROM : 결과들을 도출해낼 데이터베이스 테이블을 명시한다.
  • WHERE : 필터 역할을 하는 쿼리문 // 문자열에서 특정값과 비슷한 값을 필터할떄 WHERE 특성_2 LIKE "%특정문자열%"
  • INNER / OUTER JOIN
  • 실행 순서 FROM > WHERE > GROUP BY > HAVING > SELECT > ORDER BY

3. ACID // 관계형은 철처히 ACID 를 준수한다

  • 트랜잭션 : 여러개의 작업들을 하나의 실행 유닛으로 묶어준 것. 작업이 하나라도 실패를 하면 트랜잭션도 실패이고 모든 작업이 성공이면 트랜잭션이 성공이다.
  • Atomicity ( 원자성 ) : 하나의 트랜잭션이 전부 성공하거나 전부 실패해야 한다.
  • Consistency ( 일관성 ) : 하나의 트랜잭션 이전과 이후 데이터 베이스 상태는 이전과 같이 유효해야 한다. ex) 각 고객은 이름이 있어야 한다. 기존 고객의 이름을 삭제하면 안된다.
  • Isolation ( 고립성 ) : 하나의 트랜잭션이 다른 트랜잭션과 독립되어야 한다. 동시에 여러개의 트랜잭션들이 수행될 때에 각 트랜젝션은 고립되어있어 연속으로 실행된 것과 동일한 결과를 나타내야 한다.
  • Durability ( 지속성 ) : 하나의 트랜젝션이 성공적으로 수행 되었다면 해당 트랜잭션에 대한 로그가 남고, 런타임 오류나 시스템 오류가 발생해도 해당 기록은 영구적이어야 한다.

4.nosql(비구조화 쿼리 언어)

  • NOSQL : 데이터가 고정되어있지 않은 데이터 베이스 형태들. NOSQL이 스키마가 반드시 없는것은 아니다. 데이터를 읽어올 때 스키마에 따라 읽어온다.
  • 여러 타입이 있다 : key-value 타입, 문서형 데이터 베이스, wide-column 데이터 베이스, 그래프 데이터 베이스

5. sql 과 nosql 의 차이점

  • 데이터 저장 방식
  • 스키마 : sql을 사용하려면 형식이 고정된 스키마가 필요하다. 처리하려는 데이터 속성별로 열에 대한 정보가 미리 정해져야 한다. nosql 은 스키마의 형태가 보다 동적이다.
  • 쿼리 : 비관계형 데이터베이스의 쿼리는 데이터 그룹 자체를 조회하는 것에 초점을 두고 있다. 구조화되지 않은 쿼리 언어로도 데이터 요청이 가능하다.
  • 확장성 : nosql로 구성된 데이터 베이스는 수평적으로 확장된다 ( 보다 값싼 서버 증설, 또는 클라우드 서비스 이용하는 확장) 때문에 수직적 확장보다 비용 효율성이 좋다.

6. sql 기반의 관계형 데이터베이스를 사용하는 예

  • 데이터 베이스의 acid 성질을 준수해야 하는경우 ex) 전자상거래, 금융서비스를 위한 소프트웨어 개발
  • 소프트웨어에 사용되는 데이터가 구조적이고 일관적인 경우

7. nosql 기반의 비관계형 데이터베이스를 사용하는 예

  • 데이터 구조가 거의 또는 전혀 없는 대용량의 데이터를 저장하는 경우. 정형화되지않은 많은 양의 데이터가 필요한 경우.
  • 클라우드 컴퓨팅 및 저장공간을 최대한 활용하는 경웅
  • 빠르게 서비스를 구축하고 데이터 구조를 자주 업데이트 하는 경우

8. 스키마?

  • 스키마는 데이터베이스에서 데이터가 구성되는 방식과 서로 다른 엔티티간의 관계에 대한 설명
  • 엔티티 : 고유한 정보의 단위 (데이터베이스에서 테이블로 표현이 된다)
  • 각 엔티티에는 해당 엔티티의 특성을 설명하는 필드가 있다 ( 열, column )

9. 테이블간 관계

  • N:N ex) 수업, 학생 : 각 수업은 여러명의 학생들로 구성되어 있다. 그리고 각 학생 또한 여러개의 수업을 듣고 있다. ! 항상 갯수의 관점에서 생각해보기

Updated: