반응형
1. DATABASE의 등장 및 개념
1) DATABASE의 개요
- 파일 시스템의 단점을 보완하기 위해 DATABASE 등장
- 파일 시스템
- 데이타를 저장하기 위한 가장 원시적인 방법
- 대용량의 데이타를 관리하기에는 역부족
- 데이타 공유가 어려움
- 하나의 파일은 하나의 응용프로그램에서만을 위해 사용할 수 있음ㅠ - 즉, Stream을 하나밖에 만들지 못함ㅜㅜ
- 다중 사용자 환경을 지원하지 못함
- 보안에 취약
정리
- 파일시스템의 문제점을 극복하고, 대량의 데이터를 체계적으로 저장하고 관리하기 위해 DATABASE 등장
2) DATABASE의 개념
- 영속적(지속적)으로 유지 관리해야 할 유용한 데이터의 집합
- 데이터베이스에 저장된 데이터는 검색뿐만 아니라 수정, 삭제까지 용이
예시
- 학사관리를 위한 데이터들, 도서관리를 위한 데이터들 등…
- 실제 필요 정보들이 저장된 곳 = table! ex) 학생테이블, 교수테이블, 학과테이블, ...
- 테이블들은 서로 연결되어 관계를 맺고 필요한 정보를 검색할 수 있도록 만듦
2. DBMS (DataBase Management System)
1) DBMS의 개요
step1. 클라이언트가 응용프로그램들(sql plus & sql developer & 자바로 만들 수 있음..)을 통해 서버에 접속함
step2. 네트워크(TCP 통신)를 통해 값 주고받음 - (소켓통신)
- SQL 명령을 전달해 DBMS가 데이타베이스를 효율적으로 관리(CRUD)해주며,
클라이언트에게 결과를 알려줌 - 자바가지고 만들 예정 → JDBC 이용한다는 뜻 (Java Database Connectivity)
자바가지고 만든 응용프로그램(클라이언트)으로 >>>>>> 네트워크를 통해 오라클 서버에 접속해(클라이언트가 접속할 환경 마련 - oracle :TNSlistener 실행! ) >>>>>> SQL 명령을 전달해 >>>>>> DBMS(서버)를 효율적으로 관리할 예정
2) DBMS의 개념
- 데이터베이스 관리 시스템
- 대용량의 데이터를 편리하게 저장하고 효율적으로 관리, 검색, 수정, 삭제(CRUD)할 수 있는 환경을 제공해주는 소프트웨어
- 데이터를 공유해 정보의 체계적인 활용 가능
- 응용프로그램과 DB의 중재자로서 모든 응용 프로그램들이 DB를 공용할 수 있게끔 관리해줌
대표적인 DBMS 제품들
- Oracle(대용량)
- MS-SQL, mySQL(중소용량), Informix, Sybase, DB2 등 …
- 공통) sql 언어 사용, 우리는 표준sql3을 이용할 것임
3) JDBC의 종류 및 역사
4) 테이블 & 행 & 열
- 테이블(table) : 데이터베이스의 기본 데이터 저장 단위
- 테이블(엔티티, 개체) = 행(Row) + 열(Column) / 2차원 행렬 구조
- 행(Row)
- 파일시스템의 레코드
- 하나의 행은 서로 구분되는 속성으로 구성
- 열(Column)
- 사원번호, 사원명, 직급, 급여, 부서번호 등
5) Oracle vs SQL
- Oracle V11g 회사에서 가장 많이 사용..
- 우리는 SQL3 이용할 것
6) 데이터베이스란?
- 필요한 데이터의 중복을 최소화하고 구조화하여, 검색과 갱신을 효율적으로 할 수있도록 모아놓은 데이터들의 집합구조 (Data Structure)
7) 데이터베이스의 목적?
- 보다 빠르게 정확히 검색하기 위해!!!
- 데이터 중복의 최소화
- 데이터의 공유
- 데이터의 보안 유지
- 데이터 무결성 유지 (잘못된 값이 저장되는 것을 방지)
- 데이터의 독립성
8) 데이터베이스 용어 혼용 ( = DBMS)
- 데이터베이스 관리시스템 (DBMS) : 데이터 집합인 데이터베이스를 운영하는 소프트웨어
- 실제로 DBMS 와 데이터베이스를 혼용해 사용
9) DBMS(데이터베이스)의 종류
- DB2 : 은행, 증권회사 .. 내부적으로는 서버 코볼
- 오라클 : 우리나라의 일반적인 프로그램들 (대형프로그램 만드는 회사)
- My sql : 무료라 많이 이용
3. 관계형 DBMS (Relational DBMS)
1) 관계형 DBMS란?
- 테이블과 테이블이 제약조건을 통해 관계를 맺고 있는 것 (PK제약조건,FK제약조건)
2) 관계형 데이터모델
- 아래 3가지 구조로 실세계의 모든 업무체계를 표현 가능
- 개체 ( Entity ) – 시스템하고자 하는 사물, 사건
- 속성 ( Attribute ) – 개체의 특성을 표현하는 방법
- 관계 ( Relationship ) – 개체간의 연관성
VS 자바
- 내가 표현하고자 하는 대상을 하나의 클래스로 표현함
- 추상화와 캡슐화 이용해서
- 하나의 대상은 무조건 하나의 클래스(객체)로 구현
VS 데이터베이스
- 내가 표현하고 하는 대상이 하나더라도, 중복이 있다면 쪼개서 개체 구현
- 하나의 대상을 여러개의 개체로 나눠서 구현
- ex) 학생관리프로그램
- 중복을 최소화하기 위해 여러개의 개체로 구현
- 학생(개체) - 학생정보 관련 저장 테이블(속성1) - PK제약조건(컬럼에 부여 필수)
- 학과(개체) - 학과관련 저장 테이블(속성2) - PK제약조건 (컬럼에 부여 필수)
- 교수(개체) - 교수관련 저장 테이블(속성3) - PK제약조건 (컬럼에 부여 필수)
FK제약조건으로 PK제약조건 연결 : 참조하다! - 관계가 맺어짐
3) 관계형 데이터베이스(RDBMS)란?
- 관계형 데이터 모델을 전산화하여 논리적으로 구축한 것
- 데이터 저장을 위해서 예시와 같은 2차원 테이블들로 구성함
예시
- 하나의 데이타베이스 내 사원테이블(1개), 부서테이블(1개) 있음
- 사원테이블
- 사원정보를 표현하는 개체(엔티티)
- 하나의 사원 1번 : 행 -> 행을 구성하는 하나의 요소 : 컬럼
- 제약조건 부여 : PK (권장)
- 참조키 부여 : FK - 잘못된 값들 저장 방지(데이터 무결성 유지)
- 부서 테이블
- 부서정보를 표현하는 개체(엔티티)
- 하나의 부서 1번 : 행 -> 행을 구성하는 하나의 요소 : 컬럼
- 제약조건 부여 : PK (권장)
- 사원이 근무하는 부서는 계속 중복되기 때문에 중복된 값들을 따로 떼어내어 서브테이블을 만듦
- 참고) 공백열은 = NULL
- 사원테이블
4) 🔥메인테이블과 서브테이블이 관계를 맺기 위해서는?
- 중복을 최소화할 수 있도록 한다.
- (여러개의 테이블로 나눠 개체 구현 : 메인테이블 + 서브테이블1 + 서브테이블2 . . )
- PK제약조건을 설정한다.
- FK제약조건을 설정한다. (이를 통해 테이블과 테이블이 결점없이 관계를 맺을 수 있도록 함)
- ERD : 테이블과 테이블의 관계를 그림으로 표현하는 것
4.SQL (Structured Query Language)
- 관계형 데이터베이스의 조작과 관리에 사용하는 데이터베이스 언어
1) SQL 종류
- ANSI-SQL
- 미국의 무역 및 통신표준을 개발하는 ANSI에서 만든 표준 규격 SQL문 89, 92, 99 규격이 있음.
- T-SQL
- MS사에서 만든 자사의 DB를 최적화하기 위한 SQL
- PL-SQL (우리가 쓸것)
- 오라클에서 만든 구조적 프로그래밍 특징을 갖는 SQL문
- 표준SQL에서 프로그래적인 특성이 좀 더 가미된 것!!, 다른 SQL에서 쓸 수 없고 오라클에서만 사용 가능함
2) SQL 표준화
- SQL-89
- 1982년 ANSI의 SQL 표준을 보완 및 확장
- SQL-92 (SQL-2)
- SQL-89 를 대폭 보완, 많은 상용 DBMS의 SQL에서 준수함
- SQL-99 (SQL-3) (우리가 쓸것)
- 1999 년 SQL-2 를 확장/보완하고 객체지향 개념을 도입한 SQL
- MS-SQL 2005 , IBM DB2 9 , Oracle 10g 모두 준수
3) SQL 문장의 종류
DQL - 행(데이타) 검색
- Data Query Language : 데이터 질의어
- 데이터베이스로부터 테이블에 저장된 행(데이타)을 검색하는 명령어
SELECT ex)로그인
DML - 행(데이타) 조작
- Data Manipulation Language : 데이터 조작어
- 데이터베이스 내의 테이블에 새로운 행(데이타) 입력하는 명령어
- 데이터베이스 내의 테이블에 기존의 행(데이타) 수정하는 명령어
- 데이터베이스 내의 테이블에 기존의 행(데이타) 삭제하는 명령어
INSERT ex) 회원정보 삽입
UPDATE ex) 회원정보 변경
DELETE ex) 회원탈퇴
MERGE
TCL - 행(데이타) 관리
- Transaction Control Language : 트렌젝션 제어어
- DML 문장에 의한 변경 사항을 관리하거나, 변경사항을 하나의 논리적 트랜잭션으로 포함시키는 명령어
COMMITROLLBACK
SAVEPOINT - 오라클만 가진 명령
DDL - 테이블 조작
- Data Definition Language : 데이터 정의어
- 테이블(개체)을 생성, 변경, 삭제하는 명령어
CREATE
ALTER
DROP
RENAME
TRUNCATE
DCL - 데이터베이스 권한 조작
- Data Control Language : 데이터 제어어
- 데이터베이스와 데이터베이스를 구성하는 구조(테이블, 뷰 등)에 접근 권한을 부여하거나 회수하는 명령어
GRANT
REVOKE
반응형
'sql' 카테고리의 다른 글
[sql] 6. JOIN문 (0) | 2024.05.07 |
---|---|
[sql] 5. 그룹함수 | GROUP BY절 | HAVING절 (0) | 2024.05.07 |
[sql] 4. 함수(FUNCTION)의 개념 및 단일함수 (0) | 2024.05.06 |
[sql] 3. DQL (SELECT) (1) | 2024.05.06 |
[sql] 2. DBMS 다운로드 및 설치법 (0) | 2024.05.05 |