상세 컨텐츠

본문 제목

쉽게 설명하는 데이터베이스와 SQL

AI와 동고동락, 좋은 파트너

by 쭈미k 2024. 5. 28. 08:52

본문

728x90
데이터베이스란?
정보를 모아두는 큰 전자 파일. 여러가지 정보를 정리하고 저장하는 곳을 의미한다.
예를 들어, 도서관에 어떤 책들이 있는지, 누가 빌려갔는지를 기록하는 등의 큰 컴퓨터 파일을 의미한다.
SQL(Structured Query Language)이란?
데이터베이스의 언어. 언어를 사용해서 데이터베이스에 질문을 하거나 정보를 추가/수정할 수 있다.
데이터베이스와 대화하는 방법 언어 중 하나이다.
기획자 역할1)요구사항 분석
데이터베이스를 만들기 전에 무엇이 필요한지 알아보는 과정.
예를 들어, "학교 도서관 데이터베이스"를 만든다고 하면 1)어떤 책이 있는가 2)학생들의 이름 3)학생들의 학년 4)책을 빌린 날짜 등등, 어떤 정보들이 필요한지 알아보는 것이다.
기획자 역할2)개념적 설계
요구사항 분석을 통해 나온 정보를 바탕으로, 데이터베이스가 어떻게 생겼는지 도식화를 한다.
데이터베이스 안에 어떤 정보들이 들어갈지, 그 정보들이 서로 어떻게 연결될지 생각한다.
예를 들어, 학생과 책은 어떻게 연결될지, 학생이 책을 빌릴 때에는 어떤 정보가 필요한지 생각하는 설계이다.
개발자 역할) 논리적 설계와 물리적 설계
데이터베이스를 실제로 어떻게 만들지 더 자세히 계획하고, 실제 컴퓨터 시스템에 적용해서 데이터베이스를 만든다.

 

데이터베이스의 특징

통합 저장 공용 변화 운영
다양한 정보를 한 곳에 모아서 정리 정보를 안전하게 저장 여러 사람이 함께 사용 정보는 계속 업데이트됨 실제 생활의 사용되는 정보
수학, 과학, 국어 등 다양한 과목을 한 권에 모아두는 것처럼 한 곳에 모아서 관리하는 것
데이터가 중복되지 않게 함
자료를 컴퓨터에 저장해두면 언제든 꺼내볼 수 있는 상태처럼 안전하게 보관하는 것 도서관 책처럼 한 사람이 빌려가도 돌려주면 다른 사람이 볼 수 있는 것. 여러사람이 정보를 함께 사용하고, 서로 정보를 주고받을 수 있는 것
대용량이 되며, 구조가 복잡해질 수 있음
새롭게 들어오는 정보가 계속 추가되고, 오래된 정보는 업데이트됨
정확한 데이터를 유지하기 위함으로 업데이트가 안되는 데이터베이스는 가치가 없음. 이는 파일로 저장하는게 훨씬 효율적
조직내 필요한 업무에 쓰이는 중요한 기록을 담음

 

데이터베이스의 종류

앞서 만들어진 과정으로 만들어진 데이터베이스를 어떤 목적으로 사용되는지

OLTP
(Online Transaction Processing)
OLAP
(Online Analytical Processing)
CRM
(Customer Relationship Management)
SCM
(Supply Chain Management)
ERP
(Enterprise Resource Planning)
DI
(Data Integration)
많은 사람이 동시에 여러가지 일을 할때 사용하는 데이터베이스. 동시에 정보를 빠르게 처리하고 저장함 데이터를 분석하고 이해하는 데이터베이스. 예를 들어, 시험 결과를 분석하고 어떤 과목을 더 공부해야하는지, 어떤 학생이 잘했는지 알아보는 것처럼 데이터를 모아 분석하고 중요한 정보 추출 고객과 관계를 관리하는 데이터베이스. 고객 정보를 모아서 더 나은 서비스를 제공할 수 있도록 기록해두는 것. 물건이 어떻게 이동하고 어디에 있는지 관리하는 데이터베이스. 물건 관리에 수월. 회사의 모든 자원과 활동을 한 곳에서 관리하게 도와주는 것. 모든 물품과 일을 관리하는 일지. 흩어진 정보들을 모아서 하나의 큰 데이터베이스로 만드는 것

데이터베이스 시스템의 구성 4가지 레이어

 
  • 사용자 : 데이터베이스를 사용하는 사람 유형
일반사용자 데이터베이스에서 정보를 조회하거나 입력하는 사람(유저)
응용 프로그래머 데이터베이스를 사용하는 프로그램을 작성하는 사람
데이터베이스 관리자(DBA) 데이터베이스 성능을 최적화하고 보안 관리, 백업을 수행
SQL 사용자(기획자/데이터분석가) 데이터베이스에 저장된 데이터를 조회하고 검색. 새로운 데이터를 추가, 수정, 삭제 등 구조를 관리. 데이터베이스를 효과적으로 관리하고 사용하도록 함

 

  • 인터페이스 : 사용자가 데이터베이스와 상호작용할 수 있도록 도와주는 프로그램
SQL질의 SQL 언어를 사용해 데이터베이스에 질문할 수 있게 하는것
응용 프로그램 인터페이스(UI) 앱이나 웹에서 데이터베이스와 연결되는 응용 프로그램
관리 인터페이스(ADMIN) DBA(데이터베이스 관리자)가 관리할 수 있도록 도와주는 소프트웨어
데이터베이스 스키마 데이터베이스의 구조와 조직을 정의하여 성능 최적화, 데이터 효율적 관리를 함

 

  • DBMS의 유형 : 데이터베이스를 생성, 관리, 유지보수하는 소프트웨어 시스템
관계형 DBMS(RDBMS) 데이터를 테이블 형식으로 저장하여 SQL을 이용해 관리
비관계형 DBMS(NoSQL) 예를 들어, 문서형, 키값, 그래프 등 다양한 형식의 데이터
객체지향 DBMS(OODBMS) 객체지향 프로그래밍 개념을 사용해 데이터를 저장하고 관리
예를 들어, "친구"라는 객체가 있다면 객체 안의 데이터 "이름, 나이, 주소"를 매서드 "이름 바꾸기, 주소 출력"이 있을 수 있다. 객체의 데이터와 처리 방법 매서드를 함께 묶은 것

 

  • DBMS의 내부 구성 요소
오브젝트 코드 컴퓨터가 이해할 수 있는 언어로 번역되어 실행되게 만드는 코드
Embedded DML 프로그래밍 언어 안에 포함된 조작 언어. 예를 들어, 편지를 쓸때 "일기 쓰기, 그림그리기" 등을 부가적인 명령을 포함시키는 것. 프로그램 안에 데이터베이스와 상호작용할 수 있는 부가 요소를 포함시킨다
DML 컴파일러 데이터 조작 언어(DML)을 컴퓨터 언어로 변환하는 것
DDL 컴파일러 데이터 정의 언어(DDL)을 컴퓨터 언어로 변환하는 것
질의 처리기(쿼리 프로세스) 데이터베이스에 질문하면 이를 처리하고 결과를 보여주는 것
트랙잭션 관리자 데이터베이스의 여러 작업을 관리하고, 일관성과 무결성을 유지하는 관리자. 작업이 안전하고 올바르게 수행하도록 관리
파일 관리자 데이터베이스 파일을 관리하고 저장하는 프로그램
버퍼 관리자 자주 사용되는 데이터를 빠르게 접근할 수 있도록 도와주는 프로그램

 

  • 데이터베이스 : 데이터를 저장하는 곳. 다양한 형식과 구조가 있음
관계형 데이터베이스 테이블 형태. 예를 들어, 학생 목록 테이블, 도서 목록 테이블
비관계형 데이터베이스 다양한 형식의 데이터. 예를 들어, JSON문서형식, 트리구조 그래프
분산 데이터베이스 여러 위치에 분산되어 있는 데이터. 여러 서버에 나누어 저장하는 것

데이터베이스를 만드는 목적

데이터의 일관성 유지 중복된 데이터의 일관성을 유지할 수 있다. 올바른 데이터를 하나의 장소에 두는것을 말한다. 잘 설계된 데이터베이스의 최소한의 중복을 허용한다. 데이터 중복은 기억 공간 낭비, 데이터 저장 및 액세스 관리 비용 증가를 일으키기 때문.
   
   
   
   
   
   
   
   
   
  • 서로 다른 형태의 데이터를 통합하기 위해 만든다. 예를 들어 체중, 키와 같이 다른 단위를 사용하는 데이터를 비교하기 위해서 표준화하는 개념과 같다.
  •  
  • 데이터의 정확성을 보장하는 무결성을 유지한다. 신뢰할 수 있는 데이터인지, 찾으려는 정확한 데이터인지
  • 데이터의 중복을 최소화 한다
  • 업무상 데이터가 빠르게 공유될 수 있또록 한다
  • 데이터의 보안성을 위해

관련글 더보기