패스트 캠퍼스의 데이터베이스와 SQLD 합격패스 Online를 수강하며 정리한 내용.
데이터베이스
데이터베이스란?
-
데이터베이스란?
- 데이터는 모두 IT시스템 내부의 데이터베이스에 저장이 된다. 이 데이터베이스를 관리해주는 것이 데이터베이스 관리시스템이다.
- 컴퓨터 과학이 발전하면서 점점 더 대용량 데이터를 저장하고 조회하는 요구사항이 증대됐다.
- 데이터베이스 발명 이전 데이터는 텍스트 파일 형태로 저장 및 관리 되었다. 파일 형태는 여러 사용자가 동시에 공유하기가 어렵다. 파일을 서로 주고받으면서 데이터의 유실 등의 가능성이 항상 존재했다. 누가 수정, 삭제, 입력을 하든 다 같이 활용할 수 있도록 하자는 것이 데이터베이스이다.
-
지금은 모든 것이 데이터베이스로 관리되는 시대이다. 주소록, 직원관리, 매출관리, 쇼핑몰, 대학, 병원, 공공 등등… 그 중 의미있는 데이터를 분석하는 것이 빅데이터인 것이다.
데이터베이스 관리 시스템이란?
- 데이터베이스 관리 시스템(database management system, DBMS)은 다수의 사용자들이 데이터베이스 내의 데이터를 접근할 수 있도록 해주는 소프트웨어 도구의 집합이다.
- DBMS는 사용자 또는 다른 프로그램의 요구를 처리하고 적절히 응답하여 데이터를 사용할 수 있도록 해준다.
- 대표적인 DBMS는 오라클. 수많은 기능과 안정성 때문에 많이 사용한다. 접속해서 활용하자.
데이터베이스 시스템의 특징
- 실시간 접근성 (real time accessibility)
- 데이터베이스는 실시간으로 서비스된다 . 사용자가 데이터를 요청하면 몇 시간이나 몇 일 뒤에 결과를 전송하는 것이 아니라 수 초 내에 결과를 서비스 한다.
- 데이터가 변화된 것을 실시간으로 볼 수 있다. 예를 들어 예매한 영화의 예매가 잘 됐는지 예매내역을 확인하고싶다면 바로 확인할 수 있다. 수 초 내에 결과를 서비스한다는 게 중요함. 그래서 데이터베이스 관리 시 성능이 중요하다.
- 계속적인 변화 (continuous change)
- 데이터베이스에 저장된 내용은 계속 바뀐다.
- 데이터베이스에 저장된 내용은 어느 한 순간의 상태를 나타내지만, 데이터 값은 시간에 따라 항상 바뀐다
- 데이터베이스는 삽입, 삭제, 수정 등의 작업을 통하여 바뀐 데이터 값을 저장한다
- ⭐동시 공유 (concurrent sharing)
- 데이터베이스는 서로 다른 업무 또는 여러 사용자에게 동시에 공유된다.
- 동시는 (병행)이라고도 하며, 데이터베이스에 접근하는 프로그램이 여러 개 있다는 의미다
- 파일 시스템 시대에는 서로 바뀐 것에 대해 데이터를 주고받아야 했다. 그러나 데이터베이스에서는 한 곳에 데이터를 모아두고 그 데이터를 동시에 관리하는 것이다.
- 내용에 따른 참조 (reference by content)
- 데이터베이스에 저장된 데이터는 데이터의 물리적인 위치가 아니라 데이터 값에 따라 참조 된다.
- 즉, 구축이 된 데이터베이스(IDC)의 물리적 위치는 중요하지 않다. 내용에 따른 참조로 데이터를 조회하고 가져오는 게 중요한 거지 물리적 위치는 중요하지 않다는 것.
데이터베이스의 기본 기능
-
데이터 삽입, 삭제, 수정, 조회 기능
- 조회 : 원하는 데이터를 조회하는 기능 (ex. 영화 시간표 조회)
- 갱신 :
- 삽입 : 원하는 데이터를 저장하는 기능 (ex. 영화 예매)
- 삭제 : 삭제하는 기능 (ex. 영화 예매 취소)
- 수정 : 수정하는 기능 (ex. 영화 좌석 변경)
- 영화 예매 시스템은 데이터의 삽입, 삭제, 수정, 조회 기능을 모두 구현해야 운영이 가능함
-
동시성 제어
- 여러 명의 사용자가 들어와서 작업할 때 정합성에 대한 문제가 발생하지 않도록 동시성을 제어해주는 것이 동시성 제어. (이건 트랜잭션이랑 관련있을까?)
-
동시성 제어의 중요성
- 데이터베이스의 동시성 제어가 보장되지 않는다면 영화관의 경우에 동일 좌석에 대한 결제가 동시에 이루어질 수 있다. 만약 영화관에서 두 관객이 모두 같은 영화관, 같은 시간, 같은 영화, 같은 좌석을 예매한다면 해당 좌석은 두 사람 중 그 누구의 좌석도 아닌 좌석이 되고 영화관은 대혼란을 맞이하게 것이다.
- 데이터베이스의 동시성은 한 기업의 비즈니스 성패를 좌우할 수 있을 정도로 중요하다.
-
장애 대응기능
- 데이터베이스는 데이터가 손실됐다고 해도 어떤 기능을 통해 데이터 복원이 가능해야 함.
- 즉, 데이터의 보호와 장애에 대한 방안이 있어야 한다.
-
보안 기능
- 어디에서 데이터베이스 서버에 접속하든 보안에 위배되지 않는 데이터 조회가 이루어져야 한다. 즉, 데이터베이스의 보안기능은 사용자에게 보여줄 데이터만 보여주는 것. 보안에 위배되는 데이터는 데이터 서버 내에서 관리한다. 사용자는 데이터베이스 내부를 알 필요가 없고 자신이 원하는 정보처리만을 수행한다.
정리
- 데이터베이스의 보안 기능은 사용자에게 보여줄 데이터만 보여주는 것
- 보안에 위배되는 데이터는 데이터베이스 서버 내에서 관리
- 사용자는 데이터베이스 내부를 알 필요가 없고 자신이 원하는 정보처리만을 수행
- 개인 정보의 유출 등은 매우 심각한 사회문제가 되므로 데이터의 보안이 중요함
데이터베이스(DBMS)의 종류
-
데이터 저장 방식에 따른 데이터베이스 종류
- 계층형 데이터베이스
- 관계형 데이터베이스 : 2차원 표 형식으로 데이터 관리 , 가장 널리 사용됨
- 객체지향형 데이터베이스
- NOSQL데이터베이스 : 최근 각광받는다. 관계형 데이터베이스 기능 일부 삭제
-
관계형 데이터베이스의 제품 종류
- 오라클
- DB2(IBM)
- SQL server
- PostgreSQL
- Tibero
- CUBRID
관계형 데이터베이스
관계형 데이터베이스
- 관계형 데이터베이스
- 관계형 데이터베이스는 키(key)-값(value)의 관계를 테이블화 시킨 매우 간단한 원칙의 전산정보 데이터베이스.
- 실세계를 그대로 반영하여 직관적인 이해가 가능하게 함
- 실생활에서 사용하는 모든 정보를 관계형 데이터베이스로 관리할 수 있다.
직관적인 예
: 엑셀 파일에 고객 정보를 저장한다고 해보자. 엑셀 파일의 특징은 2차원 표를 이용해서 데이터 목록화 관리를 하는 것이다.
관계형 모델
- 관계형 모델
- 관계형 모델은 집합론에 기반을 둔 일종의 데이터베이스 모델이다.
- 컬럼과 로우를 이루는 하나 이상의 테이블이 존재하고 테이블에 데이터가 저장된다.
- 각각 테이블에는 각각의 로우를 식별하는 기본 키(Primary Key)가 있다.
- 컬럼과 로우를 부르는 여러 이름을 숙지하자.
관계형 데이터베이스의 혁신성
SQL 기본 지식
-
SQL이란?
- RDBMS의 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어이다. 전세계 표준이라 RDBMS는 다 SQL언어를 공통적으로 사용할 수 있다.
- RDBMS에서 자료의 검색과 관리, 데이터베이스 스키마 생성과 수정, 데이터베이스 객체 접근 조정 관리를 위해 고안되었다.
- 많은 수의 데이터베이스 관련 프로그램들이 SQL을 표준으로 채택 중이다.
-
SQL의 용도
- 관계형 데이터베이스에서 데이터를 조회 및 갱신하기 위한 언어
관계형 데이터베이스를 다루기 위한 사전 지식
-
관계형 데이터베이스 소프트웨어 (=DBMS)
- 관계형 데이터베이스를 사용하기 위해서는 DBMS를 설치해야 한다.
-
데이터베이스와 DBMS의 차이
항목 | 설명 |
---|
데이터베이스 | 추상적 개념 |
DBMS | 실제적 개념 |
기능 및 구조 실현을 위한 구체적 소프트웨어 | |
- oracle은 DBMS고 데이터베이스 자체는 아니다. 데이터베이스를 구체화한 게 DBMS인 거임
-
일반적인 IT 시스템이 탄생하는 과정
- DBMS와 여러 소프트웨어의 연동으로 IT시스템이 구축된다. 보통 이런 과정을 SI(System Integration)과정이라고 부른다.
-
DBMS와 운영체제
- DBMS는 다양한 운영체제와의 조합으로 구축이 가능하다. DBMS도 소프트웨어이기 때문에 OS위에 올라간다.
- IT예산, 제품의 기능 및 용도, 개발자와 엔지니어의 기술 스펙 등 고려해야할 요소가 많다.
- AIX는 IBM에서 만든 OS임
연습문제
- 관계형 데이터베이스의 혁신성과 거리가 먼 것은?
① 시스템 개발 시 개발 생산성에 도움을 준다 .
② 직관적인 개발이 가능하다 .
③ SQL 언어를 이용하여 간편한 데이터 추출이 가능하다 .
④ JAVA 언어를 이용할 수 있어 시스템의 성능이 좋아진다
- 관계형 데이터베이스는 개발 편의성이 높은 언어인 SQL을 사용하기 때문에 시스템 개발 시 개발 생산성에 도움을 준다. (정답: ④ )
더 알아볼 것