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