Data 자료 --> 자료가 모여서 가공을 통해 의미있는 자료 --> 정보
방대한 정보를 "잘" 관리하기 위해서 Database 라는 자료 구성 체계
--> 이것을 IT적으로 '잘' 관리하기 위해 DataBase Management System
데이터 종속성 -> Data dependency
-> 데이터를 이용하는 프로그램이 데이터의 구조 변화에 영향을 받는 현상
데이터 무결성 -> Data integrity
-> 데이터 오류가 없는 정확한 값을 저장하고 있어야 함을 의미
데이터 중복성과 데이터 불일치 -> Data redundancy, Data inconsistency
데이터의 중복성 : 동일한 정보가 여러 곳에 중복해서 존재하는 것
데이터의 불일치 : 중복된 데이터의 내용이 서로 상이하여 발생하는 문제
데이터 보안성 -> Data security
당시의 파일에 데이터를 저장하는 방식은 그 파일이 유출되면 파일의 내용이 손쉽게 알려질 수 있는 구조
데이터 표준화 -> Data standardization
표준화는 무조건 중요
=============================================================
DataWarehouse(DW) -> Operational Data Store (운영계 : ODS) <-- 저장 및 백업 (Data Store : 기간계)
=============================================================
데이터베이스가 나오고 나서 해결된 문제
데이터 독립성(independency) 지원 - 데이터 무결성 유지 - 데이터 중복성 및 불일치 최소화 - 높은 데이터 보안성 - 데이터 표준화의 용이성
HW = (Mainframe, Server(AIX), PC, Laptop, Storage...) C/S (Client Server)
SW = (DB2)
=============================================================
데이터 처리/분석 과정
데이터 소스 (내부 데이터(데이터베이스, 업무파일)와 외부데이터(소셜 네트워크 자료,영상 음악)가 있음)
-> 수집(1차처리)(외부 : 크롤링 , 내부 : ETL)
-> 저장 (NoSQL, Storage/RDBMS)
-> 처리(2차처리)(맵-리듀스(데이터 추출/전송/변환/적재)
-> 분석(데이터 마이닝(데이터 간의 규칙과 패턴을 조사하여 예측 모델 작성)
-> 표현(데이터 시각화(대시보드를 통해 차트, 그래프를 제공해준다)

=============================================================
데이터 마이닝(Data Mining) 은 대규모로 저장된 데이터 안에서 체계적이고 자동적으로 통계적 규칙이나 패턴을 분석하여 가치 있는 정보를 추출하는 과정
분류(Classification) : 일정한 집단에 대한 특정 정의를 통해 분류 및 구분을 추론
군집화(Clustering) : 구체적인 특성을 공유하는 군집을 그룹화
연관성(Association) : 동시에 발생한 사건 간의 관계를 정의
연속성(Sequencing) : 특정 기간에 걸쳐 발생하는 관계를 규명
예측(Forecasting) : 대용량 데이터 집합 내의 패턴을 기반으로 미래를 예측
=============================================================
데이터베이스 : 조직이 관리하는 데이터를 한 곳에 체계적으로 모아 놓은 것
DBMS : 모아 놓은 데이터를 관리하고 사용자의 요구를 처리해주는 소프트웨어
데이터베이스 서버 : 데이터베이스/DBMS가 설치된 컴퓨터
데이터베이스에 저장된 파일들을 '테이블'이라고 한다.
SQL(Structural Query Language) : 구조적 질의어
ANSL SQL (표준 SQL), DBMS 제조사별 SQL
postGreSQL**
- 관계형 DB(Relation)

=============================================================
PDB (Pluggable DB) - 우리가 알고 있는 일반적인 데이터베이스
CDB (Container DB) - 여러 PDB들을 담을 수 있는 더 큰 데이터 베이스
=============================================================
SQL Plus
아이디 로그인 방법
사용자명 : scott
비밀번호 : tiger
데이터베이스 : localhost/emppdb
/as sysdba 도 가능

성공한 사진

현재 접속한 사용자의 계정을 확인 하는 방법
select user from dual;
설치된 CDB 데이터베이스의 이름이 무엇인지 확인하는 방법
selct name from V$database;
현재 접속해 있는 PDB 데이터베이스의 이름이 무엇인지 확인하는 방법
show con_name;
CDB 전체의 PDB 목록을 확인하고 싶으면 다음과 같이 실행하는 방법
select name from V$PDBS;
EMPPDB를 구성하는 테이블스페이스 이름과 데이터 파일의 위치를 알아보는 방법
select tablespace_name,file name from dba_data_files;
현재 접속한 데이터베이스에는 어떤 테이블이 저장되어 있는지 확인해 보는법
select table_name 엔터
2 from user_tabels 엔터
3 order by table_name;
EMP 테이블이 저장되는 테이블 스페이스는 어디일까?
SELECT tabel_name, tablespace_name FROM dba tables 엔터
WHERE table_name = 'EMP';
=============================================================
데이터베이스의 과제
1) 데이터를 어떤 형태로 표현하고 저장할 것인가?
2) 저장된 데이터를 사용자들이 어떤 방법을 통해 이용할 수 있게 할 것인가?
3) 데이터베이스 내에 저장되는 정보들이 오류가 없도록 어떻게 관리할 것인가?
이 문제들을 포함하는 개념이 데이터 모델(Data Model)
=============================================================
오라클 데이터베이스 설치 및 구성 매우 중요
- 테이블 스페이스 생성
c:\oracle\data\springdev.dbf'size 500m autoextend on next 100m maxsize unlimited default storage(initial 128k next 64k pctincrease 10);
파일 경로 잘 확인 해줄 것!
- 클래식모드로 전환
alter session set "_ORACLE_SCRIPT" = true;
- 계정 생성 및 테이블스페이스 할당
create user springdev identified by "12345" default tablespace springdev temporary tablespace temp;
- 생성된 계정에 권한 부여
grant resource, connect, dba to springdev;
- 계정 패스워드 만료 기간 해제
grant resource, connect, dba to springdev;
=============================================================
- 테이블을 생성
create table tbl_test (
id number,
name varchar2(50), //varchar2 는 문자열
gender varchar2(10),
age number,
primary key(id)
)

=============================================================
1 "김철수" "남성" 34
2 "김민수" "남성" 28
3 "김현수" "여성" 21
4 "Kovins" "남성" 25
시퀀스(Sequence)
create Sequence tbl_test_seq
increment by 1
start with 1
nocycle nocache noorder;
insert into tbl_test (id,name,gender,age)
values (tbl_test_seq.nextval,'김철수','남성',32);
select id, name, gender, age from tbl_test where name = '김철수';
delete from tbl_test where name = '김숙';
update tbl_test set age = 45 where name = '김철수';
DML(Data Manipulation Language) : insert, update, delete 실행 후 commit
Create : 테이블스페이스, 사용자, 테이블, 행 삽입
Read : select
Update : update 테이블 이름 set 바꿀컬럼명 = 바꿀값 where 기준컬럼이름 = 데이터
Delete : delete from 테이블이름 where 조건
JDBC(Java Database Connectivity)
String uri = "jdbc::oracle::thin:@localhost::1521:xe";
localhost는 나 자신 컴퓨터