[ 1일차 ]
- 지문등록 및 교재 수령
- zoom 회의 ( ID : 812 9441 8111, PW : 12345 )
- Oracle 설치 (강사님 USB - Oracle 구 버전 다운로드)
- Sql developer tool 설치
[ DBMS 종류 ]
- Oracle
- 금융권, 상급종합병원, 공공기관 등에서 사용하고 있는 DBMS로 고객정보, 거래정보 등의 중요한 정보를 처리
- 모든 DBMS를 Oracle로 사용하지 않는 것은 높은 구매 및 유지비용 때문이다
- Sybase (SAP HANA로 변경)
- Sybase IQ라는 DBMS는 데이터를 분석하기 위한 용도로 많이 사용된다
- SQL Server
- Oracle과 그 구조가 비슷한 측면이 있어서 Oracle 사용자는 쉽게 사용할 수 있다
- MySQL
- Open source software로 누구나 쉽게 설치하고 사용할 수 있다
- MySQL은 Oracle 사로 인수되었고 무료 버전과 유료 버전 두 개를 가지고 있다
[ SQL 기본 ]
- 데이터베이스와 데이터베이스 관리 시스템의 차이점
- 데이터베이스는 데이터를 어떠한 형태의 자료구조(Data Structure)로 사용하느냐에 따라서 나누어진다
- 데이터베이스의 종류는 계층형, 네트워크형 데이터베이스, 관계형 데이터베이스 등이 있다
- 관계형 데이터베이스
- 릴레이션에 데이터를 저장하고 관리한다
- 릴레이션을 사용해서 집합 연산과 관계 연산을 할 수 있다
[ 집합 연산 ]
- 합집합(Union) : 두 개의 릴레이션을 하나로 합하는 것이며, 중복된 행은 한 번만 조회된다
- 차집합(Difference) : 본래 릴레이션에는 존재하고 다른 릴레이션에는 존재하지 않는 것을 조회한다
- 교집합(Intersection) : 두 개의 릴레이션 간에 공통된 것을 조회한다
- 곱집합(Cartesian product) : 각 릴레이션에 존재하는 모든 데이터를 조합하여 연산한다
[ 관계 연산 ]
- 선택 연산(Selection) : 릴레이션에서 조건에 맞는 행만 조회한다
- 투영 연산(Projection) : 릴레이션에서 조건에 맞는 속성만을 조회한다
- 결합 연산(Join) : 여러 릴레이션의 공통된 속성을 사용해서 새로운 릴레이션을 만들어 낸다
- 나누기 연산(Division) : 기준 릴레이션에서 나누는 릴레이션이 가지고 있는 속성과 동일한 값을 가지는 행을 추출하고 나누는 릴레이션의 속성을 삭제한 후 중복된 행을 제거하는 연산이다
- 테이블의 구조 - 릴레이션은 최종적으로 데이터베이스 관리 시스템에서 테이블로 만들어진다
- 기본키(Primary Key)는 하나의 테이블에서 유일성과 최소성, Not Null을 만족하면서 해당 테이블을 대표하는 것
- 테이블은 행과 칼럼으로 구성된다. 그 중에서 행은 하나의 테이블에 저장되는 값으로 튜플이라고도 한다
- 칼럼은 어떤 데이터를 저장하기 위한 필드로 속성이라고도 한다
- 외래키는 다른 테이블의 기본키를 참조하는 칼럼이다
- 외래키는 관계 연산 중에서 결합 연산(Join)을 하기 위해서 사용한다
- SQL의 종류
1. DDL (Data Definition Language)
- 관계형 데이터베이스의 구조를 정의하는 언어이다
- CREATE, ALTER, DROP, RENAME문이 있다
2. DML (Data Manipulation Language)
- 테이블에서 데이터를 입력, 수정, 삭제, 조회한다
- INSERT, UPDATE, DELETE, SELECT문이 있다
3. DCL (Data Control Language)
- 데이터베이스 사용자에게 권한을 부여하거나 회수한다
- GRANT, REVOKE, TRUMCATE문이 있다
4. TCL (Transaction Control Language)
- 트랜잭션을 제어하는 명령어이다
- COMMIT, ROLLBACK, SAVEPOINT문이 있다
- 트랜잭션(Transaction)
- 원자성(Atomicity) : 트랜잭션은 데이터베이스 연산의 전부가 실행되거나 전혀 실행되지 않아야 한다(ALL OR NOTHING) 즉, 트랜잭션의 처리가 완전히 끝나지 않았을 경우는 실행되지 않은 상태와 같아야 한다
- 일관성(Consistecy) : 트랜잭션 실행 결과로 데이터베이스의 상태가 모순되지 않아야 하며 트랜잭션 실행 후에도 일관성이 유지되어야 한다
- 고립성(Isolation) : 트랜잭션 실행 중에 생성하는 연산의 중간결과는 다른 트랜잭션이 접근할 수 없다 즉, 부분적인 실행 결과를 다른 트랜잭션이 볼 수 없다
- 영속성(Durability) : 트랜잭션이 그 실행을 성공적으로 완료하면 그 결과는 영구적 보장이 되어야 한다 (DB 저장)
# SELECT문을 사용할 때 Order by를 같이 사용할 수 있는데, Order by는 정렬을 해주기 때문에 데이터베이스 메모리를 많이 사용하게 된다. 즉, 대량의 데이터를 정렬하게 되면 정렬로 인한 성능 저하가 발생한다. 이를 해결하기 위해 인덱스를 생성할 때 사용자가 원하는 형태로 오름차순 혹은 내림차순으로 생성해야 한다
특별한 지정이 없으면 Order by는 오름차순으로 정렬한다
'TIL > DataBase' 카테고리의 다른 글
MongoDB 개념 (0) | 2022.01.07 |
---|---|
Oracle / Sequence / View (0) | 2021.08.01 |
Oracle / Transaction / Constraints (0) | 2021.08.01 |
Oracle / CREATE TABLE / CRUD DATA (0) | 2021.08.01 |
Oracle / ORDER_BY / JOIN / ANSI JOIN (0) | 2021.08.01 |