DB : 데이터 베이스 (Database)
개념
- 공유 목적으로 통합 관리되는 자료의 집합
- 논리적으로 연관된 하나 이상의 자료 모음으로 내용을 구조화 하여 검색과 갱신의 효율화한 것
- 중복을 없애고 자료를 구조화하여 기억시켜 놓은 자료의 집합체
- 내가 생각한 정리
"널려 있는 데이터들을 중복없이 저장되어 있는 저장 집합"
특징
- 실시간 접근성 (Real-time Accessability)
요구(Query)를 실시간 처리 및 응답
- 지속적인 변화 (continuous Evolution)
정확한 값을 유지하기 위해 동적인 작업을 통해서 지속적 갱신 가능
- 동시 공유 (Concurrent Sharing)
여러 사람이 동일한 데이터에 접근 및 이용 가능
- 내용에 대한 참조 (Content Reference)
저장한 데이터 코드의 위치나 주소가 아닌 데이터 값에 따라 참조 가능
DBMS : 데이터베이스 관리 시스템 (Ddatabase Management System)
개념
- 데이터베이스 내의 데이터를 접근할 수 있도록 해주는 소프트웨어
- 사용자 or 다른 프로그램의 요구를 처리하고 응답하여 데이터를 사용할 수 있도록 하는 것
- 내가 생각한 정리
"데이터 집합체(데이터베이스)를 사용자에 맞게 접근하는 시스템"
DBMS를 DB로 부르는 이유
- 일반적으로 DBMS도 DB로 부름
- 사용자 관점에서 DBMS와 DB의 차이 없음
- 데이터를 가져오는 장소를 의미하기에 DBMS지만 DB라고 말해도 문제가 발생하지는 않는다.
장단점
- 장점
데이터 중복 최소화
데이터 독립성 확보
데이터 동시 공유
데이터 보안 향상
데이터 무결성 유지
장애 발생시 회복 가능
- 단점
비용이 많이 발생
백업과 회복 방법이 복잡
중앙 집중 관리로 인한 취약점 존재
기능
- 조건에 맞춰 만들어서 데이터 검색, 추가, 삭제 등을 통해 관리하고 이러한 기능을 제한 및 관리
- 정의
응용 프로그램들이 요구하는 데이터 구조를 지원하기 위해
데이터베이스에 저장될 데이터의 형과 구조에 대한 정의, 이용방식, 제약 조건 등을 명시하는 기능
- 조작
데이터 검색, 갱신, 삽입, 삭제 등을 체계적으로 처리하기 위해
사용자와 데이터베이스 사이의 인터페이스 수단을 제공하는 기능
- 제어
데이터 베이스를 접근하는 갱신, 삽입, 삭제 작업이 정확하게 수행되어
데이터의 무결성이 유지되도록 제어
종류
- Oracle
- MySQL
- Microsoft SQL Server
- PostgreSQL
- SQLite
- MongoDB
- Redis
Table : 테이블
개념
- 데이터베이스 안에 실제 데이터가 저장되는 형태
- 일반적으로 익숙한 엑셀 화면에서 보이는 행과 열의 Sheet로 이해하면 쉬움
Relation (관계), Row (행), Column(열)
SQL : 구조적 질의 언어 (Structured Query Language)
DDL : 데이터 정의 언어 (Data Definition Language)
각 릴레이션을 정의 하기 위해 사용하는 언어
- Create : table을 만드는 명령어
- Alter : 특정 컬럼을 삭제하거나 변경할 때 사용하는 명령어
- Drop, truncate : 모든 데이터를 삭제하는 명령어
DML : 데이터 조작 언어 (Data manipulation Language)
데이터를 추가/수정/삭제하기 위한 데이터 관리를 위한 언어
- Insert : 새로운 데이터를 집어넣는 명령어
- Update : 데이터를 변경하는 명령어
- Delete : 데이터를 삭제하는 명령어
- Merge : 코드를 튜닝하는 작업시간을 줄일 때 사용
DCL : 데이터 제어 언어 (Data Control Language)
사용자 관리 및 사용자 별로 리레이션 또는 데이터를 관리하는 접근하는 권한을 다루기 위한 언어
- Grant : 데이터베이스 사용자 권한 부여
- Revoke : 데이터베이스 사용자 권한 회수
'Software 공부 > Software Web Knowledge' 카테고리의 다른 글
[Software][Knowledge][Django] QuerySet API (0) | 2023.01.05 |
---|---|
[Software][Knowledge] Django (장고) (1) | 2023.01.05 |
[Software][Knowledge] shell, 인터프리터 언어, 컴파일 언어, Django Shell 사용하기 (0) | 2023.01.05 |
[Software][Knowledge] Framework (프레임워크) (0) | 2023.01.05 |
[Software][Knowledge] 웹 (0) | 2023.01.05 |