본문 바로가기
멀티캠퍼스 풀스택 과정/데이터베이스

데이터베이스1-1 DB, DBMS, SQL

by 이쟝 2022. 1. 16.

DB(Database)

데이터베이스(DB): 데이터의 집합

- 여러 사람이 공유해 사용할 목적으로 체계화해 통합, 관리하는 데이터의 집합.

- 즉, 자료 파일들을 조직적으로 통합해 항목의 중복을 없애고 자료를 구조화해 기억시켜 놓은 자료의 집합체

DBMS(Database Management System)

- 파일시스템의 단점을 보완하고 대량의 데이터를 보다 효율적으로 관리하고 운영하기 위해서 사용됨(데이터베이스를 운영하기 위한 시스템)

- 데이터베이스 생성, 조회, 수정, 삭제와 같은 환경과 각종 응용프로그램이 데이터베이스에 접근할 수 있는 인터페이스를 제공하며 복구, 권한 관리와 같은 보안성 기능도 제공

DBMS 또는 DB의 특징

데이터의 무결성 데이터베이스 안의 데이터는 오류가 있어서는 안된다.
 
데이터의 독립성 데이터베이스의 크기를 변경하거나 데이터 파일의 저장소를 변경하더라도 기존에 작성된 응용프로그램은 전혀 영향을 받지 않아야 한다.
 
보안 데이터베이스 안의 데이터에 아무나 접근할 수 있는 것이 아니라 데이터를 소유한 사람이나 데이터에 접근이 허가된 사람만 접근할 수 있어야 한다.
-> 접근할 때도 사용자의 계정에 따라서 다른 권한을 가져야 한다.
데이터 중복의 최소화 동일한 데이터가 여러 개 중복되어 저장되는 것을 방지한다.
응용 프로그램 제작
및 수정이 쉬워짐
데이터베이스를 이용해서 통일된 방식으로 응용 프로그램 작성이 가능해지고, 유지보수 또한 쉬워진다.
데이터 안정성 향상 대부분의 DBMS가 제공하는 백업, 복원 기능을 이용해서 데이터가 깨지는 문제가 발생했을 때 복원 또는 복구할 수 있다.

DBMS의 분류

계층형 DBMS 데이터 간의 관계가 트리 형태의 구조.
부모-자식 관계로 표현되며 1:N으로 구성될 수 있음
구조가 간단하고 구현, 수정, 검색이 쉽지만 N : N 관계 처리가 불가능하고 구조변경이 어려움
ex) IMS(IBMInformation Management System)
네트워크형(망형) DBMS 계층형 데이터베이스의 단점을 보완해 N : N 구성이 가능한 망 형태의 모델
유연성과 접근성이 높지만 구조가 복잡해 유지보수가 어려움
ex) IDMS(Integrated Data Store)
관계형 DBMS (key)와 값(value)으로 이루어진 데이터들을 행(Row), (Column)로 구성된 테이블 구조로 단순화시킨 모델 SQL(Structured Query Language)를 사용해 데이터 관리
데이터 모델링이 간단하지만 비정형 데이터들을 다루거나 실시간 분석에는 적합하지 않음
ex) MySQL, Oracle, Maria DB
다른 DBMS에 비해서 업무가 변화될 경우에 쉽게 변화에 순응할 수 있는 구조, 유지보수 측면에서도 편리함
객체지향형 DBMS 객체지향 프로그래밍 개념에 기반해 만든 데이터 모델
비정형 데이터들을 데이터베이스화 하기 위해 만들어진 모델
검색이나 대규모 트랜잭션 처리에서 성능이 떨어지는 단점이 있어 몇몇 특수 전문분야에서만 사용
ex) O2, ONTOS
객체관계형 DBMS 관계형 데이터베이스에 객체 지향 개념을 도입해 만든 데이터베이스 모델
객체지향 개념을 지원하는 표준 SQL을 사용할 수 있고, 데이터 타입도 다양하게 추가되었음
ex) UniSQL, Object Store

DBMS의 종류

Oracle
 
Oracle Corporation에서 개발되었고 현재 가장 널리 사용되는 RDBMS이다.
Oracle Database는 관계형 모델을 객체 관계형 모델로 확장해 복잡한 비즈니스 모델을 관계형 데이터베이스에 저장할 수 있다.
MySQL
 
MySQL은 오픈 소스이며 무료이고 세계에서 가장 인기있는 DB이다.
관계형데이터베이스, 서버가 매우 빠르고 안정적이며 확장 가능하고 사용하기 쉽다
SQL Server Microsoft에서 개발한 SQL Server는 세계에서 가장 널리 사용되는 데이터베이스 중 하나로 C, C++로 작성되어 있고, SQL Microsoft Azure Cloud의 일부이다.
MariaDB
 
MySQL 개발자에 의해 만들어졌으며 오픈 소스를 유지하도록 보장
은행에서 웹 사이트에 이르기까지 광범위한 응용프로그램에서 데이터를 구조화된 정보로 변환한다.

SQL(Structured Ourey Language)

- SQL: DBMS에 데이터를 구축하고 관리하고 활용하기 위해서 사용되는 언어 중 하나

- 관계형 데이터베이스에서 사용하는 표준 질의언어를 말한다.(SQL은 사람과 DBMS가 소통하기 위한 말(언어))

- 사용방법이나 문법이 다른 언어(Java, C C#)보다 단순하다.

- 모든 DBMS에서 사용 가능하다.(다른 시스템으로 이식성이 좋다.)

-> SQL 표준은 서버용, 개인용, 휴대용 장비에서 운영되는 DBMS마다 상호호환성이 뛰어나다.

 

- 인터프리터(대화식)언어이다.

-> 기존 프로그래밍 언어는 프로그램 작성, 컴파일 및 디버깅, 실행이라는 과정을 거쳐야만 그 결과를 확인할 수 있었지만 SQL은 이와 달리 바로 질의하고 결과를 얻는 식으로 구성되어 있다.

 

- 분산형 클라이언트/서버 구조이다.

-> SQL은 분산형 구조인 클라이언트/서버 구조를 지원한다. , 클라이언트에서 질의하면 서버에서 그 질의를 받아서 처리한 후, 다시 클라이언트에게 전달하는 구조를 가진다.

 

- 대소문자를 구별하지 않는다.