SQL
오라클 이클립스와 연결
이클립스와 연결
DataSouceExploer view
필요
- 메뉴>window>showview>other>data managent >DataSourceExploer
- new>connectionProfile 설정>DB선택(Oracle)
- newDriverDefinition(단추모양 노랑동그라미)
오라클
ORACLE 설정
- 자바 어플리케이션에 객체정보를 안전하게 보관하고 관리하기 위해
데이터베이스 관리 시스템
(Oracle-데이터 저장소 + 관리 기능)
- 오라클 데이터 베이스 설치
- 1, 2를 연결 connection
- cmd 창 sqlplus
- 윈도우키 + R ⇒ cmd 엔터 ⇒ sqlplus
- 처음에 계정 활성화를 위해서는 DBA 접속
- 사용자명 : system 비번 요구 : 보이지 않지만 입력 후 엔터
- SQL >
- 사용자 scott, hr 계정이 잠겨있으니 풀어 보자
- SQL >
alter user scott identified by tiger account unlock;
- 사용자가 변경되었습니다.
- SQL >
conn scott/tiger
- 사용자가 변경되었습니다.
- scott 계정으로 접속 완료, scott 계정 안의 모든 스키마 정보를 사용 가능
- SQL>conn hr/hr
- hr계정은 잠겨있습니다.
- SQL > quit
- sql developer
- 4가지 정보를 요청 : url, sid, id, pwd
데이터베이스 시스템
01. 데이터베이스와 데이터베이스 시스템
1. 데이터, 정보, 지식
가공되지 않은 원석은 보석이라 할 수 없다. 그 원석을 가공 시켜야 보석이 된다. 이와 같이 데이터와 정보도 그렇게 정의할 수 있는데 내가 측정한 것을 값으로만 가지고 있으면 의미가 없다. 그 값인 데이터를 의미를 부여해야 사용할 수 있으며 정보가 된다. 지식의 경우 이러한 정보들을 토대로 자신이 이해하면 지식이 된다. 빅데이터 ⇒(정제) chatgpt ⇒ 그걸 내꺼로
데이터
- 데이터는 끊임없이 만들어진다.
- 데이터가 모이면 정보가 되고, 정보가 모이면 지식(돈)이다.
- 관찰의 결과로 나타난 정량적 혹은 정성적인
실제 값
- Ex. 커피 전문점 결제 내역
정보
데이터에 의미를 부여
한 것
- I(information) =Proccess(Data) ⇒ abstract
I=P(D)
- Ex. 커피전문점 30~40대가 최상위 순위 결제 분포
지식
2. 일상생활의 데이터베이스
데이터베이스
- 조직에 필요한 정보를 얻기 위해 논리적으로 연관된 데이터를 모아 구조적으로 통합해 놓은 것
구조화된 데이터의 집합
- 운영 데이터를 통합하여 저장하며 공용으로 사용
데이터베이스 시스템(소프트웨어)
- 데이터, 정보, 지식은 사람은 모두 기억할 수 없기 때문에 컴퓨터에 저장하여 관리하는 시스템
- 데이터베이스에 데이터를 저장(저장데이터)하고, 이를 관리하여 조직에 필요한 정보를 생성해주는 시스템
- 데이터의 검색과 변경 작업을 주로 수행
변경
이란 시간에 따라 변하는 데이터 값을 데이터베이스에 반영하기 위해 수행하는 삽입, 삭제, 수정 등의 작업을 말함(=CRUD)
데이터베이스의 정의
- 통합된 데이터(Integrated data)
- 데이터를 통합하는 개념, 각자 사용하던 데이터의 중복을 최소화하여 중복으로 인한 데이터 불일치 현상 제거
- 저장된 데이터(shored data)
- 문서로 보관된 데이터가 아니라 디스크, 테이프 같은 컴퓨터 저장장치에 저장된 데이터를 의미
- 운영 데이터(operational data)
- 조직의 목적을 위해 사용되는 데이터를 의미
- 업무를 위한 검색 할 목적으로 저장된 데이터
- 공용 데이터(shared data)
3. 데이터베이스의 특징
특징
- 실시간 접근성(real time accessibility)
- 데이터베이스는
실시간
으로 서비스, 사용자가 데이터를 요청하면 몇 시간이나 몇 일 뒤에 결과를 전송하는 것이 아니라 수 초 내에 결과를 서비스
- 계속적인 변화(continuous change)
- 데이터베이스에 저장된 내용은 어느 한 순간의 상태를 나타내지만, 데이터 값은 시간에 따라 항
상 바뀜. 데이터베이스는 삽입(insert), 삭제(delete), 수정(update) 등의 작업을 통하여 바뀐 데이
터 값을 저장
- 동시 공유(concurrent sharing)
- 데이터베이스는 서로 다른 업무 또는 여러 사용자에게 동시에 공유 동시(concurrent)는 병행이라고도 하며, 데이터베이스에 접근하는 프로그램이 여러 개 있다는 의미
- 내용에 따른 참조(reference by content)
- 데이터베이스에 저장된 데이터는 데이터의 물리적인 위치가 아니라
데이터 값에 따라 참조
4. 데이터베이스 시스템의 구성
데이터베이스 시스템(ORACLE) ⇒ 몽고DB
- DBMS
- 사용자와 데이터베이스를 연결 시켜 주는 소프트웨어
- 데이터베이스
- 데이터 모델(=스키마)
- 데이터가 저장되는 기법에 관한 내용
- 데이터베이스에
저장되는 데이터 구조
와 제약조건
을 정의한 것
- 인스턴스(instance)
- 스키마에 따라 데이터베이스에 실제로 저장된 값
02. 데이터 베이스의 구조
1. 3단계 데이터베이스 구조
3단계 데이터베이스 구조
- 미국 표준화 기관인 ANSI/SPARC에서 제안
- 데이터베이스를 쉽게 이해하고 이용할 수 있도록 하나의 데이터 베이스를 관점에 따라 세 단계로 나눈 것
외부 단계(External level)
: 개별 사용자 관점 - 집주인 관점
- 데이터베이스를 개별 사용자 관점에서 이해하고 표현하는 단계
- 외부 스키마(external schema)
– 외부 단계에서 사용자에게 필요한 데이터베이스를 정의한 것, 서브 스키마(sub schema)라고도 함
개념 단계(Conceptual level)
: 조직 전체의 관점(OS, 엔진) - 관리인 관점
- 개념 스키마 하나만 존재
- 개념 단계에서 체 데이터베이스의 논리적 구조를 정의한 것
- 전체 데이터베이스에 어떤 데이터가 저장되는지, 데이터들 간에는 어떤 관계가 존재
하고 어떤 제약조건이 있는지에 대한 정의뿐만 아니라, 데이터에 대한 보안 정책이나 접근 권한에 대한 정의도 포함
내부 단계(Internal level)
: 저장 장치의 관점 - 건설 업체 관점
- 내부 스키마
- 체 데이터베이스가 저장 장치에 실제로 저장되는 방법을 정의한 것
- 레코드 구조, 필드 크기, 레코드 접귺 경로 등 물리적 저장 구조를 정의
- 각 단계별로 다른 추상화 제공
- 내부 단계에서 외부 단계로 갈수록 추상화 레벨이 높아짐
데이터 독립성
- 데이터 베이스 구조의 목적
- 데이터 독립성의 실현 = 서로 간의 영향 최소화
- 하위 스키마를 변경하더라도 상위 스키마 영향 받지 않는 특성
논리적 데이터 독립성
- 개념 스키마가 변경되어도 외부 스키마는 영향을 받지 않음
- 개념 스키마가 변경되면 관련된 외부/개념 사상만 정확하게 수정해주면 됨
물리적 데이터 독립성
- 내부 스키마가 변경되어도 개념 스키마는 영향을 받지 않음
- 내부 스키마가 변경되면 관련된 개념/내부 사상만 정확하게 수정해주면 됨’
데이터 사전
- 시스템 카탈로그(system catalog)라고도 함
- 데이터베이스에 저장되는 데이터에 관한 정보, 즉 메타 데이터를 유지하는 시스템 데이터베이스
메타 데이터(meta data)
: 데이터에 대한 데이터
- 스키마, 사상 정보, 다양한 제약조건 등을 저장
- 데이터베이스 관리 시스템(DBA)이 스스로 생성하고 유지함
- 일반 사용자도 접근이 가능하지만 저장 내용을 검색만 할 수 있음
데이터 디렉터리
- 데이터 사전에 있는 데이터에 실제로 접근하는 데 필요한 위치 정보를
저장하는 시스템 데이터베이스
- 일반 사용자의 접근은 허용되지 않음
04. 데이터 언어
SQL(Structured Query Language) 에스큐엘, 시퀼
- 데이터를 다루고 관리하는 데 사용하는 데이터베이스 질의 언어
- 사용 목적 ⇒ 명령어 단어로 구분하여 정의
DQL(Data Query Language)
: 저장한 데이터를 원하는 방식으로 조회
DML(Data Manuipulation Language)
: 테이블 내의 데이터를 저장, 수정, 삭제 명령어
DDL(Data Definition Language)
: DBMS 내 데이터를 위한 테이블을 포함한 뷰, 인덱스 등 객체들 생성, 수정, 삭제하는 명령어
TCL(Transaction Control Language)
: 트랜잭션 데이터의 영구 저장, 취소 관련 명령어
DCL(Data Control Language)
: 데이터 사용 권한과 권한 회수 명령어
데이터 모델
1. 계층형 데이터 모델과 네트워크형 데이터 모델
데이터 모델
데이터 모델 종류
- 계층형 :
트리
구조 데이터를 저장, 관리 하는 모델
- 네트워크형(망형) : 그래프 구조 데이터를 저장, 관리하는 모델
- 관계형 :
테이블
구조 데이터를 저장, 관리하는 모델
- 객체 지향형(Object Oriented DB) : 객체 개념을 기반으로 한 모델(Object)
관계형 데이터베이스(데이터를 저장, 관리하는 방법) -RDBMS(Relational)
- Oracle, 액세스(MS), MS-SQL, MySQL, PostGreSQL, DB2, MariaDB
관계 데이터 모델 3가지 요소
개체(Entity)
- 데이터베이스에서 데이터화하려는 모든 사물의 정보화 시키는 단위
- 강사 학생
속성(attribute)
- 개체를 구성하는 가장 작은 논리단위
- 강사(name, code, 과목), 학생(name, code, 수강과목, 점수, (이수 or 미이수))
관계(relationship)
- 개체와 개체 간의 또는 속성과 속성 간의 연관성
- 강사는 학생에게 수업을 한다
- 학생은 강사에게 수업을 받는다.
- 강사는 학생에게 수업자료를 배포한다.
데이터의 독립성과 무결성(신뢰성 있는 데이터)
- 테이블(Table)
- 2차원(x축, y축, 평면(점, 선, 면))의 표 형태로 데이터를 저장 관리
- 가로(행=로우[row]=레코드[record])
- 세로(열=컬럼[column]=속성[attribute]=필드[field])
- 개체 = 테이블
- 개체와 개체의 관계 맺을 때 ⇒
키(key)
, (유일값) =unique
- 테이블을 구성하는 여러가지 컬럼(열) 중에서 특별한 의미를 지닌 하나 또는 여러 열의 조합
실습
create table student(
sno varchar2(10) not null,
name VARCHAR2(20) not null,
korean integer default 0,
english integer default 0,
math integer default 0,
science integer default 0,
total integer default 0,
average float default 0,
grade varchar2(2), primary key(sno));
insert into student values('1','서유미',90,80,90,100,360,90.0,'A');
insert into student values('2','김진영',100,100,90,100,390,97.5,'A');
insert into student values('3','고미나',80,80,80,80,320,80.0,'B');
select * from student;
commit;
실습 2
--실습용 데이터 테이블 SCOTT 계정의 EMP, DEPT, SAGRADE, BONUS
--DQL(SELECT), DML(INSERT,UPDATE,DELECT), DDL(CREATE, ALTER, DROP), TCL(COMMIT, ROLLBACK), DCL(GRANT, REVOKE)
--1. EMP 테이블의 모든 데이터를 조회(출력)하세요.
--SELECT 컬럼명.. FORM 테이블명 WHERE 조건문;
DESC EMP;
SELECT EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO FROM EMP;
SELECT * FROM EMP;
SELECT * FROM EMP WHERE SAL > 1250;
SELECT * FROM DEPT;
키(KEY)
기본키(primary key)
- 테이블 안에서 하나의 로우(행, 정보, 레코드)를 구분하는 유일키(식별자)
- unique(중복 x) + not null(null x)
외래키(foregin key)
SELECT
SELECT란
- 테이블 내의 데이터를 조회할 때 사용하는 명령어
- 실행순서, 구조
기본구조[실행순서]
SELECT DISTINCT(중복 제거) 컬럼이름1, 컬럼이름2, ...[5] AS 컬럼이름변경
FROM 테이블명[1]
WHERE 조건절[2]
GROUP BY 컬럼명(그룹핑)[3]
HAVING (그룹핑 조건 : 그룹핑 다음에 조건을 줄 때)[4]
ORDER BY 컬럼명(오름차순 ASE, 내림차순 DESC)[6]
오름차순 : 1, 2, 3, 4, 5, 6
내림차순 : 6, 5, 4, 3, 2, 1
정리
- 데이터베이스 4가지 용어 정의
- 통합된 데이터
- 공용 데이터
- 운영 데이터
- 저장된 데이터
- 데이터 관리를 위한 두 가지 방식
- 파일시스템
- DBMS(데이터 관리 소프트웨어) - 데이터의 중복성 최소화
- 데이터 간의 관계를 주안점을 두고 테이블로 데이터를 관리하는 모델
- 데이터 베이스의 특징 4가지
- 실시간 접근성
- 내용에 따른 참조
- 동시 공유
- 계속적인 변화
- 데이터 베이스를 다루는 언어? SQL
회고
자바를 끝내고 오라클 sql로 넘어왔다. sql이 자바보다는 훨씬 쉽긴 한듯... 자바는 잊지 않게 복습해야 겠다. 이번주도 끝났다... 주말은 알바지만 그래도 1주를 잘 마무리 한 나에게 박수를 보낸다.