2016년 2월 11일 목요일

[SQL 교육] DBMS

[sql 교육] dbms

(*본 게시물은 본인이 교육을 통해서 배우는 내용을 정리하는 글입니다. 부족한 부분이 많으니 참고해주시기 바랍니다. 혹시 정확한 의미를 알고 싶으시거나, 틀린 내용에 대해 조언해주시고 싶은 분들께서는 댓글을 남겨주시면 최대한 빠르게 답변하겠습니다. 감사합니다.)
※ Oracle DB를 사용합니다.


  1. DBMS
    1. 데이터베이스를 관리할 있게 해주는 시스템
    2. DBMS 제공하는 벤더
      1. Oracle - Oracle(동시접송성이 좋지 않다.)
      2. Microsoft - MS SQL
      3. Dell - Dell EMC 인수. EMC DBMS 제공. 주로 storage
      4. 오픈소스
        1. MySQL(지금은 Oracle 인수)
        2. MariaDB(MySQL Oracle 인수되어 언제 상용화될지 몰라서 사람들이 많이 이동함.)
        3. PostgreSQL('포스트그레스큐:', '피쥐에스큐엘' 이라고 읽음)
          1. 동시접속성이 좋다.(KT 아이폰 예약에 사용한 사례가 있다. KT 많이 사용한다.)
    3. DBMS 성능 평가 요소
      1. CAP이론
        1. Consistency 일관성
          1. 값이 갑자기 혼자 바뀌어서는 안된다. (제어하지 않았는데도 변동되는 것이 없어야 한다.)
        2. Availability 가용성
          1. 언제든지 DB 접근하여 사용할 있어야 한다.
        3. Partition Tolerance
      2. 보통 DBMS들의 위의 3가지중 2가지(일관성과 가용성) 초점을 둔다.
  2. 수업에서 배울 SQL&PL/SQL 주요 내용
    1. SQL
      1. DML(데이터 조작 언어)
        1. CRUD(Create, Read, Update, Delete)라고 표현한다.
        2. 종류
          1. insert
          2. update
          3. delete
          4. select
      2. DDL(데이터 정의 언어)
        1. ex. create table, alter table
    2. PL/SQL
      1. 기본구조
      2. 제어문
      3. 함수
      4. 프로시저
      5. 트리거
      6. 예외처리
      7. 커서
    3. 연산자, 함수
    4. 트랜젝션 Transaction
      1. atomic : 여러 개의 문장들이 원자적으로 수행되도록 한다.
    5. 객체
      1. table
      2. index
      3. view
      4. sequence
      5. synonym
      6. partitioned table
    6. 조회
      1. select 이용
      2. 종류
        1. selection
          1. 내가 원하는 행만 뽑아내는
        2. production
          1. 내가 원하는 열만 뽑아내는
        3. join
          1. 두개 이상의 테이블에서 조회 하는
    7. Oracle Express Edition 11g 설치
      1. 설치방법이 아래 주소에 설명되어 있다. 수업과 동일하다.
      2. http://www.oraclejavanew.kr/bbs/board.php?bo_table=LecOracle&wr_id=206
  3. Objects
    1. table : 실질적으로 데이터를 저장
      1. table 정의
        1. create table
        2. 타입과 이름
        3. 제약 조건
    2. view : 가상의 table, 단순한 쿼리문을 사용하기 위해서, 접근제어를 하기 위해서
    3. index : view 성능을 높이기 위해 만든
      1. pk/uk : 자동 생성
      2. 삽입/삭제가 빈번하지 않고 조회가 빈번하면 index 좋은 객체이다.
      3. 삽입/삭제가 빈번하면 매번 index(색인) 다시 정해줘야 하므로 비효율적이다.
    4. sequence : 자동으로 증가하거나 감소하는 .
    5. synonym : 동의어, 데이터베이스 객체에 대한 별칭을 부여한 객체
    6. partitioned table : 논리적으로는 1개의 Table이지만 실제로는 여러 파티션으로 나뉘어 저장한다.
    7. function, procedure
  4. Data Type
    1. DBMS마다 다를 있다.
    2. 문자
      1. char
        1. 고정길이
        2. ex. char(10) - 크기는 무조건 10
        3. 2000byte까지 가능
      2. varchar
        1. 가변길이
        2. ex. varchar2(10) - 크기는 저장한 문자열의 크기
        3. 4000byte까지 가능(한글 2000)
      3. nchar, nvarchar2
        1. 유니코드를 지원
      4. long
        1. 2GB까지 지원
        2. like 연산 불가능
    3. 숫자
      1. number
        1. number(p,s)
          1. p 소수점 기준 모든 유효숫자 자릿수를 의미, s 소수점 이하 유효숫자 자릿수
        2. float
        3. binary_float
          1. 최대 4byte
        4. binary_double
          1. 최대 8byte
    4. 날짜
      1. date
      2. timestamp
    5. LOB
      1. Large Object
      2. 대용량 데이터를 저장
      3. 종류
        1. CLOB : 문자형 대용량 객체
        2. BLOB : 이진형 대용량 객체
        3. NCLOB : 유니코드를 포함한 문자형 대용량 객체
        4. BFILE : 대용량 이진 파일에 대한 로케이터(위치, 이름) 저장
  5. Constraints 제약조건
    1. NN : 반드시 값을 필요
    2. UK : 유일 해야 한다. Null 가능하다.
    3. PK : 기본키
      1. UK, NN 만족해야 한다.
    4. FK : 다른 table 열을 참조한다.
    5. CK : 체크
      1. 입력 데이터를 체크해 특정 조건에 맞는 데이터만 입력 받는다.
      2. 값의 범위를 설정할 있다.
  6. 예시
    1. 고객정보를 저장
      1. NO : NUMBER(4), PK
      2. 이름 : VARCHAR2, NN
      3. 이메일 : VARCHAR2, UK
      4. 나이 : NUMBER(3)
    2. sql developer

댓글 없음:

댓글 쓰기