Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- SQL
- dfs
- SQLD
- resnet
- numpy
- mobilenet
- get_dummies()
- pytorch
- 연산량 감소
- outer join
- 데이터모델링
- skip connection
- 백준
- Two Pointer
- 인접리스트
- feature map
- 엔터티
- Depthwise Separable Convolution
- 인접행렬
- CROSS JOIN
- BFS
- 그래프
- Inductive Bias
- bottleneck
- 1x1 Convolution
- 정규화
- 식별자
- depthwise convolution
- dp
- SQLD 후기
Archives
- Today
- Total
SJ_Koding
SQLD 대비 (5) - 관계형 데이터베이스 (RDBMS) 본문
과목 II 시작 ! 노랭이 책으로 과목 I을 모두 풀고 오답정리까지 마무리했다.
이전 글과 이어지는 글입니다. 해당 정리글은 아래의 유튜브 영상을 참고하여 만들었습니다. 문제 시 삭제하겠습니다.
빨간색 형광펜은 강의에서 강조한 부분, 노란색 형광펜은 추가 서치로 내용을 '직접' 보강한 부분입니다.
관계형 데이터베이스(RDBMS) 개요
1. 관계형 데이터베이스
- 1970년대 E. F. Codd 박사의 논문에서 처음 소개한 데이터베이스
- 관계(Relation)과 조인 연산을 통해서 합집합, 교집합, 차집합 등을 만들 수 있다.
- Oracle, MS-SQL, Mysql, Sybase 등이 있다.
2. 데이터베이스와 데이터베이스 관리 시스템의 차이
- 데이터베이스는 데이터를 어떤 형태의 자료구조로 사용 하느냐에 따라 나누어진다.
- 데이터베이스에는 계층형, 네트워크형, 관계형 데이터베이스 등이 있다.
- 계층형은 트리 자료구조에 데이터를 저장하고 관리하며, 네트워크는 오너와 멤버 형태로 데이터를 저장한다.
- 계층형은 1:N관계를 표현하며, 네트워크 데이터베이스는 1:N, N:M표현도 가능하다.
- 관계형은 릴레이션에 데이터를 저장하고 관리하며 집합 연산 및 관계 연산을 할 수 있다.
- 데이터베이스 관리 시스템은 계층형 네트워크, 관계형 데이터베이스 등을 관리하기 위한 소프트웨어를 의미하며 DBMS라고 한다.
3. 집합 연산
- 두 개의 릴레이션의 합을 의미하는 합집합
- 특정 릴레이션에만 존재하며 다른 릴레이션에는 존재 하지 않는 것을 의미하는 차집합
- 두 릴레이션에 함께 존재하는 것을 의미하는 교집합
- 각 릴레이션에 존재하는 모든 데이터를 조합하는 곱집합
4. 관계연산
- 릴레이션에서 특정 조건에 해당하는 행(튜플)만 조회하는 선택연산
- 릴레이션에서 특정 조건에 맞는 속성만 조회하는 투영연산
- 여러 릴레이션에서 공통된 속성을 통해 새로운 릴레이션을 만드는 결합연산
- 기준 릴레이션에서 나누는 릴레이션이 가지는 속성과 동일한 값을 가지는 행(튜플)만 추출하여 나누는 릴레이션의 속성을 삭제한 후 중복된 행을 제거하는 나누기 연산
5. 테이블과 컬럼
- 관계형 데이터베이스에서 릴레이션은 곧 테이블이다.
- 테이블은 행과 컬럼으로 구성되며, 하나의 기본키를 가지고 있다.
- 컬럼은 어떤 데이터를 저장하기위한 필드로써 속성이라고도 한다.
- 외래키는 다른 테이블의 기본키를 참조하는 컬럼이다.
6. SQL(Structured Query Language)
- 관계형 데이터베이스에서 데이터 정의, 조작, 제어를 하기 위해 사용하는 언어이다.
- SQL은 단순한 스크립트가 아니라 일반적인 개발 언어와 같이 독립된 하나의 개발 언어이다.
- 관계형 데이터베이스에 대한 전담 접속 용도로 사용되며 독립되어 있다.
7. SQL 문장의 종류 ★★
데이터 정의어 (DDL) | CREATE, DROP, RENAME, ALTER, TRUNCATE | - 테이블이나 컬럼과 같이 데이터 구조를 정의하는데 사용되는 명령어 - 구조를 생성, 변경, 삭제 하는 데이터 구조와 관련된 명령어 |
데이터 조작어 (DML) | SELECT, INSERT, DELETE, UPDATE | - 데이터베이스내 데이터를 조회 및 검색하기 위한 명령 - 데이터의 추가, 삭제, 수정 하기 위한 명령어 |
데이터 제어어 (DCL) | GRANT, REVOKE | - 데이터베이스에 접근하고 객체들을 사용하도록 권한을 부여하거나 회수하는 명령어 |
트랜잭션 제어어 (TCL) | COMMIT, ROLLBACK, SAVEPOINT | - 트랜잭션 별로 제어하는 명령어 |
8. 트랜잭션(Transaction)
- 트랜잭션은 데이터베이스의 작업을 처리하는 단위이다.
원자성(Atomicity) | - 트랜잭션은 데이터베이스내서 실행되는 연산의 전부가 실행되거나 실행되지 않아야 한다. - 트랜잭션이 완전히 끝나지 않았을 경우에는 실행되기 전의 상태와 같아야한다. |
일관성(Consistency) | - 트랜잭션 실행 결과로 데이터베이스의 상태가 모순되지 않아야 한다. - 트랜잭션 실행 후에도 일관성이 유지되어야 한다. |
고립성(Isolation) | - 트랜잭셩 실행 중에 생성하는 연산의 중간결과는 다른 트랜잭션이 접근할 수 없다. - 부분적인 실행 결과를 다른 트랜잭션이 볼 수 없다. |
영속성(Durability) | - 트랜잭션이 그 실행을 성공적으로 완료하면 그 결과는 영구적 보장이 되어야 한다. |
9. SQL 실행 순서
- SQL문은 3단계를 거쳐 실행 된다
파싱 (Parsing) | - SQL문법을 확인하고 구문 분석을 한다. - 구문 분석한 SQL을 Library Cache에 저장한다. |
실행 (Execution) | - 옵티마이저가 생성한 실행 계획에 따라 SQL을 실행 한다. |
인출 (Fetch) | - 데이터를 읽어 전송한다. |
'SQL > SQLD' 카테고리의 다른 글
SQLD 대비 (7) - SQL 문법 및 라이브러리_2 (0) | 2023.11.13 |
---|---|
SQLD 대비 (6) - SQL 문법 및 라이브러리_1 (1) | 2023.11.13 |
SQLD 대비 (4) - 성능 데이터 모델링 및 정규화/반정규화, 데이터베이스 (0) | 2023.11.12 |
SQLD 대비 (3) - 식별자(Identifier) (2) | 2023.11.11 |
SQLD 대비 (2) - 엔터티(Entity)와 속성(Attribute), 관계(Relationship) (0) | 2023.11.11 |