호기심으로 시작한 Frontend 꾸준함으로 채워나가는 Developer

[혼공얄코] Chapter 02-7 디지털 시대, 데이터와 데이터베이스의 이해 본문

혼공 시리즈/혼공얄코

[혼공얄코] Chapter 02-7 디지털 시대, 데이터와 데이터베이스의 이해

RachelLee 2024. 1. 25. 12:10

정보를 구성하는 자료 데이터데이터베이스

- 데이터 : 어떤 의미나 목적 없이 단순히 수집된 순수한 자료, 정보보다 더 작은 개념

- 정보 : 데이터가 모여 의도나 목적에 따라 분석되어 의미 부여됨

- 데이터베이스 : 데이터 + 기지, 많은 양의 데이터를 한데 모아 놓은 곳, 수정 삭제 할 수 있는 데이터의 집합  

데이터 창고를 관리하는 프로그램 DBMS

- 데이터베이스를 구축하기 위한 전문적인 프로그램 DBMS (DabaBase Management System)

- 특정 데이터를 저장, 조회, 삭제, 수정 가능

- 중복되거나 잘못된 형식으로 저장되는 것을 방지해서 양질의 데이터베이스를 유지

- 외부의 접근을 통제하고 사용자마다 권한을 지정해서 보안을 유지할 수 있음

- 허용된 사용자가 원하는 대로 데이터를 살펴보고 조작할 수 있도록 여러가지 인터페이스를 제공

- MySQL, MongoDB, 레디스 등

데이터베이스계의 오랜 대세 관계형 데이터베이스

- 엑셀과 유사한 방식, 테이블(표)에 데이터를 저장하는 방식

- 열과 행으로 이루어져 있고 형식을 미리 설정하여 잘못된 데이터 입력을 방지

 

오라클 데이터베이스

- 미국 거대 IT기업 오라클에서 만든 제품

- 은행, 대기업에서 사용할 만큼 강력한 기능과 안정성을 자랑, 다양한 운영체제에서 운영이 가능

- 유료, 비교적 높은 가격

 

MySQL

- 오라클과 점유율 1,2 위를 다투며 스타트업, 소기업 또는 개인 용도로 사용

- 소스 코드가 공개된 오픈 소스 제품, 용도에 따라 무료로 사용 가능

- 2010년 오라클에 인수되었지만 아직 오픈 소스로 제공되고 있다.

 

 마이크로소프트 SQL 서버

- MSSQL 이라고 불리며 마이크로소프트에서 만든 제품

- 윈도우 서버에서만 구동이 가능, 윈도우 프로그래밍이 가능한 C# 과 높은 호환성을 가짐

- 라이센스별로 금액이 다르고 가용 범위도 다르다.

 

PostgreSQL

- 무료로 사용할 수 있는 오픈 소스 데이터베이스

- 다양한 데이터 타입을 지원하며 객체지향 프로그래밍을 적용할 수 있는 등

  개발자에게 편리한 기능을 갖추고 있어 점점 인기가 많아짐

 

MariaDB

- 오라클에 인수되면서 오픈 소스 사용이 불확실해짐에 따라 PostgreSQL과 함께 대안으로 사용되는

  오픈 소스 무료 데이터베이스

- MySQL5.5버전에서 분리되어 독자적으로 발전, MySQL과 높은 호환성을 갖음

 

SQLite

- 서버가 아닌 클라이언트에서 작동하는 용도로 만들어졌다.

- 비교적 가벼운 데이터베이스로 안드로이드와 iOS에 포함되어 있으며 응용 프로그램 실행에 필요한 데이터를

  기기 내에서 관리하는데 사용

 

관계형 데이터베이스 언어 SQL

- 텍스트로 작성된 명령어로써 데이터를 처리하기 위한 SQL(구조화 질의 언어, Structured Query Language)

 

SELECT Name, Birthday FROM Students WHERE Sex = '남';

=> Students 테이블에서 성별이 '남'dls godemfdml 'Name'과 'Dormitory' 열을 선택해서 조회 하라는 의미

INSERT INTO HRTeacher (NAME, Class) VALUES ('조범수', 6);

=> Teacher 테이블에 6반 담임 '조범수'를 추가합니다

UPDATE Students SET class = 6 WHERE Name = '이서아';

=> Students 테이블에서 이름이 '이서아'인 학생을 6반으로 이동

DELETE FROM Students WHERE Name = '지수호';

=> Students 테이블에서 이름이 '지수호'인 학생을 삭제

 

관계형 데이터베이스를 제외한 DBMS NoSQL

- 서비스나 프로그램에 따라서는 관계형 데이터베이스가 가장 효과적인 방식

 

문서 데이터베이스

- 문서의 형태로 저장

- MongoDB, CouchDB 등이 있음

 

키-값 데이터베이스

- 키와 값의 쌍만을 저장하는 단순한 형태의 데이터베이스

- 실행 속도 빠르며, 용량 부족 시 다른 서버와의 분담이 용이한 수평 확장성을 갖고 있음

- 레디스, 아마존 다이나모DB, 맵캐시드 등


그래프 데이터베이스

- 가족 구성원과의 관계도처럼 각 구성원을 뜻하는 여러 노드(node)와 그들 간의 관계를 뜻하는 엣지(edge)로

  구성된 자료 구조를 뜻함

- 데이터베이스는 여기에 각 노드의 정보인 프로퍼티(property)를 더해서 데이터로 저장

- SNS에서 사용자 간의 친구 관계를 구현하는 용도로 유용하게 사용

- Neo4j, JanusGraph 등

 

확인문제

더보기

1. 다음 중 문장에 들어갈 알맞은 단어를 보기에서 찾아 써 보세요.

- 데이터를 분석하여 통계로 나타내거나 의미를 갖게 된 것을 (정보)라고 하며,

   데이터가 전산상에 집합으로 구축된것을 (데이터베이스) 라고 합니다.

- 데이터베이스를 구축하고 관리하는 프로그램은 (DBMS)입니다.

 

2. 다음 중 틀린 설명을 고르세요. 

3 NoSQL 은 테이블을 분할해서 효율적으로 데이터를 저장할 수 있습니다.

 

3. 다음 중 문장에 들어갈 알맞은 단어를 보기에서 찾아 써 보세요.

RDBMS의 테이블은 (행)와 (열)으로 구성되어 있으며, 그 안의 데이터를 다루기 위해 (SQL) 이란 언어를 사용합니다.

 

4. 다음 중 용도에 적합한 데이터베이스의 종류를 써 보세요

- 단순한 구조의 데이터를 빠르게 처리하여 로그인 등을 구현 (키-값 데이터베이스)

- 여러 요소 간의 관계 표현 (그래프 데이터베이스)

- 체계적이고 일관된 다량의 데이터 보관 및 처리 (관계형 데이터베이스)

- 형태가 일정하지 않은 데이터를 문서 단위로 처리 (문서 데이터베이스)