Database
파일
-
데이터 분리의 기준 자체가 없다.
데이터를 어떤 기호로 구분할 것인지 직접 지정해야 한다.
- 데이터 타입의 기준도 없다. (자바)
-
특정 위치의 데이터 접근이 불가능하다.
처음부터 모든 데이터를 읽어서 필요한 것을 찾은 다음에 수정하고, 수정된 이후 처음부터 다시 저장해야한다.
- 중복 데이터의 가능성이 있다.
- 데이터의 현재 상태에 잘못된 표현을 할 수 있다.
데이터베이스
: 의미 있는 데이터 모음
ex) 학생 = (학번, 이름, 전공, 학교명, 학년, 성적) / 회사원 = (사번, 이름, 부서, 회사면, 직급, 급여)
-
영구적 저장이 가능, 여러 프로그램에서 동시 사용이 가능하다.
-
데이터베이스 표현 종류 (= 제품)
- oracle / mysql / sqldeveloper / ms squlserver / db2 …
-
데이터베이스 표현 방법
- 계층형
- 네트워크형
- 관계형 / 객체관계형 데이터베이스: 관계형 데이터로 oracle이 있음.
-
관계형 (relational DB-RDB)
키와 값들의 간단한 관계를 테이블화 시킨 전산정보 데이터베이스이다. 데이터들의 관계를 행과 열의 테이블 구조로 표현한다. 각 테이블 관계는 엔티티 타입을 대표한다.
- 열(column) : 데이터의 구성요소 한 개의 표현단위 (이름 요소)
- 행(row=record) : 각각의 구성요소에 속한 한 개의 데이터
관계는 일대일(one-to-one), 일대다(one-to-many), 다대다(many-to-many)가 있다.
ex)학생 테이블
학번 | 이름 | 성적 |
---|---|---|
200 | 김학생 | 3.8 |
100 | 이학생 | 4.5 |
데이터베이스는 테이블을 생성, 삭제하거나 데이터 한 개의 raw를 저장, 삭제하거나, 데이터를 조회하는 일들을 한다.
-
관계형 데이터베이스 문법과 언어
- SQL
-
RDB제품 종류에 관계 없이 사용 가능한 “표준” SQL과, 각 RDB가 가진 독자적인 SQL이 있다.
설치
oracle 11g express edition (무료, 그러나 크기제한, 한 개만 사용이 가능함)
oracle 맥북 설치 참조 : macoracle
데이터베이스 | system schema = 계정 |
테이블들 |
---|---|---|
hr(이미생성, 잠겨있음) | 테이블들(실습할 것) | |
그 외 계정 생성 | 테이블들 |
테이블은 의미있는 데이터를 모아놓은 것, 그리고 계정(schema)이 관리하는 각 테이블들이 있다.
*hr을 unlock 할 때는 system 계정에서 실행해야 한다. system 계정은 마스터 계정이다.
SQL
SQL 입력 실행 툴 - run SQL command line
다른 툴들 - SQL developer/orange/toad // eclipse data explorer
입력 실행
오라클의 독자적 sql은 최소 4글자로 축약해서 명령해도 됨
대소문자는 구분하지 않는다. (암호와 ‘ ‘는 대소문자 구분 함)
-
SQL> connect system/암호
-
SQL> disconnect (다른 계정으로 갈 때)
-
SQL> connect hr/hr (disconnect 안 해도 됨. 알아서 접속해제됨)
-
SQL> alter user hr identified by hr account unlock; (hr계정은 잠겨있으니, 처음에 언록)
-
SQL>select*from tab; (해당 계정의 테이블 목록 확인)
사이즈 조절(테이블 조회시)
- SQL> set pagesize 100;
- SQL> set linesize 150;
SQL 종류
-
Data Definition lang. (DDL) 테이블 생성 - 변경 - 삭제
- 테이블 생성은 일종의 데이터 저장 그릇. 생성- 변경- 삭제는 구조를 정의하는 언어들이다.
- 학번 –> ID NUMBER(5)
-
**Data Manipuation Lang. (DML) **테이블 안의 데이터 저장-수정-삭제
- 데이터를 조작하는 언어
-
Data Controll Lang.(DCL) 계정 생성 (DB 접속 허용 SQL)
DDL(테이블) create talbe
alter table
drop table …DML(데이터) insert
update
delete …DCL grant, revoke
새로운 계정 생성시 사용TCL(트랜잭션관리) commit
rollbackDQL(조회) select
데이터 조회