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
    rollback
    DQL(조회) select
    데이터 조회