반응형

 

1. DBMS?

DBMS를 알기 전에 우리는 DB가 무엇인지 정확히 알아야 할 필요가 있습니다.

DB - DataBase

데이터베이스는 여러 응용 시스템들의 통합된 정보를 저장하여 운영할 수 있는 공용 데이터들의 묶음입니다.
서로 연관된 여러 가지의 자료의 모음으로 그 내용을 구조화하여 검색과 갱신에 효율성을 높인 것입니다.


더보기

DB특징

데이터베이스의 특징은 다음과 같습니다.

  • 실시간으로 접근이 가능합니다. 정적인 데이터에 대하여 실시간으로 응답이 가능해야 합니다.
  • 지속적인 변화가 가능합니다. 데이터를 CRUD(create, read,update, delete)를 통해 항상 최신의 데이터를 유지할 수 있습니다.
  • 동시에 공유할 수 있습니다. 다수의 사용자가 동시에 같은 내용의 데이터를 확인할 수 있어야합니다.
  • 내용에 의해 참조할 수 있습니다. 데이터들을 주소나 위치에 의해서가 아닌, 사용자가 필요로하는 데이터의 내용으로 찾을 수 있습니다.

 

그렇다면 DBMS는 무엇일까요?

DBMS - Database Management System, 즉 다수의 사용자들이 데이터베이스 내의 데이터에게 접근, 사용할 수 있도록 해주는 소프트웨어를 말합니다.

 

 

DBMS의 장점 / 단점

DBMS의 장점

1. 데이터 베이스 내 중복을 최소화할 수 있습니다. 다만 데이터 중복을 최소화할 수 있지 완전히 허용하지 않는 것은 아닙니다.
2. 같은 내용의 데이터를 여러 가지 구조로 지원해 줄 수 있는 DBMS의 정교한 기법 덕분에 데이터베이스의 공용이 가능합니다.
3. 데이터베이스가 접근 처리될 때마다 제어 기능을 통해 그 유효성을 검사하기 때문에 데이터 무결성을 유지할 수 있습니다.
4. DBMS는 정당한 사용자, 허용된 데이터와 연산 등을 확인하고 검사하기 때문에 모든 데이터에 대해 철저한 보안 유지를 보장해 줄 수 있습니다.

DBMS의 단점

1. DBMS는 고가의 제품이고 컴퓨터 시스템의 자원을 많이 사용합니다. 메모리 용량이 더 필요하게 되고, 더 빠른 CPU를 요구합니다.
2. 특정한 목적을 가지는 응용 시스템은 설계 시간이 길어지고 보다 전문적인 인원이 필요합니다.
3. DBMS는 통합된 시스템이기 때문에 일부가 장애를 일으킨다면 전체 시스템을 정지시켜 시스템 신뢰성과 가용성을 저해할 수 있습니다.

 

 

DBMS의 종류

대표적인 RDBMS는 Oracle, MySQL, MS-SQL 등이 있습니다.

오라클에서 만들어 판매 중인 상업용 RDBMS입니다. 주로 대기업에서 사용하며 글로벌 DB 시장에서 점유율 1위를 하고 있습니다.

2020/08/24 - [데이타베이스] - [데이터베이스] RDBMS와 DBMS의 차이점 그리고 SQL

 

현재는 오라클에 흡수 합병되어있습니다. 

몇 년 전만 해도 오픈소스로 이루어져 있던 무료 프로그램이지만 합병 이후 

판매 중인 상업용 데이터베이스가 되었습니다.

 

마이크로소프트사에서 개발한 상업용 RDBMS입니다. 

다른 운영체제에서 사용이 불가능한 것은 아니지만 Windows에 특화되어있습니다.

 

 

반응형
반응형

DBMS와 RDBMS의 개념

우리는 DBMS가 무엇인지 알고있습니다. 

그렇다면 RDBMS는 무엇일까요?

Relational Database Managenent System으로 쉽게 생각해 테이블 기반의 DBMS라고 생각하면 됩니다.

 

 

 

DBMS와 RDBMS의 차이점

DBMS RDBMS
DBMS는 데이터를 파일로 저장합니다. RDBMS는 데이터를 테이블형식으로 저장합니다.
DBMS에서 데이터는 일반적으로 계층적 형식 또는 탐색 형식으로 저장됩니다. RDBMS에서 테이블들은 primary key라는 식별자가 있으며
데이터의 값들은 테이블 형식으로 저장됩니다.
DBMS에는 표준화라는것이 없습니다. RDBMS는 표준화 되어있습니다.
DBMS는 데이터보관에 있어 어떠한 보안도 제공하지 않습니다. RDBMS는 ACID를위한 무결성 제약을 정의합니다.
( A - Atomocity 원자성
  C - Consistency 일관성
   I - Isolation 고립성
  D - Durability  지속성 )
ACID에 관련해서는 테이블 밑에 더보기를 눌러주세요.
DBMS는 데이터를 저장하기 위해 파일 시스템을 사용하고, 그렇기때문에 테이블간의 관계가 없습니다. RDBMS시스템은 저장된 데이터에 접근하기 위해 데이터의 테이블 형식 구조를 지원합니다.
DBMS는 적은 데이터를 처리하기에 좋습니다. RDBMS는 많은 데이터를 처리하기 좋습니다.
DBMS를 예로들면 XML등이 있습니다. RDBMS를 예로들면 mysql, oracle, sql server등이 있습니다.

 

더보기

ACID

ACID는 데이터베이스관리시스템, 또는 유사한 시스템에서 상호작용이 안전하게 수행된다는 것을 보장하기 위한 성질을 가리키는 약어입니다.


 

 

SQL이란?

SQL은 Structured Query Language 의 약자로 관계형 데이터베이스 관리시스템의 데이터를 관리하기 위해 설계된 프로그래밍 언어입니다.

많은 수의 RDMBS들이 SQL을 표준으로 채택하고 있어, 각각의 RDBMS마다 조금씩의 문법만 다르고 

유사한 부분이 상당히 많습니다.

 

SQL구문은 크게 3가지로 나뉩니다.

 

  • DDL (데이터 정의 언어)
  • DML (데이터 조작 언어)
  • DCL (데이터 제어 언어)

 

 

Data Definition Language (데이터 정의 언어) 

SQL의 DDL문장은 관계형 데이터베이스의 구조를 정의합니다.

DDL의 구문으로는 
● Create
● Drop
● Alter
● Truncate  등이 있습니다.


Data Manipulation Language (데이터 조작 언어) 

SQL의 DML문장은 관계형 데이터베이스에 대해 검색, 업데이트 등 데이터 조작을 위해 사용됩니다.

DML의 종류로써는 
● Select
● Insert
● Update
● Delete  등이 있습니다.


Data Control Language (데이터 제어 언어) 

SQL의 DCL문장은 데이터베이스에서 데이터에 대한 접근을 제어하기위한 데이터베이스 언어입니다.

DCL의 구문으로는 
● Grant
● revoke 등이 있습니다.

반응형

'DB' 카테고리의 다른 글

[DB] SQL Constraint란?  (0) 2020.09.02
[DB] Index의 의미와 장단점  (0) 2020.09.02
[DB] Trigger 트리거 개요 및 장단점  (0) 2020.09.01
[DB] Procedure 프로시저 개요 및 장단점  (1) 2020.09.01
[DB] DBMS란 무엇일까요?  (0) 2020.08.27
반응형

버전 관리 시스템 개요

버전 관리 시스템은 (aka VCS) 문서나 설계도, 소스 코드등의 변경점을 관리해주는 소프트웨어 입니다.

소프트웨어를 개발할 때 변경점을 관리하는것은 매우 중요한 일입니다. 우리가 예전에 겪었을만한

졸업논문 작성할때도 그랬었죠.

 

이렇게 버전 관리 없이 문서를 저장할 경우, 어떤 파일이 정말 마지막으로 저장되었는지도

나중에는 알기 힘들고, 사고로 내용이 날아간 경우에도 복구할 수 없습니다.

우리는 이러한 일들을 해소하고자 버전관리를 해야합니다.

정리하자면 우리가 버전관리를 함으로써 얻을 수 있는것들은

  • 프로젝트를 진행 중 과거의 어떤 시점으로 돌아갈 수 있게 하기 위함입니다.
  • 특정 시점에 꼬리표를 달아 버전을 표시해주고, 동시에 여러 버전을 개발할 수 있게 해줍니다.
  • 여러사람이 같은 프로젝트에 참여할 경우 같이 일하는 모든 사람들에게 수정사항을 쉽게 공유할 수 있습니다.
  • 무언가가 잘못 되었을때, 복구를 돕기 위해서 사용할 수 있습니다.

버전 관리 시스템 종류

로컬 VCS

  • 서버 없이 로컬 컴퓨터 내에서 버전을 관리할 수 있습니다.
  • 매우 간단하게 사용할 수 있다.
  • 로컬 컴퓨터 내에서 관리하기 때문에 협업에서 사용하기엔 힘듭니다.
  • 실수로 디렉토리를 지우거나 컴퓨터 고장시에 파일들을 복구할 수 없습니다.

중앙집중식 VCS 

  • 프로젝트를 진행하다 보면 다른 개발자와 함께 작업을 해야하는 경우가 있는데 이럴때 생기는 문제를 해결하기 위하여 중앙집중식 VCS가 개발되었습니다.
  • 파일을 관리하는 서버에 최종본 한 개가 있으며, 사용자가 중앙서버에서 파일을 다운받아 사용합니다.
  • 사용자 중 누가 무엇을 하고 있는지 알 수 있습니다.
  • 서버가 다운될 경우 그동안 아무도 다른사람과 협업할 수 없고 사람들이 하는 일도 백업할 수 없습니다.
  • 중앙 데이터베이스가 있는 하드디스크에 문제가 생기면 프로젝트의 모든 히스토리를 잃을 수 있습니다.
  • 대표적으로 Subversion(SVN)이 있습니다.

분산 VCS 

  • 파일을 저장하는 서버가 있는것은 중앙집중식 VCS와 동일하지만 수정을 위해 프로젝트 전체를 로컬에 다운 받은뒤 수정하게 됩니다.
  • 서버가 다운되더라도 사용자들은 작업을 할 수 있고 프로젝트 전체를 로컬에 다운 받은 뒤 수정하기 때문에 서버가 날아가도 복구가 가능합니다.
  • 수정할 때에도 소스코드를 수정하고 있는 사람이 1사람이기 때문에 충돌을 피해 수정이 가능합니다.
  • 대표적으로 GIT이 있습니다.

버전 관리 시스템이 없다면?

만약 VCS, 즉 버전관리 시스템이 없다면 우리는 협업할 인원이 5명이라고 가정한다면,

5명중 누가 언제 얼만큼동안 소스코드를 작업할지 정하고 작업을 해야할 것 입니다.

5명중 1명이 작업하는동안 남은 4명은 다른 1명을 계속 기다려야하고

어찌어찌 어느정도 완성이되고 몇가지 수정사항이 있어 수정을 했는데 시스템오류가 난다면

누구의 잘못인지 찾기도 힘들뿐더러 시스템오류전에 저장했던 파일을 또 열심히 찾고...

엄청나게 시간을 허비했을 것 입니다.

반응형

+ Recent posts