본문 바로가기
내가 보려고 정리한 DB

[데이터베이스] OT

by nacastle 2020. 4. 19.

"모든 IT 운영의 밑단에는 소프트웨어 개발이 있다 "

 

1. IPO (Input, Process, Output)

'투입 -> 처리 -> 산출'

 

2. 데이터 - 정보 - 지식

- 데이터(Data): 현실세계에서 단순히 관측될 수 있는 자료들

- 정보(Information): 데이터를 처리하여 만든 의미있는 자료

- 지식(Knowledge): 정보에 가치를 부여한 것


3. DB (Database)

"여러 사람들과 공유하고 함께 사용할 목적으로 만든 데이터 집합체"

 

DB의 종류

계층형, 네트워크형, 관계형, NoSQL

계층형: 데이터 관계를 트리 구조로 정의. 부모, 자식 형태를 갖는 구조

네트워크형: 계층형의 데이터 중복 문제를 햐결, 레코드(행) 간의 다양한 관계를 그물처럼 갖는 구조

관계형: 행, 열로 구성된 table의 관계를 나타냄...SQL을 사용하여 데이터 관리 및 접근

NoSQL: 키와 값 형태로 데이터를 저장...키로 데이터에 접근하거나 데이터를 관리함

 

4. DBMS (Database Management System) 

"데이터베이스를 관리하는 소프트웨어"

(ex. 오라클, MySQL)

RDBMS의 예: Oracle > SQLServer >  MySQL (성능 기준) 

 

4.1 DB와 DBMS의 차이

DB를 만들고 관리하는 프로그램이 DBMS

 

 

 

5. 정형 데이터 / 반정형 데이터 / 비정형 데이터

- 정형 데이터 (Structured Data)

"행과 열로 이루어진 정제되고 구조화된 데이터"

RDBMS(관계형 DBMS)의 테이블에 저장되어있는 데이터라 할 수 있다. 

ex) 엑셀 시트

 

- 비정형 데이터 (Unstructured Data)

"구조화되지 않은 데이터"

ex) 텍스트, 그림, 영상

 

- 반정형 데이터 (Semi-Structured Data)

"메타데이터 특성을 가진 데이터"

파일 형식으로 저장 가능

ex) xml(마크업 언어), html, json

 

cf) 메타데이터

"데이터를 위한 데이터로, 속성정보라고도 한다."

사전적 정의: 찾고자하는 데이터를 효율적으로 찾아내기 위해 일정한 규칙에 의거해 컨텐츠에 부여해주는 데이터

 

 

6. RDBMS (Relational Database Management System)

"행과 열로 이루어진 데이터를 관리하는 소프트웨어"

RDB를 생성, 수정, 관리할 수 있는 소프트웨어

ex) Oracle, MySQL

 

cf) RDB (Relational Database)

"2차원의 테이블 형태로 표현된 데이터베이스 (개체관의 관계를 표현한 것)"

 

 

7. SQL (Structured Query Language: 구조화 질의 언어)

IBM에 의해 개발된 "관계형 데이터베이스를 다루는 언어"

사용자가 데이터를 조회하고 싶을 때에 SQL 문으로 작성한 요청을 RDBMS에 보내면 RDMBS는 요청된 데이터를 반환한다. 이 때 RDMBS는 2차원 표 형태의 데이터를 반환한다.

 

7-1. SQL의 특징

1. 관계형 DBMS에 접근하는 유일한 언어

2. ANSI/ISO-SQL * 미국산업표준화기구(ANSI: American National Standards Institute)

3. English-Like: SQL 명령어의 문법적인 구조 및 의미 / SQL 명령어는 대-소문자를 구분하지않는다(Case-Insensitive)

4. 비절차적 언어 (Non-Procedural Language)

 

cf) ANSI(American National Standards Institute): 미국 국가표준 협회

미국에서 제품, 서비스, 과정, 시스템, 인력관리 분야에서 표준을 개발하는 것을 감독하는 비영리 민간 기구로서, 미국을 대표하여 국제 표준화 기구(ISO)에 가입. ANSI 표준이 ISO 표준이 되기도 한다.

 

cf) 비절차적 언어 vs 절차적 언어

절차적 언어 :사용자가 어떤 데이터가 필요하면 필요한 데이터를 어떻게 구하는지 절차에 맞게 구체적으로 명시하는 것 

비절차적 언어 :사용자가 어떤 데이터가 필요한지만을 명시하고 어떻게 구하는지 절차에 맞게 명시하지 않은 언어, 배우기 쉽고 사용하기 쉬우나 코드의 효율성 면에서 비효율적 

[출처] 절차적 언어 / 비절차적 언어|작성자 Objective Art

 

9. PL/SQL

상용 관계형 데이터베이스 시스템인 오라클 DBMS에서 SQL 언어를 확장하기 위해 사용하는 컴퓨터 프로그래밍 언어

절차적 프로그래밍 가능 (SQL은 비절차형 언어임)

(오라클 관리)

 

9. Pro*C

C 언어를 이용해서 오라클 데이터베이스를 사용하기 위한 언어

절차적 프로그래밍 가능 (SQL은 비절차형 언어임)

오라클에서 제공해주는 선행 컴파일러

 

cf) 컴파일러: 프로그래밍 언어로 작성된 인간의 의도(프로그램)를 기계(컴퓨터)가 이해하게 기계어로 변환하는 변환기

cf) 기계어: 기계가 이해하는 2진 숫자(0과 1)로 작성된 언어

 

 

10. MySQL

"세계에서 가장 많이 쓰이는 오픈 소스의 관계형 DBMS"

(오라클이 관리)

 

11. NoSQL (Not only SQL 혹은 non-SQL)

"비관계형 DBMS"

기존의 관계형 데이터베이스 보다 더 융통성 있는 데이터 모델을 사용하고, 데이터의 저장 및 검색을 위해 특화된 메커니즘을 제공하는 DBMS

기존 관계형 DBMS가 갖고 있는 특성뿐만 아니라, 다른 특성들을 부가적으로 지원함

 

2000년 후반으로 넘어오면서 인터넷이 활성화되고, 소셜네트워크 서비스 등이 등장하면서 관계형 데이터 또는 정형데이터가 아닌 데이터, 즉 비정형데이터라는 것을 보다 쉽게 담아서 저장하고 처리할 수 있는 구조를 가진 데이터 베이스들이 관심을 받게 되었고, 해당 기술이 점점 더 발전하게 되면서, NoSQL 데이터베이스가 각광을 받게 된 것

출처: https://www.samsungsds.com/global/ko/support/insights/1195843_2284.html

 

 

12. HTML과 XML

12-1. HTML (Hypertext Markup Language)

"웹 문서를 만들기 위하여 사용되는 마크업 언어 (esp. 하이퍼텍스트)"

 

cf) 하이퍼텍스트사용자가 연상하는 순서(비순차적)에 따라 원하는 정보를 얻을 수 있는 시스템의 텍스트

cf) 마크업 언어: 문서의 논리적 구조와 배치 양식에 대한 정보를 표현하는 언어

문서에 포함된 문장이나 그림, 표, 소리 등과 같은 문서 내용에 대한 정보가 아니라 그 문장과 그림, 표는 어떻게 배치되고 글자는 어떤 크기와 모양을 가지며, 들여쓰기와 줄 간격, 여백 등에 대한 정보를 의미한다.

 

12-2. XML (eXtensible Markup Language)

"HTML을 획기적으로 개선하여 만든 마크업 언어"

 

12-3. HTML vs XML

HTML이 데이터의 표현에 그 목적을 두고 있다면 / XML은 데이터 교환을 위한 구조정의에 그 목적을 두고 있다.

HTML이 정해진 태그를 가지고 표현하는 것이라면 / XML은 사용자가 태그를 정의해서 사용할 수 있다.

HTML이 인터넷 웹 환경에서 작동되는 언어라고 본다면 / XML은 어느 특정 환경에 구애를 받지 않는다.
HTML이 데이터와 그 표현을 동시에 하고 있다면 / XML은 데이터만을 가지고 있을 뿐 그 표현은 하고 있지 않다.

 

출처: https://www.crocus.co.kr/1493 [Crocus]

 

 

13. JSON (Javascript Object Notation)

데이터 객체를 속성 · 값의 쌍 형태로 표현하는 형식

 

13-1. JSON과 XML

1. JSON은 종료 태그를 사용하지 않습니다.

2. JSON의 구문이 XML의 구문보다 더 짧습니다.

3. JSON 데이터가 XML 데이터보다 더 빨리 읽고 쓸 수 있습니다.

4. XML은 배열을 사용할 수 없지만, JSON은 배열을 사용할 수 있습니다.

5. XML은 XML 파서로 파싱되며, JSON은 자바스크립트 표준 함수인 eval() 함수로 파싱됩니다.

 

 

XML과 JSON의 차이

 

출처: http://tcpschool.com/json/json_intro_xml

 

 

14. 서버 (SERVER)

"클라이언트에 정보나 서비스를 제공하기 위한 장치 또는 소프트웨어를 가리키는 용어"

 

cf) 클라이언트: "서버에서 보내 주는 정보나 서비스를 받는 측 또는 요구하는 측의 컴퓨터 또는 소프트웨어"

 


15. Data Modeling

주어진 개념으로부터 논리적인 데이터 모델을 구성하는 작업을 말하며, 일반적으로 이를 물리적인 데이터베이스 모델로 환원하여 고객의 요구에 따라 특정 정보 시스템의 데이터베이스에 반영하는 작업을 포함한다. 후자의 의미로 흔히 데이터베이스 모델링으로 불리기도 한다.

출처: https://ko.wikipedia.org/wiki/%EB%8D%B0%EC%9D%B4%ED%84%B0_%EB%AA%A8%EB%8D%B8%EB%A7%81

 

반응형