DataBase Day1 (DBMS)

이승준·2023년 9월 20일

데이터 베이스

목록 보기
1/1

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)

  • 데이터 간의 관계를 규정해서 요 관계대로 데이터를 관리
  • 속성(Attribute, Column, 열)이 모여서 하나의 Relation(Tuple, Row, Record)을 형성
  • 행이 모여서 테이블(Table)

=============================================================

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는 나 자신 컴퓨터

profile
can't do it

0개의 댓글