일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Queue
- 암호학
- 생성자
- 공개키 암호화
- 클라우드 컴퓨팅
- sql
- generic class
- Stack
- cloud computing
- JDBC
- Algorithm
- MVC
- 크루스칼
- 코딩테스트
- python
- dbms
- spring
- 코테
- dfs
- DB
- 가상컴퓨팅
- Java
- JPA
- 자바의정석
- javascript
- BFS
- 자료구조
- data structure
- jsp
- 알고리즘
- Today
- Total
PLOD
[DB]DB와 DBMS 본문
1.DB(DataBase),DBMS의 정의
데이터베이스를 데이터의 집합 이라고 정의한다면 DBMS는 데이터베이스를 관리하고 운영하는 역할을 한다. 또한 데이터베이스는 현업에서 여러명의 사용자나 응용프로그램이 공유하고 동시에 접근이 가능해야 한다. Microsort의 excel은 데이터의 집합으로 보이기 떄문에 DBMS 처럼 보이지만 대용량을 관리하거나 여러명의 사용자가 공유하는 개념은 아니므로 DBMS가 아니다. ORACLE에서 만든 MySQL가 대표적인 DBMS이다. (현업에서는 MariaDB를 많이 사용한다)
초창기에는 컴퓨터가 보편화 되지 않았을 때, 정확히 말하면 DBMS가 없었을 때는 데이터를 수기로 관리하거나 파일 시스템으로 관리하였다. 파일 시스템은 데이터의 개수만큼 파일이 생겨야 하기 떄문에 용량이 커지고 데이터가 방대해짐에 따라 데이터의 관리가 힘들었다. 파일 시스템의 단점을 보완하고 대량의 데이터를 보다 효율적으로 관리하기 위해 사용되기 시작한 것이 DBMS(DataBase Management System)이다. DBMS를 운영하기 위해서 사용되는 언어가 SQL이다.
데이터베이스 (DATABASE) : 데이터들의 집합 , 기업이나 조직 그리고 개인이 그들이 필요로 하는 데이터를 일정한 형태로 저장해 두는 것 , 조직에 필요한 정보를 얻기 위해 논리적으로 연관된 데이터를 모아 구조적으로 통합해 놓은것
DB 운영 목적 : OLTP, 운영계 DB
---------------------OLAP(DSS), DW, data mining 정보계 DB , query 위주 분석
2. DBMS(DataBaseManagementSystem)의 특징
DBMS는 Database를 관리 및 보호하기 위한 소프트 웨어이다. 기존 파일 시스템은 aplication에 종속되서 보안에 취약하고 데이터 중복 때문에 일관성,무결성을 유지하는데 여러가지 문제가 생겼다. DBMS는 데이터의 독립성, 일관성과 무결성을 유지하게 해주었고 여러 생용자가 데이터를 공유하게 하여 사용편의성을 향상시켜 주었고 , 보안적인 측면에서도 강화시켜 주었다.
- 데이터의 무결성 (Data Integrity: 정확성 + 일관성)
데이터베이스 안의 데이터는 어떤 경로를 통해 들어왔던지 데이터에 오류가 있어서는 안된다 .
1) 개체 무결성(Primary Key) : not null + unique
2) 참조 무결성(Foreign Key) : 부모 테이블의 PK 나 UK 만 참조 가능 or NULL
- 데이터의 독립성
데이터베이스의 크기를 변경하거나 데이터 파일의 저장소를 변경하더라도 기존에 작성된 응용 프로그램은 전혀 영향을 받지 않아야 한다.
1) 물리적 독립성 : 디스크 블록, 실린더, 바이트 , 데이터 항목의 위치와 같은 물리적 구성에 대한 종속성을 제거
2) 접근의 독립성 : 프로그램으로부터 요구되는 레코드와 파일의 탐색과 접근을 위한 접근경로를 제거
3) 데이터 독립성 : 데이터가 프로그램언어, 운영체계와 처리환경으로부터 분리
- 보안
데이터베이스 안의 데이터에 아무나 접근할 수 있는 것이 아니라 데이터를 소유한 사람이나 데이터에 접근이 허가된 사람만 접근할 수 있어야 한다.
- 데이터 중복의 최소화
동일한 데이터가 여러개 중복되어 저장되는 것을 방지한다.
- 응용 프로그램 제작 및 수정이 쉬워짐
기존 파일 시스템을 사용할 떄는 각각 파일의 포멧에 맞춰 개발해야 하는 응용 프로그램을 데이터베이스를 이용함으로써 통일된 방식으로 응용프로그램 작성이 가능해지고 유지보수 또한 쉬워진다,
- 데이터의 안정성 향상
대부분의 DBMS가 제공하는 백업, 복원 기능을 이용함으로써 데이터가 꺠지는 문제가 발생할 경우에 원상으로 복원 또는 복구하는 방법이 명확해진다.
3. DBMS의 종류
1) 관계형 DBMS
2차원 데이터 구조, 수학의 관계 대수를 이용한 논리적 참조 관계를 통해 데이터 무결성유지, 최초의 상용 RDBMS인 Oracle 등장
2) 계층형 DBMS(최초의 DBMS)
1: M 참조 가능 물리적 pointer 참조 방식, 관리가 어려움
3) 망형 DBMS
M:M 참조 가능
4) 객체관계형 DBMS(ORDBMS)
5) 분산 DBMS(10g,11g 물리적으로는 여러 호스트에 구성된 DB를 논리적으로 하나의 DB로)
6) 빅데이터 저장소 : Hadoop, HBase(NOSQL)
4. 데이터베이스 언어(SQL : Structured Query Language)
선천적 언어, 결과 지향적 기술, 예외처리 X, 변수 사용 X
1) DDL(데이터 정의어,Data Definition Language) : 테이블 구조 정의
- CREATE
- ALTER
- DROP
2) DML(데이터 조작어, Data Manipulation Language) : 데이터 검색, 삽입, 삭제, 수정
- SELECT
- INSERT
- DELETE
- UPDATE
- MERGE
3) DCL(데이터 제어어, Date Control Language) : 데이터 사용 권한 부여
- GRANT
- REVOKE
4) TCL(트랜잭션 제어어 : Transaction Control Language) : 트랜잭션 제어
- COMMIT
- ROLLBACK
- SAVEPOINT
5. DBMS 기능
1) 데이터 정의
2) 데이터 조작
3) 데이터 추출
4) 데이터 제어
* 검색의 종류
1) selection(σ(시그마)) : row(튜플) 기준 검색
projection( π (파이)) : 1개의 대상 table, 컬럼 기준 검색
join(▷◁) : 2개 이상의 table로부터 동일한 속성의 컬럼값이 일치하는 레코드를 결합해서 검색결과로 fetch함. 2개 이상 테이블 PK == FK가 일치하는 레코드 결합후 결과집합 생성(cursor, result set)
* tool 명령어
- connect : 계정 로그인,
- describe : 테이블 구조를 보여주는 명령어
'개발 공부 > Database' 카테고리의 다른 글
[DB Modeling] Re-introduction to Database (0) | 2022.10.25 |
---|---|
SQL QUERY [JOIN] (0) | 2022.09.25 |
SQL QUERY [DDL, DML] (0) | 2022.09.23 |
SQL QUERY [SELECT] (0) | 2022.09.23 |
[DB] 데이터베이스의 정의와 용어 (0) | 2022.09.23 |