데이터베이스

위수현·2023년 2월 8일
0

데이터베이스 개요

-> ID,PW를 저장소에 저장하는 구조텍스트

자료(data)

🔎 현실 세계에서 관찰이나 측정을 통해 수집한
단순한 사실이나 값

정보(information)

🔎 의사 결정에 도움을 줄 수 있는 유용한 형태

🔎 자료를 가공(처리)해서 얻을 수 있는 결과를 의미

데이터베이스(db)

🔎 어느 한 조직체의 여러 응용 시스템들이 공동으로 사용할 수 있도록 통합하여 저장한 운영데이터의
집합
🔎 공동의 목적을 지원하기 위한 서로 관련된 자료들의 모임
🔎 주제와 관련된 의미있는 데이터들의 모음

DBMS(Data Base Management System)

🔎 db를 관리하는 프로그램

🔎 사용자에게 데이터베이스를 생성하고 유지할 수 있게 하는 프로그램의 집합

🔎 DBMS는 데이터베이스 언어를 가지고 있으며 이를 통해 데이터의 삽입/삭제/수정/조회를 할 수 있다.
( 개인정보가 털렸다? -> DBMS가 털렸다고 볼 수 있다. )

🔎 DB는 너무 중요하기에 2중, 3중 백업을 하는 작업을 한다.

DBMS의 기능

🔎 데이터의 무결성 유지 (데이터가 일관되게 저장되어야 함)
-> DB의 데이터는 실세계를 적용하는
규칙을 항상 만족해야 함
-> 서로 다른 부분에 있는 두 개의 데이터가 서로 모순되지 않아야 함. 데이터의 일관성 유지

-> ID, PW는 두 개 이상이 될 수 없다.

데이터베이스의 모델 종류

🔎 계층데이터 모델
🔎 망 데이터 모델
🔎 관계형 데이터 모델(Relational Data Model) -> 앞으로 사용할 모델

🔎 개체 집합에 대한 속성 관계를 표현하기 위하여 개체를 테이블로 사용하고 개체 집합들 사이의 관계는 공통 속성으로 연결하는 독립된 데이터 모델

-> 데이터베이스의 테이블 행, 열, 저장 방법

관계형 데이터 모델의 용어

🔎 테이블(Table), 열(column), 행(Row)

🔎 관계 데이터베이스에 데이터를 저장할 수 있는 형식 테이블(Table = Relation)

🔎 행과 열의 교차점은 원자 값이라는 오직 하나의 값으로 구성

🔎 테이블의 행은 순서가 정해져 있지 않다.

🔎 테이블의 내용은 실제적인 행의 집합으로 간주된다.

SQL

🔎 SQL(Structured Query Language)은 관계형 데이터베이스 언어이다.

🔎 데이터의 삽입, 삭제, 갱신, 질의, 보호(보안) 명령문 으로 구성

🔎 SQL은 관계형 데이터베이스 언어로써 비절차적 데이터베이스 언어로 분류한다.

-> DBMS의 통신구조

-> cmd에서 DBMS의 설치 확인
-> ID는 system, PW는 1234 ( '최고 관리자 권한'으로 오라클 DBMS의 저장소에 접근 )

-> system은 절대 사용하지 않는다(사용해도 정말 조심스럽게 사용)

< 오라클 DB 세팅 명령어 >

디비버(DBeaver)

🔎 실행키 : ctrl + enter
🔎 경로:
C:\Users\KITCOOP\AppData\Roaming\DBeaverData\workspace6\General\Scripts


Ex) project - scripts - day01.sql
- 우클릭 - show resources - 경로확인 가능

오라클 DB 다운로드

https://www.oracle.com/database/technologies/xe-prior-release-downloads.html 링크참조

->맨위 windows64비트(윈도우 기준)
-> 오라클 로그인 
-> 다운로드 
-> gb\util폴더에 압축파일 풀기 
-> .exe 실행파일 실행
-> agreement 허용 
-> next 
-> next 
-> ID 1234, PW 1234로 설정
-> cmd 실행 
-> sqlplus system/1234 + enter
-> DB설치여부 확인

디비버 다운로드

->dbeaver 공홈 
-> 다운로드클릭 
-> windows .zip파일 다운로드
-> gb\util폴더에 압축파일 풀기 
-> .exe.실행파일 실행
-> create sample database 팝업창 no선택
-> 팝업창 (취소) 
-> 좌상단 database 충전기 아이콘 클릭 
-> oracle 선택
-> 다음 
-> database : XE / username : hr / PW : 1234
-> 좌하단 Test connection클릭 
-> 다운로드 클릭 
-> 확인 클릭
-> 완료 클릭
-> localhost 클릭 
-> f2(Rename) : hr로 설정

DBeaver 세팅

-> database 설정 및 선택



-> Database : Xe / User : hr / PW : *로 설정
( 필요한 라이브러리를 보여주는 사진 )
-> Download 클릭

-> Connected라는 문구가 뜨면 세팅이 잘 된 상태이다

-> 정상적으로 세팅이 되었다면 좌상단에 localhost가 생성된다.

-> dbms -> hr -> Schemas -> hr -> Tables

-> Script부분에 sql파일이 생성되었으면 이를 토대로 dbms를 활용한다.

-> 이름값을 맞춰줘야 에러가 발생하지 않으므로 초기에 설정했던 'hr'로 파일명을 수정한다.

-> 해당 파일이 저장되는 경로를 열고싶으면 파일 + 우클릭 + Show resource in explorer 클릭 -> 경로확인 가능

SQL

< SQL 기능에 따른 분류 >

데이터 정의어(DDL)

🔎 테이블이나 관계의 구조를 생성하는데 사용하며
create, alter, drop 문 등이 있다.

데이터 조작어(DDL)

🔎 테이블에 데이터를 검색, 삽입, 수정, 삭제하는데 사용하며 insert, select, update, delete 문 등이 있다.
(CRUD - Create Read Update Delete)

🔎 연관성
insert - create / select - read / delete - delete / update - update

🔎 개발자 입장에서 이 4가지중 가장 까다로운 db조작어는 select문이다

🔎 이유는 대량의 데이터를 단시간에 처리하는 것이 가장 어렵기 때문이다.
🔎 고객의 요청을 정확히 파악해야 하기에 까다 로운 이유도 있다.
🔎 java에서처럼 A또는B인지, A와B 둘 다 인지 명확하게 처리해야하기 때문이다. )

데이터 제어어(DCL)

🔎 데이터의 사용 권한을 관리하는데 사용하며
grant, revoke 문 등이 있다.

SELECT문의 구성 요소

SELECT	EMPLOYEE_ID, LAST_NAME		
// SELECT	: ~을 선택해서 가져온다
// ','를 기점으로 가져온다
FROM	EMPLOYEES	
// FROM	: 	(EMPLOYEE table)~에서 가져온다
WHERE	LAST_NAME; = 'ostin';	
// 	WHERE	: ~조건에서 가져온다

dual

🔎 오라클에서 기본으로 제공하는 dummy table

🔎 간단하게 함수를 이용해서 계산 결과값을
확인할 때 사용하는 테이블

🔎 dual 테이블은 사용자가 함수(계산)를 실행할 때 임시로 사용하기에 적합하다.

🔎 함수에 대한 쓰임을 알고 싶을 때 특정 테이블을 이용하여 함수의 값을 리턴받을 수 있다.

DBMS 기능

distinct : 중복제거
or : 조건
not : 부정
<> : 꺽세를 넣으면 NOT과 같은 
부정의 의미가 된다.
!=	: JAVA처럼 ' != '은 
정의 의미를 내포한다.
범위 : > , < , >= , <=
between A and B	:'범위'와 같은 의미를 내포한다.
A,B위치 중요 
A보다 크고 B보다 작다.
in절 : or과 동일
like : d로 끝나는 사람(employee에서 
first_name이 d로 끝나는 사람) '%d'로 표기
a인 사람 (앞에 뭐가 오든 상관없는 	
first_name 세번째에 a가 들어가는 사람의 리
스트를 뽑아라 'a%'로 표기
is null	: null값이 할당되어 있는 값을
뽑고 싶을 때 사용
is not null : null값이 아닌 값을 뽑고자 
할 때 사용
order by ASC : 오름차순, ASC는 생략가능
order by DESC : 내림차순
sum : 합계
count(*) :  몇 행인지를 알려주는
count(*)기능
알리아스 : "~~" ->이름으로 표기해줌
avg : 평균
max : 최대값
min : 최소값
abs : 절대값
round() : 반올림
trunc : 절사
concat : 문자열 연결
initcap : 첫 글자를 대문자로
upper() : 대문자로 변환
lower() 소문자로 변환
lpad : 자리수에 맞게 설정한 값을 넣어주는
역할 ( 앞부터 시작 )
rpad : 자리수에 맞게 설정한 값을 넣어주는
역할 ( 뒤부터 시작 )
LTRIM : 자리수에 맞게 설정한 값을 지워주는
역할 ( 앞부터 시작 )
RTRIM : 자리수에 맞게 설정한 값을 지워주는
역할 ( 뒤부터 시작 )
substr (서브스트링) :  ( ----, x, y)를
기준으로 x~y번째까지 불러온다. + 띄어쓰기 
포함
replace : 바꾸고자하는 문자나 문자열을 
지정하면 지정한 형태로 문자나 문자열을 
바꾸어준다.
systdate() : 현재시각 호출
ADD_MONTH(SYSDATE, x ) : x개월을 더해준다
LAST_MONTH(SYSDATE, y ) : y개월의 마지막 
날짜를 호출한다
to char : 날짜 -> 문자열
to_date() : 문자열 -> 날짜
nvl() : 널값을 다른 데이터로 변경하는 함수
decode() : JAVA의 switch문과 동일
case ~ when ~ else ~ end : 조건문
 group by : 그룹화 + 같은 계열을 묶는 느낌(!= distinct)
 집계함수 + distinct는 같이 사용될 수 없다. ( 사용 불가 )
 부서별 급여 할계 집계함수 + group by 는 같이 올 수 있다.( 사용 가능 )

<보기>

-> DBMS - EMPLOYEES 테이블 불러온 값

<예제>

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

profile
수현

0개의 댓글