[DB] 데이터베이스란
<관계형 데이터베이스>
= 데이터를 효율적으로 관리하기 위해서 사용한다.
데이터 무결성 제공, 공유 가능, 표준화 가능, 중복 제거, 정확성과 일관성 제공
수정 삭제를 빈번하게 하는 데이터(OLTP데이터)를 저장하는 것
+) 모두 ansi SQL을 따르기 때문에 모든 데이터베이스가 유사한 SQL 문법을 가지고 있다
+) hadoop= 저장은 가능하지만 수정되지 않는 OLAP 데이터 저장소
몽고DB=문서 지향 데이터베이스. 대용량 데이터 처리에 강하다.
<ACID 원칙>
트랜잭션이 안정적으로 수행되는 것을 보장해주는 것
+) 트랜잭션 = 데이터베이스 상태 변화시키는 작업 단위
1️⃣원자성(Atomicity)
= 트랜잭션이 부분적으로만 실행되거나 중단되지 않는 것을 보장.
ex) 트랜잭션이 끝까지 완료되거나, 아예 진행 되지 않던가 해야한다. 실행되다가 말면 안됨
2️⃣일관성(Consistency)
=트랜잭션 실행 성공 후에는 일관성 있는 데이터베이스 상태로 유지하는 것
ex) 문자를 저장하는 곳에 숫자가 저장되거나. 반드시 따라야하는 규칙을 따르지 않으면 안된다.
3️⃣독립성(Isolation)
=트랜잭션 수행 도중에 다른 트랜잭션 작업이 끼어들지 못하게 하는 것
4️⃣지속성(Durability)
=트랜잭션 성공 후에는 영원히 반영되어야함
<ERD>
=E-R 다이어그램
객체(Entity)의 관계(Relationship)을 나타낸 도표.
데이터베이스의 구조를 시각화하는 방식
요구사항을 Entity관계 도표로 표현한 것
ERD 사용 목적
ER관계를 나타낸다.
조직에 대한 정보를 문서화하여 빠르게 파악 가능
시스템 기능을 명확히 이해 가능
데이터베이스 설계 표본
운영프로그램 만들 때 참조 가능
ERD 구성
- Entity = 물리적 객체, 나타내고자 하는 대상
- Attribute = 각각 entity의 특징, 데이터
- relationship = entity가 서로 작용하거나 연관되는 방식
cardinality=두 entity간의 연관성.
ERD 표기 규칙
0..1 0개또는 1
1..* 1개 이상
0..* 0개 이상
1 1개
<관계형 데이터베이스 기본 구조>
일반적 개념 | 모델링 | DB객체 |
데이터 집합, relation, 관계 집합 | entity set | table |
row | tuple, entity | record |
column | attribute | filed |
<테이블>
Super Key = 유일성 만족하는 속성 집합.
Candidate Key = 유일성과 최소성 만족하는 속성 집합
Primary Key=후보키중에 튜플을 효율적으로 구별하는 키로 지정 / 중복 허가 안함, NULL없어야함
Alternate Key= 기본키가 되지 못한 후보키들
Foreign Key = 다른 컬런을 참조하는 것(다른 테이블 혹은 같은 테이블의 다른 열을 참조할 수 있음)
+) join=중요한 기능이지만 데이터 많을 수록 조회 성능이 저하될 수 있다.
<SQL 문장>
🍏DML
=데이터 정의어 Data Definition Language
SELECT=데이터 검색
INSERT= 새 행 입력
UPDATE = 행 갱신
DELETE=행 제거
🍏 DDL
=데이터 조작어 Data Manipulation Language
CREATE=데이터 구조 생성
ALTER=데이터 변경
DROP=제거
RENAME=이름 변경
TRUNCATE = 구조만 남기고 모든 데이터 삭제
🍏 TCL
= transaction 제어. Transaction Control Language
COMMIT, ROLLBACK, SAVEPOINT = 데이터 변경을 관리
🍏 DCL
= 데이터 제어 Data Control Lanuage
GRANT, REVOKE=데이터베이스에 접근하고 객체 사용하는 권한 주거나 회수
<Sample Table>
아래 표를 외워서 실무에 사용