DB Data Base는 잘 관리되는 데이터들을 말한다. persistance data는 컴퓨터를 끄더라도 지워지지 않는 영속적인 데이터를 말하는데 file system이 그러하다. 초급 자바는 io package를 이용해 persistance data를 file system으로 관리할 수 있었다. 그러나 데이터를 활용하려면 읽어들이고 parsing하고 equals 비교하는 등 여러 작업을 거쳐야 했다. DataBase를 이용하면 이러한 문제가 줄어든다. 자바에서 데이터베이스에 접속할 수 있도록 JDBC(Java Database Connectivity) 자바 API를 제공한다. JDBC는 java.sql 패키지를 말하는데 SQL은 DB 교수가 논문으로 제안한 DB관리법을 미국 표준 ANSE로 스펙화 한 것이다. SQL은 structured query language로 구조적으로 만들어진 질의 언어 라고 해석할 수 있다. 처음으로 SQL을 구현한 것이 Oracle이다. Oracle은 DBMS라고 하는데 이는 data base management system을 말하며 Oracle, MySQL, DB2 등 다양한 매니지먼트 시스템이 있다.
<<<Oracle11g는 콘솔 창에서 모든 작업을 해결하며 GUI를 사용하기 위해서는 확장팩을 다운받아야 한다. Oracle10g는 GUI가 구현되어 있어 초보자가 사용하기 쉽다>>>
<<<Oracle10g는 인스톨러를 이용해 설치했더니 스스로 환경변수에 bin폴더를 등록했다.>>>
<<<SQL은 대소문자를 구분하지 않는다는 특징이 있다.>>>
<<<DBMS들은 모두 SQL을 구현하고 있으므로 자신들이 선택되기 위해 +α를 구체화했다. Oracle에선 다른 SQL 구현체들과 차별화를 두기 위해 PL/SQL을 제공한다.>>>
<<<cmd창에서 SQLPLUS라고 입력하면 오라클 DBMS를 사용하는 TOOL을 실행한다. (sqlplus는 PL/SQL로, 다른 DBMS는 안 된다)
<<<Oracle을 돈주고 사면 scott tiger 계정이 주어져 있지만 Oracle10g에서는 그렇지 않다. C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Oracle Database 10g Express Edition에서 DataBase홈페이지로 이동, 관리자 계정 system으로 접속해 계정 scott tiger를 만들어주었다.>>>
<<<table row column cell>>>
table은 데이터베이스의 기본 단위이다. 2차원 구조에 Data를 저장한다. table은 적어도 1개의 column이 필요하다.
column은 table의 세로줄로 Data의 속성을 나타낸다. 만일 속성이 나이라면 숫자를 나타내는 Data type이 여기에 들어가 있겠다. (Oracle의 데이터 타입을 공부해야 할 필요성을 느낀다.)
row는 table의 가로줄로 record라고도 한다.
column과 row가 만나는 곳을 cell 혹은 field라고 한다.
<<<ERD entity relation diagram>>>
class diagram(CD)를 보고 클래스의 관계를 파악할 수 있듯 DB를 모델링할 때 (Db modeling) table간의 관계를 파악하는 것을 ERD라고 한다.
table relation diagram → entity relation diagram
테이블1에 정보를 모두 담으면 수정할 때 각 정보를 찾아가며 하나씩 바꿔줘야 한다. 이 때 테이블2를 하나 더 만들어서 정보의 종류를 적어두고 1번 테이블에서 2번 테이블의 정보를 참조하게끔 하면 정보를 수정할 때 테이블2만 수정하면 된다. 이처럼 테이블 간에 관계가 있을 때 두 테이블을 선으로 연결하고 정보를 가져다 쓰는 쪽(테이블1) 테이블에 가지를 2개 더 연결한다.
<<<Query문, DDL, DML, DCL, TCL>>>
DDL: Data Definition Language / DML: Data Manipulation Language / DCL: Data Control Language / TCL: Transaction Control Language
정보를 조회하거나 검색할 때는 데이터에 영향을 주지 않는다 가져오는 행위만 할 뿐이다. 이를 질의문 Query문이라 한다.
테이블에 정보를 입력insert하고, 수정update하고 삭제delete하는 것은 데이터에 영향을 주는 작업이다. 이를 DML이라 한다.
테이블을 생성create하고 수정alter하고 변경rename하고 삭제drop하는 것은 DDL이라 한다.
DML / DDL 작업은 메모리 Buffer에서 하는 작업이다. 이를 persistance data로 저장commit하거나 삭제rollback하는 작업을 TCL이라 한다.
이 모든 작업을 하기 위해서는 DBMS의 계정이 있어야 한다 이렇게 계정을 만들고 권한을 부여(Grant, Revoke)하는 작업을 DCL이라 한다.
<<<SQL notation Rule>>>
대문자: keyword
소문자: identifier
[ ]: 대괄호 속에 있는 것은 생략가능하다는 뜻. 0개부터 more개까지 있어도 없어도 됨.
<<<SQL 자주 쓰이는 data type 자료형>>>
★문자: CHAR()[고정], VARCHAR2[가변]
CHAR(5): 문자가 입력될 다섯 칸 생성. 다섯칸보다 적은 문자를 넣어도 다섯칸이 만들어줌.
VARCHAR2(5): 문자가 입력 될 칸은 다섯 칸까지 입력할 수 있지만 두 글자만 입력하면 두 칸이 만들어짐.
★숫자: NUMBER(), NUMBER(,)
NUMBER(5): 숫자 넣을 다섯 칸을 만들어 숫자를 넣는다.
NUMBER(5, 2): 숫자 넣을 다섯 칸을 만들어 숫자를 넣되 5칸 중 2칸은 소수점 아래 자리수이다.
★날짜: DATE : 년, 월, 일, 시, 분, 초 ...
SYSDATE 는 시스템 시간을 의미한다.
IT/공부