1. DBMS
DBMS는 DataBaseManagementSystem의 약자로 사용자가 데이터에 관한 정보를 가능한 효율적이고 효과적으로 구성하는 것으로 복원 및 검색을 할 수 있도록 하는 응용프로그램의 모음이다.
즉, 데이터의 집합인 데이터 베이스를 더 체계적으로 관리하고 이용할 수 있게 해주는 소프트웨어 시스템을 말한다.
1-1) RDBMS
RDBMS의 R은 Relational의 약자로 관계형 데이터 모델에 기초를 둔 RDB를 생성하고 수정 하고 관리 하는 소프트웨어이다.
테이블 끼리 서로 연관되어 있어 일반 DBMS보다 효율적으로 데이터를 저장, 구성 및 관리할 수 있다.
정규화를 통해 데이터의 중복성을 최소화 하며 트랜잭션을 수행하는 것이 더 쉽다.
데이터의 원자성, 일관성, 격리 및 내구성을 유지하며 데이터의 무결성을 높인다.
2. 데이터베이스에서 다양한 관계유형
데이터베이스의 관계는 3가지로 일대일, 일대다, 다대다 유형이 있다.
- 일대일(1:1)
- 한 테이블이 다른 테이블과 관계가 있고 각 기본 키는 관련 테이블에서 하나의 레코드 또는 하나의 레코드와 관련이 없다.
- 일대다(1:n)
- 한 테이블이 기본 및 외래키 관계가 있는 다른 테이블과 관계를 맺는다.
- 다대다(n:m)
- 두 테이블의 각 레코드는 다른 테이블의 여러 레코드와 관련 될 수 있다.
3. SQL문
SQL문은 기본적으로 DDL, DML, DCL로 나뉜다.
- DDL(Data Definition Language)
- 데이터를 보유하는 구조를 정의하는데 사용된다.
- CREATE, ALTER, DROP, RENAME, TRUNCATE
- DML(Data Manipulation Language)
- 데이터베이스의 데이터를 조작하는데 사용된다.
- SELECT, INSERT, UPDATE, DELETE등이 있다.
- DCL(Data Control Loanguage)
- 데이터 베이스에서 데이터를 사용하기 위한 액세스 권한 부여/취소 같은 것을 말한다.
- GRANT, REVOKE
4. VIEW
허용된 데이터를 제한적으로 보여주기위해 하나 이상의 테이블으로 만든 가상의 테이블
- 장점
- 물리적으로 저장되지 않아 리소스를 낭비하지 않는다.
- 삽입, 업데이트 및 삭제 등의 명령을 허용하지 않아 액세스가 제한됨
- 논리적 독립성 제공
- 단점
- 독립적 인덱스를 가질 수 없음
- 정의 변경 불가능
- 삽입, 삭제, 갱신연산에 제약이 따름
5. ER 모델
개념적 뷰를 정의하는 엔터티-관계 모델
6. CHECKPOINT
SQL Server 데이터베이스 엔진이 예기치 않은 종료 또는 충돌 후 복구과정에서 로그에 포함된 변경 내용의 적용을 시작할 수 있는 알려진 올바른 지점을 만드는 것.
7. 저장 프로시저
DB 내부에 저장된 일련의 SQL 명령문들을 하나의 함수처럼 실행하기 위한 쿼리의 집합
- 일련의 작업 절차를 정리해서 저장한 것
- 여러 SQL문을 묶어서 미리 정의해 두고 하나의 요청으로 실행할 수 있음
- 자주 사용되는 복잡한 작업들을 간단하게 실행 할 수 있음
- Application에서 직접 모든 작업을 요청하지 않아도 되기 때문에 부하가 줄어들고 보안이 향상됨
- 단, 검증되지 않은 저장 프로시저를 실행하는 것은 매우 위험함
- MySQL은 5.0버전부터 사용가능
- 장점
- 반복적 작업을 피할 수 있다.
- 언어에 비 의존 적이다.
- 확장 및 유지보수가 쉬워진다.
- 에러 확률이 줄어든다.
8. 이상현상
- 삽입이상
- 원하지 않는 자료가 삽입되거나, 삽입하는데 자료가 부족해 삽입되지 않는 이상
- 삭제이상
- 하나의 자료만 삭제하고 싶어도 자료가 포함된 튜플 전체가 삭제되어 원하지 않는 정보 손실 발생
- 갱신이상
- 정확하지 않거나 일부 튜플만 갱신되어 정보가 모호해 지거나 일관성이 없어져 정확한 정보 파악이 되지 않는 문제점
9. DROP, TRUNCATE, DELETE
DELETE TABLE은 로그가 남는 작업이기 때문에 작업의 속도가 느리다. TRUNCATE TABLE은 테이블의 모든 행을 삭제하는 명령어로 행을 기록하지 않고 테이블의 데이터 베이스 할당 해제 하기 때문에 매우 빠르다. DROP은 테이블 존재 자체가 없어져 구조가 남지 않는 반면 TRUNCATE TABLE은 데이터의 내용만 제거하여 테이블 구조가 남는다.
DELETE | TRUNCATE TABLE | DROP | |
삭제 대상 | WHERE 절을 이용하여 조건에 해당하는 데이터 삭제 (WHERE 생략 가능) |
테이블 행 전체 삭제 | 테이블 데이터를 보함해 테이블 전체 삭제 |
쿼리 실행 후 | 테이블 남음 | 테이블 남음 | 테이블 없어짐 |
데이터는 지워지지만 디스크 공간은 남아있다 | 데이터는 사라지고 칼럼만 남아있다. | 둘다 사라진다. | |
ROLL BACK | 가능 | 불가 | 불가 |
https://hyonee.tistory.com/41
https://wikidocs.net/4019
'ComputerScience > Database' 카테고리의 다른 글
[Database] InnoDB (0) | 2021.06.22 |
---|---|
[DataBase] 7. ORM (0) | 2021.06.04 |
[DataBase] 6. 조인(JOIN) (0) | 2021.06.03 |
[DataBase] 5. 파티셔닝/ 샤딩 (0) | 2021.06.03 |
[DataBase] 4. 정규화 (0) | 2021.06.03 |
댓글