Oracle Database
Oracle에서는 뭘 배울까?
=> 프로그램에서 다루게 될 데이터에 대해 조작하는 개념
Data: 관찰 결과로 나타난 정량적 혹은 정성적인 실제 값 (날 것)
정보: 데이터를 기반으로 의미를 부여한 것 (가공된 데이터)
Database
: 한 조직에 필요한 정보를 여러 응용 시스템에서 공용할 수 있도록 (1, 4)
논리적으로 연관된 데이터를 모으고 중복되는 데이터를 최소화하여 (2)
구조적으로 통합/저장해 놓은 것 (3)
1. 공용 데이터(Shared Data): 공동으로 사용되는 데이터
2. 통합 데이터(Integrated Data): 중복 최소화로 중복으로 인한 데이터 불일치 현상 제거
3. 저장 데이터(Stored Data): 컴퓨터 저장장치에 저장된 데이터
4. 운영 데이터(Operational Data): 조직의 목적을 위해 사용되는 데이터
Database의 특징
1. 실시간 접근성(real time accessibility): 사용자가 데이터 요청 시 실시간으로 결과 서비스
ex: 은행 어플 잔고 확인 서비스 - 밤 11시에 조회해도 실시간 잔고가 나와야 함
2. 계속적인 변화(continuos change): 데이터 값은 시간에 따라 항상 바뀜
ex: 은행 어플 잔고 확인 서비스 - 월급 입금 시 바로 적용되어야 함
3. 동시 공유(concurrent sharing): 서로 다른 업무 또는 여러 사용자에게 동시 공유됨
ex: 네이버 뉴스 - 허가된 여러 사용자가 동시에 열람/공유 가능함
DBMS(Database Management System)
: 데이터베이스에서 데이터 추출, 조작, 정의, 제어 등을 할 수 있게 해 주는 데이터베이스 전용 관리 프로그램
DBMS의 기능
1) 데이터 추출(Retrieval): 사용자가 조회하는 데이터 혹은 응용 프로그램의 데이터 추출(가져다 쓴다)
2) 데이터 조작(Manipulation): 데이터를 조작하는 소프트웨어(응용 프로그램)가 요청하는 데이터 삽입, 수정, 삭제 작업 지원
3) 데이터 정의(Definition): 데이터의 구조(테이블)를 정의하고 데이터 구조(테이블)에 대한 삭제 및 변경 기능 수행
=> 데이터 자체의 정의가 아닌 데이터가 들어갈 수 있는 테이블에 대한 정의, 삭제, 변경을 뜻함!
4) 데이터 제어(Control): 데이터베이스 사용자를 생성하고 모니터링하며 접근 제어 백업(롤백)과 회복, 동시성 제어 등의 기능 지원
=> 데이터 처리 흐름에 대한 지원
=> 큰 의미로 보면 추출도 조작에 들어가긴 함! 조작 / 정의 / 제어
DBMS의 종류와 특징
DBMS 사용 이점
1. 데이터 독립화: 데이터와 응용 프로그램을 분리시킴으로써 상호 영향 정도를 줄일 수 있음
2. 데이터 중복 최소화, 데이터 무결성 보장: 중복 데이터 최소화시키면 데이터 무결성이 손상될 가능성이 줄어듦, 저장공간 낭비 줄임
=> 무결성: 정확한 정보를 다룸
3. 데이터 보안 향상: 응용프로그램은 DBMS를 통해 DBMS가 허용하는 데이터에만 접근 가능하며, 권한에 맞게 접근 제한하거나 암호화시켜 저장 가능
4. 관리 편의성 향상: 다양한 방법으로 데이터 백업 가능하고 장애 발생 시 복구 가능
DBMS 변천 과정
메모리 공간은 휘발성의 특징이 있어 프로그램 종료 후 정적인 상태가 되면 메모리가 다 날아감
=> 이를 방지하기 위해 예전에는 파일에 데이터를 저장함
----- IO에서도 만들었듯 코드가 매우 복잡함 -----
그래서, DBMS 등장 (시간순 나열)
계층 데이터 모델 => 데이터 중복 多, 무결성 깨짐
네트워크 데이터 모델 => 계층 데이터보다는 중복 줄었지만 그물망 형식으로 되어 있어 데이터 이관 등의 작업 시 매우 복잡
관계 데이터 모델 => 테이블의 형태로 행/열로 이루어진 곳에 데이터 저장함으로써 카테고리별 등으로 데이터를 나눠 저장 가능
중복 최소화, 원하는 구조로 저장 가능하여 현재까지 꾸준히 쓰이고 있음
=> ...