분산파일시스템
데이터베이스
시스템에 디지털 방식으로 저장된 구조화된 정보 또는 데이터의 체계적인 집합(스키마), DBMS에 의해 소프트웨어에 의해 제어
Oracle, MySWL/MariaDB, MS SQL 등
스키마가 지정되지 않은 MongoDB, Cassadra 등
스키마를 지정하지 않은 데이터베이스는 <key:value>타입 저장
구조화 질의 언어
SQL 데이터를 쿼리, 조작, 정의하고 엑세스 제어를 제공할 목적으로 거의 모든 관계형 데이터베이스에서 사용되는 프로그래밍 언어
ANSI SQL: ASNI C 언어 사용
Scala, Spark: 분산파일 시스템에서의 빅 데이터 쿼리
PL/SQL: 인간의 언어와 유사한 프로그래밍의 특화된 언어
스프레드시트 vs 데이터베이스
- 스프레드시트는 단일 사용자를 위해 설계, 단일 사용자 또는 적은 수의 사용자가 활용하기 좋으나, 방대한 양의 조직화된 정보를 보관하도록 설계됨
- 데이터베이스의 경우 다수의 사용자가 매우 복잡한 로직과 언어를 사용해서 동시에 신속하고 안전한 방식으로 데이터에 액세스하여 쿼리를 실행 할 수 있음.
DATABASE 종류
- 관계형 데이터베이스: 구조화된 정보에 액세스 할 수 있는 가장 효율적이고, 유연한 방식 제공
R-DBMS: 하나의 많은 요소들이 들어가 있는 테이블을 목적에 맞게 테이블을 분할하고, 컬럼 명을 원본 테이블의 한 컬럼 명과 관계를 만들어 두 테이블이 연결되게 하는 기법
- 객체 지향형 데이터베이스 : 저보는 객체 형태로 표현
- 분산 데이터베이스= Hadoop : 서로 다른 곳에 존재하는 두 개 이상의 파일로 이루어져, 동일한 물리적 장소에 분산되어 위치하거나, 다른 네트워크에 분산되어 있음
데이터 웨어하우스
- NoSQL: 비 관계형 데이터베이스, 입력되는 모든 데이터의 구성 방식을 정의(스키마)를 하지 않아, 비정형 데이터와 반정형데이터가 저장 및 조작 될 수 있음
- 그래프 데이터베이스: 개체, 개체 간의 관계 측면에서 데이터 저장, 보관의 node, 노드 간 관계와 방향성 표현, property로 구성
- 오픈 소스 데이터베이스
시스템은 소스 코드가 오픈 소스인 데이터 베이스로 SQL or NoSQL 포함
- 클라우드 데이터베이스
정형/비정형 데이터의 집합으로, 서비스형 데이터 베이스가 있음 (DBaaS_서비스 제공 업체가 관리 업무와 유지보수 서비스를 제공)
분산된 데이터를 클론 데이터라고 하고, 무정전 형태를 이루게 만듬
CDN 네트워크와 유사하다고 볼 수 있음: 복제한 서버를 각 지역에 분산시켜서, 사용자가 접속할 수 있도록 함.
OLTP and OLAP
OLTP: 데이터베애스는 빠른속도의 분석용 데이터 베이스, 다수의 사용자에 의해 수행되는 다량 트랜잭션위해서 설계
OLAP: 분석 위주
온프레미스: 데이터베이스와 관련해 많은 역략을 요구할 지 모름
테이블 구조
스키마: 논리적인 데이터 구조, 스키마 객체의 모음 사용자가 지정 스크미 객체는 SQL로 생성되고 조작됨
데이터베이스에 저장되는 공간을 Tablespace
디스크에 데이터베이스 저장, 각 스키마로 지정된 테이블 저장, 테이블은 분산되어 저장
데이터베이스 기능정으로 분류
- DDL: 데이터베이스 관리자 혹은 응용 사용자가 논리적 구조를 정의하기 위해 사용
CREATE, ALTER,DROP,RENAME,TRUNCATE가 있음
- DML: 데이터베이스의 데이터를 조작하기 위해 사용하는 언어, 검색 추가 삭제 갱신 등
INSERT, DELETE, UPDATE, SELECT 등
- DCL: 데이터 제어어로 접근 권한 부여 등의 데이터베이스 시스템의 트랜잭션을 관리하는 목적으로 사용
GRANT, REVOKE
- TCL: 트랜잭션 제어어로 DML에 의해 변경된 내용을 완성,저장 취소 함
COMMIT ROLLBACK SAVEPOINT <- redo, undo등을 사용
SQL 쿼리를 실행하면 임시로 메모리 상에 저장되기에, 완료 취소가 가능 임시의 메모리에 저장되어있기에 이를 완성하면 실행하는거고, 취소 할 수 있음
이후 트랜잭션을 이용하여 사용할 수 있음