DBMS 1일차

전영덕·2023년 2월 8일
0

DBMS

목록 보기
1/7

1. 데이터베이스 개요

우리가 쇼핑몰 사이트에 회원가입을 하면 내 ID 와 PW는 어딘가의 공간에 저장된다.
로그인 창에 가입했을 때 작성한 ID와 PW를 입력 할 때마다 그 어딘가에 저장해 놓은 값과 비교해서 맞으면 로그인이 성공한다.
ID를 만들 때 주소를 내가 입력 했었고 이사를 가게 되면 주소를 수정해야한다. 즉, 그 외에도 내 정보를 업데이트 해야하는 일이 있다.
사용자가 보는 Front단에 어떤 값을 입력을 하면 JAVA단에 입력이 되고 JAVA는 DBMS에 있는 정보와 비교를해서 그 결과값을 프론트단에 넘기게 된다.

1-1. 자료(data)

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

1-2. 정보(inforrmation)

  • 의사 결정에 도움을 줄 수 있는 유용한 형태
  • 자료를 가공(처리)해서 얻을 수 있는 결과를 의미

1-3. 데이터 베이스( DB)

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

1-4. DBMS(DataBase Management System)

  • 사용자에게 데이터베이스를 생성하고 유지할 수 있게 하는 프로그램 집합
  • DBMS는 데이터 베이스언어를 가지고 있으며 이를 통해 데이터의 삽입/삭제/수정/조회 할 수 있다.

1-5. DBMS의 기능

  • 데이터의 무결성&일관성을 유지한다.
  • DB의 데이터는 실세계를 적용하는 규칙을 항상 만족해야한다.
  • 서로 다른 부분에 있는 두 개의 데이터가 서로 모순되지 않아야한다.

2. 데이터베이스의 모델의 종류(정보처리기사자격증 딴다면 이걸공부해야함)

2-1. 계층 데이터 모델 : 오늘 날에는 잘 사용하지 않는다.

2-2. 망 데이터 모델 : 역시 잘 사용하지 않는다.

2-3. 관계데이터 모델(Relational Data Model)

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

3. 관계형 데이터 모델의 용어

  • 테이블(Table), 열(Column), 행(Row)
  • 관계 데이터베이스에 데이터를 저장할 수 있는 형식 테이블(Table = Relation)
  • 행과 열의 교차점은 원자 값 이라는 오직 하나의 값으로 구성
  • 테이블의 행은 순서가 정해져 있지 않다.
  • 테이블의 내용은 실제적인 행의 집합으로 간주된다.

4. SQL

  • Structured Query Language
  • 관계형 데이터베이스 언어이다.
  • 데이터의 삽입,삭제,갱신,질의(조회), 보호(보안)에 대한 명령문으로 구성.
  • SQL은 관계 데이터베이스 언어로써 비절차적 데이터베이스 언어로 분류한다.

DBA라는 직군이 따로있다. DB를 전문적으로 다룸. 큰 대기업에 하청받을 정도의 기업이있었으나 작은 것들은 그냥 개발자가 한다.

5. 데이터베이스 설치

- 설치 사이트 : Oracle 11g 사이트에서 설치하고 비밀번호는 1234로 지정.

https://www.oracle.com/database/technologies/xe-prior-release-downloads.html

  • 반디집의 알아서 풀기기능을 사용해서인지 파일 못찾는 오류가 있었으며, 삭제후 다시 전체 풀기를 하니 정상작동했다.

  • 잘 설치되었는지 확인하는 방법 : cmd에서 "sqlplus system/1234" 입력
    system은 최고관리자계정이며, hr이라는 학습용 계정이있는데 기본적으로 락이 걸려있어서 system계정에서 락을 풀어줘야한다.

Microsoft Windows [Version 10.0.19045.2486]
(c) Microsoft Corporation. All rights reserved.

C:\Users\KITCOOP>sqlplus system/1234

SQL*Plus: Release 11.2.0.2.0 Production on 수 2월 8 16:20:20 2023

Copyright (c) 1982, 2014, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production

SQL> alter user hr identified by hr account unlock;

User altered.

SQL> alter user hr identified by 1234;

User altered.

SQL> grant connect, resource to hr;

Grant succeeded.

SQL>

위의 문자열 처럼
1. sqlplus system/1234
2. alter user hr identified by hr account unlock;
3. alter user hr identified by 1234;
4. grant connect, resource to hr;

4개를 입력하면 셋팅 끝.
exit 입력해서 sql을빠져 나오고
sqlplus hr/1234 입력해서 hr로 들어감

select * from employees; 같은거 예시로 입력했을 때 잔뜩 출력되면 성공.

DBeaver 라는 툴 설치

구글에서 dbeaver검색해서 맨위에 나오는 DBeaver Community의 download로 들어가
윈도우 버전의 zip버전을 받아. 알집 풀고 exe파일 실행
해서 처음에 나오는것들 아니요, 취소 눌러서 없앰. DBeaver계정을 통해 system으로도 들어갈 수있긴 하지만 위험하기 때문에 hr이라는 계정을 통해서만 들어갈 것임. 좌측 상단의 플러그 모양눌러서 계정연결해줄거임.

  • 계정연결
    Oracle -> database : ORCL 을 XE로 바꾸고 -> Username : hr, Password : 1234 로 해둠.
    Test Connection눌러서 드라이버셋팅을 디비버가 알아서 찾아줌. 다운로드하고 잘됐다는거 뜨면 완료.

이 때 Undefined Error가 뜨면 파일하나를 추가해주어야한다.
Oracle Connecting Settings에서 우측 하단 "Driver Settings -> Libraries -> com.oracle.datase라고 되어있는 것중 ojdbc8 이 포함된 것을 삭제 -> AS File ->
C:\oraclexe\app\oracle\product\11.2.0\server\jdbc\lib 의 ojdbc6.jar 열기해서 추가해주면 완료.

F2 번 눌러서 hr로 이름바꿔줌
hr - Schemas - HR - Tables
ctrl+ m = 전체화면

Project - General에서 Stripts 안에 폴더를 만들고 파일을 만들기
파일이름이 day01만들었는데
다음날에는 같은 폴더안에 day02를 만들어둔다.

잘 만들었는지 확인하는것
예를 들어 자바에서 "Hello world" 출력해보는 것처럼

SELECT * FROM elployees;

근데 어떤 것을 커넥션해서 데이터를 볼지를 연결을 해야 뭘 하든말든 할거아니야
상단에 none라고되어있는것을 hr으로 바꿔
ctrl+ enter로 실행하면 나옴

6. DBeaver

  • 실행 : ctrl + enter

프로젝트 제너럴에서 파일 오른쪽클릭해서 show resource in explorer누르면 스크립트 파일의 위치가 나옴
C:\Users\KITCOOP\AppData\Roaming\DBeaverData\workspace6\General\Scripts\dbms
위의 위치가 디폴트 위치.

7. SQL

  • Oracle이라는 DBMS를 사용할 것이고 Oracle과 소통하는 언어가 sql임
  • SQL 기능에 따른 분류

7-1. 데이터 정의어(DDL)

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

7-2. 데이터 조작어(DML)

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

7-3. 데이터 제어어(DCL)

  • 수업시간에는 거의 안다룰 것임. 시스템에 대한 권한을 주거나 백업을 한다거나 하는 일련의 과정.
    grant라고 하는 제어어를 hr에게 권한을 줄 때 이미 사용하긴 했음.
  • 데이터의 사용권한을 관리하는데 사용하며, grant, evoke문 등이 있다.

8. SELECT 문의 구성 요소

SELECT EMPLOYEE_ID, LAST_NAME
FROM EMPLOYEES
WHERE LAST_NAME = 'ostin';

SELECT *
FROM EMPLOYEES
;

  • 자동완성기능의 극대화를 위해
SELECT *
FROM EMPLOYEES;

를 먼저해서 실행시켜준 후에

SELECT ~~~~~
FROM EMOLOYEES;

를 하는 것이 훨씬 빠르다.

  • sql쿼리문에서는 대소문자의 구별이 없지만, data 중에서는 당연히 있다.

0개의 댓글