1. 참여 계기
SQL 강의를 찾고 있었는데 검색하다보니 패스트 캠퍼스가 나와서 듣게 되었다. 개발자를 하려면 SQL도 알아야 된다고 생각하기 때문에 신청하게 되었다.
2. 강사 소개
현) (주)에스브이Data총괄사업부장I2019 한국일보혁신대상기업
전)오라클파트국내1위업체ConsultingTF리더
전)데이터컨설팅분야국내1위업체선임
컨설턴트
[자격사항]
국가공인SQLP,SQLD보유
리눅스마스터1급보유[
[저서]
저서[개발자를위한오라클SQL튜닝]
3. 강의 소개
PPT와 컴퓨터를 통해서 강의가 이루어졌다. 실제 쓰이는 예제를 알려주는 식으로 강의가 진행되었다.
1장에서는 데이터베이스를 소개하고 가장 많이 쓰이는 관계형 데이터베이스를 설명한다음 데이터 베이스 아키텍쳐에 대해서 배웠다. 그 후 데이터베이스를 직접 설치하고, SQL 기본을 공부한 다음 트랙잭션에 대해서 배우고 테이블 설계를 하는 법을 배웠다. 그리고 테이블 설계를 배운 후 백업 및 복구하는 방법을 배우고 데이터베이스 성능을 배운 후 강의가 마무리 되었다.
2장에서는 데이터 모델링에 대해서 배우고, 데이터 모델과 성능에 대해서 배웠다. 그리고 SQL 문을 어떻게 쓰는 지 배웠다. 그리고 SQL 함수에 대해서 더 배운 후 SQL 최적화 기본 원리에 대해서 배웠다.
3장과 4장에서는 실전 예상문제를 통해서 SQLD 시험에 대해서 대비할 수 있었다.
4. 강의 정리
[ ] 데이터베이스란?
1. 데이터 베이스는 컴퓨터 시스템에 전자적으로 저장된 체계적 데이터의 모임
2. 컴퓨터가 초기 발명된 시점에는 과학적인 연구의 용도(수학적 계산)으로 사용되었음
3. 컴퓨터 과학이 발전하면서 점점 더 대용량의 데이터를 저장하고 조회하는 요구사항이 증대되었음
4. 이러한 배경 속에서 데이터베이스라는 개념이 도입되었음
[ ] 데이터베이스 사용 이전
( ) 일반적인 텍스트 파일
- 데이터 베이스 발명 이전에 데이터는 위와 같은 텍스트 파일 형태로 저장 및 관리 되었음
- 파일 형태는 여러 사용자가 동시에 공유하기가 어려움
- 파일을 서로 주고받으면서 데이터의 유실 등의 가능성이 항상 존재하였음
( ) 모든 것이 데이터베이스로 관리되는 시대(모든 것이 데이터로 관리되기 전에)
- 현재는 모든 것이 데이터 베이스로 관리되고 있음
- 주소록, 직원관리, 매출 관리, 쇼핑몰, 영화 예매, 은행, 증권, 대학, 병원, 공공 등등
- 텍스트, 그림, 동영상, 파일 등 모든 데이터가 데이터베이스로 관리되고 있음
현실 세계를 IT 시스템으로 구축하는데 그 IT 시스템을 관리할 수 있는게 바로 데이터베이스이다.
그런 요구사항이 증대되면서 데이터양이 어마어마하게 늘었다.
데이터베이스를 사용하기 전에는 일반적인 텍스트 파일로 작업했다.
한곳에 모아놓고 다같이 보고 활용하는것이 데이터베이스의 역활이다.
데이터베이스를 사용하는 시점에서부터 폭팔적으로 성장한것이 오라클 데이터베이스이다.
이 강의는 오라클 데이터 베이스 기준으로 작성한다.
수많은 데이터가 쌓였고 의미있는 데이터를 활용하는 것이 빅데이터이다.
[ ] 데이터 베이스 관리 시스템이란?
1. 데이터 베이스 관리 시스템(DBMS)은 다수의 사용자들이 데이터베이스 내의 데이터를 접근할 수 있도록 해주는 소프트웨어 도구의 집합이다.
2. DBMS는 사용자 또는 다른 프로그램의 요구를 처리하고 적절히 응답하여 데이터를 사용할 수 있도록 해준다.
[ ] 데이터베이스 시스템의 구성
다수의 사용자 | --> <-- |
DBMS(시스템 소프트웨어) ORACLE DATABASE |
--> <-- |
데이터베이스 |
데이터베이스 관리 시스템(DBMS)이란
데이터를 저장하고 관리 조회 삽입 삭제를 해줄 수 있는 프로그램이다.
대표적으로 오라클이 있다.
이 강의에서도 오라클 데이터베이스를 기준으로 한다.
SQLD 자격증 또한 오라클 데이터베이스를 기준으로 한다.
데이터베이스를 DBMS가 관리한다.
[ ] 데이터 베이스 시스템의 특징
특징 | 설명 |
실시간 접근성 (real time accessibility) |
- 데이터베이스는 실시간으로 서비스된다. 사용자가 데이터를 요청하면 몇 시간이나 몇 일 뒤에 결과를 전송하는 것이 아니라 수 초 내에 결과를 서비스한다. |
계속적인 변화 (continuous change) |
- 데이터베이스에 저장된 내용은 어느 한 순간의 상태를 나타내지만, 데이터 값은 시간에 따라 항상 바뀐다. - 데이터베이스는 삽입, 삭제, 수정 등의 작업을 통하여 바뀐 데이터 값을 저장한다. |
동시 공유 (concurrent sharing) |
- 데이터베이스는 서로 다른 업무 또는 여러 사용자에게 동시에 공유된다. - 동시(concurrent)는 병행 이라고도 하며, 데이터베이스에 접근하는 프로그램이 여러 개 있다는 의미다. |
내용에 따른 참조 (reference by content) |
- 데이터베이스에 저장된 데이터는 데이터의 물리적인 위치가 아니라 데이터 값에 따라 참조 된다. |
데이터가 변화한다.
영화 예매를 하면 영화 예매한 사람의 좌석이 되는데 실시간으로 처리를 할 수 없다면 우리는 영화 예매를 할 수 없다.
그래서 실시간 접근성이 요구되어야한다.
영화는 5분 후에 시작하는데 10분 후 에 알 수 있다면 안된다. 그래서 실시간 접근성, 수초내에 결과를 서비스하는 것이 굉장히 중요하다. 3초 이상 걸리면 사용자는 그때부터 느리다고 하고 시스템 문제를 의심하게 된다. 그래서 성능이 중요하다.
계속해서 데이터가 변화가 된다. 변화하는 데이터들을 데이터 값을 시간에 따라 바뀌는데 이것을 계속적인 변화라고 한다.
데이터 베이스로 한 곳에 모아놓고 그 데이터를 서로가 동시에 관리해야한다.
내용에 따른 참조는 지방에다가 데이터베이스 서버를 구축했다. 물리적인 위치는 중요하지 않다. 천안 혹은 순천에 있든 서울에서 데이터 값을 조회할 수 있다. 물리적인 서버가 어디있는지는 중요하지 않다.
[ ] 데이터 삽입, 삭제, 수정, 조회 기능
조회 : 원하는 데이터를 조회하는 기능(ex. 영화 시간표 조회)
갱신 -> 삽입 : 원하는 데이터를 저장하는 기능(ex. 영화 예매)
-> 삭제 : 원하는 데이터를 삭제하는 기능(ex. 영화 예매 취소)
-> 수정 : 원하는 데어터를 수정하는 기능(ex. 영화 좌석 변경)
영화 예매 시스템은 데이터의 삽입, 삭제, 수정 조회 기능을 모두 구현해야 운영이 가능함
[ ] 동시성 제어
이수지 | 이수지는 강남역CGV 1관에서 2020년 4월 26일 20:30분에 시작하는 영화의 A2 좌석을 선택 후 결재를 진행하고 하는 상태 |
이경오 | 이경오는 강남역CGV 1관에서 2020년 4월 26일 20:30분에 시작하는 영화를 예매 시 A2 좌석은 선택할 수 없음 |
[ ] 동시성 제어의 중요성
(1) 데이터베이스의 동시성 제어가 보장 되지 않는다면 A2 좌석에 대한 결제가 동시에 이루어 질 수 있음
(2) 만약 이수지와 이경오 모두 같은 영화관, 같은 시간, 같은 영화, 같은 좌석을 예매한다면 해당 좌석은 두 사람 중 그 누구의 좌석도 아닌 좌석이 됨
(3) 영화관은 대혼란은 맞이함
(4) 데이터베이스의 동시성은 한 기업의 비즈니스 성패를 좌우할 수 있을 정도로 중요함
데이터베이스의 기본 기능
영화 예매 시스템을 기반으로 설명한다.
데이터베이스의 가장 중요한 기능은 데이터를 삽입하고 삭제하고 수정하고 조회하는 것이다.
데이터에 대한 조회는 영화 예매를 할때 영화 예매 시간표를 조회하는 것 등이다.
데이터의 갱신은 3가지가 있다. 삽입, 삭제, 수정이다.
삽입은 데이터를 저장하는 기능이다. 삭제는 원하는 데이터를 삭제하는 기능이다. 수정은 원하는 데이터를 수정하는 기능이다.
삽입, 삭제, 수정, 조회 기능을 모두 갖추고 있어야지만 운영이 가능하다.
영화 예약 시스템 말고도 병원 예약 시스템, 증권사 시스템, 보험사 시스템, 은행 시스템, 전자정보 시스템부터 우리가 쓰고 있는 수많은 시스템은 전부 데이터의 삽입, 삭제, 수정, 조회 기능을 지원하고 있다. 그걸로 구현되어 있다.
지난 시간에 데이터베이스의 동시성이 굉장히 중요하다. 데이터베이스의 강력한 특징 중에 하나이다.
데이터 베이스가 동시성을 지원하다보니 여러명의 사용자가 작업을 할때 데이터의 일관성 정확성등이 어긋날 수 있다.
그런거를 해결하기 위해서 지원을 해주는 기능이 동시성 제어 기능이다. 정말 중요한 기능이다.
예를 들면, 이 수지라는 사람이 있는데 강남역CGV 1관에서 2020년 4월 26일 20:30분에 시작하는 영화의 A2 좌석을 선택 후 결제를 진행하고 있는 상태이다. A2 좌석을 찍고 들어가서 결제를 기다리고 있는 상태이다. 이 상태는 암묵적으로 예약을 기다리고 있는 상태이다 그러면 이경오라는 사람은 강남역CGV 1관에서 2020년 4월 26일 20:30분에 시작하는 영화를 예매 시 A2 좌석은 예매할 수 없어야 한다. 아직 결제 완료가 된 상태가 아니여도 이경오는 A2 좌석을 선택할 수 없어야 한다. 이게 중요하다. 만일 이수지가 A2 좌석을 선택하고 결제 완료를 하지 않고 기다리는 동안 이경오가 A2 좌석을 선택해서 결제를 진행했다면 이경오는 A2 좌석을 갖게 되고 이수지도 A2 좌석을 선택해서 결제를 했다면 A2 좌석을 가지고 있는 사람이 2명이 된다. 그렇게 되면 분란의 소지가 될 여지가 있다. 이렇게 좌석이 겹치게 된다면 큰 문제가 일어날 수 있다. 그렇기 때문에 데이터 베이스의 동시성 제어가 중요하다. 그렇기 때문에 이수지가 A2 좌석을 선택했다면 다른 사람은 그 좌석을 선택할 수 없어야 한다. 이러한 것들을 해주는 것이 바로 동시성 제어이다. 동시성 제어가 보장되지 않는다면 A2 좌석에 대한 결재가 동시에 이루어 질 수 있다. 최악의 케이스가 발생할 수 있다. 그렇기 때문에 데이터 베이스의 동시성은 한 기업을 위기에 빠뜨릴수 있기 때문에 중요하다.
[ ] 장애 대응 기능
- 데이터베이스는 데이터 손실이 발생한 경우에 복원이 가능 해야한다.
- 즉 데이터의 보호와 장애에 대한 방안이 있어야 한다.
[ ] 보안 기능
개인용 컴퓨터 | --------------------------> 보안에 위배 되지 않는 데이터 조회 |
데이터베이스 서버 |
휴대폰 | ||
태블릿 |
(1) 데이터베이스의 보안 기능은 사용자에게 보여줄 데이터만 보여주는 것
(2) 보안에 위배되는 데이터는 데이터베이스 서버 내에서 관리
(3) 사용자는 데이터베이스 내부를 알 필요가 없고 자신이 원하는 정보처리만을 수행
(4) 개인 정보의 유출 등은 매우 심각한 사회문제가 되므로 데이터의 보안이 중요함
어떠한 백업 전략 데이터에 대한 로딩 전략을 통해서 손실된 데이터를 복구 할 수 있어야한다. 이러한 것을 데이터베이스 시스템들이 제공하고 있다.
보안 기능 개인용 컴퓨터, 휴대폰, 태블릿 어느것으로 보든 보안이 위배되지 않는 것을 보아야 한다. 개인 정보가 유출된다던가 그러면 안된다. 어떤 시스템에서 결제 내역을 조회했는데 자기 주민 번호가 나온다던가 개인 정보가 조회된다던가 그러면 안된다. 그래서 보안 기능은 사용자에게 보여줄 데이터만 보여줘야 한다. 보안에 위배되는 데이터는 데이터베이스 서버 내에서 관리 암호화 처리를 하든 마스킹 처리를 하든 데이터 베이스 서버 내에서 관리해야 한다. 사용자는 데이터 베이스 내부를 알 필요가 없다. 개인정보 유출은 사회적인 이슈가 된다. 기업들이 기업에 성패가 달렸다고 할 수 있다. 그래서 보안 기능도 굉장히 중요하다. 데이터베이스의 기본 기능에 대해서 알아봤다.
5. 마치며
매일 매일 참여하는게 힘들었지만, 하고나니 도움이 많이 된 거 같다.
패스트 캠퍼스 링크
'자격증 > 패스트 캠퍼스 데이터베이스와 SQLD 합격패스 Online' 카테고리의 다른 글
패스트 캠퍼스 챌린지 30일차 데이터베이스와 SQLD 합격패스 Online (0) | 2021.10.05 |
---|---|
패스트 캠퍼스 챌린지 29일차 데이터베이스와 SQLD 합격패스 Online (0) | 2021.10.04 |
패스트 캠퍼스 챌린지 28일차 데이터베이스와 SQLD 합격패스 Online (0) | 2021.10.03 |
패스트 캠퍼스 챌린지 27일차 데이터베이스와 SQLD 합격패스 Online (0) | 2021.10.02 |
패스트 캠퍼스 챌린지 26일차 데이터베이스와 SQLD 합격패스 Online (0) | 2021.10.01 |